特定の条件に一致する行や一部のデータだけ自動処理で値を更新したい

自動処理機能で「条件分岐」パーツまたは「レコード検索」パーツを使用することで、特定の条件を満たす場合のみ値を自動更新することが可能です。

「楽楽販売」では、自動処理のパーツを組み合わせることで、業務ルールに基づいたデータの自動更新を実現できます。
条件の判定には、操作しているレコード自身の値を基準にする方法と、操作しているレコード以外のレコードを対象にデータが存在するかどうかを基準にする方法の2通りがあります。

最適な構築手法の選び方・判断基準

実現したい判定内容に合わせて、使用する自動処理パーツを選択してください。

  • 現在のレコード内の値(ステータスや金額など)を条件にする場合
    1. 「条件分岐」パーツを使用します。操作中のレコードの項目が「〇〇なら」という単純な判定に適しており、処理速度が速い特徴があります。

  • 操作しているレコード以外のレコードを対象にデータが存在するかを条件にする場合
    2. 「レコード検索」パーツを使用します。
    「マスタデータベースに登録がある場合のみ」や「同一データベース内で重複するデータがない場合のみ」といった、データベース全体を横断した判定に適しています。

1. 「条件分岐」パーツで操作中のレコード内容を判定して更新する方法

メリット:操作しているレコード(または明細行)の値を即座に判定するため、設定がシンプルで処理がスムーズです。
デメリット:操作中のレコード以外の情報を直接参照して条件にすることはできません。(※データベース全体の検索や別DBの確認を行いたい場合は、後述の「レコード検索」パーツをご活用ください。)

【設定箇所】 DB設定(スパナアイコン)>機能設定>自動処理設定

【設定手順】

  1. 自動処理の新規作成
    「新規追加」ボタンより自動処理名を入力し、実行単位(レコード単位または明細単位)を選択して「確定」ボタンをクリックします。
  2. 「条件分岐」パーツの登録
    「自動処理パーツを登録する」から「条件分岐」パーツを選択します。詳細設定にて、判定基準となる項目と条件を設定します。
    【設定例】ステータスが「完了」のレコードのみ後続の処理を実行したい場合:
    条件:【選択レコード】の「ステータス」項目が「完了」と「等しい」
  3. 「レコード更新」パーツの配置
    「条件分岐」パーツの「YES(青い矢印)」の先に「レコード更新」パーツを登録します。詳細設定にて、更新したい項目に新しい値を割り当てます。

上記のように設定することで、手順2の条件に合致したレコードのみ手順3のレコード更新処理が実行されます。手順2の条件に合致しないレコードは、「NO(赤い矢印)」の先にパーツを配置しない場合、何も更新されません。

2. 「レコード検索」パーツでデータの有無を判定して更新する方法

メリット:「特定の条件に合うレコードが1件でもあるか」という基準で処理を分けられるため、重複チェックやマスタ連携に非常に強力です。
デメリット:検索対象が広いため、「条件分岐」パーツに比べると処理に時間がかかる場合があります。

【設定箇所】 DB設定(スパナアイコン)>機能設定>自動処理設定

【活用例1】自動処理を実行したデータベース内で検索する場合(同一データベース内の重複チェック)

同一のデータベース内に同じデータが既に登録されているかを検索し、重複が存在する場合のみ値を自動更新する設定例です。

【活用シーン】見積データベースに見積レコードを作成した際、同一の顧客名が過去に登録されているかを検索し、重複している場合に見積レコードの「過去取引有無」項目を「あり」に自動更新したい場合

【設定手順】
自動処理は「見積DB」に作成する前提とします。

  1. 「レコード検索」パーツの登録
    自動処理の先頭に「レコード検索」パーツを配置します。
    条件指定で「AND条件(すべての条件に当てはまる)」を選択し、下記のように2つの条件を設定します。
    ・検索対象:見積DB(自動処理を実行するデータベース自身を選択)
    ・条件1:「顧客名」が「【選択レコード】の顧客名」と「等しい」
    ・条件2:「キー項目」が「【選択レコード】のキー項目」と「等しくない」
    (※選択レコード自身を検索結果から除外する設定です)
  2. 「レコード更新」パーツの配置
    「レコード検索」パーツの「YES(1件以上存在した)」の先に「レコード更新」パーツを配置し、詳細設定で更新内容を指定します。
    ・更新項目:「過去取引有無」項目に「あり」を割り当て

注意

 同一データベース内を検索する場合、検索条件を一致条件(「顧客名」項目が「【選択レコード】の顧客名」と「等しい」など)のみにすると、自動処理を実行した自分自身(選択レコード)も検索結果に含まれて常に条件にヒットしてしまいます。

そのため、検索条件で選択レコード自身を除外する設定が必須となります。 

この設定により、同一の見積データベース内に同じ顧客名のレコードが既に存在する場合のみ、「過去取引有無」項目が「あり」に自動更新されます。

【活用例2】別のデータベースを検索する場合(別DBのマスタデータ確認)

自動処理を実行したデータベースとは異なる別のデータベース(マスタデータベースなど)にデータが存在するかを確認し、存在する場合のみ値を自動更新する設定例です。

【活用シーン】受注データベースで受注レコードを登録した際、別データベースである「顧客マスタ」に該当の顧客が登録されているかを確認し、登録がある場合のみ受注レコードの「顧客確認フラグ」項目を「確認済」に自動更新したい場合

【設定手順】

  1. 「レコード検索」パーツの登録
    自動処理の先頭に「レコード検索」パーツを配置し、詳細設定で下記のように検索条件を設定します。
    ・検索対象データベース:顧客マスタ(参照したいデータベースを選択)
    ・検索条件:「顧客コード」項目が「【選択レコード】の顧客コード」と「等しい」
  2. 「レコード更新」パーツの配置
    「レコード検索」パーツの「YES(1件以上存在した)」の先に「レコード更新」パーツを配置し、詳細設定で更新内容を指定します。
    ・更新項目:「顧客確認フラグ」項目に「確認済」を割り当て

この設定により、受注データベースの「顧客コード」が別データベースの「顧客マスタ」に存在する場合のみ、「顧客確認フラグ」項目が「確認済」に自動更新されます。

関連マニュアル

詳細な仕様の違いや作成手順については、下記記事をご確認ください。

条件によって処理を分ける「条件分岐」パーツの設定方法

条件分岐パーツの基本的な使い方や、YES/NOの分岐先にパーツを追加する手順について詳しく解説しています。
自動処理設定:「条件分岐」パーツ

既存レコードの値を書き換える「レコード更新」パーツの設定方法

特定の項目を一律の値に更新したり、他の項目の値を転記したりする際の設定手順を記載しています。
自動処理設定:「レコード更新」パーツ

別DBのレコードを特定して判定に使う「レコード検索」パーツの設定方法

他のデータベースから条件に合うデータを探し出し、その有無で処理を分岐させる方法を解説しています。
自動処理設定:「レコード検索」パーツ

(記事ID:2579)