cancel
Showing results for 
Search instead for 
Did you mean: 

JDBC sender adapter

Former Member
0 Kudos

I have JDBC ->XI -> R/3 synchronous scenario.

I have two possible options,

1) JDBC sender adapter invoking a stored procedure to get the required data. Send the information to R/3. Process the orders in R/3 and return the response back to JDBC (JDBC receiver)

2) Database will send a soap message whenever new records are inserted. i will use the input from soap message to retrieve records from DB (JDBC receiver) and then same steps as above. This will be BPM.

Which of the two will be better? And why? By second approach, I eliminate querying the database again and again.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

With JDBC Sender is possible just to send data to XI and to R3 System, and to execute a query in db after the XI Message is read by the adapter Engine.

My opinion: for confirmation message into the database is to be implemented an asyncronous scenario, using a BPM, with 3 participants: db sender, rfc receiver, db receiver.

Regards,

Bogdan

udo_martens
Active Contributor
0 Kudos

Hi,

i agree with Bogdan: Asynchronous scenario bcoz of good performance. Polling with JDBC sender to get changed data. This would be the standard way. BPM to send later an answer. Synchronous from BPM to RFC to send data to R/3. Here are some interesting alternatives: IDoc and acknowledgement to have a better performance. Or synchr ABAP proxys (if R/3 >= WAS 6.20) to be more stabil. Finally BPM to JDBC receiver, where a stored procedure or a SQL insert/update is saving the response. If the poll intervall is big enough (one minute should be quite save) there shouldnt be any problem with BPM performance.

Regards,

Udo

Former Member
0 Kudos

So you guys feel that polling database (JDBC sender) will be better than database sending me a trigger message?

which would be better performance?

Former Member
0 Kudos

SSG , If you use a SOAP trigger based approach, you avoid creating/retaining a JDBC connection by the XI JDBC sender adapter. It is advantageous in that way.

But then i can think of a few things to consider.

1)You are having an "external/custom piece of code" and some one has to maintain it. It is not a standard connector approach. It is better to minimise any custom development/external scripts to keep things easy for you or any one who has to support the system

2) From what i understand you are going to send the "actual data" in your SOAP trigger message to XI. Is your data always UTF-8 ? In this approach, you mayhave to later worry about the encoding , if a requirement comes later to store data that may NOT be utf-8.

If you had used a standard connector, then i assume, SAP XI will avoid this code page conversion headaches.

My 2 cents. Good Luck.

Also , i am a bit curious to know which database you use ? How easy it is to trigger a SOAP message from it ? It could help me if i am faced with a scenario like this some time.do share it if possible

Regards

Saravana

Former Member
0 Kudos

Thanks Saravana.. The external db system is sybase and a different group will be responsible for triggering the soap message and maintaining any code. And they will be just sending the document number in soap message.

I thought I could use the document number and then trigger a JDBC receiver adapter or even consume a webservice to get the document details.This results in more interfaces and that kind of worries me.. But the one advantage is that I avoid directly updating his DB (and eliminate JDBC sender)

Former Member
0 Kudos

SSG, If that is the case, receiving a SOAP trigger message from SYBASE with the "primary Key" and then making a web service call again to Sybase to retrieve the actual data is a cool design :). Well, it avoids unnecessary JDBC connections , avoids creation of staging/temporary tables, avoids headache of CREATING JDBC Data Types in IR etc and also kind of shields you from any database related issues, i will be very tempted to go with the trigger based design, but you will have to use ccBPM, a necessary evil here.

Regards

Saravana

Former Member
0 Kudos

I have a question. I need to insert some rows in sybase DB. I was planning on using a stored procedure? Is that feasible? Can we define a stored procedure in DB, that can accept multiple rows of input? If that is feasible, Can I send multiple rows of input when I invoke stored procedure through XI?

udo_martens
Active Contributor
0 Kudos

Hi,

you can either call a stored procedure to send multiple rows of input or just make a "insert" to succeed the same. Plz have look to the <a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm">documentation of JDBC receiver adapter formats</a>.

Regards,

Udo

Former Member
0 Kudos

Udo,

Please look at the following.. I can give multiple params as input, but I don't see way to give 'Table type' as input.. Can you please elaborate the XML SQL format, if my input is multiple rows to stored procedure?

<i><StatementName5>

<storedProcedureName action=” EXECUTE”>

<table>realStoredProcedureeName</table>

<param1 [isInput=”true”] [isOutput=true] type=SQLDatatype>val1</param1>

</storedProcedureName >

</StatementName5></i>

Does anybody know if we can send multiple rows of input to stored procedure?

Answers (0)