on 09-18-2012 2:42 PM
Dear Experts,
My scenario is ECC Outbound Proxy <==> SAP-PI 7.31 <===> WEb Service (WEB Page)
I am sending request to Web service of web page by using HTTP_AAE adapter (Get Method).After testing the proxy, I am able to see the succesful
synchronous message in Tx SXMB_MONI of SAP-PI.There is no data/payload in the message.I had the put the trace as 3 in config to check the issue.
The config I did :
MT_ECC_Request and MT_WS_Request
MT_ECC_Response and MT_WS_Response
SI_ECC_OB:
Request Message : MT_ECC_Request
Response Message : MT_ECC_Response
SI_WS_IB:
Request Message : MT_WS_Request
Response Message : MT_WS_Response
Message Mapping:
MM_Request
MT_ECC_Request (Source) and MT_WS_Request (Target)
MM_Response
MT_WS_Response (Source) and MT_ECC_Response (Target)
Operation Mapping:
Request tab:
MT_ECC_Request (Source) and MT_WS_Request (Target)
Response Tab:
MT_WS_Response (Source) and MT_ECC_Response (Target)
I assumed there would be issue in the response mapping , double verified but could not found the issue.
Regards
Rebecca Alice
Hello Alice,
The reason for this is that there is a mismatch of the root message name in the webservice response e.g
<RESPONSE> but you are using <ns0:MT_Response>. Please recheck your response message mapping by loading the RESPONSE payload.
Hope this helps,
Mark
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Mark,
I did the response mapping test and I could find the ESR mapping test results produces the tartget structure but without any data.This is basically 1:1 mapping and each mapping is using node function : mapWithDefault
How to map the source and target structure if there is mismatch in the root node.
Source structure is
<RESPONSE>
<EXPR>USD</EXPR>
<EXCH>INR</EXCH>
<AMOUNT>1</AMOUNT>
<NPRICES>1</NPRICES>
<CONVERSION>
<DATE>Fri, 01 Jun 2001 14:06:30 GMT</DATE>
<ASK>0.02130</ASK>
<BID>0.02128</BID>
</CONVERSION>
</RESPONSE>
Target structure is
<?xml version="1.0" encoding="UTF-8" ?>
- <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
- <ns0:Message1>
- <ns1:MT_Response_OB xmlns:ns1="urn:curr.exchange.rate.integration.automation">
<EXPR />
<EXCH />
<AMOUNT />
<NPRICES />
- <CONVERSION>
<DATE />
<ASK />
<BID />
</CONVERSION>
</ns1:MT_Response_OB>
</ns0:Message1>
</ns0:Messages>
Log of mapping test:
13:33:33 Start of test
Execution of mapping on server took 4 milliseconds
Executed successfully 13:33:33 End of test
PLS HELP ME ON THIS!!!!
Regards
Alice Rebecca
Hello,
Instead of using MT_Response_IB, your message type should look exactly like the one below
Source structure is
<RESPONSE>
<EXPR>USD</EXPR>
<EXCH>INR</EXCH>
<AMOUNT>1</AMOUNT>
<NPRICES>1</NPRICES>
<CONVERSION>
<DATE>Fri, 01 Jun 2001 14:06:30 GMT</DATE>
<ASK>0.02130</ASK>
<BID>0.02128</BID>
</CONVERSION>
</RESPONSE>
Create a datatype and message type that looks like that, use it in your service interface and response message mapping.
Hope this helps,
Mark
Hi Zameer,
The 3rd party is not SOAP based API. The data can be retrieved through HTTP_AAE Get method.
So there is no WSDL file.
I manually created the Response structure based on their response.
In the pipeline steps, it fails at the "XML Validation Inbound Channel Response" step.
Regards
Alice Rebecca
Hi Mark,
Below is my Target structure as per the source structure. But I don't think this would work as its impossible to create the same structure without the xml tags and namespace in MT and DT editor.
<?xml version="1.0" encoding="UTF-8"?>
<ns0:RESPONSE xmlns:ns0="urn:curr.exchange.rate.integration.automation">
<Response>
<EXPR/>
<EXCH/>
<AMOUNT/>
<NPRICES/>
<Conversion>
<DATE/>
<ASK/>
<BID/>
</Conversion>
</Response>
</ns0:RESPONSE>
Regards
Alice Rebecca
Hi Rebecca,
Why are you building your mapping to include the "mapWithDefault" for the Messages, Message1 & MT_Response_IB nodes? For the mapping of the three levels of the XML that only deal with the structure of the XML content I would simply map 1:1 without using that function. Since this is a nested structure you could be telling the mapping system at runtime to ignore all nested values in the XML. I've never seen the usage of "mapWithDefault" on these nested structures before... merely at the element level to ensure one is created even if the element does not exist in the source.
Regards,
Ryan Crosby
Hi Alice ,
I hope what Mark suggested to remove the XML namespace would help. Yes you may receive warning information once you activate the changes without XML namespace i.e. Using an empty namespace contradicts the WS standard.
You can ignore the message and test the response message mapping.
Regards
Robinson Thomas
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
81 | |
10 | |
10 | |
9 | |
7 | |
6 | |
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.