cancel
Showing results for 
Search instead for 
Did you mean: 

UNKNOWN/APPLICATION_ERROR - application fault ECC - PI - Sales Force integration

harish_babu5
Participant
0 Kudos

Hi all,

I am doing a Sales force integration in SAP PI dual stack. The scenario is from SAP ECC to PI, and PI will send it to the Salesforce. It's an asynchronous scenario.

I am using a Java mapping to send, login request to salesforce. The same Java Mapping will also creates SOAP envelope. When I run the scenario end to end, session id is not coming to PI. When I check the payload in Technical routing tab in SXMB_MONI of SAP PI, I can see that sessionid node is created although empty.

The issue is with the login channel. I tried using both partner WSDL and enterprise WSDL. My SAP PI is old version, 7.0. So I am using the appropriate mapping jar files.

This is the error that I get in the communication channel monitoring of the login channel, UNKNOWN/APPLICATION_ERROR - application fault ECC - PI - Sales Force integration. In the login channel, I have maintained the SOAP action to be "login".

In the payload sending channel, I have checked the "Do not use SOAP envelope" box and also added the MessageTranformBean in the Module configurations.

Which WSDL we need to use, party WSDL or enterprise WSDL? I have tested it from SOAP UI and it is working fine.

I am not able to see the Java Mapping payload from SAP PI.

I have not added this to the code, getTrace().addDebugMessage("Message to Trace"); If I add that, can I see the logs in SXMB_MONI?

When I test the InterfaceMapping, I am not able to get sessionID from the salesforce.

I have two receiver SOAP channels. I have not used the login channel in any receiver agreement. Since this is a proxy to Webservices scenario, I have not maintained a sender agreement or sender communication channel as well.

Any inputs will be highly appreciated

Regards

Harish Babu

Accepted Solutions (0)

Answers (3)

Answers (3)

harish_babu5
Participant
0 Kudos

I am now trying witha different approach. I use SOAP lookup to connect to the Salesforce and get the session ID. Like I said before the PI version is 7.0.

This is the login string that is working form SOAP UI.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:enterprise.soap.sforce.com"> <soapenv:Body> <urn:login> <urn:username>username</urn:username> <urn:password>password</urn:password> </urn:login> </soapenv:Body> </soapenv:Envelope>

This is the one that I created in SOAP lookup:

String loginxml = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:urn=\"urn:enterprise.soap.sforce.com\"> <soapenv:Header></soapenv:Header><soapenv:Body> <urn:login><urn:username>"+username+"</urn:username><urn:password>"+password+"</urn:password></urn:login></soapenv:Body></soapenv:Envelope>";

But I am getting this error:

SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: No operation available for request {http://schemas.xmlsoap.org/soap/envelope/}Envelope

I tried many versions of the login string but still it's thorwing different errors.

Is there any way we can track the payload that PI is sending to Salesforce. Note, I am not able to install XPI inspector in the landscape.

Is there anything that can be done to track the message in logs?

Harish

Muniyappan
Active Contributor
0 Kudos

seems you are not sure what the error is? and why it is not giving session id?

try this blog to capture the fault error. if any exceptions happens in the soap call, you can get full error description using this module to investigate further.

https://archive.sap.com/discussions/thread/1675917

https://blogs.sap.com/2015/07/29/soap-faults-and-webservice-faults-from-3rd-party-webservices/

Regarding below query, you better check with salesforce team whoever shared you the wsdl file.

Which WSDL we need to use, party WSDL or enterprise WSDL? I have tested it from SOAP UI and it is working fine.
harish_babu5
Participant
0 Kudos

Hi Muni

Thanks for your response.

I tried with both Enterprise and partner WSDL. Both aren't working. Session ID is not getting populated even from Interface mapping

It's not from the channel that uses do not soap envelope. For login channel I have not checked that option, still it's giving me the same error

How can we track Java mapping? I am suing Java mapping to connect to SFDc to get session id and to create the soap envelope

Harish

Muniyappan
Active Contributor
0 Kudos

without that module config, you wont be able to capture the error in java map.

for troubleshooting purpose, you can construct the soap envelope for login also and check that option.

or create soap to soap scenario for login and test from soap ui. You can place with it to find out what is causing the error.

harish_babu5
Participant
0 Kudos

Any inputs ?