取得処理フローの作成
ここでは、取得処理を考える際の基本的なフローと設定について紹介します。
基本編:条件に一致するデータ件数を取得し、リスト形式で表示する
取得処理の基本は、データベースから必要なデータを抽出し、画面上にリスト形式で表示することです。ロジックフローを確認しながら、データベースの項目と画面に表示する項目の対応関係を意識して設定を進めていきましょう。
このケースは、Accel Studioの「マスタメンテナンス」テンプレートの一覧取得処理フローをもとに説明しています。実際の画面や設定などを確認したい場合は、「ローコード開発チュートリアルガイド - 4.2.2. テンプレートからアプリケーションのベースを作る」を参照し、アプリケーションを生成してください。
Step 1 画面とデータベースのやり取り
画面の検索条件により、データベースからデータを取得するまでの流れを整理します。取得処理では、以下のポイントを意識して設計・実装を進めると効果的です。
- 検索条件の統一: 「件数取得」と「データ取得」で同じ条件を使用し、表示内容と件数表示を一致させる
- 取得範囲の最適化:必要な項目だけを取得し、不要なデータベースアクセスを減らす
- 画面表示との連携:件数と取得結果をセットで返却し、表示やページネーションに活用できる形に整える

一覧画面の作成方法については、「 【参考】画面コンテンツの基本設計 - 一覧画面の作成」を参照してください。
Step 2 入出力値の定義
フロー内の処理で利用する値を設定します。入出力設定では、フロー実行時に受け取る入力値と実行後に返す出力値を定義します。

入力値には、画面から入力されたデータに加えて、タスク固有の入力値と同じ項目を設定します。これにより、データを正しい順序で、必要な量を、必要な位置から取得できるようになります。
- ソート条件:画面に表示する順序を明確にするために設定
- 取得件数:一度に取得するデータ量を制限して、必要な件数だけ取得するために設定
- 開始位置:取得件数と組み合わせて、ページ切り替え(ページネーション)を実現するために設定
入出力設定
入力値(ロジックフローが処理を開始するために必要なデータ)と出力値(処理が完了した際に生成されるデータ)を設定します。入力値には、画面に入力された検索条件や、検索結果を表示するための条件を指定します。出力値には、検索結果として画面にリスト表示するデータ項目と、検索結果の総件数を含めます。

入力値
searchCondition:検索条件の値を管理する値sortCondition:ソート条件を管理する値limit:1ページあたりの表示件数offset:取得開始位置
出力値
records:一覧のデータを管理する値total:一覧の総件数
入出力設定の操作手順を確認したい場合は、「入出力設定 - 基本操作」を参照してください。
「マスタメンテナンス」テンプレートに設定されている値については、画面変数とあわせて確認すると理解が深まります。詳細は、「Accel Studio テンプレートカタログ - 5.1.7.2.1.1.3. 変数」を参照してください。
Step 3 ロジックフローの作成
Step 1の内容をもとに、取得処理を行うロジックフローを作成します。左側にあるパレットから必要なエレメントを配置します。

| No. | パレット種別 | エレメント名 | 説明 | 設定 |
|---|---|---|---|---|
| 1. | 基本(制御要素) | 開始 | ロジック処理の起点で、画面から入力された値を受け取る | ー |
| 2. | IM-Repository(タスク) | エンティティデータ件数の取得 | 指定条件に一致するエンティティデータの総件数を取得する | マッピング設定1 |
| 3. | IM-Repository(タスク) | エンティティデータの検索 | 件数と同じ条件でレコードの内容を取得する | マッピング設定2 |
| 4. | 基本(制御要素) | 終了 | 出力結果(検索結果データと件数)を返して終了 | マッピング設定3 |
- ロジックフローの作成手順を確認したい場合は、「ロジックフローの作成」を参照してください。
- マッピング設定の手順を確認したい場合は、「マッピング設定」を参照してください。
マッピング設定1 - 「エンティティデータ件数の取得」
「エンティティデータ件数の取得」タスクでは、指定した条件に一致するエンティティの総件数を取得します。ここでは、検索条件を保持しているsearchConditionを、件数取得用のエンティティim_repositorySearchEntityCount1の入力項目にマッピングします。

上記タスクのプロパティや入出力値については、「IM-LogicDesigner仕様書 - 5.2.1.18.3. エンティティデータ件数の取得」を参照してください。
マッピング設定2 - 「エンティティデータの検索」
「エンティティデータの検索」タスクでは、指定した検索条件に該当するエンティティデータを複数取得します。ここでは、入力値をエンティティ側のim_repositorySearchEntityData1配下の値にそれぞれマッピングします。

上記タスクのプロパティや入出力値については、「IM-LogicDesigner仕様書 - 5.2.1.18.2. エンティティデータの検索」を参照してください。
入力側には、検索条件をまとめたsearchConditionというマップ型のデータが含まれています。マップ型とは、「キー」と「値」のペアで情報を管理する形式です。たとえば、"status":"working"のように、「条件名」と「その値」をセットで持ちます。
このsearchConditionは、オブジェクト型のデータであるim_repositorySearchEntityData1のkeysにマッピングされています。オブジェクト型とは、複数の項目をひとまとまりのデータとして扱うことができる形式で、その中のkeysが検索条件を保持しています。
「エンティティデータの検索」タスクでは、入力値searchConditionにkeysに対応する値を渡すことで、検索が実行されます。
マッピング設定3 - 「終了」
「終了」制御要素では、「エンティティデータの検索」タスクの結果を受け取り、処理を終了します。まず、検索結果を画面に表示するため、im_repositorySearchEntityData1を出力値のrecordsにマッピングします。次に、検索条件に一致した件数を示すcountを出力値のtotalにマッピングします。

このロジックフローは、検索処理の基本形で、一覧表示や検索機能のバックエンド処理に最適です。条件に該当するデータが何件存在するかを取得した上で、実際のデータをリスト形式で検索し取得します。具体的には、以下のようなユースケースが考えられます。
- 一覧画面の表示前処理:表示対象件数を取得し、データを表示する
- 件数制限ありのバリデーション:件数取得による処理制限を設ける
- データの有無確認+結果取得:件数が0でない前提で一括取得する(分岐を追加すると厳密に制御可能)
この基本構成をもとに、さまざまなシナリオを想定しながら活用してみましょう。
応用編:指定された条件に基づきタスク情報を取得し、一覧表を作成する
取得処理の基本形を理解した上で、次は応用編となるロジックフローを確認してみましょう。このフローは、入力されたパラメータの正当性をチェックし、対象タスクの一覧と件数をデータベースから取得します。さらに必要に応じて、ユーザ名の配列情報を別フローで補完する処理も行います。

応用編では、詳細な設定内容の説明は省略しますが、各エレメントがどのような役割で配置されているのかを確認しておきましょう。
| No. | パレット種別 | エレメント名 | 説明 |
|---|---|---|---|
| 1. | 基本(制御要素) | 開始 | ロジック処理の起点で、検索条件に入力された値を受け取る |
| 2. | ユーザ定義追加(タスク) | JavaScript定義新規作成 (タスク一覧パラメータチェック) | タスク検索用の入力パラメータを整形・検証する。入力値をSQLなどの検索処理で扱いやすい形に変換する役割を持つ |
| 3. | ユーザ定義追加(タスク) | SQL定義新規作成 (タスク一覧取得) | 検索条件をもとに該当するタスク一覧を取得する |
| 4. | ユーザ定義追加(タスク) | SQL定義新規作成 (タスク一覧件数取得) | 該当するタスクの総件数をカウントして取得する |
| 5. | 基本(制御要素) | フロー呼び出し | 「ユーザ名配列取得処理」フローを呼び出して、担当者とユーザコードを紐づける |
| 6. | 基本(制御要素) | フロー呼び出し | 「ユーザ名配列取得処理」フローを呼び出して、レビューアとユーザコードを紐づける |
| 7. | 基本(制御要素) | 終了 | 出力結果(検索結果データと件数)を返して終了 |
- このフローは、Accel Studioの「サンプルアプリケーション」テンプレートにある「タスク管理」テンプレートの「タスク一覧参照処理」フローをもとに説明しています。実際の画面や設定を確認したい場合は、「Accel Studioテンプレートカタログ - 5.2.3. タスク管理」を参照し、アプリケーションを生成してください。
- 「タスク管理」テンプレートのタスクを参照・流用したい場合は、パレットから[業務テンプレートから作成]にマウスを合わせ、該当のタスクを選択してください。
- ユーザ定義タスクでは、JavaScriptやSQL以外にも、幅広い用途に対応した複雑な処理を実現できるタスクが用意されています。詳細は「ユーザ定義タスクの作成」を参照してください。