フォーム操作をきっかけに実行される業務ロジックを作成する
「アクション設 定」を利用して、Webデータベースのフォーム画面に対する操作(クリックや入力など)をきっかけに実行される業務ロジックを作成する方法を解説します。
図:フォーム操作をきっかけに業務ロジックを実行する
「Accel-Mart Quick アプリケーション管理者」ロールを持つユーザで実施してください。
利用シーン
アクション設定で業務ロジックを利用すると、以下のようなことが実現できます。
- フォーム項目に入力された値を元にロジックを実行し、結果を別のフォーム項目に反映する
- Excelファイルを読み込ん で、内容をフォームに反映する
- フォーム上のテーブルデータをCSVファイルとしてダウンロードする
- 外部システムから情報を取得して、フォームに反映する
アクション設定では、業務ロジック以外に「入力モード変換」・「表示モード変換」・「カスタムスクリプト」・「PDF出力(登録済みデータ)」・「PDF出力(表示中の画面データ)」が利用できます。
入力モード変換・表示モード変換を利用するとフォーム項目を特定条件下で入力不可、または、非表示に設定できます。
表示モード変換を利用する例は、以下のチュートリアルを参照してください。
概要
このチュートリアルでは、日付を選択するとシステムのカレンダーを参照してその日付が営業日かどうかを判定し、結果を「判定結果」の項目 に反映するフォームを作成します。
システムのカレンダーと休日・営業日について、詳しくは「カレンダー設定」を参照してください。
完成イメージ
以下の動画から、作成の流れと完成したフォームの動作をご覧いただけます。
フォームの「日付」の項目で任意の日付を選択した後、フォーカスアウトすると、「判定結果」の項目に「選択した日付は営業日/休日です。」と表示されます。
動画内の以下の部分はチュートリアルの設定と異なりますので、ご留意ください。
- フォームアイテムのフィールド識別ID
また、動画では以下の手順が省略されています。
- フォームの作成
- アイテムイベントの追加(動画では設定済みのアイテムイベントを編集しています)
- 業務ロジックの定数の設定
完成サンプル
以下の完成サンプルをダウンロードしてご活用ください。
ダウンロードしたファイルはメニュー「管理」-「ノーコード開発」- 「Webデータベース一覧」からインポートしてください。
詳細なインポート手順は「作成したWebデータベースを別環境に移行する(インポート・エクスポート) - Webデータベースをインポートする」を参照してください。
イン ポート後、以下のURLからフォームの画面にアクセスできます。
https://(ホスト名).accel-mart.com/imart/forma/normal/view/regist_application_view/tutorial_action_logic
インポートしたWebデータベースは、カテゴリ「サンプル」配下に「【チュートリアル】休日判定」というアプリケーション名で追加されます。
メニューの「管理」→「ノーコード開発」→「Webデータベース一覧」から編集が可能です。
Webデータベースのフォームを作成する
業務ロジックを設定するWebデータベースをのフォームを作成します。
フォーム編集画面で実施する操作の説明は簡易的に記載しています。詳細な操作手順は「Webデータベースを作成する」を参照してください。
-
メニューの「管理」→「ノーコード開発」→「Webデータベース作成」から、「アプリケーション登録」画面を表示します。
-
アプリケーションID・アプリケーション名を以下のように入力して登録します。
- アプリケーションID:tutorial_action_logic
- アプリケーション名:【チュートリアル】休日判定
-
フォーム編集画面が表示されます。
-
ツールキットから「ラベル」・「日付」・「文字列」のアイテムを配置します。
-
「ラベル」の内容、および、「文字列」のラベルを画像の通りに設定します。
-
「日付」のプロパティを以下のように設定します。
タブ 項目名 設定内容 詳細設定 フィールド識別ID input_date -
「文字列」のプロパティを以下のように設定します。
タブ 項目名 設定内容 詳細設定 フィールド識別ID result フィールド識別名 判定結果 フィールド幅 400 -
以上でフォームの作成は完了です。
- メニューの「管理」→「ノーコード開発」→「Webデータベース一覧」から対象のWebデータベースの「編集」アイコンをクリックします。
- 「アプリケーション履歴一覧」の「編集」アイコンをクリックします。
- 「フォーム一覧」で「フォーム編集」アイコンをクリックすると、フォーム編集画面を表示できます。
アクション設定(業務ロジック)を追加する
作成したフォームに対して、アクション設定を追加しま す。アクション設定は、以下の3種類の操作(イベント)に対して行えます。
- 初期表示イベント
- 画面の初期表示時に実行されます。
- アイテムイベント
- 画面上のアイテムに対する操作(クリック・入力など)が発生した際に実行されます。
- テーブルイベント
- 画面上のテーブルの指定した列に対する操作(クリック・入力など)が発生した際に実行されます。
このチュートリアルでは、「アイテムイベント」を利用し、「日付」アイテムを入力した際に業務ロジックを実行するようにします。
-
ツールバーの「アクション設定」をクリックし、「イベント設定」ダイアログを表示します。
-
「アイテムイベント」のタブを選択します。
-
「追加」をクリックします。
-
「アイテム」のプルダウンで、どの画面アイテムに対してアクションを設定するかを選択します。今回は「日付 | input_date」を選択します。
-
「イベントタイプ」のプルダウンでイベントの種類を選択します。今回は「入力」を選択します。
イベントタイプそれぞれのイベントの説明は以下の通りです。
イベントタイプ 説明 フォーカスイン 入力欄をクリックした際や、Tabキー・Enterキーによってフォーカスを合わせた際に処理を実行します。 クリック 入力欄、ボタン、アイコンをクリックした際に処理を実行します。ただし、フォーカスが当たった状態でのタップ操作時には処理は実行されません。 入力 入力欄に値を入力して、フォーカスが外れた際に処理を実行します。 フォーカスアウト 画面上の別の場所をクリックした際や、Tabキー・Enterキーによってフォーカスが外れた場合に処理を実行します。 -
「設定」列のアイコンをクリックし、 「アクション設定」ダイアログを表示します。
-
「追加」をクリックします。
-
「アクション」のプルダウンで「業務ロジック」を選択し、「設定」列のアイコンをクリックします。
-
フォーム情報を保存するかの確認ダイアログが表示されます。「決定」をクリックしてフォームを保存します。
-
業務ロジックのひな形が生成され、「ロジックフロー定義編集」画面が表示されます。
備考作成される業務ロジックには必要な入出力値が初期設定されています。設定されている内容の詳細は「アクション設定(Web データベース)」を参照してください。
-
これで、アクション設定の追加は完了です。この後は、業務ロジックの処理内容を実装していきます。
業務ロジックを作成する
フォームの「日付」の項目に入力された日付を受け取って、営業日の判定を行う業務ロジックを作成します。
定数を追加する
フォーム画面に返却する判定結果の文字列を定数として登録します。
-
ツールバーの「定数設定」をクリックします。
-
「定数設定」ダイアログが表示されます。「定数を追加」をクリックします。
-
下記の定数を追加します。
定数ID 定数値 説明 isHoliday 選択された日付は休日です。
休日が選択された場合に画面に表示される文字列です。 isWeekday 選択された日 付は営業日です。
営業日が選択された場合に画面に表示される文字列です。
タスクを配置する
業務ロジックで使用するタスクを配置します。タスクを以下の図のようにつなぎ合わせてください。
使用するタスクは以下の通りです。
- 基盤機能 > 休日判定
- 基本 > 分岐
- 基本 > 終了 (1つは予め配置されていますが、追加で配置します。)
タスクを配置する詳しい操作方法は「エレメントを配置する 」 を参照してください。
タスクのマッピング・分岐の条件設定をする
各タスクに入力値として渡す値を設定するため、マッピング設定をします。また、分岐タスクの分岐条件も設定します。
マッピング設定の詳しい操作方法は「マッピング設定を行う」を参照してください。
-
フォームの「日付」で選択された値について、休日かどうかを判定します。「休日判定(im_isHoliday1)」タスクのマッピング設定を以下の通り行います。
始点 終点 入力 - formData - input_date<date>
im_isHoliday1<date>
注記フォーム画面で各アイテムに入力された値は、formDataオブジェクトに格納されて業務ロジックの入力に受け渡されます。
フォームアイテムのフィールド識別IDに対応するパラメータをマッピングすることで、業務ロジック内でフォームから入力した値を利用できます。
詳細は「アクション設定(Webデータベース) - 入力値」を参照してください。 -
「分岐」タスクの分岐条件を設定します。分岐タスクを選択して、「タスク固有設定」の「条件式(EL式)」を以下のように設定します。
${im_isHoliday1}
注記「休日判定」タスクの出力値は、判定結果が休日の場合はtrue、休日でなかった場合はfalseとなります。ここでは、条件式に「休日判定」タスクの出力値を指定しているため、判定結果が休日の場合は
then
、休日でなかった場合はelse
のルートに進みます。 -
最後に、フォームの「判定結果」の項目に受け渡す内容を設定します。
-
まず、判定結果が休日だった場合の処理を設定します。「分岐」タスクの
then
と接続している「終了」タスクのマッピング設定を以下の通り行います。始点 終点 定数 - isHoliday<string>
出力 - formData - result<string>
注記業務ロジックの出力のformDataオブジェクトに格納された値は、フォーム画面の各アイテムに受け渡されます。
フォームアイテムのフィールド識別IDに対応するパラメータに値をマッピングすることで、フォーム項目に値を反映できます。
詳細は「アクション設定(Webデータベース) - 出力値」を参照してください。 -
同様に、判定結果が休日でなかった場合の処理を設定します。「分岐」タスクの
else
と接続している「終了」タスクのマッピング設定を以下の通り行います。始点 終点 定数 - isWeekday<string>
出力 - formData - result<string>
-
これで業務ロジックの作成は完了です。ツールバーの「保存」から業務ロジックを保存して、「アクション設定」ダイアログが表示されている「フォーム編集」画面に戻ります。
その他の設定をする
フォームの保存やテーブルの作成、権限設定などを行います。
操作の説明は簡易的に記載しています。詳細な操作手順は「Webデータベースを作成する」を参照してください。
-
「確定」ボタンをクリックして「アクション設定」ダイアログを閉じます。
-
「確定」ボタンをクリックして「イベント設定」ダイアログを閉じます。
-
ツールバーの「更新」をクリックしてフォームを保存し、「戻る」アイコンをクリックして「フォーム一覧」画面を表示します。
-
「戻る」ボタンをクリックして「フォーム設 定」画面を表示します。
-
「テーブル設定」タブでテーブルを登録します。
-
「権限設定」タブをクリックして、権限の設定を行います。サンプルでは、ロール「Accel-Mart Quick アプリケーション管理者」に対して「登録・更新・削除可能」の権限を付与しています。
-
「一覧表示項目設定」タブをクリックして、一覧表示項目を設定します。
-
ツールバーに登録画面、一覧画面へのリンクが表示されるようになれば完了です。
動作確認をする
完成したフォームを試してみましょう。
-
登録画面へのリンクをクリックして、登録画面のフォームを表示します。
-
「日付」のカレンダーアイコンをクリックして、適当な日付を選択します。
-
画面上の別の場所をクリックして、「日付」の項目からフォーカスを外します。
-
選択した日付が休日か営業日かの 判定結果が「判定結果」の項目に表示されます。