複数の明細行から特定の条件(数量が0など)に合う行だけを自動で削除する方法・設定手順
特定の条件に合致する明細行のみを削除するには、自動処理の「実行単位」を「明細単位」に設定する方法が最も適しています。
自動処理機能では、1つのレコードの中に複数の明細行がある場合、それらすべての行を1行ずつチェックし、条件(例:数量が0、特定のフラグが立っているなど)に当てはまる行だけをピンポイントで削除することが可能です。
この設定を行うことで、不要なデータが残るのを防ぎ、在庫管理や売上集計の正確性を保つことができます。
最適な構築手法の選び方・判断基準
1レコード内に条件に合う明細行が複数存在する可能性がある場合
➔ 1. 「明細単位」の自動処理 が適しています。1回の実行で、条件に合致するすべての明細行を1行ずつ判定して処理できるため、漏れなく削除が可能です。
1レコードにつき、削除したい明細行が必ず1行だけと決まっている場合
➔ 2. 「レコード単位」の自動処理 でも対応可能です。ただし、条件に合う行が複数あっても1行しか削除されないため、基本的には「明細単位」での構築を推奨します。
各手段の詳細と設定手順
1. 「明細単位」の自動処理で条件に合う行をすべて削除する
<メリット> 1つのレコードの中に条件に合う明細行が何行あっても、1回の実行ですべて削除できます。設定がシンプルで、メンテナンス性にも優れています。
<デメリット> 自動処理の「実行単位」は作成後に変更できないため、現在「レコード単位」で運用している場合は、新しく「明細単位」の自動処理を作成し直す必要があります。
設定手順
【設定箇所】 データベース設定>機能設定>自動処理設定
1. 自動処理の新規作成
「新規追加」ボタンをクリックし、任意の自動処理名を入力します。
この際、「実行単位」で必ず「明細単位」を選択して確定してください。
2. 条件分岐パーツの配置
「自動処理パーツ設定」にて「条件分岐」パーツを追加します。
詳細設定の「条件」にて、削除したい行を特定する条件を設定します。
(例)【選択明細】[対象データベース名]:数量 が (直接指定)「0」 と等しい
3. レコード削除パーツの配置
条件分岐の「YES」の先に「レコード削除」パーツを追加します。
詳細設定の「対象レコード」で【選択明細】を指定してください。
これにより、条件に合致したその明細行だけが削除対象となります。
4. メニューへの割り当て
「メニュー設定」の「処理設定」にて、作成した自動処理を「〜」ボタンやプルダウンに割り当てます。
2. 「レコード単位」の自動処理で特定の明細行を1つだけ削除する
<メリット> 既存の「レコード単位」の自動処理(一連の複雑な更新フローなど)の中に、明細削除のステップを組み込むことができます。
<デメリット> システムの仕組み上、1回の実行で削除できるのは「検索で見つかった先頭の1行のみ」です。条件に合う行が複数ある場合、すべてを消し去るには行数分だけ処理を繰り返す必要があり、非効率です。
設定手順
【設定箇所】 データベース設定>機能設定>自動処理設定
1. レコード検索パーツの配置
「レコード検索」パーツを追加します。詳細設定にて「検索結果を明細単位で取得する」にチェックを入れ、「1件まで絞込み」にもチェックを入れます。
条件には、削除したい明細を特定する条件(数量が0など)を設定します。
2. レコード削除パーツの配置
検索パーツの「YES」の先に「レコード削除」パーツを追加します。
詳細設定の「対象レコード」で【検索レコード(明細行)】を指定してください。
関連マニュアル
詳細な仕様の違いや作成手順については、下記記事をご確認ください。
自動処理の実行単位(レコード単位/明細単位)の違いについて
各実行単位の挙動の差や、どのようなシーンで使い分けるべきかを詳しく解説しています。
自動処理設定:レコード単位/明細単位
レコード削除パーツの基本的な使い方
自動処理でレコードや明細を削除する際の注意点や、全体詳細設定での許可手順について記載されています。
自動処理設定:「レコード削除」パーツ
(記事ID:2598)
「自動処理設定」の関連記事一覧
こちらの記事もあわせてご確認ください。
- 選択した帳票タイプ(フォーマット)に応じて帳票を自動で出し分ける方法
- 明細単位の自動処理で、特定の一行だけ実行する方法
- 自動処理(レコード登録・更新パーツ)の「計算」チェックボックスの使い方と活用例
- 異なる得意先の受注を同一の「請求先」でまとめて請求データを作成する方法
- 自動処理を活用して承認機能を独自に構築する方法・設定手順
- 自動処理のメール送信でプロジェクトや取引内容に応じてCC宛先のみを動的に切り替える方法・マスタ構築手順
- CSVインポートや一括登録時に通知メールが大量送信されるのを防ぎ、完了時にまとめて通知する方法
- データベースをコピー(複製)した際に登録済みのレコードデータも引き継がれるか
- 異なるデータベース間でデータを自動で転記・登録する方法・設定手順
- 親DBの明細行の合計値と自レコード(子DB)の値を比較して自動処理を分岐させる方法・設定手順