如何获取Camunda ArrayList长度

问题描述 投票:0回答:1

我在 Java 14 上的 Camunda 7.16 中有一个名为

ListItems
的变量。基于“变量”选项卡的变量类型是
Object
,其值是
java.util.ArrayList
。当我尝试将
ListItems
中的项目计数作为
http-connector
负载中的参数(分配类型为字符串或表达式)时,我感到很困惑。

{
     "ProcessNo": "${execution.processBusinessKey}",
     "TotalItem": "${S(ListItems).length}"
}

我尝试了以下操作:

${S(ListItems).length}
${S(ListItems).length()}
${S(ListItems).size()}
${(ListItems).size()}
以及以下脚本任务(内联 Javascript)

execution.getVariable("ListItem").size();

我不知道下一步该尝试什么。

camunda bpmn camunda-modeler
1个回答
0
投票

最后我有一个解决方法,而不是将变量作为对象或列表,我将其作为 JSON 存储在 Camunda 中并以这种方式获取长度:

S(execution.getVariable("ListItem")).elements().length;

注:

  • execution.getVariable("ListItem")
    解析 ListItem json。

  • .elements()
    获取 JSON 列表中的所有项目。

  • 最后

    .length
    得到它的大小。

将变量存储为“本机”格式(无论是对象、映射、列表)有时在 Camunda 中很难使用。但它们似乎有更好的大小限制(文本变量限制为 4000 个字符)。

© www.soinside.com 2019 - 2024. All rights reserved.