固定長 コネクターのメッセージおよび制限事項
オペレーションについては「固定長」(オペレーショントップページ)を参照してください。
FIXLENGTHカテゴリのメッセージコード一覧
固定長 Connectorで発生するエラーに対応するメッセージコードです。
定義されていないエラーが発生した場合に出力されるメッセージコードです。
原因 |
対策 |
---|---|
定義されていないエラーが発生しました。 |
エラーメッセージやエラーが発生した処理のヘルプなどを確認してください。 |
対応するエラー
-
特になし
固定長ファイルの解析に失敗した場合に出力されるメッセージコードです。
原因 |
対策 |
---|---|
固定長ファイル読み取り処理のファイルに指定されたファイルをフォーマットで読み取れません。 |
固定長ファイル読み取り処理のファイルまたはフォーマットを確認してください。 |
対応するエラー
-
StructuredTextParseException
固定長書き込み処理で、パディング文字がフィールドに入り切らない場合に出力されるメッセージコードです。
原因 |
対策 |
---|---|
固定長書き込み処理でパディングを行った結果、フィールドのデータがフィールド長以上になっています。 |
パディング文字の設定や入力データを確認してください。 |
対応するエラー
-
IllegalPaddingException
固定長書き込み処理で、パディング文字が未入力であるためパディングに失敗した場合に出力されるメッセージコードです。
原因 |
対策 |
---|---|
パディング文字が未入力であるため、パディングに失敗しました。 |
パディング文字の設定や入力データを確認してください。 |
対応するエラー
-
java.lang.ArithmeticException
FIXLENGTHカテゴリの例外メッセージ
例外名 |
原因 |
対策 |
---|---|---|
ArrayIndexOutOfBoundsException |
フォーマットで指定した列一覧のフィールド数が、入力元XMLデータのカラム数より大きい可能性があります。 |
フォーマットで指定した列一覧のフィールド数または、入力元XMLデータのカラム数を確認してください。 |
FileAlreadyExistedException |
ファイルに指定されたファイルがすでに存在します。 |
ファイルのファイル名を変更する、または書き込み設定の上書きにチェックを入れてください。 |
FileIsDirectoryException |
ファイルに入力されたパスがディレクトリーです。 |
ファイルにはファイルパスを入力してください。 |
FileIsLockedException |
ファイルに指定されたファイルがロックされています。 |
エクスプローラやCLIからロックの解除を行ってください。 |
IllegalPaddingException パディング文字が入り切りませんでした |
パディングを行った結果、フィールドのデータがフィールド長以上になっています。 |
パディング文字の設定や入力データを確認してください。 |
InputDataNotFoundException |
入力データが指定されていません。 |
入力データを指定する、またはデータフローを引いてください。 |
InvalidPropertyConfigurationException <プロパティ名>が指定されていません。 |
<プロパティ名>が指定されていません。 |
<プロパティ名>を指定してください。 |
java.io.FileNotFoundException |
ファイルに指定されたファイルが存在しません。 |
ファイルを確認してください。 |
java.io.FileNotFoundException 別のプロセスが使用中です。 |
ファイルに指定されたファイルが別のプロセスによって使用されています。 |
別のプロセスで使用されていないかを確認してください。 |
java.io.UnsupportedEncodingException |
エンコードにサポートされていないエンコードが指定されています。 |
Java SE Runtime Environment 8でサポートされているエンコードを指定してください。 = 備考 =
詳細については、「Supported Encodings」(http://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html)を参照してください。 EBCDIC系文字コードはプルダウンリストから選択できないため、エンコードに直接入力して指定してください。 |
java.lang.ArithmeticException / by zero |
パディング文字が未入力であるため、パディングに失敗しました。 |
パディング文字の設定や入力データを確認してください。 |
ResourceNotFoundException リソース定義が見つかりませんでした。名前:[] |
フォーマットが指定されていません。 |
フォーマットを指定してください。 |
ResourceNotFoundException リソース定義が見つかりませんでした。名前:[<データ形式リソース名>] |
フォーマットで選択されたリソース定義が見つかりません。 |
フォーマットで指定したデータ形式リソースを確認してください。 |
StructuredTextParseException 指定されたフォーマットでファイルを読めませんでした。 |
ファイルに指定されたファイルをフォーマットで読み取れません。 |
ファイルまたはフォーマットを確認してください。 |
FIXLENGTHカテゴリの制限事項
仕様制限
-
命名規則について
-
同じ親要素を持つ要素同士で同じ名前のもの存在する場合、正常に読み取ることはできません。
具体的には以下の要素同士が該当します。
-
グループ
-
構造定義アイコン直下のレコード
-
同一グループ内のレコード
-
同一レコード内のフィールド
-
-
フィールド・レコード・グループの名前は省略できません。
-
-
グループ・レコードの出現回数について
-
グループの出現回数が無制限の場合、そのグループに対応する入力データが出現した際、次のグループを使用した入力データの解析を最初に行い、適用可能かどうか調べます。適用可能であれば、次のグループが適用されます。適用不可能であれば、そのグループを使用した解析に移ります。
-
レコードの出現回数が無制限の場合、そのレコードに対応する入力データが出現した際、そのレコードを使用した入力データの解析を最初に行い、適用可能かどうか調べます。適用可能であれば、そのレコードを使用した解析を行い続けます。適用不可能であれば、次のレコードを使用した解析に移ります。
-
レコード・グループの出現回数を無制限に設定すると、実際にはJavaのInteger.MAX_VALUEの値(2147483647)が上限になっています。
-
グループの出現回数の省略可がチェックありの場合、実際のグループの出現回数が指定した出現回数に満たなくてもエラーにはなりません。
-
レコードの出現回数の省略可がチェックありの場合、実際のレコードの出現回数が指定した出現回数に満たなくてもエラーにはなりません。
-
-
フィールド長について
-
フィールドの長さはバイト長で指定します。バイト長は指定したエンコードに依存します。
-
フィールド長で設定できる最大値は9999です。
-
-
日付型のフィールドについて
-
日付に現れる曜日などの文字列は、デフォルトのロケールに依存したものになります。もしデフォルトのロケールでは読み取れない日付を扱う場合は、文字列として読み取るようにしてください。
-
-
大容量データ処理について
-
読み込んだデータはグループ単位で出力されます。したがって、グループ内のレコードのデータが大容量の場合、OutOfMemoryErrorが発生する場合があります。
-
-
その他
-
外字は扱えません。
-
列一覧にあるフィールドを構造定義で削除した場合、列一覧にはフィールドは残ったままになります。
-
構造定義でグループを選択して列一覧にフィールドを追加した場合、フィールドの順序は保証されません。
-
タグ、改行コードがない出現回数不特定なデータは、構造解析を切り替える基準が判定できないため正確な解析はできません。
-
実行ログに出力される「トランザクション」とは、グループの構造をまとめるために暗黙的に定義されたものであり、出現回数は無制限となります。
-
仕様制限
-
外字は扱えません。
-
書き込みの際に、文字列操作(左右揃え・パディングなど)の結果により、指定された長さのフィールドにデータがきちんと入り切らない場合は、きちんと入りきらなかった部分を「パディング文字」で埋めます。
-
文字列操作(左右揃え・パディングなど)はすべていったん「Unicode」に変換されたあとに適用されます。そのため、文字コードによっては意図したとおりの結果にならない場合があります。
-
UTF-16で書き込む際には、各フィールドの先頭にBOM(Byte Order Mark)が付加されます。
-
EBCDIC(Cp930)で書き込む際に、マルチバイト文字はマルチバイト文字への変更を表す制御文字「Shift-OUT(0x0e)」とシングルバイト文字に戻る制御文字「Shift-IN(0x0f)」(それぞれ1バイト)で囲まれます。
-
EBCDIC(Cp930)で書き込む際に、マルチバイト文字(たとえば全角スペース)でパディングすると、1パディング文字ごとに「Shift-OUT(0x0e)」と「Shift-IN(0x0f)」が付加されます。
-
列一覧で定義したフィールド数が入力元のXMLデータのカラム数より多い場合、エラーが発生し書き込むことができません。
-
nullが入力された場合は、空文字として書き込みます。
-
構造定義ツリーのノード値は、ダブルクリックで編集を行うことができます。
-
構造定義ツリーで、ノードの追加、削除、コピーはできません。
-
構造定義ファイルで、フィールドの型、数値(ゾーン10進)、数値(パック10進)を定義することはできません。
-
構造定義ファイルをインポートすると、パディングモードは「直接入力」になります。
-
フィールドの型をパック10進に設定した場合、子ノードに「ゾーンニブル」が表示されますが、この設定は使用されません。
-
実行ログに出力される「トランザクション」とは、グループの構造をまとめるために暗黙的に定義されたものであり、出現回数は無制限となります。
-
同じ親要素を持つ要素同士で同じ名前のもの存在する場合、正常に書き込むことはできません。
具体的には以下の要素同士が該当します。
-
グループ
-
構造定義アイコン直下のレコード
-
同一グループ内のレコード
-
同一レコード内のフィールド
-
仕様制限
-
外字は扱えません。
-
文字列操作(左右揃え・サプレスなど)はすべていったん「Unicode」に変換されたあとに適用されます。そのため、文字コードによっては意図したとおりの結果にならない場合があります。
-
グループはそれぞれ自分自身を含めることはできません(入れ子にすることはできません)。グループの構成要素はレコードのみです。
-
同じ親要素を持つ要素同士は、同じ名前を付けることはできません。
具体的には以下の要素同士が該当します。
-
グループ
-
構造定義アイコン直下のレコード
-
同一グループ内のレコード
-
同一レコード内のフィールド
-
-
フィールド・レコード・グループの名前は省略できません。
-
タグは文字列として扱います。それ以外の型を選択することはできません。
-
ファイルの途中に空行が現れる場合はエラーになります。ただし、ファイルの最終行が空行の場合は無視します。
-
日付に現れる曜日などの文字列は、デフォルトのロケールに依存したものになります。デフォルトのロケールでは読み取れない日付を扱う場合は、文字列として読み取るようにしてください。
-
グループの出現回数が無制限の場合、そのグループに対応する入力データが出現した際、次のグループを使用した入力データの解析を最初に行い、適用可能かどうか調べます。適用可能であれば、次のグループが適用されます。適用不可能であれば、そのグループを使用した解析に移ります。
-
レコードの出現回数が無制限の場合、そのレコードに対応する入力データが出現した際、そのレコードを使用した入力データの解析を最初に行い、適用可能かどうか調べます。適用可能であれば、そのレコードを使用した解析を行い続けます。適用不可能であれば、次のレコードを使用した解析に移ります。
-
レコード・グループの出現回数を無制限に設定すると、実際にはJavaのInteger.MAX_VALUEの値(2147483647)が上限になっています。
-
グループの出現回数の省略可がチェックありの場合、実際のグループの出現回数が指定した出現回数に満たなくてもエラーになりません。
-
レコードの出現回数の省略可がチェックありの場合、実際のレコードの出現回数が指定した出現回数に満たなくてもエラーになりません。
-
フィールド長で設定できる最大値は9999です。
-
列一覧にあるフィールドを構造定義で削除した場合、列一覧にはフィールドは残ったままになります。
-
構造定義でグループを選択して列一覧にフィールドを追加した場合、フィールドの順序は保証されません。
-
フィールドの長さはバイト長で指定します。バイト長は指定したエンコードに依存します。
-
列一覧にフィールドの順番は、構造定義の上から出現するフィールドの順番にしたがいます。列一覧でフィールドの順番を入れ替えると正しく読み取ることができません。
-
あるグループ(Aグループ)と同階層でかつ下に位置するレコード(Aレコード)を持つ構造定義をエクスポート/インポートすると、AレコードはAグループの子要素となります。
例:
-
「[」や「]」などの正規表現ではエスケープが必要な文字は、グループ名、レコード名、フィールド名に使用することができません。
-
サプレス文字が空文字の場合、サプレス処理は行いません。
仕様制限
-
外字は扱えません。
-
書き込みの際に、文字列操作(左右揃え・パディングなど)の結果により、指定された長さのフィールドにデータがきちんと入り切らない場合は、きちんと入りきらなかった部分を「パディング文字」で埋めます。
-
文字列操作(左右揃え・パディングなど)はすべていったん「Unicode」に変換されたあとに適用されます。そのため、文字コードによっては意図したとおりの結果にならない場合があります。
-
フィールドの名前は省略できません。
-
タグは文字列として扱います。それ以外の型を選択することはできません。
-
列一覧で定義したフィールドの数が入力元のXMLデータのカラム数より少ない場合、列一覧で定義したフィールドの数のデータしか書き込まれません。
-
列一覧で定義したフィールドの数が入力元のXMLデータのカラム数より多い場合、エラーが発生し書き込むことができません。
-
フィールド長で設定できる最大値は9999です。
-
フィールドの長さはバイト長で指定します。バイト長は指定したエンコードに依存します。
-
改行文字は、固定長ファイル書き込み処理の書き込み設定のエンコードで書き込まれます。
-
構造定義のフィールドの開始位置は、親レコードに追加されているフィールドの長さをもとに算出します。列一覧のフィールドの開始位置は、列に追加されたフィールドの長さをもとに算出します。
-
あるグループ(Aグループ)と同階層でかつ下に位置するレコード(Aレコード)を持つ構造定義をエクスポート/インポートすると、AレコードはAグループの子要素となります。
例:
-
「[」や「]」などの正規表現ではエスケープが必要な文字は、グループ名、レコード名、フィールド名に使用することができません。
-
スラッシュ(「/」)は、フィールド名に使用することができません。
-
パディングモードが「直接入力」の場合、1バイト以上のパディング文字を指定する必要があります。
-
同じ親要素を持つ要素同士は、同じ名前を付けることはできません。
具体的には以下の要素同士が該当します。
-
グループ
-
構造定義直アイコン直下のレコード
-
同一グループ内のレコード
-
同一レコード内のフィールド
-