Hi,
I followed this thread, since I did some research for a similar question posted recently on LinkedIn in the B1if developers group and answers are the same.
The "problem" is that B1if generates the Envelope message from the content of the payload transformation. What is generated is something like <Envelope><Body> payload content </Body></Envelope>.
If B1if gave the possibility to generate the Header part it would be fine, but it isn't...
For the case I was searching, the need was to call B1WS from B1if (sounds silly, but some functionalities are missing in some versions of B1if so it was the "easiest" way to use them) and as you perhaps know, B1WS (after connection) is expecting to receive both a Header and a Body inside the SOAP Envelope message: just like your question.
In the case of B1WS, since SAP provides the source-code of the web-service handler, I have been able to modify it and make it work with B1if, but I don't know if in your case, you can do it.
Basically, what I did:
- In the payload transformation, I generated a full correct SOAP message,
- I modified the B1WS handler to always use the inner Envelope to call DI-Server.
That's it.
Since you perhaps can't modify the external web-service, another possibility is to add a "private" web-service which will do exactly what I did (reformatting the message sent by B1if and calling the real web-service).
Regards,
Eric