intra-mart Accel Platform IM-Workflow 仕様書 第38版 2024-10-01

6. コピー新規の実装方法

コピー新規は当該案件のデータを複製して、新たに申請することを目的とした機能です。 2019 Winter(Xanadu) から追加されました。
ここでは IM-BloomMaker を使用したコンテンツ画面に対して、 IM-LogicDesigner を使用した前処理の実装方法を説明します。
説明に使用している資材は「BloomMakerでワークフロー処理モーダルを利用してWorkflowコンテンツを作成する」をもとに作成しています。

6.1. コピー新規の実装方法

コピー新規はコンテンツ画面の作成方法によって実装方法が異なります。
  • スクラッチ開発の場合
    IM-Workflow プログラミングガイド 」 - 「 IM-Workflow 画面 」 を参照してください。
  • IM-FormaDesigner for Accel Platform 、 IM-BIS for Accel Platform の場合
    開発者や管理者が実装、設定を行う必要はありません。
  • IM-BloomMaker の場合
    前処理で実装します。

6.2. IM-BloomMaker のコピー新規の実装方法

IM-BloomMaker でコンテンツ画面を作成した場合は、前処理でコピー新規を実装する必要があります。
前処理は3つの実装方法があります。
  • Javaの前処理クラスを実装する。
  • JavaScript(スクリプト開発モデル)の前処理スクリプトを実装する。
  • IM-LogicDesigner のフローを定義する。

6.3. IM-LogicDesigner を使用した前処理の実装手順

説明に使用している資材では、前処理でユーザの入力値を設定しています。
ここでは上記の処理に追加して、コピー新規アイコン押下時に、コピー元案件の入力値を申請画面の初期値として設定する方法を説明します。
  • コピー新規アイコン押下時
    申請画面の入力系エレメントにコピー案件元の入力値をセットする。
  • コピー新規アイコン以外からの申請
    申請画面の入力系エレメントには何もセットしない。
  • 申請済み案件を選択時
    案件の入力値を承認・再申請画面等にセットする。

6.3.1. 入出力設定

コピー新規機能による申請画面への遷移時にはリクエストパラメータとして「imwOriginalUserDataId」が連携されるため、 IM-LogicDesigner の入出力設定の入力で「imwOriginalUserDataId」を取得します。
参照権限がないユーザに画面の内容を閲覧されてしまう可能性があるため、「 ユーザコンテンツの権限チェック 」として、参照権限判定タスクを設定します。参照権限判定を行う際に使用する処理者のユーザコード「imwUserCode」は入出力設定の入力で取得します。
入力 パラメータ名 詳細
imwOriginalUserDataID 対象案件のユーザデータID コピー新規による申請画面への遷移時に連携されるパラメータです。
imwUserCode 処理者CD(ログインユーザ本人のユーザコード) 参照権限判定タスクの際にユーザコードを使用します。
imwUserDataId ユーザデータID 案件データをデータベースから取得する際に使用します。
入出力設定の入力値と出力値は以下を参考にして設定をしてください。
../../../_images/copyNew_1.png

6.3.2. 変数の定義

対象案件のユーザデータIDを格納する変数です。
以下の変数を定義してください。
../../../_images/copyNew_2.png

6.3.3. タスクの配置

以下の画像を参照してタスクを配置してください。
  • ①~④のタスクはコピー新規アイコン押下時の処理です。
  • ⑤のタスクはコピー新規アイコン以外からの申請と申請済み案件を選択時の処理です。
    ../../../_images/copyNew_3.png

6.3.4. タスクの詳細設定

  1. 「参照権限判定」タスクのマッピング設定と判定範囲を設定します。
参照権限がないユーザに画面の内容を閲覧されてしまう可能性があるため、参照権限判定タスクを設定します。
  • 判定範囲を「いずれか」に設定してください。

  • マッピング設定は以下を参考にして設定してください。

    ../../../_images/copyNew_4.png
  1. 「分岐」タスクの条件式(EL式)を設定します。
  • 申請画面への遷移時に「imwOriginalUserDataID」が連携されているか判定する条件式です。

  • コピー新規が実行された場合はtrueに分岐されるように設定します。

    ${!isEmpty($input.request.imwOriginalUserDataId)}
    
  1. 「分岐」タスクの条件式(EL式)を設定します。
  • 参照権限判定の判定結果をもとに分岐条件を設定します。

  • 「タスク固有の設定」-「条件式(EL式)」に下記の条件式を設定してください。

    ${im_bisCheckReferenceAuthority1==true}
    
  1. 「変数操作」のマッピング設定をします。
  • マッピング設定は以下の画像を参考にして設定してください。

    ../../../_images/copyNew_5.png
  1. 「変数操作」のマッピング設定をします。
  • マッピング設定は以下の画像を参考にして設定してください。

    ../../../_images/copyNew_6.png
  1. ユーザ定義(SQL)のユーザ定義設定とマッピング設定をします。
  1. ユーザ定義設定で申請画面に表示する各種データを取得します。
  • マッピング設定は以下の画像を参考にして設定してください。
../../../_images/copyNew_7.png
  1. userDataIdを用いて申請画面に表示するデータを取得します。
  • コピー新規を押下時にコンテンツ画面に表示するデータが格納されているデータベースから、データを取得するクエリを記述します。

  • 入力値には変数「userDataId」を設定します。設定値は以下の画像を参考に設定してください。

    ../../../_images/copyNew_8.png
  • ここでは以下のSQLを参考にしてクエリを作成してください。

    SELECT
      *
    FROM
      sample_imw_t_purchase
    WHERE
      user_data_id = /*userDataId*/'dummyId'
    ORDER BY user_data_id ASC
    
  1. 「終了」のマッピング設定をします。
  • ここではコンテンツ画面に連携するデータを選択します。

  • 以下の画像を参考にして設定してください。

    ../../../_images/copyNew_9.png

6.3.5. 前処理の登録

ここでは IM-BloomMaker ルーティング定義から作成したフロー定義を選択する方法を説明します。
詳細な前処理の登録方法に関しては「 IM-LogicDesigner のフロー定義による前処理の実装 」を参照してください。
  1. 「サイトマップ」→「BloomMaker」→「ルーティング定義一覧」から、前処理を実装したいルーティング定義を選択します。
  2. 「前処理」タブ→「追加」をクリックします。
  3. 以下の画像を参考にして前処理を登録してください。
../../../_images/copyNew_10.png

6.4. コンテンツ画面の設定

コンテンツ画面では前処理から連携されたデータを取得する必要があります。
詳細なコンテンツ画面への設定方法に関しては「 前処理のコンテツ作成 」を参照してください。
今回は以下のコンテンツ画面に前処理から連携されたデータを表示します。
../../../_images/copyNew_11.png
前処理から連携されたデータを取得するために「入力」に、 IM-LogicDesigner の「終了」タスクで連携した変数名を設定します。
../../../_images/copyNew_12.png
「入力」で取得したデータを変数に格納をします。
../../../_images/copyNew_13.png
「ラベル」の「value」に上記で取得した変数を指定します。
他の項目も同様に変数を指定します。
../../../_images/copyNew_14.png