setVariableData从java嵌入中分配调用输入变量集合
我在JAVA嵌入中使用下面一行为BPEL Invoke DB适配器输入变量赋值setVariableData从java嵌入中分配调用输入变量集合,java,arrays,embedding,bpel,assign,Java,Arrays,Embedding,Bpel,Assign,我在JAVA嵌入中使用下面一行为BPEL Invoke DB适配器输入变量赋值 setVariableData("S2C_insert_InputVariable","TmpInvStoc3Collection","/ns8:TmpInvStoc3Collection/ns8:TmpInvStoc3/ns8:batchid","12345"); 现在我想把这个语句放在java中的while循环中,并想在n次迭代中重复这个语句。我想在集合中放置一个循环变量,但我不知道如何做 我在找下面这样的东
setVariableData("S2C_insert_InputVariable","TmpInvStoc3Collection","/ns8:TmpInvStoc3Collection/ns8:TmpInvStoc3/ns8:batchid","12345");
现在我想把这个语句放在java中的while循环中,并想在n次迭代中重复这个语句。我想在集合中放置一个循环变量,但我不知道如何做
我在找下面这样的东西
setVariableData("S2C_insert_InputVariable","TmpInvStoc3Collection","/ns8:TmpInvStoc3Collection/ns8:TmpInvStoc3[$loop_variable]/ns8:batchid","12345");
请让我知道如何做到这一点
问候
Murali这是基于以下假设的:
value
是i
的函数,不能在BPEL中计算
String qry = "";
for (int i = 0; i < n; i++)
{
value = SomeFunctionThatRequiresJavaRatherThanBPEL(i);
qry = "/ns8:TmpInvStoc3Collection/ns8:TmpInvStoc3[" + i + "]/ns8:batchid";
setVariableData("S2C_insert_InputVariable","TmpInvStoc3Collection",qry,value);
}
String qry=”“;
对于(int i=0;i
代码可能会更高效,但它应该满足您的要求。谢谢Dan。这起了作用,但只是个小问题。TmpInvStoc3集合只包含一个TmpInvStoc3元素,我在第二次迭代中遇到选择失败异常。有没有办法将TmpInvStoc3元素从java添加到S2C_Insert_InputVariable中?感谢您在BPEL分配中提供了一个选项,您可以自动添加空元素。不过,我不知道如何在Java中重现这种功能。