【问题标题】:alfresco workflow isn't seeing webscript variables露天工作流程没有看到 webscript 变量
【发布时间】:2011-09-01 00:42:10
【问题描述】:

我使用 alfresco 作为单独的前端 Web 应用程序的后端工作流程(不要问我为什么,问客户)。前端服务器对后端 alfresco webscripts 进行 ajax 调用。我遇到的问题是我的工作流 webscript 中设置的参数没有显示在自定义工作流过程的 javascript 中。

这是 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);

这是工作流程。问题出在第二节。 pas_currentReviewGroup 和 bpm_groupAssignee 在 webscript 中设置时都为空。我使用 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 的资料,但我找不到任何关于使用它的信息。

如何在 webscript 中设置方面变量,以便它们显示在工作流程中。当我在 alfresco share 中查看该项目时,会填充组受理人。

提前致谢

【问题讨论】:

  • 你的回答是否适用于我的回答?

标签: javascript workflow alfresco


【解决方案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);

还有 p.s.您在以下行缺少分号: workflowParameters["pas:currentReviewGroup"] = "GROUP_Regional"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    相关资源
    最近更新 更多