エラー原因ファイルのフォーマット

【エラー原因の出力仕様】

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)"