What You May Need to Know About Using the Array Identifier

Manipulating XML Data in a BPEL Process 6-53 assign copy from expression=9.9 to variable=output part=payload query=payloadAPR copy assign

6.22 Manipulating SOAP Headers in BPEL

BPELs communication activities invoke, receive, reply, and onMessage receive and send messages through specified message variables. These default activities permit one variable to operate in each direction. For example, the invoke activity has inputVariable and outputVariable attributes. You can specify one variable for each of the two attributes. This is enough if the particular operation involved uses only one payload message in each direction. However, WSDL supports multiple messages in an operation. In the case of SOAP, multiple messages can be sent along the main payload message as SOAP headers. However, BPELs default communication activities cannot accommodate the additional header messages. Oracle BPEL Process Manager solves this problem by extending the default BPEL communication activities with the bpelx:headerVariable extension. The extension syntax is as shown in Example 6–104 : Example 6–104 bpelx:headerVariable Extension invoke bpelx:inputHeaderVariable=inHeader1 inHeader2 ... bpelx:outputHeaderVariable=outHeader1 outHeader2 ... ... receive bpelx:headerVariable=inHeader1 inHeader2 ... ... onMessage bpelx:headerVariable=inHeader1 inHeader2 ... ... reply bpelx:headerVariable=inHeader1 inHeader2 ... ...

6.22.1 How to Receive SOAP Headers in BPEL

This section provides an example of how to create BPEL and WSDL files to receive SOAP headers. To receive SOAP headers in BPEL: 1. Create a WSDL file that declares header messages and the SOAP binding that binds them to the SOAP request. Example 6–105 provides an example. Example 6–105 WSDL File Contents -- custom header -- message name=CustomHeaderMessage part name=header1 element=tns:header1 part name=header2 element=tns:header2 message binding name=HeaderServiceBinding type=tns:HeaderService soap:binding style=document transport=http:schemas.xmlsoap.orgsoaphttp operation name=initiate soap:operation style=document soapAction=initiate input soap:header message=tns:CustomHeaderMessage