on 02-13-2015 10:58 AM
Hi All,
I am working on SOAP to RFC scenario with SAP PI 7.31 AEX and SAP R/3 4.7 versions.
I am testing the scenario using SOAPUI tool with below test cases & outcomes.
Source SOAP Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sap="http://SAP_EWP-Integration">
<soapenv:Header/>
<soapenv:Body>
<sap:MT_CF_DISB_STAT_REQ>
<BUKRS>7000</BUKRS>
<MANU_CO_CODE>TSL0000001</MANU_CO_CODE>
<!--Optional:-->
<PRODUCT></PRODUCT>
<!--Optional:-->
<DATE>
<!--Zero or more repetitions:-->
<ITEM>
<!--Optional:-->
<SIGN></SIGN>
<!--Optional:-->
<OPTION></OPTION>
<!--Optional:-->
<LOW></LOW>
<!--Optional:-->
<HIGH></HIGH>
</ITEM>
</DATE>
</sap:MT_CF_DISB_STAT_REQ>
</soapenv:Body>
</soapenv:Envelope>
Target RFC Request
<?xml version="1.0" encoding="UTF-8" ?>
<ns1:ZTA_DISB_STATUS xmlns:ns1="urn:sap-com:document:sap:rfc:functions">
<BUKRS>7000</BUKRS>
<MANU_CO_CODE>TSL0000001</MANU_CO_CODE>
<PRODUCT />
<DATE>
<item>
<SIGN />
<OPTION />
<LOW />
<HIGH />
</item>
</DATE>
<IT_HEADER />
<RETURN />
</ns1:ZTA_DISB_STATUS>
While testing this case, I get negative response. Because in target RFC request, it creates blank record for 'DATE' which is an optional parameter but has type 'ACE_PARAM_NAME_RANGE' under 'Tables' tab in RFC.
Now if I remove this 'DATE" tag completely, RFC gets processed and gives response ideally as below .
Source SOAP Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sap="http://SAP_EWP-Integration">
<soapenv:Header/>
<soapenv:Body>
<sap:MT_CF_DISB_STAT_REQ>
<BUKRS>7000</BUKRS>
<MANU_CO_CODE>TSL0000001</MANU_CO_CODE>
<!--Optional:-->
<PRODUCT></PRODUCT>
</sap:MT_CF_DISB_STAT_REQ>
</soapenv:Body>
</soapenv:Envelope>
Target RFC Request
<?xml version="1.0" encoding="UTF-8" ?>
<ns1:ZTA_DISB_STATUS xmlns:ns1="urn:sap-com:document:sap:rfc:functions">
<BUKRS>7000</BUKRS>
<MANU_CO_CODE>TSL0000001</MANU_CO_CODE>
<PRODUCT />
<IT_HEADER />
<RETURN />
</ns1:ZTA_DISB_STATUS>
Since we are not supposed to change anything in RFC(SAP), How do I tackle this mapping issue in SAP PI?
Can I handle it using 'node functions' in message mapping? How?
Thanks,
Amit Patil
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Amit,
Please find below:
Explain node functions - Process Integration - SCN Wiki
SAPTechnical.COM - Implementation of Node functions
Regards,
Praveen.
Hi Amit
The 'MapWithdeFault' function allows to pass a default value when the segment is missing in the payload.
CreateIf is used for creating target node based on some condition.
So the above graphical mapping logic is
if the id value is not equal to blank , then only create the target node UID.
You will get many blogs in SCN for the node functions in sap PI.
Thanks,
Indrajit
Hi Amit,
why don't you just map the DATE node asking before if it exists? there is an 'exists' block that checks that at node functions...
Cheers,
Edu
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
82 | |
10 | |
10 | |
9 | |
6 | |
6 | |
5 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.