続き番号の設定についての紹介


Microsoft Learnの以下のコンテンツのうち、Number Series について補足する。
Dynamics 365 Business Central で番号シリーズと証跡コードを設定する – Learn | Microsoft Docs
なお、リンク先の目次に「続き番号」「番号シリーズ」「数値系列」とあるが、すべて同じ意味である。(試しにURLのja-jpをen-usに打ち換えるとすべて’Number Series’となっている。)

Number Series(付番体系)は伝票やマスタの新規作成時に使用される。例えば発注伝票の一覧画面を表示すると以下のようにNo.の列が連番になっている。ここで新規ボタンを押して新しい伝票を作成してみる。

新規伝票画面でEnterを押すと自動的に番号が採番される。例えば以下の例では’106006’という伝票番号が自動的に採番されている。この番号はどこでどのように採番されたのだろうか。

答えは’Purchase & Payable Setup’にある。虫眼鏡ボタンからキーワード検索して Purchase & Payable Setup 画面を表示すると、Number Series のセクションに’Order Nos.’という項目がある。ここにセットされている’P-ORD’が番号を採番する体系である。

虫眼鏡ボタンから’No. Series’をキーワード検索し、No. Series一覧画面を表示する。するとP-ORDという行が見つかる。ここで番号体系を管理している。
・Starting No.:開始番号。この番号から順に番号を採番する。
・Endign No.:終了番号。この番号まで順に番号を採番する。
・Last Date Used:番号最終使用日。最後に番号を採番した作業日付。(システム日付ではない)
・Last No. Used:最終使用番号。最後に採番された番号。次回はこの次の番号が採番される。

Purchase Order(発注伝票)を例に説明したが、他の伝票やマスタについても番号が採番される基本的な仕組みは同じである。例えば、キーワード検索で’Setup’を検索すると様々なSetupメニューが候補として表示される。

例えば ’Inventory Setup’ 画面を見るとItem No.(品目マスタ)や Transfer Order(在庫の移動指示伝票)の番号を採番する体系を定義していることがわかる。

そして、各種Setup画面のNumberingセクションで指定された各種Number Seriesのコードは No.Seriesの一覧で定義されていることが確認できる。

試しにP-ORDのStarting No.をクリックしてみる。

すると、No. Series Linesという詳細画面が開く。前の画面にはない項目が表示されている。
・Warning No.:警告番号。この番号に達すると警告が出る。番号枯渇の警告に使う。
・Increment-by No.:何番ごとに取るかを決める。10にすると’1020’の次は’1020’になる。
・Open:番号が枯渇するとOffになる。(Ending No.=Last User No.にした瞬間OFFになる)
・Allow Gaps in Nos.:飛び番許可のようだが、Offでも番号を削除して飛び番号にできる。謎。

特に説明せず「 No. Series Linesという詳細画面が開く」と書いたが、これには理由がある。一見すると、番号体系のコードと最終使用番号などは同じテーブル同じ画面でも良さそうだが一覧画面でテーブルを確認すると違うテーブルであることがわかる。(Ctrl+Alt+F1で右側のPage/Table情報が表示される。)例えば、No. Series画面はテーブル番号308:No. Series。

No. Series Lines画面はTable番号309:No. Series Lineである。

実は1つのNumber Seriesのコードに複数の番号範囲を割り当てることが出来る。以下の画面のように左端のStarting Date を設定して行を分けることが出来る。用途としては年度ごとに伝票番号を分ける、といった使い方ができる。2020年は上2桁が20で2021年は上2桁が21、といった使い方ができる。なお、このStartingDateとで判定されるのは「作業日付」である。(システム日付ではないことに注意)

上のような設定をした状態で、作業日付を2020年12月31日に設定し、伝票を新規登録してみると上2桁が20の番号が採番号された。

作業日付を2021年1月1日に設定して発注伝票を新規登録すると、上21で伝票番号が採番されることがわかる。

余談だが、年度や月ごとに番号範囲を使い分けるのは個人的にはお勧めしない。「当期の伝票と昨期の伝票を番号で見分けたい」という要件は時々きくが、何をもって「今期/昨期」とするかがあいまいなことが多い。(起票した日付なのか、受注した日付なのか、売り上げを上げた日付なのか、など)。少なくともBCでは「新規作成された時点」で番号を割り振られるし、作業日付でしか制御できないので、番号のプレフィックスで見分けようとして微妙な時期のものを漏らすよりは、BCの伝票で豊富に持っている日付(転記日、文書日etc.)でフィルタする方が間違いがないと考える。