Step 1) Define the variable ‘XSLTParams’
Define a variable ‘XSLTParams’, based on the element {http://schemas.oracle.com/service/bpel/common}parameters
This is defined in an external xsd which will have to be imported upon making the variable.
The xsd looks like this:
<?xml version="1.0" encoding="UTF-8" ?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.oracle.com/service/bpel/common" targetNamespace="http://schemas.oracle.com/service/bpel/common" elementFormDefault="qualified"> <xsd:element name="parameters"> <xsd:complexType> <xsd:sequence> <xsd:element name="item" minOccurs="1" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="value" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>
Step 2) Assign the value and name to the XSLTParams:
<assign name="Assign_XSLTParams"> <copy> <from expression="'AssignmentData'"/> <to variable="XSLTParams" query="/bpelcommon:parameters/bpelcommon:item/bpelcommon:name"/> </copy> <copy> <!-- Replace the variable and namespace ns10 with your variable and namespace --> <from expression="ora:getContentAsString(bpws:getVariableData 'Invoke_GetAssignment_OutputVariable','payload','/ns10:EBO_GET_ASSIGNMENT_CIResponse'))"/> <to variable="XSLTParams" query="/bpelcommon:parameters/bpelcommon:item/bpelcommon:value"/> </copy> </assign>
Step 3) Call the transformation WITH the property (parameter) XSLTParams:
<assign name="XForm_CombineInputForCheckAddressAndDistance"> <bpelx:annotation> <bpelx:pattern>transformation</bpelx:pattern> </bpelx:annotation> <copy> <!-- Replace the variable inputVariable and transformation xslt filename with your variable and file name --> <from expression="ora:processXSLT('XForm_CombineInputForCheckAddressAndDistance.xsl',bpws:getVariableData('inputVariable','payload'),bpws:getVariableData('XSLTParams'))"/> <to variable="Invoke_CheckAddressAndDistance_initiate_InputVariable" part="payload"/> </copy> </assign>
Step 4) Add the parameter in the transformation:
Put the following code in your transformation, below the namespaces, above the first line of code:
<!-- import the parameter in the xslt transformation --> <xsl:param name="AssignmentData"></xsl:param> <!-- replace ampersands to fix possible later issues in data exchange --> <xsl:variable name="AmpersandReplacement">&</xsl:variable> <xsl:variable name="AssignmentData_fixed" select="str:replaceAll(string($AssignmentData),'\u0026(amp;)*+',$AmpersandReplacement)"/> <xsl:variable name="AssignmentDataEBM" select="orcl:parseEscapedXML($AssignmentData_fixed)"/>
Step 5) Use XML values from within the fixed parameter:
<eboupreq:ADDRESS> <xsl:value-of select="$AssignmentDataEBM/ns0:ADDRESS"/> </eboupreq:ADDRESS>
Replace the namespaces, variable names, etc, where appropriate.
Geen opmerkingen:
Een reactie posten