alfresco 工作流程看不到网页脚本变量
我使用 alfresco 作为单独前端 Web 应用程序的后端工作流程(不要问我为什么,问客户)。前端服务器对后端露天 Web 脚本进行 ajax 调用。我遇到的问题是工作流程网页脚本中设置的参数没有显示在自定义工作流程流程的 javascript 中。
这是网页脚本的本质。最后的信号是通过起始节点:
var timestamp = new Date().getTime();
contentName = args['name']+timestamp;
var node = userhome.createNode(contentName, "wds:Promotion");
node.properties["cm:name"]=args['title'];
node.save();
var workflowDefinition = workflow.getDefinitionByName("jbpm$pas:workflow");
var workflowPackage = workflow.createPackage();
workflowPackage.addNode(node);
var workflowParameters = new Object();
workflowParameters["bpm:groupAssignee"] = people.getGroup("regional");
workflowParameters["pas:currentReviewGroup"] = "GROUP_Regional"
var workflowPath = workflowDefinition.startWorkflow(workflowPackage, workflowParameters);
workflowPath = workflowPath.signal(null);
这就是工作流程。问题出在第二节。在网页脚本中设置 pas_currentReviewGroup 和 bpm_groupAssignee 时,它们都将为 null。我使用 pas_customReviewGroup 来跟踪我在工作流程中的位置,因为对于不同的用户重复相同的几个步骤,所以只有一组任务。
<start-state name="pas:start-state">
<task name="pas:start" swimlane="initiator"></task>
<transition name="" to="pas:SetCurrentGroup"></transition>
</start-state>
<node name="pas:SetCurrentGroup">
<event type="node-enter">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<variable name="pas_currentReviewGroup" access="read,write" />
<variable name="bpm_groupAssignee" access="read"/>
<expression>
if (!pas_currentReviewGroup)
{
pas_currentReviewGroup = bpm_groupAssignee.properties.authorityName == "GROUP_Market" ? "GROUP_Regional" : "GROUP_Burbank";
}
</expression>
</script>
</action>
</event>
<transition name="" to="pas:DraftingUpload" />
</node>
<task-node name="pas:DraftingUpload">
<task name="pas:draftingUpload" swimlane="CreatorGroup"/>
<transition name="Submit" to="pas:PendingReview"></transition>
</task-node>
我读到了一些关于工作流程定义.startWorkflow 的工作流程参数需要 ScriptableObject 的内容,但我找不到任何有关使用它的信息。
如何在网页脚本内设置方面变量,以便它们显示在工作流程中。当我在露天共享中查看项目时,会填充组受让人。
提前致谢
I'm using alfresco as the backend workflow for a seperate front end web application(don't ask me why, ask the client). The front end server makes ajax calls to the backend alfresco webscripts. The problem I'm having is that the parameters set in my workflow webscript don't show up inside the custom workflow process's javascript.
Here's the essence of the webscript. The signal at the end is to get past the start node:
var timestamp = new Date().getTime();
contentName = args['name']+timestamp;
var node = userhome.createNode(contentName, "wds:Promotion");
node.properties["cm:name"]=args['title'];
node.save();
var workflowDefinition = workflow.getDefinitionByName("jbpm$pas:workflow");
var workflowPackage = workflow.createPackage();
workflowPackage.addNode(node);
var workflowParameters = new Object();
workflowParameters["bpm:groupAssignee"] = people.getGroup("regional");
workflowParameters["pas:currentReviewGroup"] = "GROUP_Regional"
var workflowPath = workflowDefinition.startWorkflow(workflowPackage, workflowParameters);
workflowPath = workflowPath.signal(null);
This is the workflow. The problem is in the second stanza. Both pas_currentReviewGroup and bpm_groupAssignee are coming up null when they are set in the webscript. I use pas_customReviewGroup to keep track of where in the workflow I am, as the same few steps are repeated for different users, so there's just one set of tasks.
<start-state name="pas:start-state">
<task name="pas:start" swimlane="initiator"></task>
<transition name="" to="pas:SetCurrentGroup"></transition>
</start-state>
<node name="pas:SetCurrentGroup">
<event type="node-enter">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<variable name="pas_currentReviewGroup" access="read,write" />
<variable name="bpm_groupAssignee" access="read"/>
<expression>
if (!pas_currentReviewGroup)
{
pas_currentReviewGroup = bpm_groupAssignee.properties.authorityName == "GROUP_Market" ? "GROUP_Regional" : "GROUP_Burbank";
}
</expression>
</script>
</action>
</event>
<transition name="" to="pas:DraftingUpload" />
</node>
<task-node name="pas:DraftingUpload">
<task name="pas:draftingUpload" swimlane="CreatorGroup"/>
<transition name="Submit" to="pas:PendingReview"></transition>
</task-node>
I read some stuff about ScriptableObject being needed for workflowDefinition.startWorkflow's workflowParameters, but I couldn't find anything about using it.
How do I set the aspect variables inside of the webscript so they show up in the workflow. When I view the item in alfresco share, the group assignee is populated.
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
![扫码二维码加入Web技术交流群](/public/img/jiaqun_03.jpg)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我使用的是一种不同的方式来启动工作流程。我正在使用 actionExecutor 启动工作流程。
因此,在您的情况下,它应该如下:
ps 您在行中缺少分号:workflowParameters["pas:currentReviewGroup"] = "GROUP_Regional"
What I use is a different way to start a workflow. I'm using the actionExecutor start-workflow.
So in your case it should be the following:
And p.s. you're missing a semi-colon at line: workflowParameters["pas:currentReviewGroup"] = "GROUP_Regional"