我有一个露天文档引用;我要找的是访问该文件附有工作流和通过JavaScript完成它(或者前进到下一个过渡)的方式。

几乎在网络上的每个实例示出了如何启动工作流程,并从dashlet我可以调用任务命令处理器(/露天/命令/任务/结束/ [/过渡]),如果我知道该任务ID,但如何做我从服务器端Web脚本只从文档参考启动同样的事情?

有必须从文件访问的工作流和编程管理它们的方法。

有帮助吗?

解决方案

从一个文件nodeRef可以发信号通知当前的任务是这样的:

var docNodeRef = "workspace://SpacesStore/<GUID HERE>";
var transitionId = "some action";
var theDocument = search.findNode(docNodeRef);
foreach  (currWorkflow in theDocument.activeWorkflows)
{
    var path = currWorkflow.paths[currWorkflow.paths.length-1];
    var task = path.tasks[0];
    for (var transitionKey in task.transitions)
    {
        if (task.transitions[transitionKey] == transitionId)
        {
            path.signal(transitionId);
            break;
        }
    }
}

如果您希望信号默认过渡您可以跳过内环,只是这样做:

var docNodeRef = "workspace://SpacesStore/<GUID HERE>";
var transitionId = "some action";
var theDocument = search.findNode(docNodeRef);
foreach  (currWorkflow in theDocument.activeWorkflows)
{
    var path = currWorkflow.paths[currWorkflow.paths.length-1];
    var task = path.tasks[0];
    // Signal default transition
    path.signal(null);
}

其他提示

好了,我还是不知道如何转型,但也有几件事情,我发现了。

首先,我可以访问工作流程文档中参与并取消:

for each (workflow in document.activeWorkflows) {
    workflow.cancel();
}

不过,我还是不太清楚如何进步的任务。我可以得到任务,用它做什么:

var task = workflow.getTask(taskId);
task.endTask(transitionId);

...但我仍然不知道如何去任务id或transitionId编程方式或通过露天。

编辑:计算出来,如在工作流processdefinition XML定义transitionId实际上转换名:

<transition name="SomeTransitionId" to="end">

此外,为了获得从工作流任务可以通过路径遍历的列表(workflow.getPaths()),然后通过与path.getTasks任务()。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top