Skip to Content
0

Consume Asynchronous PI Webservice from ABAP

Nov 03, 2016 at 07:15 PM

289

avatar image

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

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

3 Answers

Best Answer
Evgeniy Kolmakov Nov 04, 2016 at 09:34 AM
0

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.

Show 3 Share
10 |10000 characters needed characters left characters exceeded

Thank you Evgeniy! I was missing the COMMIT WORK, and now it works.

0

Hello Eve,

Guess you had the same issue while triggering from Sproxy. :)

1

Hi Raghu!

You're right :-)

Regards, Evgeniy.

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

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.

Show 2 Share
10 |10000 characters needed characters left characters exceeded
Former Member

Search ABAP Proxy for more details if you need screenshots :)

0

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

0
Bhavesh Kantilal Nov 04, 2016 at 03:34 AM
0

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

Share
10 |10000 characters needed characters left characters exceeded