cancel
Showing results for 
Search instead for 
Did you mean: 

Send Message Synchronously

Former Member
0 Kudos

Hello,

please help me to solve a problem.

I need you to check my XI design and configuration. I confused at all.

I have a task to send an information from MSSQL DB to SAP.This information is based on query to the DB. At first we must be sure the information is present in DB and therefore we do a small query to be sure. If it is true we do the extended query. After that we transform the received information and send it to SAP.

I use BPM. I've realized the classic scheme as described in some blogs.

But I simplified my scheme to debug it and removed any correlation and switch steps.

My scheme is:

Receive Step -> Synchronous Send Step -> Transformation -> Send Step.

What i have done:

<u>Receive Step</u>

1) I've created DT, MT for outbound interface(simple query)

Then I've created a couple of the MI – one real and one abstract for Receive step.

<u>Synchronous Send Step</u>

2) I've created a couple of DT, MT for request and response messages accordingly. (Note:The DT of request message used a construction like that - “access=SQL_QUERY”).

3) Then I've created two couple MI – two real MI and two abstract MI for Synchronous Send Step.

The request MI is inbound. The response MI – outbound.

Also I’ve created abstract synchronous MI and included in it two MTs (request and response MTs).

4) Then I’ve created MM and IM to transform outbound MT into request MT of sync interface. In IM I used real(not abstract) outbound MI as source and real request MI as target. It is dummy mapping <b>to initiate</b> extended query only in Synchronous Send Step.

<u>Send Step</u>

5) Then I’ve created MM and IM for transformation step in BPM. I use abs MI of response interface as source and IDOC as target.

In Abs interface list in BPM I have one abs inbound interface(RS), two outbound interfaces(Synchronous and ABS for IDOC). Abs Req and Res interfaces are neither inbound nor outbound in BPM.

It is the BPM design.

<u>Configuration Stage</u>

5) At the Configuration I’ve created JDBC sender channel for outbound interface (Receive Step), JDBC receive channel (for Sync Step request) and IDOC receiver channel.

6) At Receive Determination I used as sender DB service and as receiver abs MI of Receive Step of BPM.

7) Then I used as sender BPM with OB synchronous interface of BPM and as receiver MSSQL DB service with Request interface as its inbound interface becouse I used JDBC receiver interface. <b>(I doubt here!)</b>

😎 At last I used as sender BPM with response interface of BPM and as receiver SAP system with receiver IDOC interface of SAP system.

In SXMB_MONI(PE) I see only first message which incomes in BPM and error status for Synchronous Send Step - <b>Send Message Synchronously Error</b> ! Nothing else!

I feel I've made some mistakes but I don't know where they are!

Please help me!

Thanks!

Accepted Solutions (1)

Accepted Solutions (1)

prabhu_s2
Active Contributor
0 Kudos

check in the column PE to see the graphical workflow log. This would help to debug the issue.

and is ur scenario fo this kind:

you send a request message to a DB and in turn recive a respnse. Based on the response u carry out the transformation and send to the target i.e. r3?

chek the below log of handleing sync jdbc call. this shud help u out.

/people/bhavesh.kantilal/blog/2006/07/03/jdbc-receiver-adapter--synchronous-select-150-step-by-step

Former Member
0 Kudos

Thank You, Prabhu S !

Yes, You are right. I need receive a started message and then to send JDBC request and the response to send in R3.

Of course, I've read that blog. But there is nothing about interfaces and interface mapping, Configuration there!

My problem is interfaces! I actually confused!

At first, what interfaces I must insert as source and target in IM???

(I mean IM between Request message of Synchro MI and message of MI of JDBC query) ??

Thanks.

prabhu_s2
Active Contributor
0 Kudos

follow this one:

/people/siva.maranani/blog/2005/09/16/xi-how-to-on-jdbc-receiver-response

Former Member
0 Kudos

Thank Prabhu S !

In Runtime WorkBench I see only inbound message of Receive Step in two statuses:

1) successfull status

2) To be delivered (inbound message of Receive Step again)

Which interfaces and which of system should receive the syncronous request?

In second blog which You mentioned are used RFC interface. In my case is JDBC receive adapter (with SELECT)

Answers (1)

Answers (1)

Former Member
0 Kudos

Thanks Prabhu S !

I've decided the problem. I' created two synchrounous interfaces. One is abstract outbound interface for BPM and other is inbound real interface which is used in Receiver/Interface Determination at the Configuration Stage. It is needed to do a request and receive the response to DB. Also in BPM i've created two transformation steps. One is after receive Step to initiate Request and other is to transform response into Idoc message for SAP system. I've put two empty abstract Interfaces - Request and Response in BPM for these transformation purposes.