メインコンテンツまでスキップ

登録・編集・参照画面の作成

ここでは、登録・編集・参照画面を作成する際の基本的なフローと設定について紹介します。

参考

このケースは、Accel Studioの「マスタメンテナンス」テンプレートの一覧画面をもとに説明しています。コンテンツ種別はBulmaです。実際の画面や設定などを確認したい場合は、「ローコード開発チュートリアルガイド - 4.2.2. テンプレートからアプリケーションのベースを作る」を参照し、アプリケーションを生成してください。


Step 1 画面レイアウトとデザイン調整

登録・編集・参照画面は、情報を入力・送信し、参照するための画面です。1つの画面を分解すると、以下のような構成要素に分けられます。それぞれの要素はコンテナ単位で整理しています。

参考
コラム

登録・編集・参照画面のレイアウト構成やデザインについては、「intra-mart Design System - フォーム画面」を参照してください。


Step 2 画面変数の設定

登録・編集・参照画面の表示や操作に必要な変数をあらかじめ準備します。

変数($variable)の準備

画面内で使う変数は、画面の操作によって変化する値やサーバ通信で利用する値だけでなく、業務フローで使用される一意識別キーも定義します。

ここでは、主に次の変数を準備します。

  • state:画面表示・操作用の状態変数
  • endPoint:サーバ通信関連
  • businessKey:一意識別キー

entityの配下では、IM-Repositoryのデータ定義を利用しています。エンティティを利用することで、変数の構造を維持しつつ、同じデータ定義を繰り返し作成する手間を省くことができます。

参考

変数にエンティティを利用する方法については、「画面変数の設定 - 応用操作 > IM-Repositoryのデータ定義を利用する」を参照してください。

これらの配下に含まれる変数については、下記の一覧を参照してください。

stateは、画面上の表示状態や操作状態を保持するための変数です。たとえば、入力内容の保持や選択状態の管理に使用します。

変数説明
entity.tutorial_todo_appオブジェクトTodoデータ1件の情報を格納するオブジェクト
entity.tutorial_todo_app.id文字列 / nullTodoのID(主キー)
entity.tutorial_todo_app.title文字列 / nullタイトル
entity.tutorial_todo_app.detail文字列 / null詳細説明
entity.tutorial_todo_app.category文字列 / nullカテゴリ
entity.tutorial_todo_app.importance文字列 / null重要度
entity.tutorial_todo_app.status文字列 / nullステータス(未着手、進行中、完了など)
entity.tutorial_todo_app.manager文字列 / null担当者
entity.tutorial_todo_app.deadline文字列 / null期限
entity.tutorial_todo_app.registered_user文字列 / null登録者
entity.tutorial_todo_app.registered_date文字列 / null登録日
entity.tutorial_todo_app.update_user文字列 / null更新者
entity.tutorial_todo_app.update_date文字列 / null更新日
confirmResult真偽値確認ダイアログの結果(OK/キャンセルなど)を保持
isChanged真偽値画面の入力値が変更されたかどうかを判定するフラグ
isLocked真偽値データがロックされているか(編集不可か)を判定するフラグ
key.id文字列 / null現在操作対象のTodoのIDを保持(参照・編集・削除用)
コラム

変数の命名方法や構造については、「Low-Code HANDBOOK - 変数構造を検討する - IM-BloomMaker」を参照してください。

定数($constant)の準備

画面内で使う定数は、画面モード、画面URL、アイコン、検索・ソート・ページングの初期値を体系的に管理するために定義します。

ここでは、主に次の定数を準備します。

  • mode:画面モードの定義
  • screenUrl:画面URL

modeは、画面の操作モードを表す定数です。各モードによって画面の表示や操作の振る舞いを切り替えます。

キー説明
register"register"新規登録モード
refer"refer"参照モード(編集不可)
edit"edit"編集モード
コラム

定数の命名例については、「Low-Code HANDBOOK - 定数の定義例 - IM-BloomMaker」を参照してください。

入力変数($input)の準備

入力変数は、画面や処理がどのモードで動作するかを指定するために定義します。

変数名用途説明
__mode__文字列画面やフローの動作モードを制御"register"は新規登録モードを示す
id文字列 / null登録対象のデータIDを保持新規登録時はnull、編集や参照時は対象データのIDがセットされる
参考

画面種別の判別する入力変数については、「Accel Studio テンプレートカタログ - 8.1.2. 画面種別の判別処理」を参照してください。

多言語変数($i18n)の準備

多言語変数は、UIテキストやメッセージ、説明文といった文言を複数の言語に対応させるため定義します。 まずは、Step 3のアクション設定で使用するメッセージの「キー名」と「標準」を登録し、動作を確認してみましょう。

キー標準
cap_dialog_okOK
cap_dialog_cancelキャンセル
msg_register_confirm登録します。よろしいですか?
msg_update_confirm更新します。よろしいですか?
msg_delete_confirm削除します。よろしいですか?
msg_duplicate_primary_key既にレコードが存在しています。
msg_validation_error入力内容に誤りがあります。
msg_screen_transition_confirm入力内容を破棄して画面遷移します。よろしいですか?
参考

多言語変数を準備する際に、画面の文言を整理することが大切です。詳細は「intra-mart Developer Portal - 画面の文言を用途に合わせて変数に置き換えたい」を参照してください。


Step 3 アクション設定

Step 2で設定した画面変数を利用して、ユーザ操作に応じたアクションを作成します。変数の値をどのように受け渡し、どのような処理の流れを構築しているのかを確認してみましょう。

アクション設定1 - 「初期表示時」

「初期表示時」アクションでは、登録・編集・参照画面を表示した際の処理を設定します。

No.アクションアイテムと設定内容
1

入力規則エラーを非表示にする

2空処理           実行条件】全ての条件に一致
変数 $input.mode $constant.mode.register でないとき
3

カスタムスクリプトを実行する

const requestParameter = $im.resolve('$input');
delete requestParameter.__mode__;
$variable.state.key = requestParameter;
$variable.businessKey = requestParameter;
4

変数 $variable.endPoint.refer.requestParameter $variable.state.key を代入する

5

変数 $variable.state.isChanged $env.const.false を代入する

6

IM-LogicDesignerフロールーティング accel-studio-app/template_master_maintenance にリクエスト送信する
・リクエストパラメータ:$variable.endPoint.refer.requestParameter
・レスポンスデータ:$variable.endPoint.refer.responseData.entity

7

変数 $variable.state.entity $variable.endPoint.refer.responseData.entity を代入する

参考
コラム

「空処理」アクションアイテムは、以下のような場面で利用します。

  • 条件分岐の一方を意図的に処理なしにする場合
    たとえば、分岐Aは処理を行わず、分岐Bだけに処理を割り当てたいとき、A側に「空処理」を配置する
  • 一部の条件で何もせずフローを終了させたい場合
    「空処理」を利用することで、明示的に「処理なし」と示すことができる

アクション設定2 - 「一覧画面へ遷移」

登録・編集・参照画面から一覧画面に表示を切り替えるための処理を設定します。

No.アクションアイテムと設定内容
1URL $constant.screenUrl.list に遷移する            

アクション設定3 - 「〇〇ボタンが押されたとき」

登録・編集・参照画面に配置したボタンをユーザがクリックした後の処理を設定します。

「登録ボタンが押されたとき」アクション

「登録」ボタンをクリックした後、再度確認ダイアログを表示しています。アクション設定2で作成した「一覧画面へ遷移」アクションを呼び出します。

No.アクションアイテムと設定内容
1

入力規則エラーを非表示にする

2メッセージ $i18n.msg_validation_error を表示する        
・メッセージのタイプ:warning
・閉じる時間(ミリ秒):5000
実行条件】全ての条件に一致
変数 $variable.state.entity が入力規則に即していないとき
3空処理実行条件】全ての条件に一致
変数 $variable.state.entity が入力規則に即していないとき
4メッセージ $i18n.msg_register_confirm を確認ダイアログで表示する       
・代入先:$variable.state.confirmResult
・OKボタンのラベル名:$i18n.cap_dialog_ok
・キャンセルボタンのラベル名:$i18n.cap_dialog_cancel
・ボタンの位置:右寄せ
5空処理実行条件】全ての条件に一致
変数 $variable.state.confirmResult $env.const.true でないとき
6変数 $variable.endPoint.register.requestParameter.entity $variable.state.entity を代入する
7IM-LogicDesignerフロールーティング accel-studio-app/template_master_maintenance にリクエスト送信する    
・リクエストパラメータ:$variable.endPoint.register.requestParameter.entity
・レスポンスデータ:$variable.endPoint.register.responseData
・セキュアトークンを送信する:チェック
8アクション 「一覧画面へ遷移」 を実行する実行条件】全ての条件に一致
変数 $variable.endPoint.register.responseData.duplicate $env.const.true でないとき
9メッセージ $i18n.msg_duplicate_primary_key を表示する      実行条件】全ての条件に一致
変数 $variable.endPoint.register.responseData.duplicate $env.const.true のとき
コラム

メッセージの確認ダイアログは、右側のイメージのようなデザインです。処理実行前にユーザへ確認を促すために利用します。

「更新ボタンが押されたとき」アクション

「登録ボタンが押されたとき」アクションと基本的な流れは同じです。この場合、既存のアクションを複製して、一部のアクションアイテムを変更します。

No.アクションアイテムと設定内容
1入力規則エラーを表示する
2メッセージ $i18n.msg_validation_error を表示する    
・メッセージのタイプ:warning
・閉じる時間(ミリ秒):5000
実行条件】全ての条件に一致
変数 $variable.state.entity が入力規則に即していないとき
3空処理実行条件】全ての条件に一致
変数 $variable.state.entity が入力規則に即していないとき
4メッセージ $i18n.msg_update_confirm を確認ダイアログで表示する    
・代入先:$variable.state.confirmResult
・OKボタンのラベル名:$i18n.cap_dialog_ok
・キャンセルボタンのラベル名:$i18n.cap_dialog_cancel
・ボタンの位置:右寄せ
5空処理実行条件】全ての条件に一致
変数 $variable.state.confirmResult $env.const.true でないとき
6変数 $variable.endPoint.edit.requestParameter.entity $variable.state.entity を代入する
7IM-LogicDesignerフロールーティング accel-studio-app/template_master_maintenance にリクエスト送信する    
・リクエストパラメータ:$variable.endPoint.edit.requestParameter.entity
・セキュアトークンを送信する:チェック
8URL $constant.screenUrl.list に遷移する
参考

アクションの複製方法について、詳細は「アクション設定 > アクションを複製する」を参照してください。

「削除ボタンが押されたとき」アクション

「削除」ボタンをクリックした後、アクション設定2で作成した「一覧画面へ遷移」アクションを呼び出します。

No.アクションアイテムと設定内容
1メッセージ $i18n.msg_delete_confirm を確認ダイアログで表示する    
・代入先:$variable.state.confirmResult
・OKボタンのラベル名:$i18n.cap_dialog_ok
・キャンセルボタンのラベル名:$i18n.cap_dialog_cancel
・ボタンの位置:右寄せ
2空処理                   実行条件】全ての条件に一致
変数 $variable.state.confirmResult $env.const.true でないとき
3変数 $variable.endPoint.delete.requestParameter $variable.state.key を代入する
4IM-LogicDesignerフロールーティング accel-studio-app/template_master_maintenance にリクエスト送信する    
・リクエストパラメータ:$variable.endPoint.delete.requestParameter
・セキュアトークンを送信する:チェック
5空処理実行条件】全ての条件に一致
変数 $variable.state.confirmResult $env.const.true でないとき
6変数 $variable.endPoint.delete.requestParameter $variable.state.key を代入する
7アクション 「一覧画面へ遷移」 を実行する
「戻るボタンが押されたとき」アクション

「戻る」ボタンをクリックした後、確認ダイアログで「OK」が選択された場合、またはデータに変更がない場合に「一覧画面へ遷移」アクションを呼び出します。

No.アクションアイテムと設定内容
1メッセージ $i18n.msg_screen_transition_confirm を確認ダイアログで表示する       
・代入先:$variable.state.confirmResult
・OKボタンのラベル名:$i18n.cap_dialog_ok
・キャンセルボタンのラベル名:$i18n.cap_dialog_cancel
・ボタンの位置:右寄せ
実行条件】全ての条件に一致
変数 $variable.state.isChanged $env.const.true のとき
2アクション 「一覧画面へ遷移」 を実行する実行条件】いずれかの条件に一致
変数 $variable.state.confirmResult $env.const.true のとき
変数 $variable.state.isChanged $env.const.false のとき

アクション設定4 - 「入力フォームの値を編集したとき」

編集画面で入力フォームの値を変更した場合の処理を設定します。

No.アクションアイテムと設定内容
1変数 $variable.state.isChanged $env.const.true を代入する            

この画面コンテンツは、登録・編集・参照(CRUD)処理に最適化された基本形です。画面ごとに役割を持ち、構成されています。

  • 登録画面:新しいデータを追加するための画面。必要な入力項目をユーザに提示する
  • 編集画面:既存データの内容を更新するための画面。変更可能な項目のみを編集できるようにする
  • 参照画面:データを閲覧するための画面。フィルタリングによって必要な情報を確認できる

この基本構成をもとに、さまざまなシナリオを想定しながら活用してみましょう。