エラー原因ファイルのフォーマット
- 【エラー原因の出力仕様】
-
1つのエラーに対して、エラー内容を1行で出力します。
1レコード中の複数の項目に対してスキップ可能なエラーが存在した場合、エラーを複数行に分けて出力します。
- 【ファイルの文字コードおよび言語】
-
文字コード、および言語は次の表のとおりです。
表7.14 エラー原因ファイルの文字コードおよび言語
カテゴリ
Windows
UNIX/Linux
文字コード
「SHIFT-JIS」固定
システム動作環境設定ファイルに設定された自機種のコード(knjcode)
改行コード
「0D0A」固定
「0A」固定
BOM
無し
言語
システム動作環境設定ファイルに設定された言語(huledlang)
【フォーマット】
エラーは、次の形式で出力されます。
"完了コード-詳細コード","完了メッセージ","詳細メッセージ","追加情報","キー項目情報"
各項目はCSV形式(カンマ区切り)で出力されます。
各項目のデータは、”(ダブルクォーテーション)で囲まれて出力されます。
「キー項目情報」はデータ加工実行コマンド(utledコマンド)で 「-errcausekeys」を指定した場合にのみ出力されます。
-
完了コード-詳細コード
4桁の数字文字列。4桁に満たない場合、上位桁を0詰め。
-
完了メッセージ、詳細メッセージ
改行コードや一部の文字を置換したメッセージ。
以下のように置き換えて出力します。
表7.15 出力メッセージにおける制御文字の置き換えルール
置き換え対象文字
置き換え後の文字
備考
\n (0x0A)
\n (0x5C, 0x6E)
\r (0x0D)
\r (0x5C, 0x72)
\0 (0x00)
\0 (0x5C, 0x30)
, (0x2C)
: (0x3A)
カンマは区切り文字と使用しているため、メッセージ内のカンマはコロンに置き換え
-
追加情報
エラー位置を特定するための情報。
以下の表の情報をスペース区切りで出力します。
出力順序は「#」の順となります。レコード番号、項目番号等の数値は1から始まります。ただし、レコード全体に関わるエラーの場合、項目番号を「0」として出力します。
表7.16 追加情報の内容
#
出力情報
出力条件
説明
出力例
1
入力種別(入力)
レコード読み込み時のエラー
エラー項目を検出した入力種別
入力種別(入力)
2
入力レコード数(%d)
必ず出力
入力レコードのレコード番号
入力レコード数(5)
3
入力項目番号(%d)
レコード読み込み時のエラー
入力レコードの項目番号
入力項目番号(3)
4
条件設定%d(%s)
レコード加工および出力時のエラー
データ加工情報設定で定義した抽出条件、カスタムエラー条件の通番および条件種別
<条件種別>
以下のいずれかを出力
-
抽出条件
-
カスタムエラー条件
<補足事項>
「条件なし」の抽出条件を設定した場合、%dには「0」を出力
「条件なし」はVer.1のパラメータファイルを使用した場合にのみ設定可
条件設定2(抽出条件)
5
出力番号(%d)
レコード加工および出力時のエラー
変数の代入エラー
データ加工情報設定で定義した出力設定の番号
変数の代入エラーの場合は、「変数」という文字列になる
出力番号(3)
出力番号(変数)
6
出力項目番号(%d)
レコード加工および出力時のエラー
出力レコードの項目番号 (*1)
出力項目番号(4)
7
出力項目名(%s)
レコード加工および出力時のエラー
変数の代入エラー
出力レコードの項目名 (*2)
変数の代入エラーの場合は、変数名になる
出力項目名(NAME)
*1
:
出力設定でIDを省略した場合に使用されます。
*2
:
出力設定でIDを省略しなかった場合に使用されます。
-
-
キー項目情報
エラーのキー項目を特定する情報。
データ加工実行コマンド(utledコマンド)実行時、「-errcausekeys」引数で指定された順番でキー項目名および項目内容を出力します。
キー項目情報の出力フォーマットについて
キー項目情報は以下のように出力します。
"キー項目:キー項目名1(項目内容) キー項目名2(項目内容)"
キー項目情報はプレフィックスとして「キー項目:」を出力します。
キー項目名と項目内容を1セットとして出力します。
キー項目が複数指定されている場合、1セット(キー項目名と項目内容)の間は半角スペース(0x20)で区切って出力します。
注意-
キー項目として指定された項目がフォーマット不正で正しく認識出来ない場合、項目内容が正しく表示できない場合があります
-
「キー項目情報」が8,192バイト(先頭および末尾のダブルクォーテーションを除く)を超えた場合、8,192バイトを超えた分のデータは切り捨てられます。8,192バイトまでのデータが、”(ダブルクォーテーション)で囲まれて出力されます。
出力文字列の変換について
項目タイプが以下の数値タイプの場合、キー項目内容を数字文字列に変換して出力します。
-
9(サイン無外部10進数)
-
P(サイン付内部10進数)
-
S(サイン付外部10進数)
-
B(バイナリ)
-
F(浮動小数点タイプ)
項目タイプが以下のバイナリタイプの場合、キー項目内容を16進数表記に変換して出力します。
-
I(イメージタイプ)
たとえば、16進数表記「00 01 0A」は「\x00 \x01 \x0A」のように出力します。
改行コードや一部の文字は以下のように置き換えて出力します。
表7.17 項目内容における制御文字の置き換えルール
置き換え対象文字
置き換え後の文字
備考
\n (0x0A)
\n (0x5C, 0x6E)
\r (0x0D)
\r (0x5C, 0x72)
\0 (0x00)
\0 (0x5C, 0x30)
\ (0x5C)
\\ (0x5C, 0x5C)
“ (0x22)
\x22 (0x5C, 0x78, 0x32, 0x32)
ダブルクォーテーションは囲み文字と使用しているため、16進数表記に置き換え
, (0x2C)
\x2C (0x5C, 0x78, 0x32, 0x43)
カンマは区切り文字と使用しているため、16進数表記に置き換え
-
- 【出力例】
-
"0097-0006","コード変換エラー","3バイト目を処理中に未登録の外字がありました。コード(0x8740)","入力レコード数(1) 条件設定2(抽出条件) 出力番号(3) 出力項目番号(1) ","キー項目:店舗コード(01234) 商品コード(ABC-01234)"