on 2016 May 18 8:42 AM
Hello,
I want to use a synchronous abap-proxy to send some data to pi and want pi to convert the data to xml format and response back to calling system which is ECC.
1-ECC---ABAP-Proxy-sync--request----> PI
2-PI does the operation mapping
3-PI sends back the output of operation mapping.
There is no other system other that ECC and PI.
I defined those objects : data type, message type, sync. outbound/inbound service interfaces , operation mapping and java mapping (imported archive).
I got back to ECC and generated the outbound-services interface's proxy class. I couldnt manage to configure this scenario. Actually I want to run a converter java mapping in PI and dont want to call any other system via PI, but just PI itself. ECC sends some data to PI and PI does the java mapping and sends the converted data back to ECC.
How can I run PI in such a loop-back scenario? I always used to run PI in the middle of at least 2 systems like :
A---> PI --->B (request)
A<--- PI <---B (response)
But now, I have to do :
A---> PI (request)
A<--- PI (response)
Best Regards
create normal synchronous scenario.
Sender and receiver should be ECC. ECC-->PI-->ECC
Generate proxy for inbound and outbound interfaces.
Any issue in doing that?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello,
ECC is the same ECC system. So do you suggest like this :
1-ECC sends the data via abap proxy to PI
2-PI converts the data
3-PI sends the output to the same ECC via rfc
4-ECC sends back the same payload (dummy RFC function that outputs its input) to PI
5-PI gets back the response of this
6-PI sends back the echo message to the same ECC as a response.
Because it is a synchronous process, it must be like this. In the 3rd step we dont send the converted data to as a response to the caller but to a new endpoint.
Hello,
Sorry, I couldnt understand thoroughly.
In ECC, there is a running ABAP program. At a certain point it has the binary pdf data to be converted. It then calls the sync. proxy method and waits for the response. Without getting the response from the proxy interface till the timeout, ECC abap program must not go on.
If I use the async. proxy interface it will not wait for the response and actually there is no response.
BR
Let us assume you have 10 pdfs to be converted.
ECC outbound proxy will get triggered for first pdf, request sent to PI, java codes executes, and converted request sent to ECC inbound proxy. simply take the incoming request(no logic in inbound proxy) and pass it to response structure from inbound proxy. finally outbound proxy receives the converted file. once this call completes, subsequent call be initiated for remaining pdfs.
Hello,
This is possible but so many unnecessary rings in the communication chain. In order to have e returning response we need to do dummy call to ECC or anywhere else to set the context to the response action. The first sync. abap outbound request message should be stopped in PI after the operation mapping and the response action should start. I guess I have to work on echo-loopback receiver comm. channel.
thanks yet.
All i understand is you will send PDF to pi to convert and get xml. This is clear.
How the whole execution starts? from where are you reading the pdf in ECC? are you reading the pdf from app server? where the pdf is stored?
can you tell me what is the next step, once xml is received in ECC?
for example, if you are going to store the response xml in table, you can do it using async interface. so you can avoid response. Please note, if 10 pdfs files are there in ECC, write the proxy code to call interface 10 times in this case.
There must be a simple way to implement a loop-back or an echo after running the operation mapping, but I couldnt find a way.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Here is what I would do,
- Use a Sync-Async Bridge in PI using the method described in this blog - http://scn.sap.com/blogs/henrique/2007/08/02/syncasync-scenarios-without-bpm
- Basically write the output of your mapping to a File using the File Receiver Adapter with MessageID as file name
- Read the same file with a Sender File adapter, set the correlation, as described in this blog and this will push the response back to ECC.
- Obviously the response time will depend on the sender file adapter's polling interval.
Regards,
Bhavesh
Hello Bhavesh,
Actually I had thought about this. I feel that the performance would be worse than the ccBPM case.
And I have to add a new ring in the communication process chain.
I think I had to work on an echo/loopback receiver communication channel.
If you dont suggest me any other standard ways ?
thanks a lot.
BR
2 other alternates I can think of,
1 - Write a Server Proxy in ECC that basically does nothing but returns whatever PI sends back. This then becomes a Poxy - PI - Proxy Interface.
2. Write a Java Proxy in PI that acts as your Echo Service.
There is no standard SAP PI loopback / echo service.
Regards
Bhavesh
So this is what I mean,
Overall your scenario will become ECC --> ABAP Proxy ( Client ) --> PI ---> ABAP Proxy (Server) --> ECC
Regards
Bhavesh
Hi Kerem!
Maybe I didn't catch the mean of your question, but in described scenario you just use the same business system both as sender and receiver with according interfaces.
In your scenario you can use asynchronous connection
Business System A (Async outbound interface) -> PI -> Bysiness System A (Async Inbound interface).
In sync scheme you just send response from System A to itself.
Regards, Evgeniy.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello,
The point is there is an ABAP program in ECC. At a certain point, this program needs to convert binary pdf data to xml. I designed a java mapping in PI. It gets the binary pdf and outputs xml. I put this java mapping in an operation mapping. I just want to call sync.proxy method in the abap program of ECC to send pdf binary data to PI and get back the result xml immediately. I have to use synchronous abap proxy.
If I add the same system in the receiver agreement, then it is useless.
it seems like this:
A--> PI --> A
A<--- PI <--A
Also I will have to desgin some dummy RFC function in ECC for the receiver agr.part.
BR
Hello Evgeniy,
I dont want to use ccBPM in this case. There are 2 reasons for that :
1-considering the performance ccBPM is not so good.
2-we use PI 7.11 abap+java. In the future, we are planning to upgrade to a single-java stack PO 7.4. During the upgrade I will have to re-design this scenario because in single-java stack PO it will not work. ccBPM works in the ABAP side.
I investigated the "Direct Connection" methodoly for such a P-to-P communication (ECC to PI only). However, this method is not going to work because it doestn use Integration Server of PI. Because I have to run an operation mapping (OM) and OM runs only in integration server, I cant use Direct Connection methodology.
Best Regards
Hello Kerem,
What type of conversion are being done @ PI?
You can do the same @ ECC right?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello Raghuraman,
It is a pdf to xml conversion. I designed the java mapping to do this. It cant be done in ECC in ABAP. It is not generated by ADS. So I had to use itext library to handle pdf2xml conversion.
I just want to send pdf data to pi operation mapping and get back the result xml. There is no other system other than one ECC and one PI. PI must get binary data from the sync.abap proxy called by ECC and run the operation mapping and result payload must be send back to ECC.
BR
User | Count |
---|---|
67 | |
8 | |
8 | |
6 | |
6 | |
6 | |
6 | |
6 | |
5 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.