在 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>
向社区问好!我正在使用带有嵌入式 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
函数
<activiti:string>
var json = execution.getVariable('json')
var jsonObject= JSON.parse(json) ;
var idValue = jsonObject.id
</activiti:string>