2017-11-20 1 views
0

프로세스 정의 id에서 만든 프로세스 인스턴스의 작업에 할당 된 사람을 동적으로 설정해야한다는 요구 사항이 있습니다. UI 쪽에서 할당 된 값을 가져 와서 제출했습니다. 승인 워크 플로를 위해. 이제는 프로세스를 시작하고 해당 작업을 각각의 작업에 할당합니다. 문제는 activiti가 현재 작업/활성 작업 만 제공하므로 프로세스 시작시 단 하나의 작업 만 얻는 것입니다. 작업 목록 나는 그 작업에 양수인을 설정할 수 없습니다. 내가 사용할 수있는 작업에 대한 쿼리가 있지만 모든 작업에 대해 양수인을 설정할 수 없기 때문에 보류중인 작업과 프로세스 인스턴스에서 완료된 작업을 찾아야합니다.이 쿼리는 많은 도움이되지 않습니다. 나를. 그러면 프로세스 인스턴스 아래에서 모든 태스크를 가져 와서 각 사용자 태스크에 담당자를 설정 한 다음 프로세스 인스턴스 및 태스크 쿼리를 사용하여 필요할 때마다 사용자 태스크를 완료하는 방법은 무엇입니까? 다음은 activiti에서 프로세스 인스턴스의 작업에 담당자를 미리 할당하는 방법

는 taskListener를 사용하여, 당신은 동적 런타임시 양수인을 결정하는 것, 프로세스 시작시 런타임 정보를 전달하지 않을 프로세스 엔진의 모든 기능을 활용하려면 내 워크 플로우

Workflow describing above scenario

답변

0

입니다 "create"이벤트에서.

그러나 접근법을 고수해야하는 경우 : assignDesinitionKey 키를 사용하여 할당 된 사람을지도에 배치하고 해당 맵을 프로세스 변수로 프로세스 인스턴스에 전달합니다.

나중에 Bpmn 모델에서 할당 된 필드에 "$ {taskDefintionKey}"를 사용하십시오. 물론 taskdefkey는 사용자 작업 중 하나입니다.

+0

난 => ProcessInstance processInstance = runtimeService으로 프로세스를 시작하고 \t \t .startProcessInstanceById ("processDefinitionId", "양수인 정보를 가진 변수"); 양수인과 변수가 각각의 사용자의 할당에 사용될 tasks.How 이런을 향상시킬 수있다 ? 또한 배정 된 사람이 없으면 (예 : 프로세스를 시작하는 동안 배정되지만 사용자 작업에 도달하면 할당 된 사용자는 휴가 등 비즈니스 논리 오류로 인해 부재중입니다) 사용자 작업을 완료하려면 다음 사용 가능한 사용자에게 할당하여 처리해야합니다 내가 작업을 요구해야합니까? 아니면이 사용 사례에 대한 모범 사례가 있습니까? – BenzoR

관련 문제