在Workplace Process Designer的Expression Builder中,我有一个类型为String[](字符串数组)的附件变量。我想使用表达式生成器向其中添加一些元素,但我无法计算出语法。有人这样做过吗?是否可以在Expression Builder中将元素添加到现有数组中?
只有当数组中只有一个元素时,arraystring解决方案才有效。用以下表达式指定附加值:
stringarray[elementcount(stringarray) + 1] = value
预期的"数组超出绑定异常"和数组的大小调整将在赋值期间处理。
我最初认为我们不可能不得不使用自定义的java组件来完成这项工作,但我已经运行了一个小实验,应该可以作为您的情况的解决方法。
假设您有String[] arrayType={"string1, string2"}
,您可以使用以下表达式作为更新数组的值:
{(arraytostring(arrayType, " ", " ,", ","))+"string3"}
我所做的就是,
- 首先,我使用
arraytostring
函数将数组转换为逗号分隔的字符串,末尾留有逗号。我的输出类似于string1,string2,
- 其次,我将要添加的字符串附加到字符串的末尾,这样我的输出就是
string1,string2,string3
- 最后,我使用数组表达式格式{}将上面的值分配给了我的数组,所以我的最终求值字符串是
{string1,string2,string3}
有关阵列功能的更多信息,请访问以下链接:
https://www.ibm.com/support/knowledgecenter/SSNW2F_5.2.1/com.ibm.p8.pe.user.doc/bpfe003.htm
我遇到过这样的情况,下面是我所做的:
-
我使用CE操作和存储从附件中获取数组在工作流的数组属性中
-
然后我用下面的
{(arraytostring(workflowArray, " ", " ,", ","))+workflowStringProp}
-
再次使用CE操作在具有的附件中设置阵列workflowArray。