2011-09-01 52 views
3

我使用露天作爲單獨的前端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腳本內部設置方面變量,以便它們出現在工作流中。當我在戶外分享中查看該項目時,組委派人員已填充。

在此先感謝

+0

你是否得到它與我的答案一起工作? –

回答

1

我用的是不同的方式開始新的工作流程。我正在使用actionExecutor啓動工作流程。

var workflow = actions.create("start-workflow"); 
    workflow.parameters.workflowName = "jbpm$vxi:verwerkxmlin"; 
    workflow.parameters.startTaskTransition = "volgende"; 
    workflow.parameters["bpm:workflowDescription"] = "Automatische workflow"; 
    workflow.parameters["wn:xmlDocument"] = xml; 
    workflow.execute(xml); 

所以你的情況應該是以下幾點:

var workflow = actions.create("start-workflow"); 

workflow.parameters.workflowName = "jbpm$pas:workflow"; 
workflow.parameters.startTaskTransition = ""; 
workflow.parameters["bpm:groupAssignee"] = people.getGroup("regional"); 
workflow.parameters["pas:currentReviewGroup"] = "GROUP_Regional"; 
workflow.execute(node); 

而附:你在行中缺少一個分號:workflowParameters [「pas:currentReviewGroup」] =「GROUP_Regional」