IM-BIS アクション設定の「条件」の書き方
このCookbookでは、アクション設定の条件式の書き方を説明します。
この方法により入力値に応じてアクション設定の外部連携や入力モード変換などのイベントの実行をコントロールすることができます。
完成イメージ
サンプルでは、条件に応じて表示の切替イベントが実行されます。
[iframe width="100%" height="400" src="https://dev-portal.intra-mart.jp/imart/certification?im_user=aoyagi&im_password=aoyagi&im_tenant_id=default&im_url=im_workflow/user/apply/apply_direct/8e3rq50kjwx4t3j&imui-theme-builder-module=headwithcontainer"]
パターン1 入力値を利用した条件
- Action(String) : 入力した文字を条件として実行します。
- 文字が "hide" :item1が表示されなくなります。
- 文字が "show" :item1が表示されます。
- 文字が"show"と"hide"のいずれでもない :警告メッセージが表示されます。
- Action(Number) : 入力した整数の値を条件として実行します。負数の値の場合には何も実行されません。
- 数値が "1" :item2が表示されなくなります。
- 数値が "2" ~ "500" :item2が表示されます。
- 数値が "501" 以上 :警告メッセージが表示されます。
- Action(Date1) : 入力した日付を条件として実行します。
- 日付が過去日 :item3が表示されなくなります。
- 日付が今日または未来日 :item3が表示されます。
- Action(Date2) : Action(Date2)とAction(Date1)の日付の比較結果を条件として実行します。
- Date1の1週間後の日付 < Date2 :item4が表示されなくなります。
- Date2 <= Date1の1週間後の日付 :item4が表示されます。
パターン2 選択値を利用した条件
- Action(selectbox) : セレクトボックス等の単一の値を選択するアイテムの入力値を条件として実行します。
- "Select 1" ,"Select 3" ,"Select 5" のいずれか1つ :item5が表示されなくなります。
- "Select 2" ,"Select 4" のいずれか1つ :item5が表示されます。
- Action(checkbox) : チェックボックス等の複数の値を選択するアイテムの入力値を条件として実行します。チェックボックスの値の選択後に「Checkbox Event」ボタンを押下すると実行します。
- すべての値が未選択、またはすべて選択 :item6が表示されなくなります。
- いずれか1つの値を選択 :item6が表示されます。
パターン3 画面種類等の条件
- Condition of screen type : 表示中の画面種別を取得し、取得した画面種別を表示します。
- Condition of User's locale : ユーザのロケール情報を取得し、取得したロケールを表示します。
- Condition of client type : クライアントタイプを取得し、取得したクライアントタイプを表示します。
完成サンプル
以下のサンプルをダウンロードしてご利用ください。
- BIS一括インポート用ファイル : im_cookbook_113702_bis.zip
- BISの一括インポート機能からインポートしてください。サンプルのフローが登録されます。
- 手順の詳細は以下のドキュメントをご覧ください。
[IM-BIS システム管理者 操作ガイド] - [一括インポート・エクスポートを行う]
サンプルに含まれる定義情報は以下の表の通りです。
種類 | 定義名 | 補足説明 |
---|---|---|
BIS定義 | im_cookbook_113702 | 関連するFormaアプリケーション定義やIM-Workflowのフロー定義等の情報も含まれます。 |
上記のサンプルの利用条件は以下の通りです。
- intra-mart Accel Platform(Advanced) 2016 Summer(8.0.14), IM-BIS 2016 Summer(8.0.11)以降のバージョンであること
- サンプルデータのインポートが行われていること
サンプルは、intra-mart Accel Platform(Advanced) 2016 Summer(8.0.14), IM-BIS 2016 Summer(8.0.11)で動作確認を行っています。
レシピ
- アクション設定の条件の設定方法
- 条件に入力値を利用する方法
- 条件に選択値を利用する方法
- 条件にカレントの情報を利用する方法
1. アクション設定の条件の設定方法
初期表示イベントやアイテムイベントに設定した外部連携や表示モード変換の実行条件を設定してみましょう。
- フォーム・デザイナで作成済みのフォームを表示してください。
- 「アクション設定」をクリックしてください。
- 設定したアクションに対応する「条件設定」画面を表示してください。
- 初期表示イベントの場合、「初期表示イベント」タブの「条件」アイコンをクリックしてください。
- アイテムイベントの場合、トリガーとなるアイテムとイベントタイプの「設定」アイコンをクリックしてください。
アクション設定画面でアクションの「条件」アイコンをクリックしてください。
- テーブルイベントの場合、トリガーとなるテーブルと列とイベントタイプの「設定」アイコンをクリックしてください。
アクション設定画面でアクションの「条件」アイコンをクリックしてください。
注意:特殊イベントについては条件設定を行うことはできません。
- 初期表示イベントの場合、「初期表示イベント」タブの「条件」アイコンをクリックしてください。
詳しくは以下のドキュメントをご覧ください。
- [IM-BIS 業務管理者 操作ガイド] - [アクションを設定する]
以降の手順で、さまざまな条件式の書き方を確認しましょう。
2. 条件に入力値を利用する方法
2-1. 文字列(String)の値を利用する場合
画面アイテム「文字列」などのデータ型が文字列(String)の値を条件に利用する場合、以下の形式で条件に設定してください。
%フィールド識別ID% = "%比較対象の値%"
定義例
以下の例は「入力値が"hide"の場合」の条件です。
trigger_string = "hide"
以下の例は「入力値が"show"と"hide"のいずれでもない場合」(条件の否定)の条件です。
not(or(trigger_string = "show",trigger_string = "hide"))
2-2. 数値(Number)の値を利用する場合
画面アイテム「数値」などのデータ型が数値(Number)の値を条件に利用する場合、以下の形式で条件に設定してください。
//等しい
%フィールド識別ID% = "%比較対象の値%"
//等しくない
%フィールド識別ID% <> "%比較対象の値%"
not(%フィールド識別ID% = "%比較対象の値%")
//より大きい
%フィールド識別ID% > "%比較対象の値%"
//以上
%フィールド識別ID% >= "%比較対象の値%"
//より小さい
%フィールド識別ID% < "%比較対象の値%"
//以下
%フィールド識別ID% <= "%比較対象の値%"
数値で固定値を条件とする場合は、値を""(ダブルクォーテーション)で囲ってください。""がない場合、関数やフィールド識別IDと判断されます。
定義例
以下の例は「入力値が"1"の場合」の条件です。
trigger_number = "1"
以下の例は「入力値が"1"より大きく"500"以下である場合」の条件です。
and(trigger_number > "1",trigger_number <= "500" )
以下の例は「入力値が"500"ではない場合」の条件です。
trigger_number <> "500"
2-3. 日付(Date)の値を利用する場合
画面アイテム「日付」などのデータ型が日付(Date)の値を条件に利用する場合、以下の形式で条件に設定してください。
//他の日付型の値のアイテムの値と等しい
%フィールド識別ID% = %他のフィールド識別ID%
//関数で取得する日付型の値と等しい
%フィールド識別ID% = %関数%
固定の日付を条件に利用する場合、datevalue関数によりエポックミリ秒に変換してください。
//特定の日付以前
%フィールド識別ID% <= datevalue("%yyyy/MM/dd形式の値%", "yyyy/MM/dd")
エポックミリ秒での加減算により特定の日数以降の日付を条件に設定できます。
//○○日後の日との比較
%フィールド識別ID% >= %他のフィールド識別ID% + (86400000*%日数%)
定義例
以下の例は「入力値が今日以前の日付の場合」の条件です。
trigger_date1 <= today()
以下の例は「入力値が他の日付アイテム(trigger_date2)と同じ日付の場合」の条件です。
trigger_date1 = trigger_date2
以下の例は「入力値が"2015/12/31"以前の日付の場合」の条件です。
trigger_date2 <= datevalue( "2015/12/31", "yyyy/MM/dd" )
以下の例は「入力値が他の日付アイテム(trigger_date1)の7日後の日付より後の場合」の条件です。
trigger_date2 > trigger_date1+(86400000*7)
3. 条件に選択値を利用する方法
3-1. 単一の選択値を利用する場合(セレクトボックスなど)
画面アイテム「セレクトボックス」「ラジオボタン」の単一の選択値を条件に利用する場合、以下の形式で条件に設定してください。
比較対象の値は、該当のアイテムの「送信値」と一致させてください。
//選択値のいずれか1つの値と等しい
%フィールド識別ID% = "%比較対象の値%"
//どの値も選択されていない(未選択)
%フィールド識別ID% = ""
定義例
以下の例は「選択値が"1"の場合」の条件です。
trigger_selectbox = "1"
以下の例は「どれも値が選択されていない場合」の条件です。
trigger_selectbox = ""
3-2. 複数の選択値を利用する場合(チェックボックスなど)
画面アイテム「チェックボックス」「リストボックス」の複数の選択値を条件に利用する場合、以下の形式で条件に設定してください。
比較対象の値は、該当のアイテムの「送信値」と一致させてください。
//選択値がいずれか1つの値と等しい
%フィールド識別ID% = "%比較対象の値%"
//選択値が複数の値である
%フィールド識別ID% = "%比較対象1の値%,%比較対象2の値%"
//どの値も選択されていない(未選択)
%フィールド識別ID% = ""
定義例
以下の例は「選択値が"a"の場合」の条件です。
trigger_checkbox = "a"
以下の例は「選択値が"a"と"c"の両方である場合」の条件です。
trigger_checkbox = "a,c"
以下の例は「どれも値が選択されていない場合」の条件です。
trigger_checkbox = ""
4. 条件にカレントの情報を利用する方法
表示中の画面種別やユーザロケールなどのカレントの情報を条件に利用する場合、以下の形式で条件に設定してください。
サンプルでは、初期表示イベントの実行条件に利用しています。
アイテムイベントの条件に指定することにより承認時のみ外部連携を実行することもできます。
//画面種別を利用する
// 登録・申請 = "REGISTRATION"
// 更新・再申請 = "EDIT"
// 承認 = "POSTSCRIPT"
// 参照 = "REFERENCE"
imfr_response_type="%アプリケーションページ種別の値%"
//ユーザロケールを利用する
locale() = "%ロケールID%"
//クライアントタイプを利用する
// PC = "pc"
// スマートフォン = "sp"
imfr_display_client_type = "クライアントタイプID"
設定方法の詳細は以下のドキュメントをご覧ください。
- [IM-BIS デザイナヘルプ] - [関数]
- [IM-BIS 仕様書] - [スマートフォン] -[ スマートフォン表示/PC表示でのアクションイベントの仕様 ]
条件に利用できるパラメータの詳細は以下のドキュメントをご覧ください。
定義例
以下の例は「表示中の画面が承認の場合」の条件です。
imfr_response_type = "POSTSCRIPT"
以下の例は「ユーザロケールが英語である場合」の条件です。
locale() = "en"
以下の例は「クライアントタイプがSP(スマートフォン)である場合」の条件です。
imfr_display_client_type = "sp"