Activiti 학습 자료-개시 자의 역할 및 사용

activiti : initiator의 역할과 그 사용
1. 시나리오 시뮬레이션
kft-activiti-demo의 휴가 프로세스를 예로 들어, 운영 프로세스 :

사용자 A가 휴가를 신청합니다.
리더 B
는 "휴가 정보 조정"노드에 대한 작업 흐름을 거부 합니다.
질문은 휴가를 신청하는 사용자 A에게 "휴가 정보 조정"작업을 자동으로 할당하는 방법입니다.

2. 구세주 activiti : initiator
Activiti는 특히이 문제를 해결하기 위해 startEvent에서 속성 activiti : initiator를 확장합니다.

다음 코드 조각에는이 속성이 포함되어 있습니다.

<process id = "leave"name = "请假 流程">
    <startevent id = "startevent1"name = "Start"activiti : initiator = "applyUserId"> </ startevent>
    <usertask id = "deptLeaderAudit"name = "部门 领导审批 "activiti : candidategroups ="deptLeader "> </ usertask>
    <exclusivegateway id ="exclusivegateway5 "name ="Exclusive Gateway "> </ exclusivegateway>
    <usertask id ="modifyApply "name ="调整 申请 "activiti : assignee =" $ {applyUserId} ">
      <extensionelements>
        <activiti : tasklistener event ="complete "delegateexpression ="$ {afterModifyApplyContentProcessor} "> </ activiti : tasklistener>
      </ extensionelements>
    </ usertask>
    <usertask id = "hrAudit"name = "人事 审批"activiti : candidategroups = "hr"> </ usertask>
    <exclusivegateway id = "exclusivegateway6"name = "Exclusive Gateway"> </ exclusivegateway>
    <usertask id = "reportBack"name = "销假"activiti : assignee = "$ {applyUserId}">
      <extensionelements>
        <activiti : tasklistener event = "complete"delegateexpression = "$ {reportBackEndProcessor}"> </ activiti : tasklistener>
      </ extensionelements>
    </ usertask>
</ process>
?
分 步 理解 :

activiti : initiator는 임의의 문자열이 될 수있는 변수 이름 (코드의 2 행)을 설정합니다. 여기에서 많은 초보자가 혼란스럽고 무엇을 작성해야할지 모르겠습니다. 이제 변수를 기억하십시오.
applyUserId 변수
는 적용하는 사용자 의 ID를 저장 해야합니다. 적용하도록 설정해야하는 작업에 대해 activiti : assginee = $ {applyUserId} 속성을 설정합니다. 5 행과 11 행의 코드를 참조하십시오.
이 작업을 수행하는 이유는 무엇입니까?

실제로 사용자 매뉴얼에서는이 속성의 기능과 사용법을 구체적으로 설명합니다. 코드는 다음과 같습니다.

identityService.setAuthenticatedUserId ( "kafeitu");
runtimeService.startProcessInstanceByKey ( "나가기");
?
코드의 제 1 라인의 역할은 현재 사용자의 ID를 설정하고, 중요한 및 코드 요구와 activiti이 라인 : 불가분와 함께 사용 개시제 ... …
코드의 두 번째 줄은 프로세스를 시작합니다. 프로세스가 시작되면 activiti : initiator 속성이 있는지 여부를 판단합니다.있는 경우 activiti : initiator 속성 값을 프로세스 인스턴스에 변수로 추가합니다. 특수 변수이며 일반 변수입니다.
프로세스 XML 코드의 5 번째 및 11 번째 줄에서 $ {applyUserId}는 activiti : initiator의 값으로 사용되며 엔진은 작업을 생성 할 때 변수 applyUserId로이를 대체합니다.

3. 단위 테스트 이해
kft-activiti-demo의 단위 테스트를 참조하십시오.

java : LeaveWorkflowServiceTest.java
xml : leave.bpmn
온라인으로 나가기 프로세스를 실행할 수도 있습니다. http://aws.kafeitu.me:8080/kft-activiti-demo에서이 프로세스를 경험할 수도 있습니다.
--------------------- 
저자 : howareyoutodaysoft 
출처 : CSDN 
원본 : https : //blog.csdn.net/howareyoutodaysoft/article/details/8081577 
면책 조항 :이 기사 블로거를위한 원본 기사, 재 인쇄를 위해 블로그 게시물에 링크를 첨부하세요!

추천

출처blog.csdn.net/xiaozaq/article/details/94716091