cancel
Showing results for 
Search instead for 
Did you mean: 

xml tags required for mail adaptor

Former Member
0 Kudos

Hello,

I am doing a POC for PI to process data submited from an Adobe Interactive form via email. I've managed to make the mail communication channel read the email, but it doesn't like the xml created by Adobe. I think some tags are missing. I get the following error in SXMB_MONI. Any idea how I can find all the tags PI is expecting? Thanks in advance.

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

- <!-- Request Message Mapping

-->

- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">

<SAP:Category>XIServer</SAP:Category>

<SAP:Code area="MAPPING">JCO_SYSTEM_FAILURE</SAP:Code>

<SAP:P1>Server repository could not create function template for 'SMPP_CALL_JAVA_RUNTIME</SAP:P1>

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText />

<SAP:ApplicationFaultMessage namespace="" />

<SAP:Stack>&quot;SYSTEM FAILURE&quot; during JCo call. Server repository could not create function template for 'SMPP_CALL_JAVA_RUNTIME</SAP:Stack>

<SAP:Retry>A</SAP:Retry>

</SAP:Error>

Accepted Solutions (0)

Answers (1)

Answers (1)

VijayKonam
Active Contributor
0 Kudos

How does the data come from mail? Attachment or the body? If attachment, you need to use payloadswap bean in the modules of the sender Mail adapter. Then see how this one gets converted to PI message in RWB. I dont think there would be any special tags as such as PI AFW would convert the message to PI SOAP XML internally. All that you have to do is map it properly to the target.

The error message is talking about JCO connection failure. I wonder how the communication is happening between sender and XI.

VJ

Former Member
0 Kudos

Thanks for the reply. The JCO error turned out to be a red herring. I think the real problem is that PI is expecting the following payload (this example is for a measurement document):

<?xml version="1.0" encoding="UTF-8"?>

<ns0:MT_05_PM_Meas_Doc xmlns:ns0="http://alliance-pipeline.com/xi/HMI/I005_Meas_Doc">

<Line>

<LOCATION/>

<DATE/>

<TIME/>

<READING/>

</Line>

</ns0:MT_05_PM_Meas_Doc>

The xml generated by Adobe looks like:

<?xml version="1.0" encoding="UTF-8" ?>

<line>

<LOCATION>15038</LOCATION>

<DATE>20080801</DATE>

<TIME>000000</TIME>

<READING>20</READING>

</line>

So the generated xml is missing the <ns0..> tags. Any ideas how I can either get Adobe to generate those tags or get PI to ignore / derive them?

VijayKonam
Active Contributor
0 Kudos

In SXMB_MONI, on the left pane, expand the inbound node and check the payload. Similarly in the technical routing node check the payload. They are basically the Message before and after the execution of message mapping. See if it is actually executing..

VJ

Former Member
0 Kudos

XI rejects the raw message sent by Adobe with the following error:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

- <!-- Request Message Mapping

-->

- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">

<SAP:Category>Application</SAP:Category>

<SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>

<SAP:P1>com/sap/xi/tf/_MM_05_PM_Meas_Doc_</SAP:P1>

<SAP:P2>com.sap.aii.utilxi.misc.api.BaseRuntimeException</SAP:P2>

<SAP:P3>RuntimeException in Message-Mapping transformatio~</SAP:P3>

<SAP:P4 />

<SAP:AdditionalText />

<SAP:ApplicationFaultMessage namespace="" />

<SAP:Stack>com.sap.aii.utilxi.misc.api.BaseRuntimeException thrown during application mapping com/sap/xi/tf/_MM_05_PM_Meas_Doc_: RuntimeException in Message-Mapping transformatio~</SAP:Stack>

<SAP:Retry>M</SAP:Retry>

</SAP:Error>.

It would process the message successfully if I manually add the following tag to the XML file.

<ns0:MT_05_PM_Meas_Doc xmlns:ns0="http://alliance-pipeline.com/xi/HMI/I005_Meas_Doc">.

My question is how to make XI accept the message without manually manipulating the XML file. It looked like DynamicConfigurationBean could do the trick, but no success yet after several tries.