cancel
Showing results for 
Search instead for 
Did you mean: 

Synchronous SOAP to JDBC scenario in SAP PO 7.4

Former Member
0 Kudos

Hi Folks,

My scenario is SOAP to JDBC and JDBC to SOAP.  Order no is the input parameter in SOAP and the JDBC should send the information of the order no.  Here I am using SAP PO 7.4 version.  I found few blogs and step by step screen shots but they used SAP XI/PI not PO.

Here I created 2 Data Types for SOAP (Request & Response) and 2 Data Type for JDBC (Request & Response), similarly 2 Message Type, 1 Service Interface, 2 Message Mapping and 1 Operation Mapping (which has both the message mapping in Request and Response tab).

In integration builder created a Sender communication channel for SOAP and Receiver communication channel for JDBC and Integrated Configuration.

Issue I am facing here is when I try to execute the SOAP WSDL i am not getting the output.  I am getting the error

               <context>XIAdapter</context>

               <code>ADAPTER.JAVA_EXCEPTION</code>

               <text>See log trace with id: n/a</text>

In monitor im seeing this message

Returning to application. Exception: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error encountered while executing mapping: com.sap.aii.af.service.mapping.MappingException: Mapping failed in runtimeRuntime Exception when executing application mapping program com/sap/xi/tf/_MM_Info_Response_To_Order_Response_; Details: com.sap.aii.mappingtool.tf7.IllegalInstanceException; Cannot create target element /ns0:MT_Order_Response. Values missing in queue context. Target XSD requires a value for this element, but the target-field mapping does not create one. Check whether the XML instance is valid for the source XSD, and whether the target-field mapping fulfils the requirement of the target XSD


Please guide me.


Thanks in advance,

Victor

Accepted Solutions (0)

Answers (3)

Answers (3)

Ryan-Crosby
Active Contributor
0 Kudos

Hi Victor,

What are your JDBC Request/Response message types by name?  There is a very specific convention you have to use that is case sensitive and if you are off by an letter you would get a problem like this.

Regards,

Ryan Crosby

Snavi
Active Participant
0 Kudos

Hi Victor,

looks like your JDBC receiver is not returning the response, you can run the query directly in the database to check the response.

if you want to check the query formed at the runtime you can add logSQLStatement = "true" in the receiver channel advanced settings and run the same query in database to check if the correct response is returned.

Former Member
0 Kudos

Navdeep,

I guess your solution will work.  As this is the receiver JDBC scenario I didn't write any select query and don't know where to write because if it a sender JDBC there is a provision in communication channel where i can write select & update query.  Here I don't know where to write and test.  Please help me how to achieve it. 

Former Member
0 Kudos

Navdeep,

I don't see the option what you said above.  As I am using SAP PO7.4

Snavi
Active Participant
0 Kudos

Hi Victor,

not in the advanced setting of ICO, you have check in the advanced setting of receiver channel

Snavi
Active Participant
Former Member
0 Kudos

Navdeep,

I am getting this error in response.  Tried many options and ways but nothing is working out.  I guess I am missing something.  Can you guide me?

Snavi
Active Participant
0 Kudos

Hi Victor,

  1. provide the full message log
  2. in the ICO advanced settings , set the staging for mapping steps to 'store' and provide the message payloads for the steps execution
PrashantGautam
Advisor
Advisor
0 Kudos

Hi,

go to ESR swing client open the mapping editor select the mapping for response field and change the queue context for source field by right clicking on the node.

TnR

Prashant

Former Member
0 Kudos

Prashant,

Can you please explain how to do that?

PrashantGautam
Advisor
Advisor
0 Kudos

Hi Victor,

the error you mentioned comes only when the context queue is not set at right element.

As far as I know the change in context queue is possible only through ESR swing UI client. (though I am not sure about it)

1. Go to ESR Swing based UI

http://<hostname>:<port>/rep/start/index.jsp

2. open your mapping

3. select the node where the error is shown

4. select the source node, right click and find the queue context

5. change the context to higher level of element

Test the mapping with same input and adjust the queut context accordingly.

TnR

Prashant