문제

Alfresco 문서 참조가 있습니다. 내가 찾고있는 것은 해당 문서에 첨부 된 워크 플로에 액세스하고 JavaScript를 통해 마무리 (또는 다음 전환으로 진행)에 액세스하는 방법입니다.

웹의 거의 모든 예는 워크 플로를 시작하는 방법을 보여주고 대시에서 작업 ID를 알고 있다면 작업 명령 프로세서 (/alfresco/command/task/end/[/transition])를 호출 할 수 있지만 어떻게해야합니까? 문서 참조에서만 시작하는 서버 측 웹 스크립트와 동일합니까?

문서에서 워크 플로에 액세스하고 프로그래밍 방식으로 관리하는 방법이 있어야합니다.

도움이 되었습니까?

해결책

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

... 그러나 나는 여전히 프로그래밍 방식으로 또는 Alfresco를 통해 TaskID 또는 TransitionID에 도달하는 방법을 전혀 모른다.

편집 : IT를 알아 냈습니다. TransitionID는 실제로 워크 플로 프로세스 디포 화 XML에 정의 된대로 전환 이름입니다.

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

또한 워크 플로에서 작업 목록을 얻으려면 경로 (Workflow.getPaths ())를 통해 반복 한 다음 Path.getTasks ()를 사용한 작업을 통해 반복 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top