(57)【特許請求の範囲】
【請求項１】
連番部にチェックディジットによる検査桁を連結してなる番号に別途求めた管理数を加算して管理番号とする管理番号発番方法であって、前記管理数が、前記管理番号の連番部分を繰り返し使用するときの繰り返し回数であり、
管理番号を格納した管理番号記憶手段から、管理番号の前回の発番値を取得する第１のステップと、
チェックディジット演算手段により、第１のステップで取得した発番値の連番部分n1のチェックディジットc1を演算する第２のステップと、
管理数演算手段により、第１のステップで取得した発番値の検査桁部分m1から、第２のステップで演算したチェックディジットc1を差し引いて、第１のステップで取得した発番値の管理数d（d＝m1−c1）を演算する第３のステップと、
連番部分演算手段により、第１のステップで取得した発番値の連番部分n1の値に１を加増して管理番号の今回の発番値の連番部分n2（n2＝n1＋1）を演算する第４のステップと、
前記チェックディジット演算手段により、第４のステップで演算した連番部分n2のチェックディジットc2を演算する第５のステップと、
発番値演算手段により、第５のステップで演算したチェックディジットc2に第３のステップで演算した管理数dを加算した値を演算し、演算した値を管理番号の今回の発番値の検査桁部分m2（m2＝c2＋d）とし、該検査桁部分m2を第４のステップで演算した連番部分n2に連結した数値を、管理番号の今回の発番値とする第６のステップと、
第６のステップで決定した管理番号の今回の発番値を、前記管理番号記憶手段に記憶する第７のステップと、
を有することを特徴とする管理番号発番方法。
【請求項２】
前記管理番号記憶手段が、管理番号に加えて該管理番号の管理数を格納した記憶手段であり、
前記第３のステップに代えて、前記管理番号記憶手段から管理番号の前回の発番値の管理数dを取得する第３Ａのステップを有し、
前記第６のステップにおいて、第５のステップで演算したチェックディジットc2に第３Ａのステップで取得した管理数dを加算した値を演算し、
第７のステップにおいて、第６のステップで決定した今回の管理番号の発番値と管理数を、前記管理番号記憶手段に記憶することを特徴とする請求項１に記載の管理番号発番方法。
【請求項３】
前記第６のステップにおいて、検査桁部分m2に、チェックディジットc2に管理番号の前回の発番値の管理数dを加算した解が１桁ならこの解、２桁ならこの解を10で割った余り、を採用し、連番部分が発番可能な最大の値を超えたら、連番部分を初期値に戻し、管理番号の今回の発番値の管理数を、前回の管理番号の発番値の管理数dを１加増した値d+1とし、前記チェックディジット演算手段により、初期値のチェックディジットc3を演算し、前記発番値演算手段により、前記初期値のチェックディジットc3に管理番号の今回の発番値の管理数d+1を加算した値を算出し、算出した値を検査桁部分m3とし、該検査桁部分m3を前記初期値に連結した数値を管理番号の今回の発番値とすることを特徴とする請求項１または２に記載の管理番号発番方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理番号発番方法に関する。管理番号を発番される対象（管理対象）は有体物でも無体物でもよい。
【背景技術】
【０００２】
特許文献１には、有体物あるいは無体物に付与する管理番号の誤認が起き難く、たとえ誤認があっても、その誤認による個体の取り違えを未遂にしうる、有体物及び無体物に対する管理番号の発番方法として、ｎ桁の順列を作成する段階と、該ｎ桁の各桁に排他的に割り振る数値及び/又は文字の組合せを選択する段階とを含む手順により、番号配列に関する二次元マトリックスＭを作成し、その二次元マトリックスに従い前記個体識別番号を発番することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１７９５３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の方法では、発番された管理番号の誤認防止には有効であるが、順次発番される番号と番号との間に関連がないため、管理上の不都合が生じていた。例えば、ａ)ある２つの管理番号を見て、それらが連続して発番されたものか否かが不明である。ｂ）連続して発番された複数の管理番号の最初の番号と最後の番号を見て、それらの複数の管理番号の総数が不明であるという問題である。これらはいずれも管理番号を連番（発番順序を表す番号）とする従来の一般的な発番方法では発生しない問題である。
【０００５】
一方、管理番号に連番を用いる場合に誤認防止を図る手段としてはチェックディジット（check digit）が周知である。例えばパソコン用語辞典e-words(http://e-words.jp)に記載されているように、チェックディジットとは、数列の誤りを検出したり捏造を防止したりするために、一定のアルゴリズムに従って付加される数値や記号のことであり、バーコードや銀行の口座番号などに利用されている。もっともよく用いられるチェックディジット生成方式は、各々の値に一定の規則に従った係数を乗じたものの和を求め、それを定められた係数で割った余りを用いるというものである。元の数列の数字の一部が間違っているとチェックディジットが大きく変動するため、誤りを検出することができる。
【０００６】
しかし、チェックディジットを使用する場合には、管理番号の桁数が１桁増加するため、以下の問題が生じる。
(1)管理負荷が増大する（管理番号の物品への表示、情報システムへの入力、管理者間での口頭伝達などに際して）。
(2)既存の仕組みに後から導入する場合には、桁数の増加のため管理番号が物理的に表示できない、情報システムの桁数不足によりシステムの修正が必要となる等が生じる場合がある。
【０００７】
管理番号を誤ったとしても、誤った管理番号を持つ管理対象が存在しなければ、その誤りは実害を及ぼすには至らない。
一般に、管理番号には連番（発番順序を表す番号）が用いられる。このため、２つの管理番号Ａ，Ｂの数値の差が小さい場合に、この２つの管理番号を取り違えると、管理対象の取り違えが生じる可能性が高い。逆に、数値の差が大きい管理番号Ｃ，Ｄを取り違えた場合には、誤った管理番号をもつ管理対象が存在せず、未遂となる可能性が高い。(例１)製造業において、製品に製造順に管理番号を発番すると、製品倉庫において数値の差の小さい管理番号が同時期に近しい場所に存在する可能性が高い。数値の差の大きい管理番号間は、時間的、空間的に離れた状態で存在する、または同時に存在しない可能性が高い。(例２)会社において、社員に入社順に管理番号を発番すると、同時期に入社した社員の間で取り違えが生じやすい。(例３)会社において、伝票に発行時刻順に管理番号を発番すると、同一日に処理する伝票の間で取り違えが生じやすい。
【課題を解決するための手段】
【０００８】
本発明者は、前記課題を解決するために、発番された管理番号の見間違い、記憶錯誤、転記ミス等による管理対象の取り違えを防止でき、しかも桁数増加も招かない管理番号発番方法を鋭意検討し、その結果、管理番号がｎ桁のとき、先頭から１桁目〜（ｎ−１）桁目を連番部、ｎ桁目をチェックディジットによる検査桁とし、さらに検査桁に対してある規則に従った数値を加算するという手段に想到し、本発明をなすに至った。すなわち、本発明は以下のとおりである。
（１） 連番部にチェックディジットによる検査桁を連結してなる番号に別途求めた管理数を加算して管理番号とする管理番号発番方法であって、前記管理数が、前記管理番号の連番部分を繰り返し使用するときの繰り返し回数であり、管理番号を格納した管理番号記憶手段から、管理番号の前回の発番値を取得する第１のステップと、チェックディジット演算手段により、第１のステップで取得した発番値の連番部分n1のチェックディジットc1を演算する第２のステップと、管理数演算手段により、第１のステップで取得した発番値の検査桁部分m1から、第２のステップで演算したチェックディジットc1を差し引いて、第１のステップで取得した発番値の管理数d（d＝m1−c1）を演算する第３のステップと、連番部分演算手段により、第１のステップで取得した発番値の連番部分n1の値に１を加増して管理番号の今回の発番値の連番部分n2（n2＝n1＋1）を演算する第４のステップと、前記チェックディジット演算手段により、第４のステップで演算した連番部分n2のチェックディジットc2を演算する第５のステップと、
発番値演算手段により、第５のステップで演算したチェックディジットc2に第３のステップで演算した管理数dを加算した値を演算し、演算した値を管理番号の今回の発番値の検査桁部分m2（m2＝c2＋d）とし、該検査桁部分m2を第４のステップで演算した連番部分n2に連結した数値を、管理番号の今回の発番値とする第６のステップと、第６のステップで決定した管理番号の今回の発番値を、前記管理番号記憶手段に記憶する第７のステップと、を有することを特徴とする管理番号発番方法。
（２） （１）において、前記管理番号記憶手段が、管理番号に加えて該管理番号の管理数を格納した記憶手段であり、前記第３のステップに代えて、前記管理番号記憶手段から管理番号の前回の発番値の管理数dを取得する第３Ａのステップを有し、前記第６のステップにおいて、第５のステップで演算したチェックディジットc2に第３Ａのステップで取得した管理数dを加算した値を演算し、第７のステップにおいて、第６のステップで決定した今回の管理番号の発番値と管理数を、前記管理番号記憶手段に記憶することを特徴とする管理番号発番方法。
（３）  （１）または（２）において、前記第６のステップにおいて、検査桁部分m2に、チェックディジットc2に管理番号の前回の発番値の管理数dを加算した解が１桁ならこの解、２桁ならこの解を10で割った余り、を採用し、連番部分が発番可能な最大の値を超えたら、連番部分を初期値に戻し、管理番号の今回の発番値の管理数を、前回の管理番号の発番値の管理数dを１加増した値d+1とし、前記チェックディジット演算手段により、初期値のチェックディジットc3を演算し、前記発番値演算手段により、前記初期値のチェックディジットc3に管理番号の今回の発番値の管理数d+1を加算した値を算出し、算出した値を検査桁部分m3とし、該検査桁部分m3を前記初期値に連結した数値を管理番号の今回の発番値とすることを特徴とする管理番号発番方法。
【０００９】
なお、（３）において、前記管理数が２桁となったら、発番不可とするか、あるいは、前記連番部及び前記管理数を初期値に戻し、サイクリックに発番するかのいずれかとすればよい。サイクリックに発番する場合には、同一番号の２回目以降の発番に際しては、前回発番した管理対象が消滅している（重複発番とならない）事を確認した上で発番し、もし重複する場合には、当該番号の次の番号を発番することが好ましい。
【発明の効果】
【００１０】
本発明によれば、連番部を有することで２つの管理番号が連続して発番されたものであるか否かの判断が可能、複数の連続して発番された管理番号の総数をその最初の番号と最後の番号から算出が可能などの通常の管理番号を連番とする方法と同等の利便性を持ち、連番部に検査桁を連結した暫定番号に繰り返し使用回数を加算して管理番号としたことで、管理番号の見間違い、記憶錯誤、転記ミス等による管理対象の取り違えを有効に防止でき、しかも、検査桁は管理番号の末尾桁に吸収されるので桁数増加による管理負荷増大やシステム要修正の問題も生じない。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施に好適な手順１を示すフロー図
【図２】本発明の実施に好適な手順２を示すフロー図
【図３】本発明の実施例に係る発番結果を示すテーブル図
【発明を実施するための形態】
【００１２】
管理番号の各桁および検査桁のとりうる数値は0,1,…,9のいずれかである。
検査桁の値は、連番部の数値に対してチェックディジット算出方法を適用して算出する。チェックディジット算出方法は、一般的に用いられている「モジュラス１０／ウェイト３」「モジュラス１０／ウェイト２」「モジュラス１１/ウェイト２、３、４、５、６、７」「ＤＲチェック・ＤＳＲチェック」「モジュラス１６」「モジュラス４３」「モジュラス１０３」（例えばhttp://www.numbering.dpi.ne.jp参照）などの中から適宜選んで用いることができる。
【００１３】
図１は本発明の実施に好適な手順１を示すフロー図である。この手順１では、前回の発番値を記憶しておき、その連番部分のチェックディジットから前回の管理数を求めるようにしている。
ステップ[1]：前回の発番値の連番部分をn1とし、[2]へ進む。連番部が３桁（管理番号が４桁）の場合、n1の初期値を例えば001とする。
【００１４】
ステップ[2]：前回の発番値の検査桁部分をm1とし、[3]へ進む。
ステップ[3]：連番部分n1のチェックディジットを算出し、算出結果をc1として[4]へ進む。
ステップ[4][5]：m1は、（c1+管理数）が１桁ならその値、２桁ならこれを10で割った余り（＝これから10を引いた値）とされているから、管理数をdとすると、(A)：m1＝c1+d、または、(B)：m1＝c1+d-10である。(A)の場合、m1-c1＝d≧0、(B)の場合、m1-c1＝d-10＜0である。そこで、（m1-c1）を計算してその結果をdとする ([4])。ただし、(m1-c1)＝dが負の場合、d+10をdの値とする([5])。そして[6]へ進む。
【００１５】
ステップ[6]：n1を１加増し、その結果をn2とし、[7]へ進む。
ステップ[7]：n2が連番部分n1の桁数を超過する（yes）か否(no)かを判定し、yesなら[8]へ、noなら[11]へ進む。この桁数超過成否判定は、連番部の値が発番可能な最大の値を超えるか否かの判定と同等である。
ステップ[8]：dが9である(yes)か否(no)かを判定し、yesなら[15]へ、noなら[9]へ進む。
【００１６】
ステップ[9][10]：n2を連番部の初期値に戻し、dを１加増して、[11]へ進む。
ステップ[11][12][13]：n2のチェックディジットc2を算出（[11]）し、算出結果にdを加算してその結果をm2とする([12])。ただし、m2＞9（２桁の値）の場合、（m2÷10）の余り（＝m2の１桁目の値）をm2の値とする([13])。そして[14]へ進む。
ステップ[14]：n2にm2を連結した数値を今回の発番値とし、終了する。
【００１７】
ステップ[15]：発番不可とし、終了する。
図２は本発明の実施に好適な手順２を示すフロー図である。この手順２では、前回の発番値に加えて、前回の管理数を記憶しておくようにしている。すなわち、手順２は、手順１において、ステップ[3][4][5]に代えて、ステップ[3A]：前回の発番値の管理数（初期値は0）をdとして[6]へ進む、としたものである。これ以外のステップは手順１と同じである。
【実施例】
【００１８】
実施例では、鋼管を管理対象として、５桁の管理番号の末尾の桁を検査桁とし、検査桁以外の４桁を連番部とし、前記手順１により管理番号を発番した。ここでのチェックディジット算出方法は、「モジュラス１０／ウェイト３」を用いた。これは、連番部４桁のうちの偶数桁（管理番号５桁のうちの奇数桁）に係数1、連番部４桁のうちの奇数桁（管理番号５桁のうちの偶数桁）に係数3をそれぞれ掛けた結果の合計を求め、これを10で割り、余りが0なら0をチェックディジットとし、余りが0以外なら10から余りを引いた値をチェックディジットとする方法である。
【００１９】
発番結果を図３に示す。
図３のように、検査桁＝連番部から算出したチェックディジット、管理番号＝連番部の後に｛検査桁＋管理数（＝連番部の繰り返し使用回数）｝、としている。このため、連番部を参照することで連番方式と同等の利便性を享受することを可能としながら、従来５桁であった管理番号の桁数は５桁のままで増えていない。
【００２０】
さらに、発番後に２つの管理番号の取り違えがあっても両者の発番順序の差は大きいため、管理対象の時間的・空間的の離間が大きくて、取り違えが生じる確率は低い。
例えば12370と12379とを取り違えた場合、従来の連番のみの発番では両者の発番順序の差は12370〜12379＝9と小さい。これに対し図３では、両者の発番順序の差は、（1237〜9999＝8762）＋（9999〜0001＝1）＋（0001〜1237＝1236）＝9999となって、格段に大きい。
【図１】
0005509924.tif 000002
【図２】
0005509924.tif 000003
【図３】
0005509924.tif 000004