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

削除処理フローの作成

ここでは、削除処理を考える際の基本的なフローと設定について紹介します。

基本編:画面に表示されたデータをマスタ情報から削除する

削除処理の基本は、データベースから対象となるデータを特定し、適切に削除することです。ロジックフローを確認しながら、削除対象の条件と画面上の操作項目との対応関係を意識して設定を進めていきましょう。

参考

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


Step 1 画面とデータベースのやり取り

画面で指定されたIDに基づき、対応するデータがデータベースから削除されるまでの流れを整理します。削除処理では、以下のポイントを意識して設計・実装を進めると効果的です。

  • 対象データの特定:入力されたIDから削除対象を一意に決定する
  • 存在確認:該当データが存在しない場合は処理を終了する
  • 削除実行:条件を満たした場合のみ、データベースから対象データを削除する

コラム

編集画面の作成方法については、「 【参考】画面コンテンツの基本設計 - 登録・編集・参照画面の作成」を参照してください。


Step 2 入出力値の定義

フロー内の処理で利用する値を設定します。入出力設定では、フロー実行時に受け取る入力値を定義します。

入出力設定

入力値(ロジックフローが処理を開始するために必要なデータ)には、画面に表示されている削除条件として、削除対象となるidを指定します。ここでは、出力値(処理が完了した際に生成されるデータ)の設定は不要です。

参考

入出力設定の操作手順を確認したい場合は、「入出力設定 - 基本操作」を参照してください。


Step 3 ロジックフローの作成

Step 1の内容をもとに、削除処理を行うロジックフローを作成します。左側にあるパレットから必要なエレメントを配置します。

No.パレット種別エレメント名説明設定
1.基本(制御要素)開始ロジック処理の起点で、画面から入力された値を受け取る
2.IM-Repository(タスク)エンティティデータの削除 指定条件に一致するエンティティデータを削除するマッピング設定
3.基本(制御要素)分岐削除件数が1以上の場合:正常終了(→4.)
削除件数が0の場合:エラー終了(→5.)
条件式の設定  
4.基本(制御要素)終了ロジック処理の終点で、処理終了
5.基本(制御要素)エラー終了ロジック処理の終点で、エラーメッセージを返して終了
参考

マッピング設定 - 「エンティティデータの削除」

「エンティティデータの削除」タスクでは、指定した条件に一致するエンティティのデータを削除します。ここでは、入力値とエンティティim_repositoryEntityDataDelete1をマッピングします。

コラム

単にIDだけを渡すのではなく、入力値全体をエンティティ型にマッピングすることで、エンティティ仕様に沿った削除条件の設定が可能になります。これにより、複数項目を組み合わせた条件指定や、削除対象の同一性確認などが可能になり、処理の汎用性と安全性を高めることができます。

条件式の設定 - 「分岐」

「分岐」制御要素では、処理を分岐させるための条件をEL式で記述します。
ここでは、「エンティティデータの削除」タスクの出力値im_repositoryEntityDataDelete1を条件式の対象とします。countは削除された件数を表し、この値が1の場合は、正常に1件削除されたと判断して「終了」制御要素に進みます。値が0の場合は、削除対象が存在しなかった、または削除に失敗したと判断し、「エラー終了」制御要素に進みます。

条件式:${ im_repositoryEntityDataDelete1.count == 1 }

参考

EL式の詳細とIM-LogicDesignerでの利用例については、「IM-LogicDesigner仕様書 - 5.4. EL式」を参照してください。

このロジックフローは、削除処理の基本形で、エンティティデータとの連携処理に最適です。指定した条件に一致するデータを削除し、その成否を後続処理に反映させることができます。具体的には、以下のようなユースケースが考えられます。

  • 管理者による定期的なデータ整理:管理者がバッチ処理で古いログや期限切れデータを削除する
  • ユーザ退会処理の一部:ユーザIDに紐づく特定のデータ(投稿、設定情報など)を削除する
  • 外部システム連携時の削除確認:外部から送信された削除リクエストを処理し、成功・失敗の結果をAPIで返す

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


応用編:タスクやユーザをマスタ情報から削除する

削除処理の基本形を理解した上で、次は応用編となるロジックフローを確認してみましょう。このフローは、特定のタスクに関連する情報(主にタスク本体・利用者・レビューア情報)の削除を安全に実行します。また、削除の成功可否によって、後続処理を制御しています。

応用編では、詳細な設定内容の説明は省略しますが、各エレメントがどのような役割で配置されているのかを確認しておきましょう。

No.パレット種別エレメント名説明
1.基本(制御要素)開始ロジック処理の起点で、検索条件に入力された値を受け取る
2.ユーザ定義追加(タスク)SQL定義新規作成
(タスクDELETE)
指定されたIDのレコードから特定のカラム(論理削除フラグ)を更新する
3.基本(制御要素)分岐削除件数が1以上の場合:次の処理へ(→4.)
削除件数が0の場合:エラー終了(→7.)
4.ユーザ定義追加(タスク)SQL定義新規作成
(担当者DELETE)
タスクに紐づく担当者情報を削除する
5.ユーザ定義追加(タスク)SQL定義新規作成
(レビューアDELETE)
タスクに紐づくレビューア情報を削除する
6.基本(制御要素)終了ロジック処理の終点で、処理終了
7.基本(制御要素)エラー終了ロジック処理の終点で、エラーメッセージを返して終了
参考
  • このフローは、Accel Studioの「サンプルアプリケーション」テンプレートにある「タスク管理」テンプレートの「タスク削除処理」フローをもとに説明しています。実際の画面や設定を確認したい場合は、「Accel Studioテンプレートカタログ - 5.2.3. タスク管理」を参照し、アプリケーションを生成してください。
  • 「タスク管理」テンプレートのタスクを参照・流用したい場合は、パレットから[業務テンプレートから作成]にマウスを合わせ、該当のタスクを選択してください。
  • ユーザ定義タスクでは、幅広い用途に対応した複雑な処理を実現できるタスクが用意されています。詳細は「ユーザ定義タスクの作成」を参照してください。