cancel
Showing results for 
Search instead for 
Did you mean: 

B2B - AS2 Adapter Sender

silentbull
Participant
0 Kudos

Hello

I am using SAP AS2 adapter for receiving different message types of idoc-xml from third party.

the probelm comes on how to receive different idoc types from the same sender channel.

As of now, the AS2 header is configured to receive *. which means to receive anything. I can't use the subject as it has fixed value whereas the message id is also different each time.

Since I am not receiving EDI file, I can't use edi splitter.

The only other way of thinking is to set up different url path for different sender, even that option is not possible as I have reverse proxy setup by my infrastructure team which means the third party has only one url to send to our system.

Any ideas is appreciated ?

Regards

Sam

Accepted Solutions (0)

Answers (2)

Answers (2)

silentbull
Participant
0 Kudos

Hello Ryan

Thanks for your replies.

If i manage to convince the sender to send me with different subjects with each of the message type, then can i have three different channels listening to the messages with different subject.

Will that work? Can I able to differentiate the messages if the subject is different?

if not, the expected url path , is this the sender url path, if i ask the sender to use different url path, even that will work isn't ?

Ryan-Crosby
Active Contributor
0 Kudos

Hi Sam,

Yes, you can use the option in the AS2 Sender channel of "Set dynamic parameters" and the AS2 subject field will be recorded into the dynamic configuration.  Several different AS2 parameters then become available and can be used for condition based message routing.  One word of caution however is that if you then use the "Respect Parameters" option on an AS2 Receiver channel and have any 997s the system will carry over the incoming URL as the place to send the 997 so you will end up sending it back to your own system instead of the intended target.

Regards,

Ryan Crosby

silentbull
Participant
0 Kudos

Hello Ryan

I think i lost you.

I was under the assumption that if you configure two scenarious with two sender channels with .* and only the subject being unique in each of those sender channel, the AS2 sender listener will check and take only the appropriate message relevant to the subject. There is no additional routing needed as that one particular sender channel will receive only Orders and another will receive delivery.

Ryan-Crosby
Active Contributor
0 Kudos

Hi Sam,

Yes, you can also do it that way but that amounts to more channel maintenance - whereas in the other approach you would have only one channel for all incoming transmissions and then based on your iFlow definitions you can determine your sender/receiver interfaces and target system appropriately.

Regards,

Ryan Crosby

silentbull
Participant
0 Kudos

Thanks Ryan

Let us see what my trading partner says tomorrow.

I am thinking of following options.

1. Unique Subject for each channel

2. Unique filename for each message

3. Give different url for each message. I believe I need to specify this in the expected url path.

For eg., if my general AS2 is host.port/AS2 then i need to give three different url to sender and specify in auth/ORDERS in the channel. Please correct me.

Ryan-Crosby
Active Contributor
0 Kudos

Hi Sam,

Yes, you are correct regarding option #3 that you would fill out the expected URL path accordingly to have a different URL for each message type.

Regards,

Ryan Crosby

Ryan-Crosby
Active Contributor
0 Kudos

Hi Sam,

I would likely tackle it something like this:

1. Create one or more external definitions that contains all my required IDoc message types:

2. Create a multiple operation service interface that contains all my required IDoc message types - (if more than one functional kind maybe use something like IDOC instead of ORDERS as the name😞

3. Create a flow with operation specific receiver determination so you can enforce the target IDoc:

Regards,

Ryan Crosby

silentbull
Participant
0 Kudos

Hello Ryan

I was thinking of this idea, but unfortunately the sender has started discussing about generic messages, remittance advice and orders.

And the XSD for each on of them are different. So, I think it is quite difficult unless the sender agrees to send something unique in the subject field for each of the message which will simply solve the issue .

Tell me something, Like SOAP adapter, does the AS2 adapter looks for matching the sender interface? i.e AS2 sender channel is configured to receive ORDERS05 but instead sender sends DELVRY05. If this is the case, although my scenario gives me error, still the message will be received at my side isn't.

What I am planning is to have the same sender channel for each of the REMADV/DELVRY05 and ORDERS05 and try to handle it in the receiver determination. Will this work?

If the sender has specified a unique filename or subject it will be easy to differentiate the messages.

Regards

Krish

Ryan-Crosby
Active Contributor
0 Kudos

Hi Sam,

Yes, the AS2 adapter will look for a matching message type to figure out the receiver determination but not in the event that you use a dummy sender/receiver interface.  If you use an interface defined in the ESR then the system will try to recognize the message type in order to figure out where it needs to go.  Because of this possibility you would not need an additional field to manage the routing if you were to group the IDocs the way I have mentioned.  Of course that is an option but it requires a bit of additional work instead of simply exporting existing definitions and re-importing them in a different format.

Regards,

Ryan Crosby