비즈니스 로직을 수행하는 BPEL 프로세스를 작성했습니다 (부서리스트의 데이터를 가져올 수 있음). 다음 활동에서 동일한 가져온 목록을 사용해야합니다.문제점 : BPEL Array 채우기
부서 목록에 대해 하나의 xsd를 만들고 요소를 추가하려면이 방법으로 가져온 목록을 배열에 넣고 다음 활동 (Java 포함)에 같은 배열을 사용할 수 있습니다.
내 첫 번째 자바 Embed 활동에서 다음 코드를 사용하여 배열을 채 웁니다. "부서/NS1 : 부서/NS1 [ 'I'] DEPTNAME/NS1"
{
setVariableData ("부서"
찾는 (; I < 10 난 ++ I = 0 INT) "값"); }
실행 중에 예외가 발생합니다.
<May 9, 2011 6:47:11 PM SGT> <Error> <oracle.soa.bpel.engine> <BEA-000000> <<BPELXExecLet::setVariableData>
java.lang.ClassCastException: java.lang.Integer cannot be cast to org.w3c.dom.Element
at com.collaxa.cube.engine.ext.bpel.v1.nodes.BPELXExecLet.setVariableData(BPELXExecLet.java:750)
오류가 발생하는 이유를 알려주십시오. 목표를 달성하기위한 대안적인 방법이 있습니다.
저는 Jdeveloper11.1.1.3.0과 SOA 11.1.1.3.0을 사용하고 있습니다.
다음은 내 xsd 부서입니다.
<?xml version="1.0" encoding="windows-1252" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.example.org"
targetNamespace="http://www.example.org"
elementFormDefault="qualified">
<xsd:element name="department" type="DeptCollection">
</xsd:element>
<xsd:complexType name="DeptCollection">
<xsd:sequence >
<xsd:element name="Dept" type="Dept" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Dept">
<xsd:sequence>
<xsd:element name="DeptName" type="xsd:string" />
<xsd:element name="HOD" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
나는 이것을 또한 시도했다, 그것은 어떤 요소 변수를 기대하고있다 ... 응답을 주셔서 감사합니다. – Pedantic
'i'의 값은 배열 표현의 인덱스입니다. – Pedantic
for 루프의 i가 여기에 삽입 될 것으로 예상됩니까? 그렇지 않습니다. 다음과 같이해야합니다. string s = "/ ns1 : department/ns1 : Dept/ns1 [ '"+ i + "'] : DeptName"두 번째 인수로 s를 setVariableData로 전달합니다. – ColWhi