cancel
Showing results for 
Search instead for 
Did you mean: 

how to process multiple messages through one url over https

Former Member
0 Kudos

Hi,

My scenario is HTTP to IDOC, and the vendor will send different messages through one url to SAP system.

is there any way to achieve this?

Thanks

Jessica

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi, Christian

really appreciate your help.

but in my case, when different incoming messages are sent to the PI server through the same url over https, the PI server even cant distingush the message types, how can i use pick up the different mappings based on conditions in the same interface determination.

Interface determination is associated with one sender interface, which means, the conditions we can choose is only based on that specified message playload.

please correct me if i am wrong.

we can distingush the incoming messages only by the root element of message payload. is there any way to parse it, and pick up the specified mappings dynamiclly?

thanks a lot

Jessica

former_member181985
Active Contributor
0 Kudos

Use Java Mapping.

Create a dummy interface for the HTTP sender.

based on the incoming message strcutures apply different transformations using XSLTs.

So in this way the URL will be one, and different messages can come and based on the incoming message structures you can use predefined XSLTs accordingly..........

Hope this concept helps...

Regards,

- Gujjeti.

Edited by: Praveen Gujjeti on Apr 1, 2009 11:04 PM

Edited by: Praveen Gujjeti on Apr 1, 2009 11:12 PM

Former Member
0 Kudos

as I said, you can specify these conditions in the condition, which determines which interface mapping to choose. Let us make it clearer:

you say you have only one URL. But For that URL, you must define the initial sender/message-interface/namespace values. So that you can enter the receiver determination.

If the structure of the message interface is different for the incoming types, you will not be able to use that message interface for graphical mapping. But you could use a dummy interface in the interface determination (just enter manually any data in namespace and interface), and enter the xpath condition in the the interface determintation manually, e.g. /msgtype1 EX (for exists), /msgtype2 EX and so on. Then select the right interface mappings there.

Then in the grahical mapping, you would have to use the "real" message type, otherwise you cannot map graphically.

The trick with the dummy interface works, because XI does no input schema validation.

Good luck

CSY

Answers (6)

Answers (6)

Former Member
0 Kudos

Hi, Christian,

The trick with the dummy interface works, really thanks for your help.

actually it is also working fine with the actuall interface name, just enter the xpath condition in the the

interface determintation manually and select the right interface mappings there as u told me.

Thanks a lot

Jessica

Former Member
0 Kudos

Hi, Prateek

thanks for your reply, i went through the links you gave to me, it seems that still can not apply for my case.

my requirement is like vendor will send multipul messages invoice, shipnotice etc to the SAP system through only one url over https. the incoming message structures are different, and we also should run different mappings according to that.

so is there any other way to achieve that?

Thanks a lot

Jessica

Former Member
0 Kudos

You can use several inbound interfaces in the same interface determination which point to different interface mappings.

For the inbound interface lines you can define conditions.

For example:

condition /input/msgtype = ABC, then use Inbound Interface ABC with Interface mapping ABC

condition /input/msgtype = EDF, then use Inbound Interface ABC with Interface mapping EDF

by this, you can execute different mappings depending only on the payload.

But you use the same receiver determination (and URL) for all incoming message types.

CSY

Edited by: Christian Sy on Apr 1, 2009 12:49 PM

Former Member
0 Kudos

Hi,Christian

thanks for your reply, but if we specify sender interface\namespace in url it is going to be different url

but our requirement is use a singal url for all different messages from Vendor.

Thanks a lot

Jessica

prateek
Active Contributor
0 Kudos

You need to use "Sender uses virtual receiver" option.

https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/40cb67f7-6464-2b10-bcb9-8edb9a35...

/people/shabarish.vijayakumar/blog/2008/09/16/virtual-receiver--why-do-you-really-need-it

Regards,

Prateek

Former Member
0 Kudos

can the Vendor at least pass URL parameters ? Normally, when you have several messages interfaces, the HTTP sender system should distinguish them with the URL parameters (party, namespace, interface). By that, XI then knows how to handle those messages, and can start its receiver determination pipeline. See SAP Help for HTTP sender channel:

Queries entering the plain HTTP adapter must have the following syntax:

http://<hostname:port>/<path>?<query-string>;

The query string contains the following data:

● Sender namespace ?namespace=<namespace>

● Sender interface &interface=<interface>

These details define the sender interface.

● Sender service &service=<service>

Specifies the sender service.

● Sender party (optional) &party=<party>

CSY

Former Member
0 Kudos

we are using PI 7.0, could you please explain how to achieve this in details for me?

Thanks a lot

Jessica

former_member181985
Active Contributor
0 Kudos

XI there inbetween?

yes it is possible................