on 01-07-2008 12:41 PM
We have a scenario where an ABAP Client Proxy sends a message to PI. This message is transformed into the mail package format and an email sent via the mail adapter.
The Interface Mapping has 2 steps. The 1st step uses an XSL transformation to format the <Content> as html. This step also sets the <Subject>, <To> and <Content_Type> fields. The 2nd step uses a graphical message mapping to dynamically set the <From> field based on the sender system.
We are experiencing the following intermittent error with this scenario:
<SAP:Category>Application</SAP:Category>
<SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>
<SAP:P1>com/sap/xi/tf/_EUK_MM_MailFrom_</SAP:P1>
<SAP:P2>com.sap.aii.utilxi.misc.api.BaseRuntimeException</SAP:P2>
<SAP:P3>Fatal Error: com.sap.engine.lib.xml.parser.Parser~</SAP:P3>
This relates to the 2nd mapping step (graphical message mapping) described above.
The message trace provides the following detail
<Trace level="1" type="T">com.sap.aii.utilxi.misc.api.BaseRuntimeException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: XMLParser: Entity 'lt' undefined(:main:, row:3, col:227) at com.sap.aii.mappingtool.tf3.Transformer.checkParserException
This suggests that the XML produced by the XSL transformation is invalid.
The strange thing is that it is very difficult to replicate the error as it doesn't always occur even with the same payload! If the message is restarted it processes successfully. Testing the interface mapping in the IR, with the same payload, works successfully.
I would welcome any ideas you may have on this.
Thanks
Mark
Hi Mark !
Just an idea:
" Entity 'lt' undefined(: " seems to be related with a "less than" character "<" = "<" that it is not being recognized.
Regards,
Matias.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Matias
Thanks for your comment. I realise that this message refers to the "<" character. What I don't understand is why this error is intermittent and why restarting the message always works successfully if this is a true mapping error. Also testing the interface mapping in the IR always works successfully.
Any ideas?
Mark
Hi Mark,
thing i know now why it works at "restart".
When the message comes first you get the character '<' in your xml for example: '&<(0'
and you get the ParserException.
Now the message is stored for queueing in the db. I assume the characters are now stored in the 'right way': '&amp;&lt;(0'
When the message now will be restarted everything works fine.
Regards,
Olaf
User | Count |
---|---|
87 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.