cancel
Showing results for 
Search instead for 
Did you mean: 

Can a payload be inserted into soap structure at runtime?

Former Member
0 Kudos

Hi,

I have one xml structure on source side and two on target side. One is exactly same as the source xml structure and the other is a completely different structure. Now, i want to send both these structures through one interface by making one structure as a payload field. Can i do this without writing a custom adapter / custom module for adapter?

Plzz help me with this..

Message was edited by: Qadeer Mohammed Abdul

Accepted Solutions (0)

Answers (1)

Answers (1)

udo_martens
Active Contributor
0 Kudos

Hi Qadeer,

if i understood you right, yes. Interfaces will not be validated during runtime, so you can map you message as you like with a simple mapping, it is not required that the result has to correspond with the inbound interface. But you cant use a message mapping, XSLT, Java or ABAP would be possible. You dont need to change the adapter. If you want to change the SOAP envelope, send you message via HTTP adapter and build the envelope as well in the mapping.

Regards,

Udo

Former Member
0 Kudos

Hi,

I think i would better explain the scenario :


  Source Message 
       <Struct1>
          <Field1>Somevalue1</Field1>
          <Field2>Somevalue2</Field2>
       </Struct1>

  Target Messages (2nd target msg is same as source msg)
       <Target1>
           <Name>A name</Name>
           <FieldValue>Value is Somevalue1</FieldValue>
       </Target1>

       <Struct1>
          <Field1>Somevalue1</Field1>
          <Field2>Somevalue2</Field2>
       </Struct1>

I now create a Multimapping (MessageMapping) with one source(<Struct1> and two targets(<Target1> & <Struct1>).

Then i create an interface mapping with one source interface and two target interfaces with source interface message as <Struct1> and target interface messages as <Target1> & <Struct1> respectively.

This Interface mapping is included as a transformation step inside a BPM and this BPM has two sender interfaces with message types <Target1> and <Struct1>. Now when i execute the scenario, i get only <Target1> in the output and the <Struct1> doesnt appear.. This is because in the send step of BPM, i can have only one container variable.

In short, how can i send two container variables from a single send step in BPM.

Former Member
0 Kudos

Still stuck.. help needed.. plzzz..

Former Member
0 Kudos

Hi Qadeer,

Just try this way....

Include one more send step after transformation-->send steps.there you can send the second target message...just suggestion...

sekhar

Former Member
0 Kudos

Hi Sekhar,

If i do it that way, then both the messages would be sent as two different messages which is not what i want.. I want then to be sent as a single message with one xml as payload and the other as the main document of the soap structure. Its like inserting a payload inside the soap structure.

Anyway, ill try ur way by using correlations for send steps (if possible, i'm not sure if i can use correlation for send step.)

Regards,

Qadeer

udo_martens
Active Contributor
0 Kudos

Hi Quadeer,

change your target message type like

root

-target1, Occurance 0-1

-struct1, Occurance 0-1

Now you have a container, where you just can let the not required fields empty. In one case target1 is filled, in the other struct1.

Regards,

Udo