我需要在java嵌入活動中遍歷一個數組(輸入到BPEL)並需要生成一個BPEL流程的響應(輸出變量)。遍歷一個BPEL數組
我使用JDeveloper和SOA11克
以下是我的xsd
<?xml version="1.0" encoding="UTF-8"?>
<schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/BPELInpuandOutPutArray_jws/Project1/BPEL_input_output_array" xmlns="http://www.w3.org/2001/XMLSchema">
<element name="process">
<complexType>
<sequence>
<element name="simpleinput" type="string"/>
<element name="arrayofObjects" maxOccurs="unbounded" nillable="true">
<complexType>
<sequence>
<element name="input1" type="string"/>
<element name="input2" type="string"/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
<element name="processResponse">
<complexType>
<sequence>
<element name="arrayofObjectsoutput" maxOccurs="unbounded" nillable="true">
<complexType>
<sequence>
<element name="output1" type="string"/>
<element name="output2" type="string"/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
</schema>
到目前爲止,我能夠管理在輸入數組
oracle.xml.parser.v2.XMLElement e1=
(oracle.xml.parser.v2.XMLElement)getVariableData("inputVariable","payload","/client:process/client:arrayofObjects[1]/client:input1");
System.out.println(e1.getFirstChild().getNodeValue());
遍歷但我的業務需求是基於某些邏輯設置輸出數組中的值。 爲此我使用下面的示例代碼。
for(int i=1; i < 4 ;i++)
{
setVariableData("outputVariable","payload","/client:processResponse/client:arrayofObjectsoutput['i']/client:output1",i);
setVariableData("outputVariable","payload","/client:processResponse/client:arrayofObjectsoutput['i']/client:output2",i);
}
我的感覺是陣列將長度3和值來創建將settes(1,1)(2,2)(3,3),但在輸出值僅(3,3)。 請告訴我如何實現相同。
示例代碼將不勝感激。
您是否在尋找XQuery? – CMR 2011-05-03 03:54:32
我的需求是一個BPEL流程,它必須返回一個對象數組。我們如何在我的java嵌入式活動中創建aray。並返回它。因爲我也粘貼了我的xsd,其中我們可以看到輸出變量是arrayofObjectsoutput。請問我該怎麼做(到目前爲止,我嘗試過並且只能遍歷輸入數組) – Pedantic 2011-05-03 04:56:35
這個問題又是供應商特定的,所以請添加一個關於您使用的產品/工具的註釋。除此之外,如果使用BPELJ活動,在大多數情況下,它被認爲是一種難聞的氣味。更好的方法是使用活動或將業務邏輯重構爲服務。 –
vanto
2011-05-03 09:33:28