cancel
Showing results for 
Search instead for 
Did you mean: 

JDBC Synchronous

Former Member
0 Kudos

   Hi All,

        I have a synchronous SOAP TO JDBC scenario, where the Sender is the thirdparty system which uses the webservice and the receiver is the Database.

      

       Here my major concern is the Receiver I am using the JDBC adapter but My issue is that according to my scenario that the sender system must retrieve the data from the database. Here I am not updating, deleting nor inserting the data I am just retrieveing the data from the database which was in the receiver side.

     How could I achieve this as there was nothing on the receiver side JDBC as we not have any option to retrieve the data???

Regards,

Naren.

Accepted Solutions (0)

Answers (3)

Answers (3)

baskar_gopalakrishnan2
Active Contributor
0 Kudos

If your query is very complex and reading from more tables then stored procedure is the way to go. Otherwise you can construct the message structure as statement6 given in the sap help document. I also want to give one more suggestion. If the request message structure name is say  messagerequest, then you have to name response message structures a messagerequest_response.  This is very important for the synchronous jdbc

iaki_vila
Active Contributor
0 Kudos

Hi Naren,

Dont worry your scenario is a tipycall  SOAP-JDBC.

This document http://scn.sap.com/docs/DOC-3803 is a perfect guide to do a SOAP - JDBC synchronous scenario. You can do an easy  SELECT following the help that points below with <StatementName4> also. For the request only need to assign to the Action tag the value "Select" and to map the correct values. In the message mapping you can obtain the parameters by the sender or simply using constants.

To the response you will need to do an XSD that represents the correct output:

<row>

<column1>value11</column1>

<column2>value12</column2>

...

</row>

...

<row>

<column1>valueN1</column1>

<column2>valueN2</column2>

...

</row>

Regards and good luck.

Former Member
0 Kudos

Zameer Farook,

      

<<<"Your SOAP request message should have the select query as a string and you can map this to receiver JDBC structure access field. " >>>

      

    according to my understanding I have to take a field SelectQuery of type string in the source side and I have to map this to the receiver side access filed right?? If so where I have to take the filed SelectQuery on the source side, I mean under the rootnode or I have consider it as a seperate node??

Regards,

Naren

zameerf
Contributor
0 Kudos

You can just have one single field in the source structure under your root node, where you would receive your entire SELECT query as a request message from SOAP call.

You can also refer to Inaki's suggestion to create <StatementName4> with an action SELECT. In this case your SOAP request message should send all the required fields and you can do a 1 to 1 mapping to JDBC access fields to construct SELECT query.

Former Member
0 Kudos

Hi All,

    Shall I use the stored procedures for the above requirement???, Shall any one provide the screenshot steps for the mapping part as well as the configuration. Little bit confused.

Regards,

Naren.

Former Member
0 Kudos

Hi,

>>Shall I use the stored procedures for the above requirement???

Stored procedures are always good option, greater flexibility in terms of handling data. U can refer below blogs

http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/1671

http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/9618

Thanks

Amit Srivastava

zameerf
Contributor
0 Kudos

Hi Naren,

Just create a sync outbound interface for SOAP and sync inbound interface for JDBC call.

Your SOAP request message should have the select query as a string and you can map this to receiver JDBC structure access field.

Your action attribute of JDBC should be mapped with a constant 'SQL_QUERY'.

This will trigger JDBC request of SELECT statement and the response you can map it back to the 3rd party system.

You can also refer  SAP Help, check for <StatementName6> format

Hope this helps

Regards,

Zameer