cancel
Showing results for 
Search instead for 
Did you mean: 

Process different inbound message types by one AS2 communication channel

0 Kudos

Hello developers,

I have to build a scenario where we receive different messages from some vendor. The requirement for this is that we are using the AS2 adapter in our PI 7.4 java only system, and that every vendor has his own single URL to connect to our system.

So we want to give the vendor a single URL which he can use to send the different messages to us.

I have problems in setting up a scenario which can handle different message types which have to be processed by a single communication channel. The problem is that when a message is received, it is immediately checked against the service interface from the ICO.

My expectation was that the sender AS2 channel would route the message received to the right ICO!

I have tested the following options:

I have created different ICO's for the different message types using the same AS2 sender adapter, but this doesn't work. When a message is coming in, PI picks the AS2 channel from the first activated ICO and checks the message against the service interface (XSD)! So this is not working. I tried this option because I know that in previous releases (7.1 dual stack) this was possible. The message was received by the adapter, en routed via the interface determination to the mapping without being checked against the service interface!

After this attempt I have tried to transform the message in the adapter using adapter module AF_Modules/MessageTransformBean. Via this module I am executing an XSLT to put the message in the body of a generic envelope. The module works fine, but this also solved my problem. I hoped this adapter module was processed first before testing the message against the service interface from the ICO.

Does anyone have an idea how I can achieve this requirement?

Any help is welcome!

Thanks in advance!

Regards

Jeroen Jung

Accepted Solutions (1)

Accepted Solutions (1)

0 Kudos

Hi Jeroen,

it is true that each channel is tied to a unique interface.

If you want to receive different messages with the same channel you need to provide an operation for each message within one single outbound interface. Thus you will have one single ICO for this interface but you can define different receivers and target interfaces for each of the contained operations.

Best Regards,

lars

0 Kudos

Hi Lars,

Thnx for this quick answer.

I have tested it and works fine!

Regards,

Jeroen

Answers (1)

Answers (1)

0 Kudos

Just for the record... we have found another solution to achieve the routing of different inbound messages via the same AS2 communication channel.

We use the EDISeparator adapter from the B2B Toolkit in between. This works fine. It is also for monitoring more transparent.

Regards,

Jeroen