iDempiere 入金バッチ処理の使い方|債権債務・資金管理 操作マニュアル・技術仕様
📖 債権債務・資金管理の全体像: 債権債務・資金管理の全体図 も合わせてご覧ください。
入金バッチ処理(Receipts into Batch)は、複数の入金支払伝票(Payment)を 1 つの預入バッチ(Deposit Batch)にまとめて管理する伝票です。銀行にまとめて預け入れる入金をバッチ単位で束ね、後続の銀行明細との照合単位として使用します。
📌 ポイント: バッチに追加できるのはバッチと同一通貨の入金支払伝票のみです。明細を保存すると入金支払伝票側にバッチ ID が書き込まれ、完了時にはバッチ金額が明細合計で自動再計算されます。
入金バッチ処理でできること
Section titled “入金バッチ処理でできること”- 複数の入金支払伝票を 1 つのバッチ(C_DepositBatch)に集約
- 「既存伝票をもとに明細行を作成」ボタンによる入金の一括取り込み
- バッチ金額(Deposit Amount)の明細合計による自動計算
- 伝票アクション(完了・無効化・再活性化・クローズ)による状態管理
- 銀行明細(Bank Statement)との照合単位としての利用
ヘッダ + 明細の 2 タブ構成です(AD_Window_ID: 200031)。
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| Batch | C_DepositBatch | 15項目 | バッチヘッダ(銀行口座・入金日・通貨・金額・伝票状態) |
| Lines | C_DepositBatchLine | 8項目 | バッチに含める入金支払伝票と金額 |
基本操作手順
Section titled “基本操作手順”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["🏦 銀行明細との照合に使用"]
アクセス方法
Section titled “アクセス方法”メニューから「債権債務管理&資金管理 > Receipts into Batch」を開きます。
- ツールバーの「新規」ボタンをクリック
- ヘッダ情報を入力:
- 銀行口座: 預入先の銀行口座(必須。選択すると通貨が口座の通貨に自動セット)
- 入金日: 預入日(必須。デフォルトはログイン日付)
- 伝票タイプ / 伝票番号 / 伝票日付: 伝票管理情報(必須)
- 「保存」をクリック
- 「既存伝票をもとに明細行を作成」ボタン、または Lines タブで入金支払伝票を追加
- 明細番号は自動採番(10 刻み)
- 御支払金額 は選択した入金支払伝票から自動セット
- 保存すると入金支払伝票側にバッチ ID が関連付けられます
- ヘッダの「Process Deposit Batch」(伝票アクション)から「完了」を実行
- 完了時の処理:
- 明細が 0 件の場合はエラー(
@NoLines@) - 明細の入金支払伝票に複数通貨が混在している場合はエラー
- 全明細が「処理済み」になり、バッチ金額が明細合計で再計算されます
- 明細が 0 件の場合はエラー(
- 取り消す場合は「無効化(Void)」、修正する場合は「再活性化(Re-Activate)」を実行
- 銀行明細行から参照されているバッチ、消込済み(Reconciled)の入金支払伝票を含むバッチは無効化・再活性化できません
項目リファレンス
Section titled “項目リファレンス”Batch タブ
Section titled “Batch タブ”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 銀行口座 | 必須 | 選択 | 預入先口座。変更時に通貨を自動セット |
| 入金日 | 必須 | 日付 | 預入日(デフォルト: ログイン日付) |
| 伝票タイプ | 必須 | 選択 | バッチの伝票タイプ |
| 伝票番号 | 必須 | 文字列 | 伝票採番 |
| 伝票日付 | 必須 | 日付 | 伝票の日付(デフォルト: ログイン日付) |
| Currency | 必須 | 選択 | バッチの通貨(明細の通貨と一致必須) |
| Deposit Amount | 必須 | 金額 | 預入金額(完了時に明細合計で再計算) |
| 伝票状態 | 必須 | リスト | ドラフト→進行中→完了→クローズ(デフォルト: DR) |
Lines タブ
Section titled “Lines タブ”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 明細番号 | 必須 | 整数 | 自動採番(既存最大値 + 10) |
| 入金支払伝票 | 必須 | 検索 | バッチに含める入金支払伝票 |
| 御支払金額 | 必須 | 金額 | 伝票から自動セットされる金額 |
| 処理済み | 必須 | チェック | バッチ完了時に自動で ON |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”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行)が明細の整合性チェックを担います。
アーキテクチャ概要
Section titled “アーキテクチャ概要”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
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MDepositBatch.java、MDepositBatchLine.java
関連DBテーブル
Section titled “関連DBテーブル”C_DepositBatch(入金バッチヘッダ)
Section titled “C_DepositBatch(入金バッチヘッダ)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_DepositBatch_ID | ID | PK | バッチID | 主キー |
| C_BankAccount_ID | TableDirect | Y | 銀行口座 | callout CalloutDepositBatch.bankAccount |
| DateDeposit | Date | Y | 入金日 | デフォルト @#Date@ |
| C_DocType_ID | TableDirect | Y | 伝票タイプ | |
| DocumentNo | String | Y | 伝票番号 | |
| DateDoc | Date | Y | 伝票日付 | デフォルト @#Date@ |
| C_Currency_ID | TableDirect | Y | 通貨 | 銀行口座から自動セット |
| DepositAmt | Amount | Y | 預入金額 | prepare/complete で明細合計に更新 |
| DocStatus | List | Y | 伝票状態 | デフォルト DR |
| DocAction | Button | N | 伝票アクション | デフォルト CO |
| CreateFrom | Button | N | 既存伝票をもとに明細行を作成 | |
| Processed | YesNo | Y | 処理済み |
C_DepositBatchLine(入金バッチ明細)
Section titled “C_DepositBatchLine(入金バッチ明細)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_DepositBatchLine_ID | ID | PK | 明細ID | 主キー |
| C_DepositBatch_ID | Search | Y | バッチFK | 親リンク |
| Line | Integer | Y | 明細番号 | デフォルト SQL: MAX(Line)+10 |
| C_Payment_ID | Search | Y | 入金支払伝票 | |
| PayAmt | Amount | Y | 御支払金額 | setPayment() で伝票から転記 |
| Processed | YesNo | Y | 処理済み | 完了時に ON |
ビジネスロジック
Section titled “ビジネスロジック”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をセットします。
拡張ポイント
Section titled “拡張ポイント”- Model Validator:
MDepositBatchの各 DocAction はTIMING_BEFORE/AFTER_PREPARE・COMPLETE・VOID・REACTIVATEの各タイミングでModelValidationEngineを呼び出しており、OSGi プラグインからフックできます。 - Callout: 標準では
C_BankAccount_IDにorg.compiere.model.CalloutDepositBatch.bankAccount(口座通貨の自動セット)が定義されています(実装はorg.adempiere.base.calloutプラグイン)。
関連プロセス
Section titled “関連プロセス”| プロセス名 | 説明 |
|---|---|
| 既存伝票をもとに明細行を作成(CreateFrom) | 既存の入金支払伝票からバッチ明細を一括生成 |
| Process Deposit Batch(DocAction) | 伝票エンジンによる完了・無効化等の実行 |
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”入金バッチの承認フロー追加や銀行フォーマットに合わせた預入データ出力など、実運用に合わせた拡張が可能です。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。