cancel
Showing results for 
Search instead for 
Did you mean: 

BPM Scenario (4 steps in sequence)

Former Member
0 Kudos

Hi gurus,

I am facing following scenario:

PI receives a WS request, with some info

With this info, PI accesses a tabla in a DB in order to insert an STATUS field ('In_Progress' status)

With the same info (received via SOAP) PI accesses to SAP via sRFC and gets its output fields.

With this output, PI accesses the same tabla, updates the STATUS field ('Finished' status) and fills the table

So I decided to create a BPM with 4 steps:

Step1: RECEIVE the SOAP_Request_AI (async)

Step2: SEND the JDBC_STATUS_AI to LEGACY (async)

Step3:SEND the SEND_RECEIVE_sRFC_AI to SAP (sync)

Step4: SEND the JDBC_RESPONSE_AI to LEGACY (async)

I have created 7 MI's:

SOAP_REQUEST_OI -> out of the BPM, it receives the message from WS

SOAP_REQUEST_AI -> inside the BPM, it receives the message from SOAP_REQUEST_OI (No IM)

JDBC_STATUS_AI --> inside the BPM, it sends the message (that step1 received) to the DB (IM)

JDBC_STATUS_II --> not used so far!

SEND_RECEIVE_sRFC_AI -> inside the BPM, it sends the message (that step1 received) to SAP (IM)

JDBC_RESPONSE_AI ->inside the BPM, it takes the response of step3

JDBC_RESPONSE_II -> out of the BPM, it sends the message (that comes from step4) to DB (IM)

All my mappings are out of the BPM.

Interface Determinations:

SOAP_REQUEST_OI to SOAP_REQUEST_AI (No Mapping)

SOAP_REQUEST_AI to JDBC_STATUS_II (Mapping) --> here i have a doubt

SEND_RECEIVE_sRFC_AI to ZRFC (Mapping)

JDBC_RESPONSE_AI to JDBC_RESPONSE_II (No Mapping)

I followed the instructions of the following blog regarding MI's and mappings but it doesnt work!!!

However if i delete step2, it does work so i think i am missing something regarding the conversion between interfaces in step1&2 and step2&3.....

Could you please give some indications?

Thanks a lot in advance and best regards,

David

Accepted Solutions (1)

Accepted Solutions (1)

justin_santhanam
Active Contributor
0 Kudos

David,

If that's the case how the below step holds good?

Step2: SEND the JDBC_STATUS_AI to LEGACY (async)

At this step BPM doesn't have any information about JDBC_STATUS_AI, am I right? If you handling the Transformation outside BPM, then your second step has to be the same as your first step.

Step2: RECEIVE the SOAP_Request_AI (async)

One more thing in the below step could you please let me know what is the Source and Target Interface you defined? (I mean in the Interface Mapping)

JDBC_STATUS_AI --> inside the BPM, it sends the message (that step1 received) to the DB (IM)

raj.

Edited by: Raj on Oct 29, 2008 10:57 AM

Former Member
0 Kudos

Hi Raj,

Could you please clarify what you mean with "your second step has to be the same as your first step"??

JDBC_STATUS_AI should get the transformation result of the IM (my second ID).

Thanks a lot in advance,

Best regards,

david

justin_santhanam
Active Contributor
0 Kudos

David,

I will explain, but before that could you please let me know the the Interface Mapping (what is the Source and Target Interface) which I asked in my previous reply?

Thanks,

raj.

Former Member
0 Kudos

Hi David

How are you passing data from

Step1: RECEIVE the SOAP_Request_AI (async)

Step2: SEND the JDBC_STATUS_AI to LEGACY (async)

Check this step. Check with your mappings. What i understood from above posts that you are not able to pass data to JDBC_STATUS_AI and if u remove this step its working fine for u.

Thanks

Gaurav

Former Member
0 Kudos

Hi Raj,

In this scenario i´ve got 2 IM's:

IM_WS_2_JDBC (ASYNC):

- Source Int: SOAP_REQUEST_AI

- Target Int: JDBC_STATUS_II

IM_WS_2_RFC_2_JDBC (SYNCH):

- Source Int: SEND_RECEIVE_RFC_AI (Request & Response)

- Target Int: ZRFC (Request & Response)

Hope it helps.

Thanks in advance and best regards,

David

Former Member
0 Kudos

Hi all,

These are the 4 steps (all in sequence): Rec1->Send1->Send2->Send3

And here it goes the Scenario sequence:

I have an ID, that goes from SOAP_REQUEST_OI to SOAP_REQUEST_AI (without IM)

<BPM>

Step1=Rec1

-Receive the message: SOAP_REQUEST_AI

-Start Process is marked

-Asynchronous

I have an ID, that goes from SOAP_REQUEST_AI to JDBC_STATUS_AI (with its M_WS_2_JDBC)

Step2=Send1

-Send the Message: JDBC_STATUS_AI

-Creation Transaction is marked

-Asynchronous

Step3=Send2

- Synchronous Interface: SEND_REC_RFC_AI

-Reuqest Message: SOAP_REQUEST_AI

-Response Message: JDBC_RESPONSE_AI

-Creation Transaction is marked

-Synchronous

I have an ID, that goes from SEND_REC_RFC_AI to ZRFC (with its IM_WS_2_RFC_2_JDBC)

Step4=Send3

-Send the Message: JDBC_RESPONSE_AI

-Creation Transaction is marked

-Asynchronous

I have an ID, that goes from JDBC_RESPONSE_AI to JDBC_RESPONSE_II (with no IM)

</BPM>

If i perfom a check in IR, it says: "container element in Step2 is not initialized"

Any clues on this??

Thanks in advance and best regards,

David

Edited by: David de Miguel on Oct 29, 2008 6:40 PM

Former Member
0 Kudos

check your container elements defined or used for the second step. They needs to be populated ( either from receiver ) or set using container operations.

justin_santhanam
Active Contributor
0 Kudos

David,

I think you need to change the objects. Please try the below logic, and let us know if it helps!

Message Interfaces used

SOAP_REQUEST_OI

SOAP_REQUEST_AI

SOAP_REQUEST_OI

JDBC_STATUS_AI

JDBC_STATUS_II

SEND_RECEIVE_sRFC_AI

JDBC_RESPONSE_AI

JDBC_RESPONSE_II

Sender Agreement:

O/B Interface : SOAP Request_OI

Receiver Determination -1

Sender : SOAP Service

Outbound Interface :SOAP_REQUEST_OI

Configured Receiver : BPM

Interface Determination-1

Sender : SOAP Service

Outbound Interface :SOAP_REQUEST_OI

Inbound Interface :SOAP_REQUEST_AI

No Interface Mapping

Receiver Determination -2

Sender : BPM

Outbound Interface :SOAP_REQUEST_AI

Configured Receiver : JDBC Service

Interface Determination-2

Sender : BPM

Outbound Interface :SOAP_REQUEST_AI

Inbound Interface :JDBC_STATUS_II

Interface Mapping IM_WS_2_JDBC

Receiver Determination -3

Sender : BPM

Outbound Interface :SEND_REC_RFC_AI

Configured Receiver : RFCService

Interface Determination-3

Sender : BPM

Outbound Interface :SEND_REC_RFC_AI

Inbound Interface :ZRFC

Interface Mapping from IM_WS_2_RFC_2_JDBC

Receiver Determination -4

Sender : BPM

Outbound Interface :JDBC_RESPONSE_AI

Configured Receiver : Receiver Service

Interface Determination-4

Sender : BPM

Outbound Interface :JDBC_RESPONSE_AI

Inbound Interface :JDBC_RESPONSE_II

No Interface Mapping

BPM Steps

Step1:

Receive: SOAP_REQUEST_AI

Step2:

Asynch Send:SOAP_REQUEST_AI

Step3:

Synch Send:

Synch Interface:SEND_REC_RFC_AI

Request:SOAP_REQUEST_AI

Response:JDBC_RESPONSE_AI

Step4:

Asynch Send:JDBC_RESPONSE_AI

I'm sure the above config will provide solution to the issue.

Thanks,

raj.

Former Member
0 Kudos

Hi Raj,

Thanks a lot for your help, your effort is much appreciated.

At first sight your suggestion is more or less the same I exposed earlier but your second step, that sends SOAP_REQUEST_AI instead of JDBC_STATUS_AI.

Could you please let me know why did you operate that way? I am a beginner in BPM stuff and may have forgot sthg....

Best regards,

david

Former Member
0 Kudos

Hi all,

As Raj said, finally i solved the problem by selecting the SOAP_REQUEST_AI message in step2!!

Thanks all four your help and time and Raj, my 10 points for you!!

Bets Regards,

david

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi David,

It seems the issue is : Step 3 is not getting the request message.

You can try it as Making the JDBC (In Progress) as Sync and come up with the same Message in response as in request ,And then try to execute the process.

Thanks & Regards,

Priyanka

bhavesh_kantilal
Active Contributor
0 Kudos

Hi,

When you say that there is a issue in step 2, can you let us know what the issue is? Does the BPM end up with a runtime error?

Can you provide more info on what the error is? Other than this your setup seems just right to me.

Regards

Bhavesh

Former Member
0 Kudos

Bhavesh,

The only thing i can see is the message in SXI_MONITOR that has white flag but red flag in outbound status.

If i enter into PE, i see that the error is thrown in Step2 (that is the send of the status to the DB). However ive been through all the steps of the XML message and i cannot see anything about the error so far.

Is there any way to find out an error message or something like that? I need any input in order to investigate further.

Best regards,

David

bhavesh_kantilal
Active Contributor
0 Kudos

David,

1. Make sure Make new transaction is available in each step of your BPM. This will enable easier troubleshotting.

2. Once 1 is done, retrigger and check which step has the error. What is the log of this error message, this will help understand the problem.

Also, make a syntax check of the BPM in IR, to see if any warnings are thrown.

Regards

Bhavesh

Former Member
0 Kudos

Hi,

1. Create new transations option is marked from the beginning

2. The error appears in the first Send step, that means, in the second step of the BPM. However i cannot see anything in the logs but the folloowing:

- Send Message Asynchronously - Error

- Sending of Message prepared (no object)

- Background work item created (no object)

3. if i perform a syntax check i get following message: container element 'step2' is not initialized (and right there is where i get the problems)

Is there anywhere in which i can retrieve any info about the error?

Could you please help?

Best regards,

david

justin_santhanam
Active Contributor
0 Kudos

David,

All the mapping programs has been handled out of BPM is it?

raj.

Former Member
0 Kudos

Yes Raj,

No transformation step has been declared in BPM. All the MM and IM are declared outside.

Best regards,

david