cancel
Showing results for 
Search instead for 
Did you mean: 

File 2 JDBC

Former Member
0 Kudos

Hi Experts,

I have a requirement.

1) I need to post some data to Database Asynchronously.

2) After the posting is Sucessfull, i need to call another interface in PI.

I am looking for, how can we know that the Receiver JDBC Adapter posted sucessfully to Database ( This is Async posting to Databse) and subsequently call another interface from the same communication channel.

Best Regards

Subbu

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

You can do 1:n multi-mapping

Source: File Structure

Target: JBDC Structure and then the Other Output structure

In the interface determination you can choose "Maintain Order at runtime". This will make sure that only after insertion into JDBC, other Structure is populated.

Former Member
0 Kudos

Hi Gupta,

Could you please point me to any link or blog please on the "Maintain Order at Runtime"?

Best Regards,

Subbu

Former Member
0 Kudos

Here:

http://help.sap.com/saphelp_nw2004s/helpdata/en/42/ea20e737f33ee9e10000000a1553f7/frameset.htm

(btw you can search and find many more posts on this)

What I can explain in simple words is that by selecting "Maintain Order at Runtime" in Interface Determination... the subsequent steps will be in EOIO.

..which according to me is applicable in your case since you need maintain the order of the Inbound interfaces(JBDC and then another one).

Former Member
0 Kudos

Hi Arpil,

Thanks!

But, by looking at the SAP Help link, i understood it as, message mappings execution will be EOIO, Which does not mean complete execution of JDBC call and then invoking webservice call.

Please correct me, if my understanding is wrong?

Best Regards,

Subbu

Former Member
0 Kudos

Hi,

Receiver JDBC adapter will throw error if query is not executed. And only after successful insertion next inbound message will be posted.

I have tried similar JDBC receiver scenario... it works fine.

Former Member
0 Kudos

@Arpil

Receiver JDBC adapter will throw error if query is not executed. And only after successful insertion next inbound message will be posted.

>

> I have tried similar JDBC receiver scenario... it works fine.

Are you sure of this? I don't think "maintain order at runtime" will prevent the 2nd message from being sent if the first one goes in error. The main reason is that there are two separate receivers (means two different business systems) ... your logic would have worked if there was a single receiver.

BPM is one of the solution that can be used, but the JDBC call needs to be made sync.

Former Member
0 Kudos

Hi,

your logic would have worked if there was a single receiver.

Yes "Maintain Order at Runtime" is a option in Interface Determination... so i guess its applicable only for Single Receiver Component.

However for achieving desired result, using Single Receiver is a possible option.

(especially since one can avoid BPM)

Isn't it?

Regards

Arpil

Former Member
0 Kudos

@ Arpil,

> Yes "Maintain Order at Runtime" is a option in Interface Determination... so i guess its applicable only for Single Receiver Component.

> However for achieving desired result, using Single Receiver is a possible option.

> (especially since one can avoid BPM)

> Isn't it?

I believe that there are going to be two business systems reason being one receiver is a JDBC connection and another is a web service call. Now, if these connections are being made to the same BS, then "maintain order at runtime" can work but if there are two BS, then it won't work.

And no harm in using BPM ... it is there to be used in such situation

Former Member
0 Kudos

Rama,

I believe you can use BPM if you want to trigger another interface as soon as you have posted to JDBC.

But since, yours is an Asynch posting into JDBC, there is no way to know that it has been posted successfully into the JDBC.

All you can check is whether the communication channel was successful or any errors have occurred using Acknowledgement in BPM step.

If the acknowledgement is in error, you just need to raise an exception else you can trigger another interface.

Regards

Krish

Former Member
0 Kudos

additional information regarding subesquent 2nd call.

Once the Database update is sucessful, i need to trigger another webservice call.

Here, if the posting is not sucessful at Database, then communication channel fails. This should stop triggering the webservice call also.