在 activiti bpmn 中解析 JSON 字符串

Parse JSON string inside activiti bpmn

向社区问好!我正在使用带有嵌入式 Activiti 引擎的 Alfresco 6.0.0 Community edition。我正在通过 .bpmn 文件创建多种不同的 processes/tasks,现在我想 somehow achieve the following scenario:

1) 使用 2 usertasks 部署一个 .bpmn 文件 (usertask1 -> seqflow -> usertask2).

2) 在执行第一个任务时,我 set/update 一个流程变量并将其设置为一个 JSON 格式的字符串 (f.e "{ id: '100', name:'X'}" )

我的问题是 是否有任何可能的方法来解析 JSON(f.e 以获得 'id' 或 'name' 值)在 bpmn 里面?? 我想在 usertask2 里面实现这个,有什么可能的方法吗?也许 ScriptTaskListener 或任何其他听众中有什么东西?任何帮助将不胜感激。

谢谢:)

这是用户任务

 <userTask id="task2" name="${nameSetOnTask1}"
        activiti:formKey="wf:adhocTask">
       <documentation> Second task </documentation>
       <extensionElements>
           <activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
              <activiti:field name="script">
                 <activiti:string>
                  var json = execution.getVariable('json') <!-- this is the string with json value -->

                 </activiti:string>
              </activiti:field>
           </activiti:taskListener>
       </extensionElements>
    </userTask>

已解决

我设法使用 Javascript 的 JSON.parse 函数

解析了 Json 字符串
<activiti:string>
   var json = execution.getVariable('json')
   var jsonObject= JSON.parse(json) ;
   var idValue = jsonObject.id                        
</activiti:string>