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>