よくあるご質問

複数の明細行から特定の条件(数量が0など)に合う行だけを自動で削除する方法・設定手順

作成者: 非表示執筆者|Aug 26, 2026, 7:44:08 AM

特定の条件に合致する明細行のみを削除するには、自動処理の「実行単位」を「明細単位」に設定する方法が最も適しています。

自動処理機能では、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)