on 03-23-2012 6:03 PM
The scenario is : Proxy to PI [asynch ] PI to Web service.
Web service sends back response upon receipt of the message. But this response is not sent back to proxy.
The response which is sent by WS is an empty soap file in case of success. And if message fails to be received at WS, they will send some exception details.
My question is, do I need to configure Asynch-Synch bridge using BPM. Or will it work as a complete asynch scenario.?
Hi,
>>>My question is, do I need to configure Asynch-Synch bridge using BPM. Or will it work as a complete asynch scenario.?
I have a perfect suggestion for you + don't use a BPM and handle it as async scenario
asnyc proxy - sync soap - async file - and use the bean from the wiki below
http://wiki.sdn.sap.com/wiki/display/HOME/Using+Request+Response+Bean+Module+in+FILE+Adapter
this way you will be able to store the reponse somewhere and call it in async proxy way
how does that sound ?
Regards,
Michal Krawczyk
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Michal,
Just want to learn from you. We might not use sender proxy adapter here. How do we configure adapter module on the sender adapter in this case? I thought about it and anyway the response had to be written some where as I already mentioned. Do you have any tricks to provide in this case?
Hi Michal,
Thanks for the suggestion.
But......
I do not have WSDL for response messages.
WS have provided sample response message. [but not exact WSDLs]. So I have created Data Types using the fields that are in the sample response message.[I dont know if it is a correct approach or not.]
WS people say that, it will be a standard response, Empty Soap File in case of success and Exception details in case of failure.
When I tested the scenario, I am able to send the request successfully to WS. When the message is successfully received at WS end, they send Empty Soap File. When it comes to PI, it fails saying "Unable to read the payload.". What I think is that, the empty soap response is the cause of this error.
Also , when there is validation error , say for example, Date field is having invalid format, the response message in PI has a payload in which I can see the exception details.
Is there any way to handle empty payloads in PI?
Or what changes do i need to do in my configuration?
Hi Michal,
If I ask them to send status, it means, the response file will have a field, say "Status" or something.
rite? Or u are referring to something different?
If it is field in a file then , it is not possible because....
WS people say that "whatever they can send PI is fixed, they can not make changes in what they are sending to PI in response"
The response of the successful transaction is going to be an empty soap file.
I have to now look for some way , so as to make PI understand that Empty SOAP file means successful message.
Is there any way out?
Thanks
Sneha
If you see response message in the WSDL that means they are sending response message. But if response message has no meaningful information like Status field or so, then there is no purpose in retrieving it and storing it in file or somewhere. Empty response would not help at all. Ask them to modify it.
>WS people say that "whatever they can send PI is fixed, they can not make changes in what they are sending to PI in response"
>Is there any way out?
System acknowledgments are retrievable in the bpm. If that is the case, you might have to go to BPM only. i.e async sync with bpm.
Hi Baskar,
>System acknowledgments are retrievable in the bpm
How do we do it in BPM?
In BPM also , I will have to specify a data type with some meaningful field. When we say its a blank or empty payload, what will my data type look like?
>Empty response would not help at all.
Are you sure? Or can there be any other way ..?
Let me add this diagram to get clear understanding of my scenario.
Request:
CRM----xsd---->PI----wsdl-->WS
Response:
WS---Success or failure--->PI
[Success is an empty soap file and failure will be details of the exception ]
Request message works fine.
Response message, when failure, works fine. [I can see exception details in the payload of the response message]
But when Response message is a successful message with empty soap file, I am getting an error "Unable to read payload". I assume , it is because of blank payload.
My aim is to get a successful message in PI when the message from WS is a success message
Hi,
If you are getting a response 200 that means your data is posted successfully. If you don't want to use this response for anything else, then you do nothing or else if you want to do anything with response make one more adapter and use Request Response bean to call another receiver adapter to save it (As suggested by Michael). In case of error you can check moni for error code in same place where you check 200 - Ok code.
Regards
Aashish Sinha
Hi Ashish
As I wrote earlier, i am able to post the details successfully to WS. But when I am getting a response with empty soap file , I am getting an error " Unable to read payload". It is in Message mapping, because I have to create a structure in such a way that i will be able to accept the response.
But as it is empty file, it says unable to read payload.
Here is a challenge to accept the empty payload in PI.
My question is , how to accept empty payload. What kind of changes are required in PI to accept empty payload.
Since the web service sends response always whether success or failure, I would recommend to receive the response always. Since proxy already supports sync communication, create Proxy to SOAP synchronous
Proxy to SOAP ( interface is already existing)
SOAP to proxy (create outbound and inbound interface mode synchronous and map the response of webservice to soap).
Simple changes doing mapping and creating the interfaces.
>My question is, do I need to configure Asynch-Synch bridge using BPM. Or will it work as a complete asynch scenario.?
For clarity reasons, If you want to record all the responses then go for Synchronous Proxy to SOAP. Going async sync bridge is not better option here. Even there you need to write the response of the web service some where.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
94 | |
11 | |
11 | |
10 | |
9 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.