camunda_10_script_task_access_variable

script task 访问流程变量的方法

通过inputs读取流程变量

在inputs中定义一个新的input, 可以设定一个local 变量, 选择类型为: string/expression, 取值可以是基于流程变量的表达式, 比如 ${amount+100}

通过outputs属性区修改流程变量

在outputs中定义一个新的 output ,可以设定输出的process变量名, 这时可以新建process变量, 也可以指定使用已有的process变量,
Assignment tyep: 选 Script,
Format: 输入 javascript
Type: 选择 Inline script
Script 区: 输入一行或多行js脚本, 但最后一行必须是一个表达式, 而且不能带分号, camunda 会将该表达式赋值给输出的process变量中.

通过Script属性区修改流程变量,

操作方法同 outputs, 只不过通过Script属性区只能修改一个流程变量, 而outputs可以修改多个变量.

脚本中使用 execution.getVariable() 和 setVariable()访问流程变量

<bpmn:script>
	sum=execution.getVariable("amount");
	execution.setVariable("amount", sum+1000);
<bpmn:/script>

脚本内容最好使用 CDATA 包一下

脚本内容可以通过Modeler UI直接输入, 但因为最后要存到xml中, 所以很可能会发生xml转义(比如代码中有<或&符号), 这样会造成流程文件的版本管理不好diff, 最好是将代码用CDATA包一下, 操作方法是在XML 视图中, 找到脚本tag, 输入 <![CDATA[ ]]> .

<bpmn:script>
<![CDATA[
 
]]>
<bpmn:/script>

参考

https://www.jianshu.com/p/bcd690a8a22f

posted @ 2022-09-29 07:27  harrychinese  阅读(65)  评论(0编辑  收藏  举报