Я использую 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, но я не смог найти что-нибудь об его использовании.
Как установить переменные аспекта внутри скрипта, чтобы они отображались в рабочем процессе. Когда я просматриваю элемент в общем ресурсе, назначается групповой уполномоченный.
Заранее спасибо