Skip to content

iDempiere カウンター伝票タイプの使い方|会計 操作マニュアル・技術仕様

This content is not available in your language yet.

📖 会計の全体像: 会計の全体図 も合わせてご覧ください。

カウンター伝票タイプは、組織間取引(取引先と組織をリンクした社内取引)で相手側伝票(カウンター伝票)を自動生成する際に、どの伝票タイプで作るかの対応付けを定義するウィンドウです。例えば「標準受注」から相手組織に「標準発注」を作る、といったマッピングを明示できます。

📌 ポイント: ここで定義しなければ、伝票タイプ定義の既定カウンター伝票タイプ、それも無ければ同じ基本タイプの最初の伝票タイプが自動選択されます。特定の伝票タイプ同士を厳密に対応付けたい場合にのみ登録が必要です。

カウンター伝票タイプでできること

Section titled “カウンター伝票タイプでできること”
  • 元伝票タイプ → カウンター伝票タイプの明示的なマッピング定義
  • カウンター伝票生成の有効/無効の切り替え(IsCreateCounter)
  • 生成したカウンター伝票に対する自動アクション(完成まで進める等)の指定
  • 「ドキュメントタイプバリデート」ボタンによる対応付けの妥当性検証

シンプルな 1 タブ構成です。

タブ名テーブル項目数役割
カウンター伝票タイプC_DocTypeCounter約11項目伝票タイプの対応付けと自動アクション
graph TD
    A["🚀 メニューから開く<br/>会計管理 > 会計設定 > カウンター伝票タイプ"] --> B["➕ 新規で名称を入力"]
    B --> C["📄 伝票タイプ(元)を選択<br/>例: 標準受注"]
    C --> D["📄 カウンター伝票タイプ(先)を選択<br/>例: 標準発注"]
    D --> E["⚙️ 伝票ステータス更新を指定<br/>(生成後に完成まで進める等)"]
    E --> F["🔍 ドキュメントタイプバリデートで検証"]
    F --> G{有効フラグ}
    G -->|Y| H["✅ 組織間取引で自動適用"]
    G -->|N| I["⚠️ 基本タイプの組み合わせを見直し"]
    I --> C

メニューから開く 会計管理 > 会計設定 > カウンター伝票タイプ 新規で名称を入力 伝票タイプ(元)を選択 例: 標準受注 カウンター伝票タイプ(先)を選択 例: 標準発注 伝票ステータス更新を指定 (生成後に完成まで進める等) ドキュメントタイプバリデートで検証 組織間取引で自動適用 基本タイプの組み合わせを見直し 有効フラグ

アクセス方法(メニューパス)

Section titled “アクセス方法(メニューパス)”

メニューから「会計管理 > 会計設定 > カウンター伝票タイプ」を開きます。

  1. 新規」ボタンをクリック
  2. 基本情報を入力:
    • 名称: マッピング名(例: 標準受注→標準発注
    • 伝票タイプ: 元取引の伝票タイプ
    • カウンター伝票作成: 生成する場合はチェック(既定オン。特定タイプで生成を止めたい場合はオフ)
    • カウンター伝票タイプ: 生成する相手側の伝票タイプ
    • 伝票ステータス更新(DocAction): 生成後にカウンター伝票へ適用するアクション
  3. ドキュメントタイプバリデート」ボタンで対応付けを検証
  4. 保存」をクリック

⚠️ 注意: 対応付けできる基本タイプの組み合わせは決まっています(下表)。組み合わせが不正な場合、検証で「有効」が N になり適用されません。

元伝票の基本タイプカウンター側の基本タイプ
受注(Sales Order)発注(Purchase Order)
仕入請求書(AP Invoice)売上請求書(AR Invoice)
出荷(Material Delivery)入荷(Material Receipt)
仕入クレジットメモ(AP Credit Memo)売上クレジットメモ(AR Credit Memo)
入金(AR Receipt)支払(AP Payment)

(逆方向の組み合わせも可)

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

項目名必須説明
名称必須文字列マッピング名
伝票タイプ必須選択元取引の伝票タイプ
カウンター伝票作成必須チェックカウンター伝票を生成するか(既定 Y)
カウンター伝票タイプ必須選択生成する伝票タイプ
伝票ステータス更新-リスト生成後の自動アクション(既定 -- = 何もしない)
有効(IsValid)必須チェック検証結果(自動設定)
ドキュメントタイプバリデート-ボタン対応付けの検証

Q. カウンター伝票が生成されません。

Section titled “Q. カウンター伝票が生成されません。”

前提として、取引先が組織にリンク(取引先マスタの組織リンク)されている必要があります。その上で、(1) 該当マッピングの「カウンター伝票作成」がオンか、(2) 検証で「有効」が Y になっているか、(3) カウンター伝票タイプ側が自動採番(DocNo 管理)になっているか、を確認してください。

Q. 「有効」が N になるのはなぜですか?

Section titled “Q. 「有効」が N になるのはなぜですか?”

検証(validate())が失敗しています。原因は (1) 伝票タイプまたはカウンター伝票タイプが未設定/取得不可、(2) 基本タイプの組み合わせが上表のペアに該当しない、のいずれかです。また伝票タイプを変更すると有効フラグは自動的にリセットされ、保存時に再検証されます。

Q. 生成されたカウンター伝票を自動で「完成」まで進められますか?

Section titled “Q. 生成されたカウンター伝票を自動で「完成」まで進められますか?”

「伝票ステータス更新」に完成(Complete)を指定すると、カウンター伝票生成後にそのアクションが適用されます。既定は --(ドラフトのまま)です。運用開始直後はドラフト生成で内容確認を挟み、安定後に自動完成へ切り替えるのが安全です。

Q. マッピングを定義しない場合はどう動きますか?

Section titled “Q. マッピングを定義しない場合はどう動きますか?”

伝票タイプ定義側の既定カウンター伝票タイプが使われ、それも無ければ同じ基本タイプの最初の伝票タイプが自動選択されます(例: AR Invoice → 最初の AP Invoice タイプ)。明示制御したい組み合わせだけ登録すれば十分です。

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

カウンター伝票タイプは C_DocTypeCounter テーブル(アクセスレベル 2 = Organization、削除可)に格納され、MDocTypeCounter クラス(472行)がマッピング解決と検証を担います。キャッシュ対応(markImmutable() / static get())で、伝票完成時の組織間取引処理から高速参照されます。

classDiagram
    class MDocTypeCounter {
        +getCounterDocType_ID(Properties, int)$ int
        +getCounterDocType(int)$ MDocTypeCounter
        +getCounterDocBaseType(String)$ String
        +get(int)$ MDocTypeCounter
        +validate() String
        +getDocType() MDocType
        +getCounterDocType() MDocType
        #beforeSave(boolean) boolean
        +markImmutable() MDocTypeCounter
    }
    class X_C_DocTypeCounter {
        <<generated>>
    }
    class PO {
        <<abstract>>
    }
    MDocTypeCounter --|> X_C_DocTypeCounter
    X_C_DocTypeCounter --|> PO
    MDocTypeCounter --> MDocType : maps from/to

+getCounterDocType_ID(Properties, int)$ int +getCounterDocType(int)$ MDocTypeCounter +getCounterDocBaseType(String)$ String +get(int)$ MDocTypeCounter +validate() String +getDocType() MDocType +getCounterDocType() MDocType #beforeSave(boolean) boolean +markImmutable() MDocTypeCounter <> <> > X_C_DocTypeCounter X_C_DocTypeCounter --

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

C_DocTypeCounter(カウンター伝票タイプ)

Section titled “C_DocTypeCounter(カウンター伝票タイプ)”
カラム名必須説明備考
C_DocTypeCounter_IDIDPKカウンター伝票タイプID主キー
NameString(60)Y名称
C_DocType_IDTableDirectY元伝票タイプ
Counter_C_DocType_IDTableYカウンター伝票タイプ
IsCreateCounterYesNoYカウンター伝票作成default Y
DocActionList(2)N伝票ステータス更新default --
IsValidYesNoY有効validate() が設定
ProcessingButtonNドキュメントタイプバリデート
  1. 元伝票タイプ / カウンター伝票タイプが取得できなければ IsValid=N でエラー返却
  2. 基本タイプ(DocBaseType)のペアを検査。SO↔PO / APInvoice↔ARInvoice / MaterialDelivery↔MaterialReceipt / APCreditMemo↔ARCreditMemo / ARReceipt↔APPayment の双方向ペアのみ IsValid=Y
  3. カウンター伝票タイプが自動採番(DocNo controlled)でない場合は警告メッセージを返却
  • AD_Org_ID != 0 は 0(組織 *)に強制リセット(クライアント共通マスタ)
  • 既存レコードで C_DocType_ID または Counter_C_DocType_ID が変更されたら IsValid を N にリセット
  • IsValid=N の場合は保存時に validate() を自動実行
  • getCounterDocType_ID(ctx, C_DocType_ID): 元伝票タイプからカウンター伝票タイプ ID を解決(明示マッピング優先)
  • getCounterDocBaseType(DocBaseType): 基本タイプレベルの対応(SOO→POO 等)を返すユーティリティ
  • Callout: 標準 Callout の定義はありません(gw_column 上 callout なし)
  • Model Validator: 組織間取引の統制(特定組織ペアのみ許可等)は、カウンター伝票を生成する元伝票(C_Order / C_Invoice 等)の TIMING_AFTER_COMPLETE で検証を追加します
  • キャッシュされるマスタのため、外部から直接 UPDATE した場合はキャッシュリセットが必要です
プロセス名説明
ドキュメントタイプバリデートProcessing ボタン。validate() を実行し IsValid を更新

グループ会社間・組織間の社内取引は、カウンター伝票の設計次第で二重入力をゼロにできます。組織間取引フローの設計をご支援します。

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

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