cancel
Showing results for 
Search instead for 
Did you mean: 

Design Suggestion required in handling a scenario with three systems.

Former Member
0 Kudos

Hi All,

Here is my scenario.

Legacy(Sync)->PIAsync->CRM-Async>PI--Async->BI

1. Legacy will send synchronous message to PI.

2. PI will send response back to Legacy with simple message "OK Status".

3. PI will map the Request message to CRM Idoc and send to CRM in Async mode.

4. Once Idoc is posted (53), I need to map the same request message(from legacy) to BI Idoc and pass to BI system.

The condition is I should not pass the BI Idoc untill CRM idoc is posted.

Can someone suggest me the steps to handle this scenario.

Thanks

Deepthi.

Accepted Solutions (0)

Answers (2)

Answers (2)

former_member214364
Active Contributor
0 Kudos

Hi Deepti,

In your scenario Legacy(Sync)->PIAsync->CRM-Async>PI--Async->BI

What adapter you are using to communicate Legacy application with SAP PI?

From your description its looking like your Legacy system is expecting just Transport Acknowledgement from SAP PI.

Apart from Legacy(Synch)-> PI, here are the steps for rest of the process.

Create Asynchronous ABAP Proxy in CRM, From there create an IDOC and post or post message without creating IDOC. if IDOC status 53(In case of IDOC) or sucessfully posted (Without IDOC) then send received XML back to SAP PI. From SAP PI send message to SAP BI using IDOC.

using the above procedure you dont have to use BPM.

Regards,

Jag

Former Member
0 Kudos

Hi Jag,

//What adapter you are using to communicate Legacy application with SAP PI?

SOAP adapter with sync message. I do not have any issue with this. It is working fine.

// Create Asynchronous ABAP Proxy in CRM, From there create an IDOC and post or post message without creating IDOC. if IDOC status 53(In case of IDOC) or sucessfully posted (Without IDOC) then send received XML back to SAP PI. //

I need to use Idoc adapter to post the Idoc and not using ABAP proxy for this.

// From SAP PI send message to SAP BI using IDOC.//

Here i need to map the same request message which comes from legacy to BI idoc. the CRM idoc response is just used to validate in correleation that the Idoc is posted in CRM. I'm not mapping the CRM Idoc to BI Idoc.

former_member214364
Active Contributor
0 Kudos

Hi Deepti,

We have no idea about Interface frequency. if the frequency is more you have to consider performance issues with BPM.

You are using SOAP adapter at Sender side. by default PI sends back Transport ack(HTTP code 200) for every message it receives,so it could act as Transport ack to sender application.

i have no idea what the sender application is i.e custom or standard app. if its custom one ,you can ask them to change it to asynch. Rest of the thing i.e passing message to CRM and BI based on CRM message posting status can be done without BPM.

your organization should have interface design documentation, it should say what are the patterns to be used and avoided.

Regards,

Jag

former_member200962
Active Contributor
0 Kudos

you will need a BPM for this....I am doubtful if you could execute a SYNC behavior from PI itself.

For SYNC you will have to include the sending systems as receivers in Receiver Determination alongwith your actual target system....it will be a ASYNC call....or try implementing a sync response from BPM...will check how this can be done in BPM....will post if get something

4. Once Idoc is posted (53), I need to map the same request message(from legacy) to BI Idoc and pass to BI system.

ask the CRM system to send back a response to PI once the IDOC is posted (53)....agree on a time-frame within which you should be receiving a reply so that the BPM can be made to wait for that time.

Former Member
0 Kudos

Hi Abhishek,

>> I am doubtful if you could execute a SYNC behavior from PI itself.

Since we are handling through Idoc to CRM. I'm not sure whether I can handle it through Sync mode.

I'm thinking of the below BPM process. Please correct me if i'm wrong.

1.Receive(Sync message) -


>2.Send (Response back to sender- closesync/Async bridge ) >3.Send (Idoc to CRM in Asyncmode)>4.Receive(Idoc from CRM, and validate using correlation, in Asyn mode ) --->5. Send(Idoc to BI)

1. Once I receive request from Legacy, Will open S/A bridge.

2. Send response to legacy system. This will be map1.

3. Send Idoc to CRM. This will be map2.

4. Receive Idoc from CRM. I need to check the correlation based on Sale number. This will be in Async mode.

5. Once the correleation is correct, I need to pass the Idoc to BI. This will be map3.

Map1: Request from Legacy to response message of legacy.

Map2: Request from Legacy to CRM Idoc1.

Map3: Request from Legacy to BI Idoc.

>> ask the CRM system to send back a response to PI once the IDOC is posted (53)....agree on a time-frame within which you should be receiving a reply so that the BPM can be made to wait for that time.

I'm not sure how to handle this task. DO I need to get separate Idoc with the confirmation status from CRM? Will it be in Async mode?

How to know the confirmation from the Idoc, Do i need to add a correlation for this?

former_member200962
Active Contributor
0 Kudos
1.Receive(Sync message) ----->2.Send (Response back to sender- closesync/Async bridge )

Yes this is what i meant by try implementing a sync response from BPM

3.Send (Idoc to CRM in Asyncmode)-->4.Receive(Idoc from CRM, and validate using correlation, in Asyn mode )

This was the respponse that I was asking you to get from the CRM system (ask the CRM system to send back a response to PI once the IDOC is posted (53)....agree on a time-frame within which you should be receiving a reply so that the BPM can be made to wait for that time). The only thing that you can include additional is the deadline step to receive message from the CRM system....it surely will not be a good option to make the BPM to wait for long.

BTW by response I meant IDOC or RFC or proxy coming back from CRM....since you are getting an IDOC you are getting back the response.

In short, your design will work.

Former Member
0 Kudos

Hi Abhishek,

// BTW by response I meant IDOC coming back from CRM....since you are getting an IDOC you are getting back the response.

How to validate the correlation. DO i need to declare the Idoc's as Abstract interfaces and use the same in BPM in correlation step?

// The only thing that you can include additional is the deadline step to receive message from the CRM system....it surely will not be a good option to make the BPM to wait for long

What is this deadline step and how to use it? Is it wait step which you are talking about?

former_member200962
Active Contributor
0 Kudos
How to validate the correlation. DO i need to declare the Idoc's as Abstract interfaces and use the same in BPM in correlation step?

Yes you will have to make use of correlation....there is nothing called as a correlation step in a BPM....you define correlation in correlation editor of the BPM and then activate it in the Send step and use the same in the relevant Receiver Step.

Yes you will have to create Abstract Interfaces out of your IDOC structures imported in IR/ ESR.

What is this deadline step and how to use it? Is it wait step which you are talking about?

No not the Wait step....include a Block in your BPM....right-click and say include Deadline branch.....similarly you can include an Exception Branch.

Regards,

Abhishek.