cancel
Showing results for 
Search instead for 
Did you mean: 

Sender ABAP Proxy Routing Protocol not working?

JaySchwendemann
Active Contributor
0 Kudos
702

Dear all, I have a situation that would match the solution outlined here https://answers.sap.com/questions/11567085/initialize-communication-parties-on-proxy-sender.html?chi...

I have a sender interface in ERP posting material availability data to some online platforms. Ideally I would like to not have a single ICO / iFlow where then all online platforms line up with a recipient list.

I would rather use virtual receivers and partys for this. I successfully utilized this with iDoc Sender. However, here I have proxy (SOAP XI) sender and am kinda stuck. I would like to utilize Identifiers in order to not specifing the PI party name directly in ERP. This is not working.

I'm trying to use identifiers (DUNS number) to do so. This is my setup:

  • Sender Business System = ERP_010
  • Sender Service = Material_Out
  • 1. Receiver
    • Party = Amazon
    • Business Component = MaterialAvailability
    • Party Identifier Agency = 016
    • Party Identifier Schema = DUNS
    • Party Identifier Name = 123456789 (the DUNS Number)
  • 2. Receiver
    • Party = Wayfair
    • Business Component = MaterialAvailability
    • Party Identifier Agency = 016
    • Party Identifier Schema = DUNS
    • Party Identifier Name = 987654321(the DUNS Number)
  • Two iFlows with Virtual Receiver Party = Amazon / Wayfair and Virtual Receiver Service = * (changed that to MaterialAvailability also, no luck)

I'm specifying the recepient like so (e.g. Amazon)

DATA(proxy) = NEW zmmco_material_out( ).
DATA(routing) = CAST if_wsprotocol_routing( proxy->get_protocol( if_wsprotocol=>routing ) ).
routing->set_receivers( VALUE #( ( partyagency = '016'
				   partytype   = 'DUNS'
			           party       = '123456789'
			           service     = 'MaterialAvailabilityDetermination' ) ) ).
" Call proxy->send

I would have hoped that this will work like out of the box but to no avail. However, when I'm specifying the "real" Party Name like so...

routing->set_receivers( VALUE #( ( partyagency = 'http://sap.com/xi/XI'
				   partytype   = 'XIParty'
			           party       = 'Amazon'
			           service     = 'MaterialAvailabilityDetermination' ) ) ).

... all works fine. However, I do not want to specify the real Party Name of the Integration Server here in the Backend System. Just doesn't feel right, especially if someone might change this (e.g. changes party name) it'll break.

Any thoughts? Am I missing something? Identifiers in Communication Channels? If so which? Header Mappings?, ...? Many thanks and cheers

Jens

Accepted Solutions (0)

Answers (2)

Answers (2)

jo_kr
Explorer

Hi,

I'm afraid, there is no out-of-the-box solution for you, but the receiver, you specify is only a virutal receiver.
So you could write the DUNS number into it and do a lookup to TPM inside an extended receiver determination, or you use Idoc with ALE#LI / ALE#KU lookups, like indicated here: B2B and the hype about the ‘Party’, providing the SAP customer/vendor number.

BTW: I was looking how to specify the receivers in AIF and posted my question also here: SAP AIF- Simple Outbound Scenario Part-2
Maybe someone reads it, and can answer it.

Thanks and kr
Jo

JaySchwendemann
Active Contributor
0 Kudos

Thanks Jo,

I did not yet work with TPM, to be honest. But when skimming through the link this seems combining that with extended receiver determination might work, however it would also not result in the target / desired setup of having a single iFlow per receiver, right? All the possible receivers must reside in one iFlow (ICO) in the extended receiver setup (that was my takeaway at least)

About AIF, I'm sorry I didn't play with that either but I would be suprised if AIF when encapsulating a ABAP proxy call could do things, we cannot when directly calling an ABAP proxy (but then again, it is SAP, so they might do some shenanigans deep within their frameworks)

Kind regards

Jens

jo_kr
Explorer
0 Kudos

Hi Jens,

with the help of virtual receivers you can built point to point interfaces/iFlows. The field has a value help, but you could also enter any free text. It will not crosscheck against existing system names.

If you are looking for something similar regarding IDocs, my blog might be helpful for you: https://blogs.sap.com/2021/04/06/howto-send-idocs-to-a-generic-idoc-sender-interface/

Kr, Jo

0 Kudos

Hi Jens,

were you able to find any solution for this issue?

Thanks

Animesh

JaySchwendemann
Active Contributor
0 Kudos

Nah, unfortunately not (and you answer should really be a comment on my initial post, but this is picky me working late hours 🙂

Really a bummer that this really! looks like it should work, where it does not. We still fully qualify the sender in sender ABAP system