Alfresco 任务监听器变量
2015-06-23
1275
我有两个任务监听器,第一个监听
event="create"
,第二个监听
event="complete"
。
在第一个监听器中,我在任务创建时计算文件数量,在第二个监听器中,我在任务完成时计算文件数量,如果文件数量相等,则会抛出错误。但这不起作用,我得到了
ReferenceError: "count" is not defined
。
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string><![CDATA[
var count = 0;
for (var i = 0; i < bpm_package.children.length; i++)
{
count++;
}
]]></activiti:string>
</activiti:field>
</activiti:taskListener>
<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string><![CDATA[
var count_new = 0;
for (var i = 0; i < bpm_package.children.length; i++)
{
count_new++;
}
if (count ==count_new)
{
var message = "\n\nAdd files\n";
throw new Error(message + "\n");
}
]]></activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
2个回答
我解决了如何定义变量的问题,需要在第一个任务监听器中添加
execution.setVariable('zvernennya_count', count);
。
但是这并不能解决我测试附件的问题,因为变量
count
只定义一次,而任务是多用户访问的,当第一个用户的任务完成后,下一个用户的任务已经有了不同于
count
的变量
count_new
。
Tackle Berry
2015-06-23
您收到 ReferenceError ,因为该“count”变量对其他侦听器不可见。
如果您需要保留变量的值,则必须在工作流模型中定义变量,并使用该变量代替局部变量 count。
http://docs.alfresco.com/4.0/concepts/wf-task-model.html
这应该为您提供良好的起点。
mitpatoliya
2015-06-23