iDempiere シーケンス番号の使い方|会計 操作マニュアル・技術仕様
📖 会計の全体像: 会計の全体図 も合わせてご覧ください。
シーケンス番号は、システム内のレコードIDと伝票番号の採番ルールを定義するウィンドウです。伝票番号に接頭辞・接尾辞を付けたり、開始番号や増加数を変更したり、年度・月ごとに番号をリセットする運用が設定できます。
📌 ポイント: 伝票番号のシーケンスは「伝票タイプ」ウィンドウの「伝票番号シーケンス」から参照されます。番号体系を変える場合はこのウィンドウでシーケンスを作成・変更し、伝票タイプ側で割り当てます。
シーケンス番号でできること
Section titled “シーケンス番号でできること”- 伝票番号の接頭辞(Prefix)・接尾辞(Suffix)の設定
- 次に採番される番号(次の番号)と増加数の変更
- 毎年・毎月の番号リスタート(年月別の採番管理)
- 組織ごとに独立した採番(組織毎に採番)
- 値フォーマット(VFormat)による番号の書式チェック
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| 番号シーケンス | AD_Sequence | 約18項目 | 採番定義(接頭辞・接尾辞・次の番号・リスタート設定) |
| 採番管理 | AD_Sequence_No | 約6項目 | 年月(SequenceKey)ごとの現在番号の管理 |
💡 ヒント: 「採番管理」タブは「毎年リスタート」等を有効にした場合に、年月キーごとの次番号が記録される管理用タブです。通常の設定は「番号シーケンス」タブのみで完了します。
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>会計管理 > 会計設定 > シーケンス番号"] --> B["🔍 対象シーケンスを検索<br/>(伝票タイプ名等で特定)"]
B --> C{変更内容}
C -->|番号体系の変更| D["✏️ 接頭辞・接尾辞<br/>を設定(例: INV-)"]
C -->|開始番号の変更| E["🔢 次の番号を変更<br/>(重複しない値に)"]
C -->|年次リセット| F["📅 毎年リスタートにチェック<br/>+日付カラムを指定"]
D --> G["💾 保存"]
E --> G
F --> G
G --> H["🔗 伝票タイプウィンドウで<br/>シーケンスを割り当て"]
⚠️ 注意: 「次の番号」を小さくすると既存伝票と番号が重複する恐れがあります。変更する場合は既存の最大番号より大きい値を設定してください。
アクセス方法
Section titled “アクセス方法”メニューから「会計管理 > 会計設定 > シーケンス番号」を開きます。
- ツールバーの「新規」ボタンをクリック
- 基本情報を入力:
- 名称: シーケンス名(例:
売上請求書番号) - 自動採番: チェック(自動で次番号を割当)
- 増加数: 番号の増分(デフォルト
1) - 次の番号: 次に使用される番号(デフォルト
1000000) - 接頭辞 / 接尾辞: 必要に応じて(例: 接頭辞
INV-)
- 名称: シーケンス名(例:
- 年次・月次で番号をリセットする場合:
- 毎年リスタート: チェック+日付カラム(例:
DateInvoiced)を指定 - 毎月リスタート: 「毎年リスタート」と併用してチェック
- 毎年リスタート: チェック+日付カラム(例:
- 「保存」をクリック
項目リファレンス
Section titled “項目リファレンス”番号シーケンスタブ
Section titled “番号シーケンスタブ”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 名称 | 必須 | 文字列 | シーケンスの名称 |
| 自動採番 | 必須 | チェック | 次番号を自動で割り当てる |
| レコードIDとして使用 | - | チェック | 伝票番号をレコードキーとして使用(システム用) |
| 増加数 | 必須 | 整数 | 採番の増分(デフォルト 1) |
| 次の番号 | 必須 | 整数 | 次に使用される番号(デフォルト 1000000) |
| 開始番号 | 必須 | 整数 | 開始番号(デフォルト 1000000) |
| 接頭辞 | - | 文字列 | 番号の前に付ける文字列 |
| 接尾辞 | - | 文字列 | 番号の後に付ける文字列 |
| Decimal Pattern | - | 文字列 | Java の DecimalFormat パターン(桁数固定等) |
| 値フォーマット | - | 文字列 | 値の書式(固定文字と変数 “_lLoOaAcCa09”、または ~正規表現) |
| 組織毎に採番 | 必須 | チェック | 組織ごとに独立採番する |
| 組織カラム | - | 文字列 | 組織を判定するカラム(完全修飾の AD_Org_ID) |
| 毎年リスタート | - | チェック | 毎年1/1に開始番号へ戻す |
| 毎月リスタート | 必須 | チェック | 毎月リセット(毎年リスタートと併用) |
| 日付カラム | - | 文字列 | 年月判定に使う日付カラム(完全修飾) |
全項目は 画面リファレンス: シーケンス番号 を参照してください。
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 「毎月リスタート」だけチェックしても効かないのはなぜですか?
Section titled “Q. 「毎月リスタート」だけチェックしても効かないのはなぜですか?”MSequence.beforeSave() の実装により、「毎年リスタート」がオフのまま「毎月リスタート」のみをチェックして保存すると、自動的に「毎月リスタート」もオフに戻されます。月次リセットを使う場合は必ず「毎年リスタート」と併せて有効化し、「日付カラム」も設定してください。
Q. 伝票番号を「INV-2026-000123」のような形式にできますか?
Section titled “Q. 伝票番号を「INV-2026-000123」のような形式にできますか?”接頭辞に固定文字列(例: INV-)を設定し、「毎年リスタート」を有効にして年別に採番管理する構成が基本です。桁数を固定したい場合は「Decimal Pattern」に Java の DecimalFormat パターン(例: 000000)を設定します。
Q. 年次リスタート時の番号はどこで管理されますか?
Section titled “Q. 年次リスタート時の番号はどこで管理されますか?”「採番管理」タブ(AD_Sequence_No)に、年月を表す SequenceKey(YearMonth)ごとの「次の番号」が自動的に記録されます。年が変わると新しいキーの行が作られ、開始番号から採番が再開されます。
Q. レコードID用シーケンスと伝票番号用シーケンスの違いは?
Section titled “Q. レコードID用シーケンスと伝票番号用シーケンスの違いは?”「レコードIDとして使用」がチェックされたシーケンスはテーブルの内部ID採番用で、通常は変更しません。伝票番号用のシーケンス(DocumentNo_xxx 等)のみ、運用に合わせて接頭辞や開始番号を調整してください。
🛠 技術仕様(開発者向け)
シーケンス番号は AD_Sequence テーブル(アクセスレベル: System/Client)に格納され、MSequence クラス(1,525行)がレコードID採番(getNextID)と伝票番号採番(getDocumentNo)の両方を担う、iDempiere の採番基盤の中核クラスです。年月別の採番状態は AD_Sequence_No に保持されます。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MSequence {
+getNextID(AD_Client_ID, TableName) int$
+getDocumentNo(C_DocType_ID, trxName, definite, po) String$
+getDocumentNoFromSeq(seq, trxName, po) String$
+checkClientSequences(ctx, AD_Client_ID, trxName) boolean$
+createTableSequence(ctx, TableName, trxName) boolean$
+get(ctx, tableName) MSequence$
+getNextID() int
+validateTableIDValue() String
#beforeSave(newRecord) boolean
}
class X_AD_Sequence {
<<generated>>
}
class PO {
<<abstract>>
}
MSequence --|> X_AD_Sequence
X_AD_Sequence --|> PO
MSequence --> X_AD_Sequence_No : YearMonth別の採番状態
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MSequence.java
関連DBテーブル
Section titled “関連DBテーブル”AD_Sequence(番号シーケンス)
Section titled “AD_Sequence(番号シーケンス)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| AD_Sequence_ID | ID | PK | シーケンスID | 主キー |
| Name | String | Y | 名称 | |
| IsAutoSequence | YesNo | Y | 自動採番 | |
| IsTableID | YesNo | N | レコードIDとして使用 | |
| IncrementNo | Integer | Y | 増加数 | デフォルト 1 |
| CurrentNext | Integer | Y | 次の番号 | デフォルト 1000000 |
| CurrentNextSys | Integer | Y | システム用次番号 | デフォルト 100 |
| StartNo | Integer | Y | 開始番号 | デフォルト 1000000 |
| Prefix / Suffix | String | N | 接頭辞・接尾辞 | |
| DecimalPattern | String | N | Java DecimalFormat パターン | |
| VFormat | String | N | 値フォーマット | 固定文字+変数 / ~regex |
| IsOrgLevelSequence | YesNo | Y | 組織毎に採番 | デフォルト N |
| OrgColumn | String | N | 組織カラム | |
| StartNewYear | YesNo | N | 毎年リスタート | |
| StartNewMonth | YesNo | Y | 毎月リスタート | デフォルト N |
| DateColumn | String | N | 日付カラム |
AD_Sequence_No(採番管理)
Section titled “AD_Sequence_No(採番管理)”| カラム名 | 型 | 必須 | 説明 |
|---|---|---|---|
| AD_Sequence_ID | TableDirect | Y | シーケンスFK |
| SequenceKey | String | Y | 採番スコープを決めるキー(YearMonth 等) |
| CurrentNext | Integer | Y | 当該キーの次の番号 |
ビジネスロジック
Section titled “ビジネスロジック”beforeSave() の整合性補正
Section titled “beforeSave() の整合性補正”MSequence.beforeSave() は 1 点のみ:「毎月リスタート(StartNewMonth)」がオンで「毎年リスタート(StartNewYear)」がオフの場合、StartNewMonth を強制的にオフへ戻します。月次リセットは年次リセットの下位オプションという設計です。
伝票番号の採番フロー
Section titled “伝票番号の採番フロー”getDocumentNo(C_DocType_ID, trxName, definite, po)が伝票タイプのDocNoSequence_ID(definite=true の場合はDefiniteSequence_ID)を解決getDocumentNoFromSeq()が対象シーケンス行をFOR UPDATE相当でロックしCurrentNextを取得・加算- 年次/月次リスタート有効時は
DateColumnの値からSequenceKeyを求め、AD_Sequence_Noの行を参照・更新 - 接頭辞 + (DecimalPattern 適用済み)番号 + 接尾辞 を連結して返却
getNextID() 系はレコードID(IsTableID=Y)の採番に使われ、checkClientSequences() はクライアント作成時のシーケンス一式の検証・補完に使われます。
拡張ポイント
Section titled “拡張ポイント”- Model Validator:
AD_Sequence自体へのバリデーション追加は可能ですが、採番ロジック本体(getDocumentNoFromSeq)は静的メソッドのため、番号体系のカスタマイズは原則「接頭辞・接尾辞・DecimalPattern・リスタート設定」の組み合わせで実現します - 伝票タイプ経由の差し替え: 伝票タイプごとに別シーケンスを割り当てることで、部門別・伝票種別の番号体系を無改造で構成できます
- このテーブルにはカラム callout の定義はありません(gw_column.tsv 確認済み)
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”伝票番号体系は標準機能(接頭辞・リスタート・DecimalPattern)で多くの要件に対応できますが、特殊な採番ルールが必要な場合も OSGi プラグインでコア改変なしに拡張可能です。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。