よくある質問

自動処理でレコードを転記する際、既存の金額と重複させずに差分のみを更新する方法

作成者: 非表示執筆者|Oct 28, 2026, 5:31:21 AM

例えば発注後に発注明細(追加の費用)を追加して自動処理を再実行した際、既存の金額と二重に計算されてしまう場合は、自動処理の冒頭に「転記済みフラグ」による条件分岐を組み込むことで、未処理の明細だけを安全に追加加算できます。

「転記済みフラグ」による差分転記の仕組み

例えば、100円の発注を転記した後に、10円の追加費用を追加した場合の動きは以下のようになります。

  • 1回目の自動処理実行(100円の明細):
    「未転記」のため支払管理DBへ 100円 を転記し、明細のフラグを「転記済み」に変更します。
  • 2回目の自動処理実行(10円の明細を追加後):
    既存の100円明細は「転記済み」のため処理をスキップ(除外)します。新しく追加された10円明細(未転記)のみが判定を通過し、支払管理DBの既存額(100円)へ +10円 加算され、正確な合計額 110円 になります。

設定手順

Step 1. データベースに「転記フラグ」項目を追加する

発注管理DBの明細項目(行項目)に、以下の項目を追加します。

  • 項目タイプ: 選択肢(1件選択)
  • 項目名: 転記フラグ(支払管理)
  • 選択肢の値: 「未転記」「転記済み」
  • 初期値: 「未転記」

Step 2. 自動処理を作成する(実行単位:明細単位)

発注管理DB側に、実行単位を「明細単位」で自動処理を新規作成し、以下のパーツを順番に配置・設定します。

  1. 【パーツ1:条件分岐パーツ】未転記の明細か判定する
    • 分岐条件: 【選択明細】[発注管理DB]:転記フラグ が 「未転記」 と等しい
    • NOルート(転記済みの場合): 処理なし(そのまま自動処理を終了し、スキップさせます)
    • YESルート(未転記の場合): パーツ2へ進む
  2. 【パーツ2:レコード検索パーツ】支払管理DBに既存レコードがあるか検索する
    • 検索対象DB: 支払管理DB
    • 検索条件: 支払管理DBの「発注No.」 = 【選択明細】[発注管理DB]:「発注No.」
  3. 【パーツ3(検索YESルート):レコード更新パーツ】既存レコードの金額へ加算する
    • 対象レコード: 【検索レコード】[支払管理DB]
    • 支払金額項目の設定: (元の値) + 【選択明細】[発注管理DB]:発注金額(※加算計算を指定)
  4. 【パーツ4(検索NOルート):レコード登録パーツ】支払管理DBに新規レコードを作成する
    • 登録対象DB: 支払管理DB
    • 支払金額項目の設定: 【選択明細】[発注管理DB]:発注金額
  5. 【パーツ5:レコード更新パーツ】転記元の明細フラグを「転記済み」に更新する
    • 対象レコード: 【選択明細】[発注管理DB](※自分自身の明細行)
    • 転記フラグ項目の設定: 「転記済み」
    ※パーツ3(更新)およびパーツ4(登録)の双方から合流させて、最後にこのフラグ更新パーツを実行します。

 設定時の注意点
・自動処理の実行単位は必ず「明細単位」で作成してください(レコード単位では明細1行ごとのフラグ制御ができません)。
・自動処理の最後で【選択明細】のフラグを「転記済み」へ更新するパーツを忘れないよう配置してください。この更新を行わないと、次回実行時にも未転記と判定され二重加算の原因となります。

関連記事

条件分岐パーツや明細単位の自動処理に関する詳細仕様については、下記マニュアルをご確認ください。

自動処理設定:「条件分岐」パーツ

条件判定によって処理ルートを枝分かれさせる基本的な設定方法です。
自動処理設定:「条件分岐」パーツ

自動処理設定:レコード単位/明細単位

自動処理の実行単位の違いと、明細行ごとに処理を行う「明細単位」の仕組みについて解説しています。
自動処理設定:レコード単位/明細単位

(記事ID:3033)