我想在“工作文件夹”和“进行中的文件夹”之间移动文档 根据我启动Alfresco工作流程时工作流程的状态。这些文件夹是我在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);
}
露天版本:社区版5.2和企业版5.2.4
最诚挚的问候,
答案 0 :(得分:0)
请确认,我的理解。
您是否要根据正确的工作流程状态在两个文件夹(“工作文件夹”到“进行中的文件夹”之间)移动文件?
工作流状态可以是“活动(正在运行)”和“已完成”,但是当前任务的状态可以为“进行中”。
这是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");
拥有任务状态后,您应该可以在文件夹之间移动文件。
希望这对您有帮助!