IM-FormaDesigner for Accel Platform プログラミングガイド 第16版 2023-10-01

5. 後処理

IM-FormaDesigner for Accel Platform では、アプリケーションデータの登録、更新、削除などデータの操作が行われた後に任意のプログラムを実行することができる機能を提供しています。
アプリケーションの種別を問わずデータの操作が行われたタイミング※で後処理は実行されます。
※ファイルアップロードに関する処理は後処理の実行後に行われます。
IM-Workflow の処理に合わせて後処理を実行したい場合には、 IM-Workflow のユーザプログラム機能をご利用ください。
  • 後処理が呼ばれる流れ

    • アプリケーション種別:標準の場合
    ../../_images/post_processing_flow_std.png
    1. アプリケーションのデータに対する登録、更新、削除のいずれかの処理を実行します。
    2. アプリケーションデータの登録・更新・削除処理が実行されます。
    3. 後処理プログラムの呼び出しが行われ、登録されている後処理プログラムが実行されます。
    4. ファイル関連(ファイルアップロード)の処理が実行されます。
    • アプリケーション種別:IM-Workflowの場合
    ../../_images/post_processing_flow_imw.png
    1. ワークフローの申請・再申請・承認を実行します。
      承認については、「連続処理」も後処理プログラムのトリガ操作に含まれます。
      「一括処理」・「自動処理」による承認では、アプリケーションデータの操作が実施されないため、後処理プログラムは実行されません。
      後続の IM-FormaDesigner による処理は、 IM-Workflow のアクション処理内で実行されます。
    2. アプリケーションデータの登録・更新・削除処理が実行されます。

    3. 後処理プログラムの呼び出しが行われ、登録されている後処理プログラムが実行されます。

    4. ファイル関連(ファイルアップロード)の処理が実行されます。

5.1. 後処理プログラムの実装

5.1.1. JavaEE開発モデル

JavaEE開発モデルにおいて、後処理プログラムを実装する手順を示します。

5.1.1.1. 実装規約

JavaEE開発モデルにおいて、後処理プログラムを実装する場合、下記の制約に従って実装する必要があります。

  • jp.co.intra_mart.foundation.forma.userprogram.PostProcessExecutor を継承すること

  • プログラムを実行するタイミングに合わせて以下のメソッドを実装すること

    • データの登録時

      regist(PostProcessParameter formaParam, Map<String, Object> sendParam) メソッド

    • データの更新時

      update(PostProcessParameter formaParam, Map<String, Object> sendParam) メソッド

    • データの削除時

      remove(PostProcessParameter formaParam) メソッド

    • データの一時保存時

      preserve(PostProcessParameter formaParam, Map<String, Object> sendParam) メソッド

5.1.1.2. パラメータ

各メソッドに渡されるパラメータが保持する情報は以下の通りです。
5.1.1.2.1. jp.co.intra_mart.foundation.forma.userprogram.PostProcessParameter
IM-FormaDesigner の画面の基本情報を保持するクラスです。

メソッドの概要

メソッド 説明
String getLoginUserCd() ログインユーザコードを返却します。
String getApplicationId() アプリケーションIDを返却します。
long getApplicationNo() アプリケーションバージョンNO(アプリケーション履歴番号)を返却します。
String getInsertId() データ登録IDを返却します。
ApplicationType getApplicationType()
アプリケーション種別を返却します。
アプリケーション種別は 以下の列挙型で定義されています。
jp.co.intra_mart.foundation.forma.type.ApplicationType
  • STD
    標準
  • IMW
    IM-Workflow
IM-BIS の場合、アプリケーション種別は以下の列挙型で定義されています。
jp.co.intra_mart.foundation.forma.type.BisApplicationType
  • BIS_WKF
    ワークフロー
  • BIS_BF
    BISフロー
ApplicationPageType getAppPageType()
アプリケーションページ種別を返却します。
アプリケーションページ種別は 以下の列挙型で定義されています。
jp.co.intra_mart.foundation.forma.type.ApplicationPageType
  • REGISTRATION
    登録・申請処理
  • EDIT
    更新・再申請処理
  • POSTSCRIPT
    承認処理
  • REFERENCE
    参照
  • REFERENCE_EDIT
    参照時の更新処理(IM-Workflow 時のみ)
String getProcessKey() プロセスキーを返却します。
5.1.1.2.2. sendParamマップ
画面から渡されたリクエスト情報を保持する送信パラメータMap です。
画面アイテム「明細テーブル」、「グリッドテーブル」、「スプレッドシート」のテーブルを除く入力アイテムのキーはフィールド識別ID です。
画面アイテム「明細テーブル」、「グリッドテーブル」、「スプレッドシート」のテーブルのキーはテーブル識別ID です。

アプリケーション種別がIM-Workflow の場合は、各種一覧画面から呼び出された際に受け取ることができるIM-Workflow リクエストパラメータ情報を含みます。
取得可能なIM-Workflow リクエストパラメータの詳細は「 IM-Workflow プログラミングガイド 」-「 リクエストパラメータ 」を参照してください。

アプリケーションの登録データの取得は、登録データ情報管理API を利用しても取得が可能です。
取得方法については、後述のデータの取得メソッドを参照してください。
但し、送信パラメータまたは API の取得データには、画面アイテム「ファイルアップロード」のアップロードファイル情報は含まれません。
  • 入力アイテムのデータ型と取得値の対比

    入力アイテムのデータ型と取得値は以下の通りです。

    アイテムのデータ型 取得値 該当する主なアイテム
    文字列 文字列
    • 文字列
    • 複数行文字列
    • (関数※1)
    • (一覧選択※1)
    • チェックボックス ※2
    • ラジオボタン
    • セレクトボックス
    • リストボックス ※2
    数値 数値の文字列
    • 数値
    • (関数※1)
    • (一覧選択※1)
    日付またはタイムスタンプ システムタイムゾーンにおける1970年1月1日0時0分0秒0ミリ秒からの通算ミリ秒の数値文字列
    • 日付
    • 期間
    • (関数※1)
    • (一覧選択※1)
    ※1: 画面アイテム「関数」、「一覧選択」は取得値の設定により画面アイテムのデータ型が決定します。
    ※2: 複数項目選択可能な画面アイテム(チェックボックス、リストボックス)は選択された値をカンマ区切りにして値が設定されます。
  • 画面アイテム「明細テーブル」、「グリッドテーブル」、「スプレッドシート」のテーブルの取得値

    値は1レコード(行)毎に各列のフィールド識別ID と値をマッピングした Map の List です。
    各列のデータ型は列タイプに依存します。
  • 画面アイテム表示タイプを考慮した後処理プログラム内でのデータ利用方法

    画面アイテム表示タイプが「入力可」は送信パラメータに含まれている為、上記をご利用ください。
    画面アイテム表示タイプが「参照」であるアイテムの値を利用する場合は「 IM-FormaDesigner プログラミングガイド 」-「 データの取得メソッド」を参照してください。
    ※表示タイプ「参照」は以下の問題がある為、送信パラメータに含まれません。
    ・ 実際に画面入力した値とDB登録済みの値が判断できません。
    ・ 参照の値は入力チェックを通さない為、改ざんされる可能性があります。

5.1.1.3. PC表示/スマートフォン表示で処理を分岐する

画面表示方法ごとに後処理プログラムのロジックを変更したい場合は、実行中の画面表示タイプを取得し、処理を分岐します。
  • 実行中の画面表示タイプは、sendParamマップのキー imfr_display_client_typeから取得可能です。

    • PC表示
      • imfr_display_client_typeの値はpcです。
    • スマートフォン表示
      • imfr_display_client_typeの値はspです。

5.1.1.4. 返却値とエラー処理

返却値はありません。
処理中にエラーが発生した場合は、 Exception を throw してください。
処理中にエラーが発生した場合に画面に任意のメッセージを表示したい場合は、FormaUserProcessException を throw してください。
エラーが発生した場合は、処理を中断しエラー発生以前に行われたすべての処理がロールバックされます。
5.1.1.4.1. jp.co.intra_mart.foundation.forma.exception.FormaUserProcessException
ユーザプログラム実行時例外クラスです。

主なメソッドの概要

メソッド 説明
void setUserMessageId(final String userMessageId) 画面に表示するメッセージIDを指定します。
void setUserMessage(final String userMessage) 画面に表示するメッセージを指定します。userMessageIdが設定されている場合は、userMessageIdが適用されます。
void setOutputLog(final boolean isOutputLog) ログ出力フラグを設定します。省略した場合はtrue(出力する)です。

5.1.1.5. トランザクションの制御

後処理プログラムはトランザクション内で実行されるため、このプログラム中では DB トランザクション制御を行うことはできません。
実行プログラム中においてトランザクションのコミット、ロールバック等は行わないでください。

5.1.1.6. 実装例

 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
53
54
55
56
57
58
public class SamplePostProcess extends PostProcessExecutor{

    /**
     * 登録処理を行った場合に実行されます。<BR>
     *
     *  @param formaParam フォルマパラメータ
     *  @param sendParam 送信パラメータ
     *  @throws Exception 例外が発生
     */
    public void regist(PostProcessParameter formaParam, Map<String, Object> sendParam) throws Exception {
        System.out.println("************** JAVAEE 開発:登録後処理サンプルプログラム ****************");
        // ここに登録処理後に実行する処理を記述します。

        // エラー発生時に画面に表示するメッセージを指定する場合は、FormaUserProcessException をthrowします。
        if (XXXX) {
            final FormaUserProcessException error = new FormaUserProcessException(new XXXXException());
            error.setUserMessage("----  画面に表示したいメッセージ----");
            // error.setOutputLog(false);
            throw error;
        }
    }

    /**
     * 更新処理を行った場合に実行されます。<BR>
     *
     *
     * @param formaParam フォルマパラメータ
     * @param sendParam 送信パラメータ
     * @throws Exception 例外が発生
     */
    public void update(PostProcessParameter formaParam, Map<String, Object> sendParam) throws Exception {
        System.out.println("************** JAVAEE 開発:更新後処理サンプルプログラム****************");
        // ここに更新処理後に実行する処理を記述します。
    }

    /**
     * 削除処理を行った場合に実行されます。<BR>
     *
     * @param formaParam フォルマパラメータ
     * @throws Exception 例外が発生
     */
    public void remove(PostProcessParameter formaParam) throws Exception {
        System.out.println("************** JAVAEE 開発:削除後処理サンプルプログラム****************");
        // ここに削除処理後に実行する処理を記述します。
    }

    /**
     * 一時保存処理を行った場合に実行されます。<BR>
     * 
     * @param formaParam フォルマパラメータ
     * @param sendParam 送信パラメータ
     * @throws Exception 例外が発生
     */
    public void preserve(PostProcessParameter formaParam, Map<String, Object> sendParam) throws Exception {
        System.out.println("************** JAVAEE 開発:一時保存後処理サンプルプログラム****************");
        // ここに一時保存処理後に実行する処理を記述します。
    }
}

5.1.2. スクリプト開発モデル

スクリプト開発モデルにおいて、後処理プログラムを実装する手順を示します。

5.1.2.1. 実装規約

スクリプト開発モデルにおいて、後処理プログラムを実装する場合、下記の制約に従って実装する必要があります。

  • プログラムを実行するタイミングに合わせて以下のメソッドを実装すること

    • データの登録時

      regist(formaParam, sendParam)メソッド

    • データの更新時

      update(formaParam, sendParam) メソッド

    • データの削除時

      remove(formaParam) メソッド

    • データの一時保存時

      preserve(formaParam, sendParam) メソッド

5.1.2.2. パラメータ

5.1.2.2.1. formaParamオブジェクト

IM-FormaDesigner の画面の基本情報を保持します。

項目 説明
loginUserCd(String) ログインユーザコード
applicationId(String) アプリケーションID
applicationNo(Number) アプリケーションバージョンNO(アプリケーション履歴番号)
insertId(String) データ登録ID
applicationType(String)
アプリケーション種別
アプリケーション種別は FRApplicationManager オブジェクトに定義されています。
  • APPLICATION_TYPE_STD
    標準
  • APPLICATION_TYPE_IMW
    IM-Workflow
IM-BIS の場合、アプリケーション種別は BisApplication オブジェクトに定義されています。
  • BIS_APPLICATION_TYPE_WORKFLOW
    ワークフロー
  • BIS_APPLICATION_TYPE_BUSINESSFLOW
    BISフロー
appPageType(String)
アプリケーションページ種別
アプリケーションページ種別は FRApplicationPageInfo オブジェクトに定義されています。
  • REGISTRATION
    登録・申請処理
  • EDIT
    更新・再申請処理
  • POSTSCRIPT
    承認処理
  • REFERENCE
    参照
  • REFERENCE_EDIT
    参照時の更新処理(IM-Workflow 時のみ)
processKey(String) プロセスキー
5.1.2.2.2. sendParamオブジェクト
画面から渡されたリクエスト情報を保持する送信パラメータオブジェクトです。
画面アイテム「明細テーブル」、「グリッドテーブル」、「スプレッドシート」のテーブルを除く入力アイテムのパラメータ名はフィールド識別ID です。
画面アイテム「明細テーブル」、「グリッドテーブル」、「スプレッドシート」のテーブルのパラメータ名はテーブル識別ID です。

アプリケーション種別がIM-Workflow の場合は、各種一覧画面から呼び出された際に受け取ることができるIM-Workflow リクエストパラメータ情報を含みます。
取得可能なIM-Workflow リクエストパラメータの詳細は「 IM-Workflow プログラミングガイド 」-「 リクエストパラメータ 」を参照してください。

アプリケーションの登録データの取得は、登録データ情報管理API を利用しても取得が可能です。
取得方法については、後述のデータの取得メソッドを参照してください。
但し、送信パラメータまたは API の取得データには、画面アイテム「ファイルアップロード」のアップロードファイル情報は含まれません。
  • 入力アイテムのデータ型と取得値の対比

    入力アイテムのデータ型により取得値は以下のように設定されています。

    アイテムのデータ型 取得値 該当する主なアイテム
    文字列 文字列
    • 文字列
    • 複数行文字列
    • (関数※1)
    • (一覧選択※1)
    • チェックボックス ※2
    • ラジオボタン
    • セレクトボックス
    • リストボックス ※2
    数値 数値の文字列
    • 数値
    • (関数※1)
    • (一覧選択※1)
    日付またはタイムスタンプ システムタイムゾーンにおける1970年1月1日0時0分0秒0ミリ秒からの通算ミリ秒の数値文字列
    • 日付
    • 期間
    • (関数※1)
    • (一覧選択※1)
    ※1: 画面アイテム「関数」、「一覧選択」は取得値の設定により画面アイテムのデータ型が決定します。
    ※2: 複数項目選択可能な画面アイテム(チェックボックス、リストボックス)は選択された値をカンマ区切りにして値が設定されます。
  • 画面アイテム「明細テーブル」、「グリッドテーブル」、「スプレッドシート」のテーブルの取得値

    値は1レコード(行)毎に各列のフィールド識別ID と値をマッピングしたオブジェクトの配列です。
    各列のデータ型は列タイプに依存します。
  • 画面アイテム表示タイプを考慮した後処理プログラム内でのデータ利用方法

    画面アイテム表示タイプが「入力可」は送信パラメータに含まれている為、上記をご利用ください。
    画面アイテム表示タイプが「参照」であるアイテムの値を利用する場合は「 IM-FormaDesigner プログラミングガイド 」-「 データの取得メソッド」を参照してください。
    ※表示タイプ「参照」は以下の問題がある為、送信パラメータに含まれません。
    ・ 実際に画面入力した値とDB登録済みの値が判断できません。
    ・ 参照の値は入力チェックを通さない為、改ざんされる可能性があります。

5.1.2.3. PC表示/スマートフォン表示で処理を分岐する

画面表示方法ごとに後処理プログラムのロジックを変更したい場合は、実行中の画面表示タイプを取得し、処理を分岐します。
  • 実行中の画面表示タイプは、sendParamオブジェクトのキー imfr_display_client_typeから取得可能です。

    • PC表示
      • imfr_display_client_typeの値はpcです。
    • スマートフォン表示
      • imfr_display_client_typeの値はspです。

5.1.2.4. 返却値とエラー処理

返却オブジェクト
  ├ error : エラーフラグ  処理に失敗した場合は true 、成功した場合はfalse
  ├ errorMessage : エラーメッセージ(※設定したメッセージはエラーログに出力されます。)
  ├ userErrorMessageId : 後処理プログラム実行中のエラー発生時に画面に表示するメッセージのID
  ├ userErrorMessage : 後処理プログラム実行中のエラー発生時に画面に表示するメッセージ(※userErrorMessageIdに設定がある場合はuserErrorMessageIdが適用されます。)
  └ outputLog : ログ出力有無フラグ ユーザプログラム実行中にエラーが発生した際のログ出力有無を設定します。 省略した場合はtrue(出力する)です。
エラー発生時には返却オブジェクトのエラーフラグを true にしてエラーメッセージを設定してください。
エラーフラグが true の場合は、処理を中断しエラー発生以前に行われたすべての処理がロールバックされます。
トランザクションの制御
後処理プログラムはトランザクション内で実行されるため、このプログラム中では DB トランザクション制御を行うことはできません。
実行プログラム中においてトランザクションのコミット、ロールバック等は行わないでください。

5.1.2.5. 実装例

 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
// 登録
function regist(formaParam, sendParam) {
    Debug.print('************** スクリプト開発:登録後処理サンプルプログラム ****************');
    // ここに登録処理後に実行する処理を記述します。
    return {
        'error' : false
    };
    // エラーが発生した場合
    // return {'error' : true, 'errorMessage' :'エラーメッセージ'};
    // エラー発生時に画面に表示するメッセージを指定する場合
    // return {'error' : true, 'userErrorMessage' :'----  画面に表示したいメッセージ----'};
}

// 更新
function update(formaParam, sendParam) {
    Debug.print('************** スクリプト開発:更新後処理サンプルプログラム ****************');
    // ここに更新処理後に実行する処理を記述します。
    return {
        'error' : false
    };
}

// 削除
function remove(formaParam) {
    Debug.print('************** スクリプト開発:削除後処理サンプルプログラム ****************');
    // ここに削除処理後に実行する処理を記述します。
    return {
        'error' : false
    };
}

// 一時保存
function preserve(formaParam, sendParam) {
    Debug.print('************** スクリプト開発:一時保存後処理サンプルプログラム ****************');
    // ここに一時保存処理後に実行する処理を記述します。
    return {
        'error' : false
    };
}

5.1.3. ロジックフロー

ロジックフローにおいて、後処理プログラムを実装する手順を示します。

IM-LogicDesignerの操作方法につきましては「IM-LogicDesigner ユーザ操作ガイド」を参照してください。

5.1.3.1. 入力値

ロジックフローの入力値に渡される入力パラメータ情報です。
executeProcessType <string>
postProcessParameter <object>
 ├─ loginUserCd <string>
 ├─ applicationId <string>
 ├─ applicationNo <long>
 ├─ insertId <string>
 ├─ applicationType <string>
 ├─ appPageType <string>
 └─ processKey <string>
sendParam <object>
postProcessWorkflowParameter <object>
 ├─ imwApplyBaseDate <string>
 ├─ imwArriveType <string>
 ├─ imwAuthUserCode <string>
 ├─ imwCallOriginalPagePath <string>
 ├─ imwCallOriginalParams <string>
 ├─ imwContentsId <string>
 ├─ imwContentsVersionId <string>
 ├─ imwFlowId <string>
 ├─ imwFlowVersionId <string>
 ├─ imwNodeId <string>
 ├─ imwPageType <string>
 ├─ imwRouteId <string>
 ├─ imwRouteVersionId <string>
 ├─ imwSerialProcParams <string>
 ├─ imwSystemMatterId <string>
 ├─ imwUserCode <string>
 └─ imwUserDataId <string>
imbpmExecutionInfo <object>
 ├─ id <string>
 ├─ processInstanceId <string>
 ├─ businessKey <string>
 ├─ processDefinitionId <string>
 ├─ superExecutionId <string>
 ├─ currentActivityId <string>
 ├─ currentActivityName <string>
 ├─ variablesLocal <object>
 └─ variables <object>
入力値 説明
executeProcessType<string> executeProcessType を参照
postProcessParameter<object> postProcessParameterオブジェクト を参照
sendParam<object> sendParamオブジェクト を参照
postProcessWorkflowParameter<object> postProcessWorkflowParameterオブジェクト を参照
imbpmExecutionInfo<object> imbpmExecutionInfoオブジェクト を参照

コラム

IM-LogicDesignerの「ロジックフロー定義編集」入出力設定では、JSON入力機能により以下のJSON文字列を取り込むことができます。
{
  "executeProcessType": "",
  "postProcessParameter": {
    "loginUserCd": "",
    "applicationId": "",
    "applicationNo": 0,
    "insertId": "",
    "applicationType": "",
    "appPageType": "",
    "processKey": ""
  },
  "sendParam": {},
  "postProcessWorkflowParameter": {
    "imwApplyBaseDate": "",
    "imwArriveType": "",
    "imwAuthUserCode": "",
    "imwCallOriginalPagePath": "",
    "imwCallOriginalParams": "",
    "imwContentsId": "",
    "imwContentsVersionId": "",
    "imwFlowId": "",
    "imwFlowVersionId": "",
    "imwNodeId": "",
    "imwPageType": "",
    "imwRouteId": "",
    "imwRouteVersionId": "",
    "imwSerialProcParams": "",
    "imwSystemMatterId": "",
    "imwUserCode": "",
    "imwUserDataId": ""
  },
  "imbpmExecutionInfo": {
    "id": "",
    "processInstanceId": "",
    "businessKey": "",
    "processDefinitionId": "",
    "superExecutionId": "",
    "currentActivityId": "",
    "currentActivityName": "",
    "variablesLocal": {},
    "variables": {}
  }
}
5.1.3.1.1. executeProcessType
アプリケーション実行種別を保持します。
プログラムを実行するタイミングに合わせて以下の値が取得可能です。
  • regist
    データの登録時
  • update
    データの更新時
  • remove
    データの削除時
  • preserve
    データの一時保存時
5.1.3.1.2. postProcessParameterオブジェクト

IM-FormaDesigner の画面の基本情報を保持します。

項目 説明
loginUserCd<string> ログインユーザコード
applicationId<string> アプリケーションID
applicationNo<long> アプリケーションバージョンNO(アプリケーション履歴番号)
insertId<string> データ登録ID
applicationType<string>
アプリケーション種別
  • std
    標準
  • imw
    IM-Workflow
IM-BIS の場合
  • bis_wkf
    ワークフロー
  • bis_bf
    BISフロー
appPageType<string>
アプリケーションページ種別
  • REGISTRATION
    登録・申請処理
  • EDIT
    更新・再申請処理
  • POSTSCRIPT
    承認処理
  • REFERENCE
    参照
  • REFERENCE_EDIT
    参照時の更新処理(IM-Workflow 時のみ)
processKey<string> プロセスキー
5.1.3.1.3. sendParamオブジェクト
画面から渡されたリクエスト情報を保持する送信パラメータオブジェクトです。
画面アイテム「明細テーブル」、「グリッドテーブル」、「スプレッドシート」のテーブルを除く入力アイテムのパラメータ名はフィールド識別ID です。
画面アイテム「明細テーブル」、「グリッドテーブル」、「スプレッドシート」のテーブルのパラメータ名はテーブル識別ID です。

画面アイテム「ファイルアップロード」のアップロードファイル情報は含まれません。
  • 入力アイテムのデータ型と取得値の対比

    入力アイテムのデータ型により取得値は以下のように設定されています。

    アイテムのデータ型 取得値 該当する主なアイテム
    文字列 <string>
    • 文字列
    • 複数行文字列
    • (関数※1)
    • (一覧選択※1)
    • チェックボックス ※2
    • ラジオボタン
    • セレクトボックス
    • リストボックス ※2
    数値 数値の <string>
    • 数値
    • (関数※1)
    • (一覧選択※1)
    日付またはタイムスタンプ システムタイムゾーンにおける1970年1月1日0時0分0秒0ミリ秒からの通算ミリ秒の数値の <string>
    • 日付
    • 期間
    • (関数※1)
    • (一覧選択※1)
    ※1: 画面アイテム「関数」、「一覧選択」は取得値の設定により画面アイテムのデータ型が決定します。
    ※2: 複数項目選択可能な画面アイテム(チェックボックス、リストボックス)は選択された値をカンマ区切りにして値が設定されます。
  • 画面アイテム「明細テーブル」、「グリッドテーブル」、「スプレッドシート」のテーブルの取得値

    値は1レコード(行)毎に各列のフィールド識別ID と値をマッピングした <object[]> です。
    各列のデータ型は列タイプに依存します。
  • 画面アイテム表示タイプを考慮した後処理プログラム内でのデータ利用方法

    画面アイテム表示タイプが「入力可」は送信パラメータに含まれている為、上記をご利用ください。
    ※表示タイプ「参照」は以下の問題がある為、送信パラメータに含まれません。
    ・ 実際に画面入力した値とDB登録済みの値が判断できません。
    ・ 参照の値は入力チェックを通さない為、改ざんされる可能性があります。

PC表示/スマートフォン表示で処理を分岐する

画面表示方法ごとに後処理プログラムのロジックを変更したい場合は、実行中の画面表示タイプを取得し、処理を分岐します。
  • 実行中の画面表示タイプは、sendParamオブジェクトのキー imfr_display_client_typeから取得可能です。

    • PC表示
      • imfr_display_client_typeの値はpcです。
    • スマートフォン表示
      • imfr_display_client_typeの値はspです。
5.1.3.1.4. postProcessWorkflowParameterオブジェクト
ワークフローに関するパラメータを保持します。
アプリケーション種別がIM-Workflow の場合は、各種一覧画面から呼び出された際に受け取ることができるIM-Workflow リクエストパラメータ情報が利用できます。

各画面で取得が可能なIM-Workflow リクエストパラメータの詳細は「 IM-Workflow プログラミングガイド 」-「 リクエストパラメータ 」を参照してください。
入力値 説明
imwApplyBaseDate<string> 申請基準日
imwArriveType<string> 到達種別
imwAuthUserCode<string> 権限者コード
imwCallOriginalPagePath<string> 呼び出し元ページパス
imwCallOriginalParams<string> 呼び出し元パラメータ
imwContentsId<string> コンテンツID
imwContentsVersionId<string> コンテンツバージョンID
imwFlowId<string> フローID
imwFlowVersionId<string> フローバージョンID
imwNodeId<string> ノードID
imwPageType<string> 画面種別
imwRouteId<string> ルートID
imwRouteVersionId<string> ルートバージョンID
imwSerialProcParams<string> 連続処理パラメータ
imwSystemMatterId<string> システム案件ID
imwUserCode<string> 処理者コード
imwUserDataId<string> ユーザデータID
5.1.3.1.5. imbpmExecutionInfoオブジェクト
案件の連携元タスクのエグゼキューション情報を保持します。
IM-BPM for Accel Platformの申請タスクまたは起票タスクからIM-Workflowが実行された場合利用できます。

詳細については、「IM-BPM プロセスデザイナ 操作ガイド」 - 「申請タスク」または 「起票タスク」を参照してください。
入力値 説明
id<string> エグゼキューションID
processInstanceId<string> プロセスインスタンスID
businessKey<string> 業務キー
processDefinitionId<string> プロセス定義ID
superExecutionId<string> 親プロセスのエグゼキューションID
currentActivityId<string> タスクのアクティビティID
currentActivityName<string> タスクのアクティビティ名
variablesLocal<object>
変数(スコープがエグゼキューションであるもの)
・ 変数名をキー、変数値を値として持つ object です。
variables<object>
変数(スコープがプロセスインスタンスであるもの)
・ 変数名をキー、変数値を値として持つ object です。

5.1.3.2. 出力値

ロジックフローの出力値に設定する情報です。
error <boolean>
errorMessage <string>
userErrorMessage <string>
localizedUserErrorMessages <object>
 ├─ ja <string>
 ├─ en <string>
 └─ zh_CN <string>
outputLog <boolean>
5.1.3.2.1. 説明

処理エラー時の動作

  • 処理中にエラーが発生した場合は error<boolean>true を設定してください。

  • エラーフラグが true の場合は、画面上部にエラーメッセージを表示します。
    • 画面に表示するエラーメッセージの設定がなかった場合は、デフォルトのエラーメッセージが表示されます。
    • 例外ログの出力有無は outputLog<boolean> で設定できます。
5.1.3.2.2. プロパティ
出力値 必須/任意 説明
error<boolean> 必須
エラーフラグ
true を設定した場合、当処理をエラー終了します。
処理が正常に終了した場合は false を設定してください。
errorMessage<string> 任意
設定したメッセージを例外ログとして出力します。
userErrorMessage<string> 任意
設定したメッセージを画面に表示します。
ロケールごとにメッセージを用意する必要がなければこのプロパティを利用してください。
このプロパティを省略した場合、画面にはデフォルトのエラーメッセージが表示されます。
localizedUserErrorMessages<object> 任意
設定したメッセージをロケールに従って画面に表示します。
アカウントコンテキストから解決されたロケールに一致するメッセージを使用します。
userErrorMessage が設定されている場合はこのプロパティは使用されません。
- ja<string> 任意 日本語ロケールメッセージ
- en<string> 任意 英語ロケールメッセージ
- zh_CN<string> 任意 中国語ロケールメッセージ
outputLog<boolean> 任意
ログ出力有無フラグ
ユーザプログラム実行中にエラーが発生した際のログ出力有無を設定します。
このプロパティを省略した場合はログが出力されます。

コラム

IM-LogicDesignerの「ロジックフロー定義編集」入出力設定では、JSON入力機能により以下のJSON文字列を取り込むことができます。
{
  "error": false,
  "errorMessage": "",
  "userErrorMessage": "",
  "localizedUserErrorMessages": {
    "ja": "",
    "en": "",
    "zh_CN": ""
  },
  "outputLog": true
}