Activiti学習教材-イニシエーターの役割とその使用

activiti:initiatorの役割とその使用
1.シナリオシミュレーション
例として、kft-activiti-demoのleaveプロセス、操作プロセスを取り上げます。

ユーザー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"デリゲート式= "$ {reportBackEndProcessor}"> </ activiti:tasklistener>
      </ extensionelements>
    </ usertask>
</ process>

分0041:

activiti:initiatorは、任意の文字列を指定できる変数名(コードの2行目)を設定します。これは、多くの初心者が混乱し、何を書くべきかわからない場所です。ここで、変数を覚えておいてください。
変数applyUserIdは
、適用するユーザーのIDを保存する必要があります。適用するように設定する必要があるタスクにactiviti:assginee = $ {applyUserId}プロパティを設定します。5行目と11行目のコードを参照してください。
なぜこれを行うのですか?

実際、ユーザーマニュアルでは、この属性の機能と使用法について具体的に説明しています。コードは次のとおりです。

identityService.setAuthenticatedUserId(「kafeitu」);
runtimeService.startProcessInstanceByKey(「休暇」);

コードの最初の行の役割は、現在のユーザーIDを設定することで、重要であり、かつコードのニーズとactivitiのこの行:イニシエータは不可分と一緒に使用... …
コードの2行目はプロセスを開始します。プロセスが開始されると、activiti:initiator属性があるかどうかを判断します。ある場合は、属性activiti:initiatorの値を変数としてプロセスインスタンスに追加します。この記事では、applyUserIdです。applyUserIdについては考えないでください。特別な変数であり、単なる通常の変数です。
プロセス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