Как получить статус рабочего процесса из родственного документа? О сценарии правила папок под открытым небом - PullRequest
0 голосов
/ 07 сентября 2018

Я хочу переместить документы из «рабочей папки» в «In Progress folder» в соответствии с состоянием рабочего процесса, когда я начал рабочий процесс нашего Alfresco. Эта папка была создана мной в Sites of Alfresco.

Следующий код для скрипта правила папки не работает из-за того, что я пробовал. Тогда, что вы знаете, как получить статус рабочего процесса из связанного документа? Я думаю, хочу обновить скрипт.

var parentFolder = document.parent;
var WFstatus = workflow.parameters["bpm:status"];
if (WFstatus.indexOf('In progress') != -1){
    var dest = parentFolder.parent.childByNamePath("2.InProgress");
    document.move(dest);
}

Alfresco Версия: Community Edition 5.2 & Enterprise 5.2.4

С уважением,

1 Ответ

0 голосов
/ 11 сентября 2018

Пожалуйста, подтвердите, мое понимание.

Хотите ли вы перемещать файлы между двумя папками «Рабочая папка» в «Папка в процессе» на основе правильного состояния рабочего процесса?

Состояние рабочего процесса может быть либо Активным (выполняется), либо Завершенным, но текущая задача может иметь статус «Выполняется».

Вот код консоли Javascript, чтобы получить рабочий процесс и статус задачи выбранного документа.

//Get the parents for the document node.
//If the document is attached to the workflow, then there will be multiple parents.
for(var x=0;x<document.parents.length;x++)
{
    var t = document.parents[x];
    var workflowNode;
    //Pick the bpm:package node. 
    if (t.type == "{http://www.alfresco.org/model/bpm/1.0}package")
    {
        workflowNode = t;
        logger.log(t);
        //Get the workflow instance Id
        var wfId = t.properties["bpm:workflowInstanceId"];
        logger.log(wfId)

        //get the workflow instance
        var rwf = workflow.getInstance(wfId);
        logger.log(rwf);
        logger.log("Workflow status : " + rwf.active);


        for (var pid in rwf.paths) 
        {
           var path = rwf.paths[pid];
           //Get the tasks and its status
           for (var tid in path.tasks)
           {
             var task = path.tasks[tid];
             logger.log(task);
             logger.log("Task id : "  +  task.id +" task status :" + task.properties["bpm:status"])
           }
         }
    }   

}
print("\n");
print("\n");
print("\n");
print("\n");

Sample Code

Поскольку у вас есть статус задачи, и вы сможете перемещать файл между папками.

Надеюсь, это поможет вам !!

...