Skip to Content

Consume Asynchronous PI Webservice from ABAP

Hi Experts.

I've created an asynchronous interface that receives a webservice SOAP call (Sender SOAP Adapter), and must generate a file (Receiver File Adapter).

I test this interfaces using SOAPUI and works correctly.

However, I try executing this interface from an ABAP program, but nothing happens.

On ECC: I successfully generated the Service Consumer objects using WSDL; I successfully generated the Logical Port on SOAMANAGER using WSDL automatic configuration; I created a Z program to invoque the webservice and get no errors... But nothing happens in PI, nothing is received.

Any ideas what I must check on ECC system? Mabe a specific configuration required for asynchronous webservices?

Thanx!

Jesus

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

3 Answers

  • Best Answer
    Nov 04, 2016 at 09:34 AM

    Hi Jesus!

    One more thing in addition:

    When you call async interface operation from ABAP proxy you should add COMMIT WORK in your code.

    Regards, Evgeniy.

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Nov 03, 2016 at 10:31 PM

    Your terminology seems a bit of a mash to me but i'll have a dab at what you are trying to achieve.

    You want to run an ABAP program which sends a SOAP message to your service interface for mapping to a receiver file and sent off somewhere.

    Assuming you have created your Service Interfaces within PI, i am not sure why you are going down the SOAMANAGER route, my understanding was this is for configuring the enterprise web services sitting in your ERP system which does not sound like your scenario.

    If i have understood correctly, you need to go to transaction code SPROXY to do your configuration instead. Open the Enterprise Services Browser, expand Source. Expand ESR. Expand SWC's. Find your appropriate namespace. You need to ensure your objects are generated (specifically the sender service interface, and the message type this uses). Your service interface and message type will then be Z objects maintained in your ERP system.

    Next step is to create local objects in your abap program of these types and populate with your logic.

    DATA:

    consumer_proxy TYPE REF TO zco_si_file_out, ""Name of my generated objects
    filetype TYPE zmt_file.

    "" Insert logic to populate filetype. This is the structure the same level as the 'Controller'. Drill into the object to see what i mean.

    "" After the message is populated, pass it your proxy

    consumer_proxy->si_file_out( filetype ). "Execute proxy call passing message structure

    Obviously your objects will have different names etc but thats the basics.

    Add comment
    10|10000 characters needed characters exceeded

    • Hello Dan,

      I think what is happening here is : Instead of using a SOAP with XI Adapter, a Plain SOAP Adapter is being used which is why it works of SOAP UI.

      It makes sense to use a ABAP Proxy based approach to this as a best practice as you have recommended but looks like they would like to invoke this as any other Webservice from ECC Using SOAMANAGER.

      Regards,

      Bhavesh

  • Nov 04, 2016 at 03:34 AM

    In addition to the response from Dan, if you would like to continue to consume this Service in ECC as any other Webservice ( rather than use ABAP Proxies ), I would check SRT_UTIL transaction and also the SOAMANAGER logs and see what is happening and why you do not seen any messages.

    Regards,

    Bhavesh

    Add comment
    10|10000 characters needed characters exceeded