intra-mart Accel Platform IM-Workflow 管理者操作ガイド 第20版 2019-08-01

4.6. ワークフロー同期リスナーを設定する

IM-共通マスタ側の操作でマスタに変更が発生した場合に、ワークフロー側は変更に対する同期処理を行うためのリスナーを設定することができます。

ワークフロー側で提供しているリスナーは、以下の9つがあります。
  • ノード処理対象者(固定指定)同期リスナー
    jp.co.intra_mart.system.workflow.sync.NodeExecUserEventListener
  • 代理先同期リスナー
    jp.co.intra_mart.system.workflow.sync.TargetActUserEventListener
  • 案件操作権限者同期リスナー
    jp.co.intra_mart.system.workflow.sync.MatterHandleUserEventListener
  • 代理設定権限者同期リスナー
    jp.co.intra_mart.system.workflow.sync.ActAdministrationEventListener
  • 管理グループ同期リスナー
    jp.co.intra_mart.system.workflow.sync.AdminGroupEventListener
  • 標準組織同期リスナー
    jp.co.intra_mart.system.workflow.sync.DefaultDepartmentEventListener
  • 一時保存案件同期リスナー
    jp.co.intra_mart.system.workflow.sync.TemporarySaveUserEventListener
  • ユーザ選択一覧パターン同期リスナー
    jp.co.intra_mart.system.workflow.sync.UserSelectColumnListEventListener
  • 利用者ノード設定同期リスナー
    jp.co.intra_mart.system.workflow.sync.UserNodeConfigEventListener

ワークフロー同期リスナーを設定するための方法を以下で説明します。

4.6.1. ワークフロー同期リスナーの設定を有効にする

ワークフロー同期リスナーを設定するためのプラグインの設定ファイルを作成します。
  1. IM-Juggling で、設定対象のプロジェクト直下に「plugin」フォルダを新規に作成してください。
  2. 作成したpluginフォルダの配下に「jp.co.intra_mart.master.workflow_x.x.x」という名称でフォルダを作成してください。
    「x.x.x」の部分には製品が提供しているプラグインフォルダより大きい数字(例:8.0.99)に変更します。
    本項では、バージョンを「8.0.99」とした場合の設定を例に説明します。

    詳細については「 プラグイン仕様書 」を参照してください。
    ../../_images/basic_guide_13_1.png
  3. 作成したフォルダの配下に「plugin.xml」のファイルを作成してください。
    plugin.xmlには以下の内容を保存してください。

    以下の内容のうち、<accessor>タグ内の「version」をフォルダ名の末尾と同様に大きい数字に変更してください。
    ../../_images/basic_guide_13_2.png
    <?xml version="1.0" encoding="utf-8"?>
    <plugin>
    <!-- 会社・組織 -->
    <extension
      point="jp.co.intra_mart.foundation.master.accessor.company" >
      <accessor
        name="im_workflow_sync"
        id="jp.co.intra_mart.workflow_sync"
        version="8.0.99"
        rank="1" >
    
        <!-- ノード処理対象者(固定指定)同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.NodeExecUserEventListener" />
        <!-- 代理先同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.TargetActUserEventListener" />
        <!-- 案件操作権限者同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.MatterHandleUserEventListener" />
        <!-- 代理設定権限者同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.ActAdministrationEventListener" />
        <!-- 管理グループ同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.AdminGroupEventListener" />
        <!-- 標準組織同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.DefaultDepartmentEventListener" />
      </accessor>
    </extension>
    
    <!-- パブリックグループ -->
    <extension
      point="jp.co.intra_mart.foundation.master.accessor.public_group" >
      <accessor
        name="im_workflow_sync"
        id="jp.co.intra_mart.workflow_sync"
        version="8.0.99"
        rank="1" >
    
        <!-- ノード処理対象者(固定指定)同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.NodeExecUserEventListener" />
        <!-- 代理先同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.TargetActUserEventListener" />
        <!-- 案件操作権限者同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.MatterHandleUserEventListener" />
        <!-- 代理設定権限者同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.ActAdministrationEventListener" />
        <!-- 管理グループ同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.AdminGroupEventListener" />
      </accessor>
    </extension>
    
    <!-- ユーザ -->
    <extension
      point="jp.co.intra_mart.foundation.master.accessor.user" >
      <accessor
        name="im_workflow_sync"
        id="jp.co.intra_mart.workflow_sync"
        version="8.0.99"
        rank="1" >
    
        <!-- ノード処理対象者(固定指定)同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.NodeExecUserEventListener" />
        <!-- 代理先同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.TargetActUserEventListener" />
        <!-- 案件操作権限者同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.MatterHandleUserEventListener" />
        <!-- 代理設定権限者同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.ActAdministrationEventListener" />
        <!-- 管理グループ同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.AdminGroupEventListener" />
        <!-- 一時保存案件同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.TemporarySaveUserEventListener" />
        <!-- ユーザ選択一覧パターン同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.UserSelectColumnListEventListener" />
        <!-- 利用者ノード設定同期リスナー -->
        <listener class="jp.co.intra_mart.system.workflow.sync.UserNodeConfigEventListener" />
      </accessor>
    </extension>
    </plugin>
    
  4. IM-Juggling からWARファイルの出力を行い、WARファイルをデプロイすると、ワークフロー同期リスナーのプラグインの設定内容が反映されます。

コラム

上記の設定例では、ワークフロー側で提供しているリスナーの中からマスタ変更イベント(会社・組織、パブリックグループ、ユーザ)単位で、実際に同期処理を実装しているリスナーのみを設定しています。

代理先については、実際の同期処理を「代理先同期ジョブ」で行います。
「代理先同期ジョブ」を起動する上で、代理先同期リスナーが設定されていることが前提条件のため、代理先の同期を行う場合は、必ず代理先同期リスナーを設定してください。
※ 「代理先同期ジョブ」の詳細については、「 IM-Workflow 仕様書 」を参照してください。