intra-mart Accel Platform IM-Workflow プログラミングガイド 第20版 2018-04-01

8.9.3.1. 処理対象者設定

動的承認ノードと横配置ノードに対し、処理対象者を設定する場合を例示します。

8.9.3.1.1. 動的承認ノードの処理対象者をシステムで決定する

ユーザコンテンツ側で決定した処理対象者を、動的承認ノードに反映します。
また、標準処理画面からは動的承認ノードの設定を行わせない制御を実施します。

8.9.3.1.1.1. 前提

申請時に動的承認ノードの設定を行います。
利用するフローは次の通りです。動的承認ノードがふたつ存在し、処理対象者は両方とも「サンプル部門01」に設定されています。
また、ふたつの動的承認ノードの設定を申請ノードで行えるようフロー定義を設定します。
今回は、「動的承認001」(ノードID:dynamic_001)を対象に設定を行います。
../../../_images/customize_guide_24_figure_1.png

8.9.3.1.1.2. 実装例

設定用パラメータを生成します。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var nodeSetting = {

  "DCNodeSetting" : {

    "dynamic_001" : {   // 設定対象のノードIDをプロパティ名とする

      "displayFlag" : false,    // 画面表示をしない

      "processTargetConfigs" : [    // 任意の処理対象者を指定
        {
          // ユーザ:maruyama
          "extensionPointId" : "jp.co.intra_mart.workflow.plugin.authority.node.dynamic",
          "pluginId" : "jp.co.intra_mart.workflow.plugin.authority.node.dynamic.user",
          "parameter" : "maruyama"
        },
        {
          // ロール:IM-Workflow ユーザ
          "extensionPointId" : "jp.co.intra_mart.workflow.plugin.authority.node.dynamic",
          "pluginId" : "jp.co.intra_mart.workflow.plugin.authority.node.dynamic.role",
          "parameter" : "im_workflow_user"
        }
      ]
    }
  }
};
上記のパラメータをJSON文字列に変換します。スクリプト開発モデルでは、ImJson#toJSONString メソッドを利用します。
ImJson.toJSONString(nodeSetting);
JSON文字列に変換したパラメータを、「imwNodeSetting」というキーで標準処理画面に受け渡します。
ユーザコンテンツ画面で利用するタグライブラリ「workflowOpenPage」のボディ部にパラメータを定義するなどの対応を行い、標準処理画面が表示される際に生成したパラメータが受け渡されるよう実装してください。
  • クライアントタイプ=PC の場合

    1
    2
    3
    4
    5
    <imart type="workflowOpenPage"  >
    
      <input type="hidden" name="imwNodeSetting" value="%JSON文字列に変換したパラメータ%" >
    
    </imart>
    
  • クライアントタイプ=スマートフォンの場合

    1
    2
    3
    4
    5
    <imart type="spWorkflowOpenPage"  >
    
      <input type="hidden" name="imwNodeSetting" value="%JSON文字列に変換したパラメータ%" >
    
    </imart>
    
JSON文字列をクライアントに送信したりvalueとして設定する際は、必要に応じて適切なエスケープ処理を行ってください。

8.9.3.1.1.3. 動作結果

標準処理画面に上述の「imwNodeSetting」パラメータを受け渡した場合、標準処理画面の「フロー設定」欄には、「動的承認001」ノードが表示されません。
一方、パラメータで未指定の「動的承認002」ノードは画面上に表示されます。
../../../_images/customize_guide_24_figure_2.png
申請を行います。
その結果、「動的承認001」ノードの処理対象者はパラメータで指定したとおりに設定されました。
../../../_images/customize_guide_24_figure_3.png

8.9.3.1.2. 横配置ノードの配置数、処理対象者をシステムで決定する

ユーザコンテンツ側で決定した処理対象者を、横配置ノードに反映します。
また、標準処理画面からは動的承認ノードの設定を行わせない制御を実施します。

8.9.3.1.2.1. 前提

申請時に横配置ノードの設定を行います。
利用するフローは次の通りです。
横配置ノードがふたつ存在し、処理対象者は両方とも「サンプル部門01」に設定されています。
横配置ノードの割当可能ノード数は、ふたつとも 最小=1、最大=3 に設定されています。
また、ふたつの横配置ノードの設定を申請ノードで行えるようフロー定義を設定します。
今回は、「横配置001」(ノードID:horizontal_001)を対象に設定を行います。
../../../_images/customize_guide_24_figure_4.png

8.9.3.1.2.2. 実装例

設定用パラメータを生成します。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
var nodeSetting = {

  "HVNodeSetting" : {

    "horizontal_001" : {   // 設定対象のノードIDをプロパティ名とする

      "displayFlag" : false,    // 画面表示をしない

      "matterNodeExpansions" : [    // ノード展開情報を指定

        // ひとつめの展開ノード
        {
          "nodeName" : "node_name_001",   // ノード名

          "processTargetConfigModel" : [    // 任意の処理対象者を指定
            {
              // 組織:サンプル課11
              "extensionPointId" : "jp.co.intra_mart.workflow.plugin.authority.node.dynamic",
              "pluginId" : "jp.co.intra_mart.workflow.plugin.authority.node.dynamic.department",
              "parameter" : "comp_sample_01^comp_sample_01^dept_sample_11"
            },
            {
              // 組織:サンプル課12
              "extensionPointId" : "jp.co.intra_mart.workflow.plugin.authority.node.dynamic",
              "pluginId" : "jp.co.intra_mart.workflow.plugin.authority.node.dynamic.department",
              "parameter" : "comp_sample_01^comp_sample_01^dept_sample_12"
            }
          ]
        },
        // ふたつめの展開ノード
        {
          "nodeName" : "node_name_002",   // ノード名

          "processTargetConfigModel" : [    // 任意の処理対象者を指定
            {
              // 組織:サンプル課21
              "extensionPointId" : "jp.co.intra_mart.workflow.plugin.authority.node.dynamic",
              "pluginId" : "jp.co.intra_mart.workflow.plugin.authority.node.dynamic.department",
              "parameter" : "comp_sample_01^comp_sample_01^dept_sample_21"
            },
            {
              // 組織:サンプル課22
              "extensionPointId" : "jp.co.intra_mart.workflow.plugin.authority.node.dynamic",
              "pluginId" : "jp.co.intra_mart.workflow.plugin.authority.node.dynamic.department",
              "parameter" : "comp_sample_01^comp_sample_01^dept_sample_22"
            }
          ]
        }
      ]
    }
  }
};
パラメータをJSON文字列に変換し、「imwNodeSetting」として標準処理画面に受け渡します。

8.9.3.1.2.3. 動作結果

標準処理画面に上述の「imwNodeSetting」パラメータを受け渡した場合、標準処理画面の「フロー設定」欄には、「横配置001」ノードが表示されません。
一方、パラメータで未指定の「横配置002」ノードは画面上に表示されます。
../../../_images/customize_guide_24_figure_5.png
申請を行います。
その結果、「横配置001」ノードの処理対象者はパラメータで指定したとおりに展開されました。
../../../_images/customize_guide_24_figure_6.png