on 07-04-2008 3:26 AM
Hi.
We are having a problem with an Interface mapping which works when
tested in Integration Builder, but throws an Exception when it is part
of the Transformation in a BPM.
The scenarion is such:
1. The sender calls the outbound interface using a web service.
2. XI uses the input and passes to the Integration Process
3. In the BPM, a LOGON message is built to call the web service as
specified by an external web service . The input and
output messages are just a single string, in which the other XML is
embedded.
4. XI receives a response from the web service call
5. XI Extracts the sessionId from the response and combines it with the
initial input (Step 1) to create the query for the query message in
the web service.
It is in Step 5 where the transformation fails, with an Exception in
the DefaultTrace.trc as
Runtime exception occurred during execution of application mapping program com/sap/xi/tf/_MM_LogonResponse_PropertySearchRequest_to_ExternalRequestSOAP_: com.sap.aii.utilxi.misc.api.BaseRuntimeException; RuntimeException in Message-Mapping transformation: Cannot produce target element /ns0:Messages/ns0:Message1/ns1:EXTERNAL/REQUEST. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd
Thrown:
MESSAGE ID: com.sap.aii.ibrun.server.mapping.rb_MappingRuntimeException.EXCEPTION_DURING_EXECUTE
com.sap.aii.ibrun.server.mapping.MappingRuntimeException: Runtime exception occurred during execution of application mapping program com/sap/xi/tf/_MM_LogonResponse_PropertySearchRequest_to_ExternalRequestSOAP_: com.sap.aii.utilxi.misc.api.BaseRuntimeException; RuntimeException in Message-Mapping transformation: Cannot produce target element /ns0:Messages/ns0:Message1/ns1:EXTERNAL/REQUEST. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd
.
I have extracted the data from the initial request (step 1) and the
logon response (step 4) and using these I have tested the Interface
Mapping. There is no problem with this and the tests are successful.
From what I can see, because the Response field in the LOGONResponse
contains more XML tags, XI must be parsing it and assuming the tags are
tags in the message, and not just the string, thus it is complaining
that the XSD types do not match. This extra XML Parsing does not take
place in the Interface Mapping Test.
I have put the response into a User Defined Function which just has one
line "return new String("Hello")" and that fails. However, if this UDF
does not have the Response as the input, it does not complain.
Please advise.
--Reenal
hi
You will have to use specific replacements for you xml tags if it is coming as a paramter
replace '<' with <
replace '>' with >
for eg: I want to pass <TakeIt>200</TakeIt> as value to Element <A>
Mapping won't work if it is passed like
a) <A><TakeIt>200</TakeIt></A> - Wrong
Instead the replace the angle brackets
b) <A><TakeIt>200</TakeIt></A> - Correct
While testing the mapping in IR (a) will work bcoz the test tool will convert it to (b) format. Check the xml source in test tool.
So ensure the web response is like (b)
rgds,
Arun
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
This mapping error may be because of following reasons:
as you thought, xsd is not in the right format. However, if there is a string in a field with tags, i don't think so, it will error out.
check all the fields are mapped..
check the mapping input in the Transformation Step in ccBPM..using BPM Monitoring ie SXMB_MONI>your message>PE-->Go to Menu and find out the Technical Details option to know this in detail..
Rgds, Moorthy
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
86 | |
10 | |
10 | |
9 | |
6 | |
6 | |
6 | |
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.