рабочий процесс на открытом воздухе не видит переменные webscript - PullRequest
3 голосов
/ 01 сентября 2011

Я использую alfresco в качестве внутреннего рабочего процесса для отдельного интерфейсного веб-приложения (не спрашивайте меня, почему, спросите клиента). Сервер переднего плана выполняет AJAX-вызовы для бэкэнда на открытом воздухе. У меня проблема в том, что параметры, установленные в моем веб-скрипте рабочего процесса, не отображаются внутри 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 возвращаются к нулю, когда они установлены в веб-скрипте. Я использую 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>

Я прочитал кое-что о ScriptableObject, необходимом для workflowDefinition.startWorkflow's workflowParameters, но я не смог найти что-нибудь об его использовании.

Как установить переменные аспекта внутри скрипта, чтобы они отображались в рабочем процессе. Когда я просматриваю элемент в общем ресурсе, назначается групповой уполномоченный.

Заранее спасибо

1 Ответ

1 голос
/ 01 сентября 2011

То, что я использую, - это другой способ запуска рабочего процесса.Я использую actionExecutor start-workflow.

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

И ps вы пропустите точку с запятой в строке: workflowParameters ["pas: currentReviewGroup"] = "GROUP_Regional"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...