数字フィールドのチェックディジット(モジュラス11)について

Document created by Toshikazu_Toyama Employee on Dec 17, 2015Last modified by Toshikazu_Toyama Employee on Jan 8, 2016
Version 1Show Document
  • View in full screen mode

文書番号: JTEC002403

製品名:CA 2E

バージョン:8.78.68.5

OS:IBM I

 

詳細内容
[質問]
マイナンバーを登録する12桁の数値タイプのフィールドに「編集:フィールド詳細」の「モジュラス10/11」の入力値にモジュラス11を適用する様にして、入力ミスを事前にチェックできるようにしました。
しかしながら、作成後の画面でほとんどのナンバーは正しくチェックを通るのですが、一部のナンバーでは正しく入力しても以下のシステムエラーで個人番号を登録することができません。(チェックデジットが0の番号を持っている個人番号の一部でエラーが発生する様です。)

これを回避する方法はありますか?


エラーメッセージ:
「フィールドの値がモジュラス10またはモジュラス11の検査を満たしていない。」

 

回避方法/設定方法
[回答]
CA 2EはIBMの仕様に準拠しておりますので、この問題を回避する標準手段は提供されておりません。
編集:フィールド詳細の「モジュラス10/11」を使用しないで、独自の入力チェックの組込みをご検討下さい。

 

詳細:
CA 2Eは、編集:フィールド詳細の「モジュラス10/11」の入力値により、DDS CHECK キーワードが使用されます。

「編集:フィールド詳細」画面の「モジュラス10/11」に11を入力する。

DDSソースにCHECH(M11)が生成されます。

加重係数: 2、3、4、5、6、7

個人番号121121011010(基本数:12112101101 検査数値:0) での例:

1.(1*6)+(2*5)+(1*4)+(1*3)*(2*2)+(1*7)+(0*6)+(1*5)+(1*4)+(0*3)+(1*2)=45
(121121011010の加重係数65432765432です。)

2.45/11=4..1 (余り1)

3.11-1=10

検査数値の結果が10です。

IBMの仕様では自己検査数字を持たない(12112101101X)と解釈します。

 

しかし、この場合「総務省令第八十五号の第五条令第八条」で定める算式では上記の例の場合、自己検査数字に0が充てられます。(121121011010)
(詳細は総務省令第八十五号を参照ください。)


そのため、CA 2Eではこの結果の検査数値を表示装置ファイルのCHECK(M11)キーワードでは正しいと判断する事が出来ません。
IBM「表示装置ファイルのDDS」のマニュアルに記載されておりますように DDS CHECK キーワードではモジュラス11の自己検査数字算出過程で計算された余りが1の場合には基本数は自己検査数字をもたないため、このエラーが発生します。
※ IBM 社は自己検査フィールドとして定義したフィールドで余りが1になるような基本数を使用しないことを推奨しております。

 

回避方法は、編集:フィールド詳細の「モジュラス10/11」を使用しないで、独自の入力チェックを組込んでください。

Attachments

    Outcomes