- custom soap header element needed to have mustUnderstand flag.
- In soap body we had some xsd:any with no namespace, and it is very hard to work with XSD any in BPEL
- Downloaded soap.xsd from : http://schemas.xmlsoap.org/soap/envelope/
- Created variable of element Envelope
- Created HTTP Binding as following
- Assigned entire soap envelope as I wanted to envelope variable using oraext:parseEscapedXML
oraext:parseEscapedXML('
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:prov="http://xmlns.oracle.com/OIM/provisioning">
<soapenv:Header>
<wsa1:OIMUser soapenv:mustUnderstand="0" xmlns:wsa1="http://xmlns.oracle.com/OIM/provisioning">
<wsa1:OIMUserId>**</wsa1:OIMUserId>
<wsa1:OIMUserPassword>**</wsa1:OIMUserPassword>
</wsa1:OIMUser>
</soapenv:Header>
<soapenv:Body>
<m:processRequest xmlns:m="http://xmlns.oracle.com/OIM/provisioning">
<sOAPElement>
<addRequest returnData="everything" xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:dsml="urn:oasis:names:tc:DSML:2:0:core">
</data>
</addRequest>
</sOAPElement>
</m:processRequest>
</soapenv:Body>
</soapenv:Envelope>
')
- Upon return we can directly get Body or entire Envelope using
ora:getContentAsString($envelope/ns1:Body)
Code Download