cancel
Showing results for 
Search instead for 
Did you mean: 

Proxy to Proxy Asynchronous

Former Member
0 Kudos

Hi Friends,

I have a scenario....like...ECC to ECC using Asynchronous Proxies......

The scenario is......... When a user executes a report program in ECC1,he will get a selection screen to enter company code range and clicks on execute button..Then ECC1 sends this company codes to ECC2. And when the ECC2 system receives this company codes, it reads data from a Z table based this company codes ...And here ECC2 needs to send this data to ECC!

1.ECC1 System will send list of company code asynchronously to ECC2. (Client Proxy on ECC1)

2.ECC2 System receives this data(Server Proxy on ECC2) and queries a ZTable based on this company code... The selected data related to these comapny codes need to be sent back to ECC1(Client Proxy on ECC2).

3.ECC1 System receives this data and inserts in a ZTable(Server Proxy on ECC1).

The Problem is.....ON ECC2 in server proxy Execute_Asynchronous implementation.... i am calling the Execute_Asynchronous of Clent Proxy, so that it can send data to ECC1...

But i am getting an Error --- The exception CX_AI_SYSTEM_FAULT is neither caught nor is it declared in the RAISING clause of "EXECUTE_ASYNCHRONOUS"..... Here the EXECUTE_ASYNCHRONOUS refers to Server Proxy Method...

Regards,

Shyam.

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

Hello Shyam,

This is a classical case of look ups.

ECC1-> XI-->ECC1

on XI in message mapping do a RFC look up read all the values get the return and insert the data to ECC1 Ztable.

So all you have to do is Outbound Proxy and Inbound Proxy on ECC1 and mapping look up to ECC2 map and populate.

Note: Assuming from your description you are not doing any insertions on ECC2.

Regards,

Former Member
0 Kudos

Hi ,

You are goin right way and in ECC2 to call clietn proxy u are commiting mistake Check whether you are handling the error properly As i had done same scenarion once in my previous project and it worked .

Regards

Former Member
0 Kudos

if it is ECC1>ECC2>ECC1 again. Y don't u use a synch scenario

henrique_pinto
Active Contributor
0 Kudos

Your scenario is async - sync - async, is that it?

If that's the case, you'll need BPM to make it work.

It should be something like this:

You must have 3 interfaces in IR:

- 1 outbound asynchronous (client proxy in ECC1);

- 1 inbound synchronous (server proxy in ECC2);

- 1 inbound asynchronous (server proxy in ECC1).

In report of ECC1, it should call the execute_asynchronous method of proxy1. This is the only method that you'll have to call explicitely. In XI, configure this interface as the start receiver step of the BPM (actually, not the same interface but an async one). The BPM will have a sync send step through the sync inbound interface to ECC2 and a async senc step (with the response from the previous send step) through the inbound async interface to ECC1.

On the other hand, if your scenario is totally decoupled async -> async -> async -> async, then you need 4 interfaces and no bpm. You should have:

- 1 outbound asynchronous (client proxy in ECC1);

- 1 inbound asynchronous (server proxy in ECC2);

- 1 outbound asynchronous (client proxy in ECC2);

- 1 inbound asynchronous (server proxy in ECC1).

Scenarios in XI would be just 2:

- one from interface 1 (from ECC1) to interface2 (to ECC2);

- one from interface 3 (from ECC2) to interface 4 (to ECC1).

In this case, your report in ECC1 still calls the execute_asynchronous method of proxy1. It will trigger proxy2 at ECC2 through XI. At the end of this proxy code (i.e. the code at the class that implements the proxy interface) you should call execute_asynchronous method of proxy3. It will, finally, trigger proxy4 at ECC1 through XI.

You should rather use scenario 2, in order to avoid BPMs and possible sync timeouts. You could also have sync to sync scenario, with just 1 call in the report at ECC1 and just 1 scenario configured in XI, but if your lookups tend to be very stressful (lots of resultsets) then go for scenario 2 above, since sync scenarios are very sensitive to timeouts.

Regards,

Henrique.

VijayKonam
Active Contributor
0 Kudos

Check if you have properly instantiated the object of the Client proxy class of your ECC1. Debug it and see what the actual error is. Or use try catch blocks to catch the exception and try to read the full exception text.

VJ

VijayKonam
Active Contributor
0 Kudos

A synchronous proxy to proxy call would decrease lot of stuff in this requirement.

VJ