cancel
Showing results for 
Search instead for 
Did you mean: 

help on complex scenario

Former Member
0 Kudos

Hi all

I need help ih the following scenario.

the sender system sendes the invoice to PI , PI has to give the successful receiving answer back

to the sender , and continue to the mapping activities , where the invoice has to be mapped to a PDF image,

PI then call the SAP system(RFC) which in turn calls the content server where the image has to be stored ,

and then we get back to PI , with a successful answer , from there PI calls again the SAP system(RFC) to start a workflow.

Sender -> PI -> sender

PI -> SAP -> contentserver -> SAP -> PI -> SAP.

what is the bedst aprocah to soleve this scenario.

any help will be higlly appreciated.

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi,

I think you can make your scenario much easier by using inbound & outbound proxy. How?

See, when your message comes from legacy system (sender) to XI then just pass this message to inbound proxy and in the very begining of your inbound proxy code call the outbound proxy method and send the response back to your sender, and now after that you call your RFC/BAPI and execute your code to load the file on CS. Once this step is done you can again call the outbound proxy method to send the response to XI and at the same time you can continue to trigger your workflow in the same code.

I believe that you want the response message in XI from RFC jsut for the confirmation. And if due to some reason you want to trigger the workflow from only XI itself after getting the response then don't write the code inside the inboud proxy, just start the flow from XI again. I mean it's upto your requirement.

I hope this could give you some idea to simplify your approach.

Regads,

Sarvesh

Former Member
0 Kudos

Hi

I am very thankful about your suggestions , I will discuss it with the businnes people to adpat the best aproach . I know they are not very kind of BPM , but it seems to me is the best way

Thanks.

Former Member
0 Kudos

This message was moderated.

former_member200962
Active Contributor
0 Kudos

Now for the answer to this:

the sender system sendes the invoice to PI , PI has to give the successful receiving answer back to the sender 

In the Receiver Determination of Sender --> BPM ..... include the Sender system as receiver so that message can be send to the Sender .... you need to maintain a different set of Interface Determinatio, Receiver Agreement, Receiver Channel....wherein both the sender and receiver system will be the same.

The same process to be followed when you split the scenarios into two....the RD of first scenario will have the Sender as Receiver......and the story continues.......

Regards,

Abhishek.

former_member200962
Active Contributor
0 Kudos

With BPM

S --> Sender; SAP --> SAP; ContentServer --> CS

Async call between PI and SAP (RFC):

Receive (from S)--> Transformation --> AsyncSend(SAP_RFC) -->AsyncReceive(SAP_Resp) --> Transformation --> AsyncSend(To Start WorkFlow)

In the above design approach:

1) The AsyncReceive Step should be enclosed within a Block with Deadline branch defined so that the BPM does not remain open for long.

2) Transformation step can be avoided and mapping can be done in Interface Determination.

3) Correlation needs to be defined

Sync Call between PI and SAP (RFC):

Receive(fromS) -->Transformation --> SyncSend(SAP_RFC) --> Transformation --> AsyncSend(To Start WorkFlow)

Personally i would prefer Async Call between BPM (PI) and SAP, so that the BPM wont go into error if the ContentServer takes more time for storing the image and giving back the response.

Without BPM

Scenario will be splitted into two Async interfaces:

1) Sender --> SAP PI --> SAP

Not to worry -


> SAP --> CS --> SAP ....let it happen at its own pace

2) This will happen once SAP gets response from CS

SAP --> SAP PI --> SAP (to start workflow)

Why do you need to send the message to PI and then again to SAP to start the workflow......can you not trigger a job within SAP itself which will start the workflow once it receives the response from CS?

Regards,

Abhishek.