cancel
Showing results for 
Search instead for 
Did you mean: 

Calling the webservice twice -> Duplicate entries

Former Member
0 Kudos

Hi Experts,

Scenario : SOAP Client -> Call Microsoft webservice -> XI JDBC Sync call-> Call Microsoft webservice.

BPM Steps:

1. Receive Step -> Get the SOAP Client request (Open S/A Bridge)

2. Send Step -> Async call to Microsoft webservice to update the log status.

3. Send Step -> Sync call to JDBC

5. Send Step -> Close the S/A bridge

6. Send Step -> Call the Microsoft webservice to update the log status.

Receiver Determination Steps

1. SOAP Sender to BPM

2. BPM(Async request) to 2 Log Business Service. I have mentioned the both business service under Configured Receivers section in Receiver Determination.

3. BPM(Sync request) to JDBC

Issue : The JDBC part works fine. Only problem with the Microsoft webservice. Twice it update the log table. ie. Twice it calls the Microsoft's each webservice.

Please help me out, how to stop the second retry and let me know the above approach is correct or not.

Thanks & Regards

Sara

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

You are trying with Sync/Async bridge for JDBC to Webservice call,

But if you se u are calling the Webservice twice (Point 2 and 6). That makes it to add duplicate entries.

Refer below steps

/people/sriram.vasudevan3/blog/2005/01/11/demonstrating-use-of-synchronous-asynchronous-bridge-to-integrate-synchronous-and-asynchronous-systems-using-ccbpm-in-sap-xi - Use of Synch - Asynch bridge in ccBPM

https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken] - Use of Synch - Asynch bridge in ccBPM

Thanks

Swarup

Former Member
0 Kudos

Hi Swarup,

Initially I was calling only first Microsoft service, that time I didn't face any duplicate issue. I started getting the duplicate error, when I added the second Microsoft webservice call. Only after the JDBC call, I have to call the second Microsoft call but I don't it perform the operation in that order.

Please help me to solve the issue.

Regards

Sara

former_member181985
Active Contributor
0 Kudos

Hi,

>>Only after the JDBC call, I have to call the second Microsoft call but I don't it perform the operation in that order.

Could you explain the above statement in detail?

Thanks,

Gujjeti

Former Member
0 Kudos

HI Sara,

If you will be making the call then it will definitely make the entry. If you want to suppress the second call then plz can you briefly explain the requirement of 1st and 2nd call so it will help to give you good alternatives if possible.

Thanks

Swarup

Former Member
0 Kudos

Hi Gujjeti,

Before and after calling the JDBC adapter, I have call the Microsoft webservices to update the login status(timings). But in my case, logging services are called immediately one by one.

Regards

Sara

Former Member
0 Kudos

Hi Sara,

1. If you need to call the Logging service before and after JDBC call then you need to confirm about the 1st call before the Closing step of Sync/Async bridge.

2. This close step will be closing the Synchronous Webservice, but when you will again call logging Service at that time you are not using the Close step of sync/Async bridge. But Webservice is synchronous so it will fail on the second log due to response failure..

3. Add one more Sync/async send step to close the opened bridge.

Thanks

swarup

former_member181985
Active Contributor
0 Kudos

Hi,

The time taken for JDBC sync call might be very less in between the two microsofts webservice Asyn calls.

Try to insert a delay step inbetween the last two steps in your BPM(step5 & step6) if it is really required in your scenario.

Thanks,

Gujjeti

Edited by: Praveen Gujjeti on Jun 2, 2008 8:14 AM

Former Member
0 Kudos

Hi Swarup,

I couldn't add one more Sync/Async. Earlier I was calling the Second microsoft webservice before closing the bridge. But, I was getting the same issue. Just tried to call the webservice after the Closing the bridge..Still getting the same issue.

Ok Gujjeti, I'll check with wait.

Regards

Sara

Former Member
0 Kudos

Hi Sara,

As per your info, Earlier you was trying to call both logging updates under one Sync/Async Bridge. But on Webservice side it will give you two responses and you will handling only one.

In later case also you are handling only 1st response of Webservice call, but the another call is still open.

Actually you are trying to built two Sync/Async Birdges. Which is not at all possible under one BPM.

SAP have not recommended for it.

Refer

http://help.sap.com/saphelp_nw04/helpdata/en/43/65d4dab39b0398e10000000a1553f6/content.htm

http://help.sap.com/saphelp_nw04/helpdata/en/83/d2a84028c9e469e10000000a1550b0/content.htm

You need to create two seperate interfaces for this.

For e.g.

1st will call the Webservice before updating the JDBC tables.

2nd After updating the JDBC table you can again call the Webservice for updated logging status.

Thanks

Swarup

Edited by: Swarup Sawant on Jun 2, 2008 8:50 AM

Former Member
0 Kudos

Hi Swarup,

The Microsoft log service is one way service, so I am calling as an asynchronous service. Now I have moved both log services inside the bridge.

I didn't do any changes with the interfaces and services, because have created the same way. Created two message interface, Business Service and communication channel. Same service call with different namings.

In the Receiver Determination If add one more log service it creates duplicate entries.

2 logs - 4 entries ( 2 duplicate entries)

3 logs - 6 entries ( 3 duplicate entries) like so.

So, I have a doubt with my BPM flow and the receiver determination. Is it possible to create one more BPM request.

Receiver Determination steps

1. SOAP client request -> BPM

2. BPM Sync request -> JDBC Sync

3. BPM Async request -> Log1 service, Log 2 Service . Here is it possible to create two Async BPM request? So, that I can have 1:1(Sender:Receiver) mapping instead of 1:2 mapping .

Please share your suggestions.

Regards

Sara

Answers (1)

Answers (1)

sunil_singh13
Active Contributor
0 Kudos

Hi Sara,

BPM(Async request) to 2 Log Business Service. I have mentioned the both business service under Configured Receivers section in Receiver Determination.

As per your Scenario

SOAP Client -> Call Microsoft webservice -> XI JDBC Sync call-> Call Microsoft webservice.

you are callling the two Bussiness services using only one Receiver determination (using some condition) .

May be the case both the conditions are getting satishfied at run time so it is calling them at a time.

But as u said in scenario, u again have to call Web service after JDBC call,

I do not see any step where you are calling Web service after JDBC call.

Reward Points if Helpful

Thanks

Sunil Singh