cancel
Showing results for 
Search instead for 
Did you mean: 

Multimapping Problem - PI 7.0

Former Member
0 Kudos

Hi,

To interface with a web service created in a BMC Remedy platfrom I need to create a Soap Envelope as detailed below:

<soapenv: envelopeu2026.>

<soapenv: header>

<urn:AuthenticationInfo>

<user nameu2026>

<passwordu2026>

u2026etc

</urn:AuthenticationInfo>

</soapenv: header>

<soapenv: body>

<urn:ReceiveCallsFromRemedyDev>

<categoryu2026.>

<Locationu2026>

<callerNameu2026>

u2026.etc

</urn:ReceiveCallsFromRemedyDev>

</soapenv:body>

</soapenv:envelope>

AuthenticationInfo and ReceiveCallsFromRemedyDev are separate message types.

Does anyone know how or if indeed it is possible to to get two message types into one soap envelope in 7.0. At the moment I am not even sure how to send two message types to the same inbound interface.

Any help would be appreciated.

PaulC.

Accepted Solutions (0)

Answers (2)

Answers (2)

markangelo_dihiansan
Active Contributor
0 Kudos

Hello,

What you can do is:

1.) create a data type called header which will contain the header fields

2.) create a data type called body which will contain the body fields

3.) create a data type called envelope which will contain the header and body

4.) create a message tpye called envelope

5.) do the message mappings for your source and envelope target message

6.) use java mapping to "complete" your soap envelope (search in sdn for sample java mapping codes). The java mapping is needed so that the soapenv prefixes will be added to the envelope fields

7.) in your receiver soap communication channel, check the "do not use soap envelope" option because you will be overriding the soap header (you placed authentication data there).

Hope this helps,

Mark

Former Member
0 Kudos

>

> Hi,

>

> To interface with a web service created in a BMC Remedy platfrom I need to create a Soap Envelope as detailed below:

>

> <soapenv: envelopeu2026.>

> <soapenv: header>

> <urn:AuthenticationInfo>

> <user nameu2026>

> <passwordu2026>

> u2026etc

> </urn:AuthenticationInfo>

> </soapenv: header>

> <soapenv: body>

> <urn:ReceiveCallsFromRemedyDev>

> <categoryu2026.>

> <Locationu2026>

> <callerNameu2026>

> u2026.etc

> </urn:ReceiveCallsFromRemedyDev>

> </soapenv:body>

> </soapenv:envelope>

>

> AuthenticationInfo and ReceiveCallsFromRemedyDev are separate message types.

>

> Does anyone know how or if indeed it is possible to to get two message types into one soap envelope in 7.0. At the moment I am not even sure how to send two message types to the same inbound interface.

>

> Any help would be appreciated.

>

> PaulC.

Hi,

You can do this with an XLST mapping. You have to add the authentication structure in message header, and copy message body from source message.

One moment... i'm looking for one example in my developer archive...

Former Member
0 Kudos

>

> >

> > Hi,

> >

> > To interface with a web service created in a BMC Remedy platfrom I need to create a Soap Envelope as detailed below:

> >

> > <soapenv: envelopeu2026.>

> > <soapenv: header>

> > <urn:AuthenticationInfo>

> > <user nameu2026>

> > <passwordu2026>

> > u2026etc

> > </urn:AuthenticationInfo>

> > </soapenv: header>

> > <soapenv: body>

> > <urn:ReceiveCallsFromRemedyDev>

> > <categoryu2026.>

> > <Locationu2026>

> > <callerNameu2026>

> > u2026.etc

> > </urn:ReceiveCallsFromRemedyDev>

> > </soapenv:body>

> > </soapenv:envelope>

> >

> > AuthenticationInfo and ReceiveCallsFromRemedyDev are separate message types.

> >

> > Does anyone know how or if indeed it is possible to to get two message types into one soap envelope in 7.0. At the moment I am not even sure how to send two message types to the same inbound interface.

> >

> > Any help would be appreciated.

> >

> > PaulC.

>

>

> Hi,

> You can do this with an XLST mapping. You have to add the authentication structure in message header, and copy message body from source message.

>

> One moment... i'm looking for one example in my developer archive...

This is a sample:

http://simonlesflex.wordpress.com/2011/01/26/sap-pi-customize-message-with-xslt-mapping/

Edited by: spantaleoni on Jan 26, 2011 11:31 AM

Former Member
0 Kudos

Thanks for the link.

Unfortunately I can't access it due to Firewall restrictions at my workplace. Could you paste the contents into this thread or provide a similar link to something on a SAP site ?

Former Member
0 Kudos

>

> Thanks for the link.

>

> Unfortunately I can't access it due to Firewall restrictions at my workplace. Could you paste the contents into this thread or provide a similar link to something on a SAP site ?

Sorry.... in future i've to create a sap blog (the link refer to my personal blog...)

This is the sample code:

<xsl:stylesheet version=u201D1.0u2033 xmlns:xsl=u201Dhttp://www.w3.org/1999/XSL/Transformu201D>

<xsl:template match=u201D/u201D>

<soap:Envelope xmlns:soap=u201Dhttp://schemas.xmlsoap.org/soap/envelope/u201D xmlns:xsi=u201Dhttp://www.w3.org/2001/XMLSchema-instanceu201D xmlns:xsd=u201Dhttp://www.w3.org/2001/XMLSchemau201D>

<soap:Header>

<ServiceAuthHeader xmlns=u201Dhttp://test.webservice.it/u201D>

<Username>USERNAME</Username>

<Password>PASSWORD</Password>

</ServiceAuthHeader>

</soap:Header>

<soap:Body>

<xsl:copy-of select=u201D*u201D/>

</soap:Body>

</soap:Envelope>

</xsl:template>

</xsl:stylesheet>

Former Member
0 Kudos

Without access to your blog its difficult to see how you have acheived this.

The web service I need PI to consume has 2 message types:

AuthenticationInfo

ReceiveCallsFromRemedyDev

The SOAP envelope required by the web service to be comsumed contains both message types as detailed in an earlier post. One in the header and one in the body.

Within the Integration Directory I'm not clear as what I'm mapping on to. Within the Interface Mapping screen you have a source and target message. The target message would need to be a a combination of the two message types detailed above so that the soap envelope delivered contains both the authentication and the data. This being so what would the Target Message be ?

PaulC.