Skip to Content
avatar image
Former Member

Proxy to Proxy Asynchronous

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.

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

4 Answers

  • Apr 15, 2008 at 09:07 PM

    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

    Add comment
    10|10000 characters needed characters exceeded

  • Apr 15, 2008 at 10:16 PM

    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.

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Apr 16, 2008 at 05:44 AM

    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

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Apr 16, 2008 at 07:10 AM

    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,

    Add comment
    10|10000 characters needed characters exceeded