我有一个bpel进程,它接收一个数组并输出另一个数组。
问题是,我需要获得第一个元素,填充第二个元素并在第二个元素中添加元素。
我的第一个数组来自这种对象:
<xsd:complexType name="comment_A">
<xsd:sequence>
<xsd:element name="id" type="xsd:int"/>
<xsd:element name="username" type="xsd:string"/>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="picture" type="xsd:base64Binary"/>
<xsd:element name="date" type="xsd:string"/>
<xsd:element name="hour" type="xsd:string"/>
<xsd:element name="bus-line" type="xsd:string"/>
<xsd:element name="bus-number" type="xsd:integer"/>
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="rate" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="comment_A">
<xsd:sequence>
<xsd:element name="id" type="xsd:int"/>
<xsd:element name="username" type="xsd:string"/>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="picture" type="xsd:base64Binary"/>
<xsd:element name="date" type="xsd:string"/>
<xsd:element name="hour" type="xsd:string"/>
<xsd:element name="bus-line" type="xsd:string"/>
<xsd:element name="bus-number" type="xsd:integer"/>
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="rate" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
我的第二个:
<xsd:complexType name="comment_B">
<xsd:sequence>
<xsd:element name="id" type="xsd:int"/>
<xsd:element name="username" type="xsd:string"/>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="picture" type="xsd:base64Binary"/>
<xsd:element name="date" type="xsd:string"/>
<xsd:element name="hour" type="xsd:string"/>
<xsd:element name="bus-line" type="xsd:string"/>
<xsd:element name="bus-number" type="xsd:integer"/>
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="rate" type="xsd:int"/>
<xsd:element name="type-comment" type="xsd:string"/>
<xsd:element name="liked-number" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
首先,我尝试迭代第一个数组,用第二个数组填充两个共同的属性。我尝试使用forEach元素。
我的代码看起来像这样:
<xsd:complexType name="comment_B">
<xsd:sequence>
<xsd:element name="id" type="xsd:int"/>
<xsd:element name="username" type="xsd:string"/>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="picture" type="xsd:base64Binary"/>
<xsd:element name="date" type="xsd:string"/>
<xsd:element name="hour" type="xsd:string"/>
<xsd:element name="bus-line" type="xsd:string"/>
<xsd:element name="bus-number" type="xsd:integer"/>
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="rate" type="xsd:int"/>
<xsd:element name="type-comment" type="xsd:string"/>
<xsd:element name="liked-number" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
我首先尝试使用id元素进行测试,但是当comment_A数组的大小大于1时,我会收到异常
$ comment是我的变量,其中comment_A数组
答案 0 :(得分:0)
我在此巴西博客后发现了一个解决方案:http://blog.iprocess.com.br/2012/09/oracle-soa-suite-11g-uso-da-atividade-assign-no-bpel/
我在BPEL中使用了append opperation