我使用露天作爲單獨的前端Web應用程序的後端工作流程(請不要問我爲什麼問客戶端)。前端服務器對後端戶外web腳本進行ajax調用。我遇到的問題是,我的工作流程webscript中設置的參數不會顯示在自定義工作流程的JavaScript內部。露天工作流程沒有看到webscript變量
這是webscript的本質。最後的信號是通過開始節點:
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);
這是工作流程。問題出在第二節。當它們被設置在web腳本中時,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>
我讀到被需要workflowDefinition.startWorkflow的workflowParameters個ScriptableObject一些東西,但我不能對使用它發現任何東西。
如何在Web腳本內部設置方面變量,以便它們出現在工作流中。當我在戶外分享中查看該項目時,組委派人員已填充。
在此先感謝
你是否得到它與我的答案一起工作? –