Skip to content

iDempiere 入金バッチ処理の使い方|債権債務・資金管理 操作マニュアル・技術仕様

This content is not available in your language yet.

📖 債権債務・資金管理の全体像: 債権債務・資金管理の全体図 も合わせてご覧ください。

入金バッチ処理(Receipts into Batch)は、複数の入金支払伝票(Payment)を 1 つの預入バッチ(Deposit Batch)にまとめて管理する伝票です。銀行にまとめて預け入れる入金をバッチ単位で束ね、後続の銀行明細との照合単位として使用します。

📌 ポイント: バッチに追加できるのはバッチと同一通貨の入金支払伝票のみです。明細を保存すると入金支払伝票側にバッチ ID が書き込まれ、完了時にはバッチ金額が明細合計で自動再計算されます。

  • 複数の入金支払伝票を 1 つのバッチ(C_DepositBatch)に集約
  • 「既存伝票をもとに明細行を作成」ボタンによる入金の一括取り込み
  • バッチ金額(Deposit Amount)の明細合計による自動計算
  • 伝票アクション(完了・無効化・再活性化・クローズ)による状態管理
  • 銀行明細(Bank Statement)との照合単位としての利用

ヘッダ + 明細の 2 タブ構成です(AD_Window_ID: 200031)。

タブ名テーブル項目数役割
BatchC_DepositBatch15項目バッチヘッダ(銀行口座・入金日・通貨・金額・伝票状態)
LinesC_DepositBatchLine8項目バッチに含める入金支払伝票と金額
graph TD
    A["🚀 メニューから開く<br/>債権債務管理&資金管理 > Receipts into Batch"] --> B["➕ 新規でヘッダを入力<br/>(銀行口座・入金日・伝票タイプ)"]
    B --> C["💱 銀行口座を選ぶと通貨が自動セット<br/>(Callout)"]
    C --> D{明細の追加方法}
    D -->|一括| E["📥 既存伝票をもとに明細行を作成ボタンで<br/>入金支払伝票を選択して取り込み"]
    D -->|個別| F["📝 Lines タブで入金支払伝票を 1 件ずつ選択<br/>(金額は伝票から自動セット)"]
    E --> G["⚙️ Process Deposit Batch ボタンで完了"]
    F --> G
    G --> H["✅ 明細合計がバッチ金額に反映され<br/>明細が処理済みになる"]
    H --> I["🏦 銀行明細との照合に使用"]

メニューから開く 債権債務管理&資金管理 > Receipts into Batch 新規でヘッダを入力 (銀行口座・入金日・伝票タイプ) 銀行口座を選ぶと通貨が自動セット (Callout) 既存伝票をもとに明細行を作成ボタンで 入金支払伝票を選択して取り込み Lines タブで入金支払伝票を 1 件ずつ選択 (金額は伝票から自動セット) Process Deposit Batch ボタンで完了 明細合計がバッチ金額に反映され 明細が処理済みになる 銀行明細との照合に使用 明細の追加方法 一括 個別

メニューから「債権債務管理&資金管理 > Receipts into Batch」を開きます。

  1. ツールバーの「新規」ボタンをクリック
  2. ヘッダ情報を入力:
    • 銀行口座: 預入先の銀行口座(必須。選択すると通貨が口座の通貨に自動セット)
    • 入金日: 預入日(必須。デフォルトはログイン日付)
    • 伝票タイプ / 伝票番号 / 伝票日付: 伝票管理情報(必須)
  3. 保存」をクリック
  4. 既存伝票をもとに明細行を作成」ボタン、または Lines タブで入金支払伝票を追加
    • 明細番号は自動採番(10 刻み)
    • 御支払金額 は選択した入金支払伝票から自動セット
  5. 保存すると入金支払伝票側にバッチ ID が関連付けられます
  1. ヘッダの「Process Deposit Batch」(伝票アクション)から「完了」を実行
  2. 完了時の処理:
    • 明細が 0 件の場合はエラー(@NoLines@
    • 明細の入金支払伝票に複数通貨が混在している場合はエラー
    • 全明細が「処理済み」になり、バッチ金額が明細合計で再計算されます
  3. 取り消す場合は「無効化(Void)」、修正する場合は「再活性化(Re-Activate)」を実行
    • 銀行明細行から参照されているバッチ、消込済み(Reconciled)の入金支払伝票を含むバッチは無効化・再活性化できません

全項目一覧はリファレンス参照

項目名必須説明
銀行口座必須選択預入先口座。変更時に通貨を自動セット
入金日必須日付預入日(デフォルト: ログイン日付)
伝票タイプ必須選択バッチの伝票タイプ
伝票番号必須文字列伝票採番
伝票日付必須日付伝票の日付(デフォルト: ログイン日付)
Currency必須選択バッチの通貨(明細の通貨と一致必須)
Deposit Amount必須金額預入金額(完了時に明細合計で再計算)
伝票状態必須リストドラフト→進行中→完了→クローズ(デフォルト: DR)
項目名必須説明
明細番号必須整数自動採番(既存最大値 + 10)
入金支払伝票必須検索バッチに含める入金支払伝票
御支払金額必須金額伝票から自動セットされる金額
処理済み必須チェックバッチ完了時に自動で ON

Q. 完了済みのバッチに明細を追加できますか?

Section titled “Q. 完了済みのバッチに明細を追加できますか?”

できません。明細保存時の beforeSave() で親バッチが処理済みかをチェックしており、「ParentComplete」エラーになります。明細を追加するには先にバッチを再活性化してください(消込済みの入金を含む場合は再活性化も不可)。

Q. 通貨の異なる入金を 1 つのバッチにまとめられますか?

Section titled “Q. 通貨の異なる入金を 1 つのバッチにまとめられますか?”

できません。明細保存時にバッチ通貨と入金支払伝票の通貨が比較され、不一致の場合はエラーになります。また完了時にも明細内の通貨数がチェックされ、複数通貨が混在するとエラー(ErrorMultipleCurrencyPaymentsRestricted)で完了できません。通貨ごとに別バッチを作成してください。

Q. バッチを無効化できないのはなぜですか?

Section titled “Q. バッチを無効化できないのはなぜですか?”

次の 2 つの場合、無効化はブロックされます。(1) バッチが銀行明細行(C_BankStatementLine)から参照されている場合、(2) 明細の入金支払伝票がすでに消込済み(Reconciled)の場合。無効化に成功すると、各入金支払伝票からバッチ ID が解除され、明細金額とバッチ金額が 0 になります。

🛠 技術仕様(開発者向け)

入金バッチは C_DepositBatch(ヘッダ)と C_DepositBatchLine(明細)に格納されます。MDepositBatch クラス(638行)が DocAction を実装した伝票処理を、MDepositBatchLine クラス(232行)が明細の整合性チェックを担います。

classDiagram
    class MDepositBatch {
        +processIt(String) boolean
        +prepareIt() String
        +completeIt() String
        +voidIt() boolean
        +reActivateIt() boolean
        +closeIt() boolean
        +getLines() MDepositBatchLine[]
    }
    class MDepositBatchLine {
        +setPayment(MPayment) void
        #beforeSave(boolean) boolean
        +getC_Payment() MPayment
    }
    class X_C_DepositBatch {
        <<generated>>
    }
    class X_C_DepositBatchLine {
        <<generated>>
    }
    class DocAction {
        <<interface>>
    }
    MDepositBatch --|> X_C_DepositBatch
    MDepositBatch ..|> DocAction
    MDepositBatchLine --|> X_C_DepositBatchLine
    MDepositBatch --> MDepositBatchLine : has many
    MDepositBatchLine --> MPayment : references

+processIt(String) boolean +prepareIt() String +completeIt() String +voidIt() boolean +reActivateIt() boolean +closeIt() boolean +getLines() MDepositBatchLine[] +setPayment(MPayment) void #beforeSave(boolean) boolean +getC_Payment() MPayment <> <> > X_C_DepositBatch MDepositBatch ..

パッケージ: org.compiere.model ソースファイル: org.adempiere.base/src/org/compiere/model/MDepositBatch.javaMDepositBatchLine.java

C_DepositBatch(入金バッチヘッダ)

Section titled “C_DepositBatch(入金バッチヘッダ)”
カラム名必須説明備考
C_DepositBatch_IDIDPKバッチID主キー
C_BankAccount_IDTableDirectY銀行口座callout CalloutDepositBatch.bankAccount
DateDepositDateY入金日デフォルト @#Date@
C_DocType_IDTableDirectY伝票タイプ
DocumentNoStringY伝票番号
DateDocDateY伝票日付デフォルト @#Date@
C_Currency_IDTableDirectY通貨銀行口座から自動セット
DepositAmtAmountY預入金額prepare/complete で明細合計に更新
DocStatusListY伝票状態デフォルト DR
DocActionButtonN伝票アクションデフォルト CO
CreateFromButtonN既存伝票をもとに明細行を作成
ProcessedYesNoY処理済み

C_DepositBatchLine(入金バッチ明細)

Section titled “C_DepositBatchLine(入金バッチ明細)”
カラム名必須説明備考
C_DepositBatchLine_IDIDPK明細ID主キー
C_DepositBatch_IDSearchYバッチFK親リンク
LineIntegerY明細番号デフォルト SQL: MAX(Line)+10
C_Payment_IDSearchY入金支払伝票
PayAmtAmountY御支払金額setPayment() で伝票から転記
ProcessedYesNoY処理済み完了時に ON
  • prepareIt(): 明細 0 件で @NoLines@ エラー。有効明細の PayAmt を合算して DepositAmt にセットします。
  • completeIt(): 明細の入金支払伝票を集計して通貨数をチェックし、複数通貨混在時は ErrorMultipleCurrencyPaymentsRestricted で失敗。全明細を Processed=Y にし、ヘッダ金額を再計算(updateHeaderAmt())します。
  • voidIt(): クローズ/取消済みは不可。C_BankStatementLine から参照されている場合は DepositBatchVoidFailedBankStatementLine で失敗。明細の入金支払伝票が消込済み(isReconciled())なら失敗。成功時は各 Payment の C_DepositBatch_ID を解除し、明細金額・ヘッダ金額を 0 にします。
  • reActivateIt(): 銀行明細行参照時・消込済み Payment 含有時は失敗。全明細とヘッダの Processed を解除します。
  • MDepositBatchLine.beforeSave(): (1) 親が処理済みなら新規明細を ParentComplete で拒否、(2) 親通貨と Payment 通貨の不一致を拒否、(3) 明細番号の自動採番、(4) 親がドラフト/進行中のとき Payment 側に C_DepositBatch_ID をセットします。
  • Model Validator: MDepositBatch の各 DocAction は TIMING_BEFORE/AFTER_PREPARE・COMPLETE・VOID・REACTIVATE の各タイミングで ModelValidationEngine を呼び出しており、OSGi プラグインからフックできます。
  • Callout: 標準では C_BankAccount_IDorg.compiere.model.CalloutDepositBatch.bankAccount(口座通貨の自動セット)が定義されています(実装は org.adempiere.base.callout プラグイン)。
プロセス名説明
既存伝票をもとに明細行を作成(CreateFrom)既存の入金支払伝票からバッチ明細を一括生成
Process Deposit Batch(DocAction)伝票エンジンによる完了・無効化等の実行

入金バッチの承認フロー追加や銀行フォーマットに合わせた預入データ出力など、実運用に合わせた拡張が可能です。

As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。

OSS ERP導入・カスタマイズサービスの詳細はこちら