Formatmanagerは、“5.1 ユーザ固有フォーマットについて”で説明したフォーマットをサポートしています。
しかし、利用者のフォーマットは多種多様で、これらのフォーマットに一致しないことがあります。
レイアウト調整は、若干異なる利用者のレイアウト(利用者レイアウト)をFormatmanagerで扱える形式に変換します。
図5.48 レイアウト調整
レイアウト調整では、最初に調整する機能の選択を行います。
レイアウト調整には、以下の種類があります。
1つのレイアウト調整の登録を「レイアウト調整ID」で管理します。
また、逆変換 (フォーマット変換が可能なレイアウトから、直接フォーマット変換できないレイアウトへの変換)も可能です。
集団項目-明細レコード調整
伝票形式フォーマットに類似した、明細部の中に繰り返す集団項目をもつ利用者レイアウトに対して、その繰返しごとに1レコードを作成して、伝票形式フォーマットに変換します。
図5.49 集団項目-明細レコード調整
補正のために付加されている「FILLER」も削除します。
逆変換も可能です。
ポイント
伝票形式フォーマットは、ヘッダレコード(ファイルヘッダ)+明細レコード(1種類)だけで構成されている場合に限ります。(トレーラレコードがある場合は対象外です)
利用者レイアウトのレコードには、以下の制限があります。
集団項目の中にフィールドが必ず1つ以上存在する。
FILLER内は空白だけである。
FILLERは集団項目より前方に位置することはない。
利用者レイアウトに集団項目より後方に繰返しがないフィールドがある場合、変換後、明細レコード内の後方に転記します。
登録方法
[集団項目-明細レコード調整]画面で、以下の内容を設定します。
レイアウト調整ID
レコード情報
判断位置
桁数
ヘッダレコード
レコード長
判断条件文字列
明細レコード
レコード長
判断条件文字列
繰返し開始位置
繰返し桁数
レイアウト調整をする伝票形式フォーマットの情報と、繰返しに関する情報を登録します。設定方法の詳細は、“ISI Formatmanagerクライアント(FEDIT/FL-TABLE)ヘルプ”を参照してください。
図5.50 集団項目-明細レコード調整の登録
可変長レコード-固定長レコード調整
レコードの最終バイトを終端文字(下図ではNULL)で識別する利用者レイアウトに対して、末尾に空白を埋めて桁をそろえ、一般フォーマットにします。
図5.51 可変長レコード-固定長レコード調整
指定したレコード長になるまで空白を埋めます。
逆変換も可能です。
ポイント
終端文字はHEX文字で指定することができます。指定可能な終端文字は以下です。
@HEX()形式による1バイトまたは2バイトの文字コード指定
CRLF
LF
SPACE
指定したレコード長になるまで空白を埋めます。(レコード長を指定可能。空白文字は文字コードに合わせます)
登録方法
[可変長レコード-固定長レコード]画面で、以下の内容を設定します。
レイアウト調整ID
固定レコード情報
固定レコード長
可変レコード情報
レコード終端文字
レイアウト調整をする固定長レコードのレコード長と、可変長レコードの終端文字を登録します。設定方法の詳細は、“ISI Formatmanagerクライアント(FEDIT/FL-TABLE)ヘルプ”を参照してください。
図5.52 可変長レコード-固定長レコード調整の登録
繰返し回数(不定-固定)調整
IDocのように、繰返し回数が不定となる集団項目がある利用者レイアウトに対し、指定した繰返し回数になるまで空白を埋めて固定長にして、一般フォーマットの形式になるように調整します。
図5.53 繰返し回数(不定-固定)調整
図のE2EDK14は、最小繰返し数が0で、最大繰返し数が4です。
つまり、最小繰返し数と最大繰返し数が不一致の箇所が、繰返し回数が不定であることを示しています。
FEDITで変換するためには、この繰返し回数を固定にする必要があります。
実際のデータは、データごとに繰返し回数が異なりますが、調整して繰返し回数を固定にする必要があります。その方法はたとえデータが1回しかなくても(0回でも)、最大繰返し回数分まで空白を埋めるというものです。通常最大繰返し数まで空白を設定すればよいのですが、99や99999など最大繰返し数が大きい場合は、むだにディスク容量を使用しないようにできるだけ「現実にあり得る回数」を指定します。(実際には最大20回なのに、50と最大繰返し数を定義している場合は、20回にする)。「想定される最大」を採用します。
上図の“E2EDKxx”の部分(1行)はそれぞれ固定長のグループデータです。グループデータの先頭に識別文字“E2EDKxx”があります。空白を埋める際には、グループデータの一部分(先頭以外でも可能)に識別文字を付加します。
逆変換も可能です。
ポイント
集団項目が階層になっていても問題はありません。
集団項目の終端の改行の有無を選択することができます。
集団項目の後方に空白パディングがされているか否かを指定でき、パディングされているときは、空白をカットします。
集団項目の子(1階層下)が集団項目だけでもかまいません。しかし集団項目とフィールドが混在してはいけません。
文字コードはJIS8/シフトJIS、JIS7/EUCだけです。
以下の留意事項に注意してください。
集団項目の中は固定長である。または、子が集団項目だけである。
データが存在する集団項目には識別文字が必ず設定されている。
データ上、識別文字が同一の集団項目が連続する場合に「繰返し」と判断する。
繰返し回数は、最小繰返し数と最大繰返し数の間の値でなければならない。
実際のデータが繰返し回数よりも大きい場合は、カットして、ワーニングを出力する。
登録方法
[繰返し回数(不定-固定)調整]画面で、以下の内容を設定します。
レイアウト調整ID
判断位置、桁数
改行の有無
識別文字列
空白付きグループ桁数
最小繰返し数
最大繰返し数
主に、繰返し数が不定側のレコードについての情報を登録します。設定方法の詳細は、“ISI Formatmanagerクライアント(FEDIT/FL-TABLE)ヘルプ”を参照してください。
図5.54 繰返し回数(不定-固定)調整の登録
繰返し回数不定-行終端可変長調整
繰返し回数(不定-固定)調整と同様なケースで、繰返し回数がどうしても1箇所だけ不定の部分がある利用者レイアウトを行終端可変長フォーマットに変換します。
図5.55 繰返し回数不定-行終端可変長調整
行終端可変長フォーマットの場合、明細部は繰返し回数を不定にすることができるので、このルールが活用できます。行終端可変長フォーマットの「明細部は最後にある」、また「最後に行終端文字が必要」、という問題がありますが、これを「レイアウト調整」の「繰返し回数不定-行終端可変長」が解消します。
繰返し回数が不定である箇所が最後にない場合でも最後尾に移動し、さらに改行を付加することによって、行終端可変長フォーマットにします。
逆変換も可能です。
ポイント
集団項目が階層になっていても問題はありません。
集団項目の終端の改行の有無を選択することができます。
集団項目の後方に空白パディングがされているか否かを指定でき、パディングされているときは、空白をカットします。
集団項目の子(1階層下)が集団項目だけでもかまいません。しかし集団項目とフィールドが混在してはいけません。
文字コードはJIS8/シフトJIS、JIS7/EUCだけです。
以下の留意事項に注意してください。
集団項目の中は固定長である。または、子が集団項目だけである。
データが存在する集団項目には識別文字が必ず設定されている。
データ上、識別文字が同一の集団項目が連続する場合に「繰返し」と判断する。
明細部を除き、繰返し回数は、最小繰返し数と最大繰返し数の間の値でなければならない。
実際のデータが繰返し回数よりも大きい場合は、カットして、ワーニングを出力する。
登録方法
[繰返し回数不定-行終端可変長調整]画面で、以下の内容を設定します。
レイアウト調整ID
判断位置、桁数
改行の有無
識別文字列
空白付きグループ桁数
出現順番
最小繰返し数
最大繰返し数
主に、繰返し数が不定側のレコードについての情報を登録します。“繰返し回数(不定-固定)調整”で登録した内容に加えて、行終端可変長フォーマットの明細部にあたる集団項目の順番を変更します。設定方法の詳細は、“ISI Formatmanagerクライアント(FEDIT/FL-TABLE)ヘルプ”を参照してください。
図5.56 繰返し回数不定-行終端可変長調整の登録
パディングレコード調整
入力データのブロック長の調整を行います。
必要な場合には、全体データ長が指定されたブロック長の倍数になるよう、ヘッダレコード単位にパディングレコード(すべて1バイト空白文字のレコード)の挿入、削除を行います。
図5.57 パディングレコード調整
ヘッダレコードと明細レコードのレコード長は異なっていてもかまいません。ただし、ヘッダレコード長は、明細レコード長の倍数である必要があります。
登録方法
[パディングレコード調整]画面で、以下の内容を設定します。
レイアウト調整ID
レコード情報
ヘッダレコード長
ヘッダ配下のレコード長
判断位置
判断桁数
ヘッダレコードの判断条件文字列
伝票1情報
ブロック長
パディングレコードの位置
伝票2情報
ブロック長
パディングレコードの位置
レイアウト調整をする2つのフォーマットの情報を登録します。設定方法の詳細は、“ISI Formatmanagerクライアント(FEDIT/FL-TABLE)ヘルプ”を参照してください。
図5.58 パディングレコード調整
文字コード変換(フォーマット指定なし)
フォーマット指定なしで文字コード変換を行います。また、特定文字列の置換も行えます。
図5.59 文字コード変換(フォーマット指定なし)
登録方法
[文字コード変換(フォーマット指定なし)]画面で、以下の内容を設定します。
レイアウト調整ID
変換モード
変換元の文字コード
変換先の文字コード
検索文字列
置換文字列
文字列置換時の動作
「シフトアウトコードを挿入する」または「シフトアウトコードを挿入しない」
設定方法の詳細は、“ISI Formatmanagerクライアント(FEDIT/FL-TABLE)ヘルプ”を参照してください。
ポイント
変換先の文字コードを“(文字コード変換なし)”とすることで、文字コード変換せずに特定文字列の置換だけをすることができます。
ヘッダの定量間隔挿入・削除
ヘッダレコードの挿入や削除を行います。
先頭にしかないヘッダレコードを、明細レコードと明細レコードの間に定量間隔で挿入します。また、削除もできます。
ヘッダの挿入時には、ヘッダの挿入順序を示すシーケンス番号や、挿入途中のヘッダか最後に挿入されたヘッダかを識別できる文字を書込むことができます。
空レコード(すべてデフォルト値で構成されているレコード)を、削除または追加することができます。
繰返し数指定可変長フォーマットや短縮FLATファイル形式を入力とし、明細部の件数を示すフィールドを、削除または追加することができます。
図5.60 ヘッダの定量間隔挿入・削除
登録方法
[ヘッダの定量間隔挿入・削除]画面で、以下の内容を設定します。
レイアウト調整ID
レイアウト情報[ヘッダ部]
フラットID
挿入・削除対象となるヘッダレコードの選択
「シーケンス番号設定」の選択
「最終ヘッダレコードの識別文字設定」の選択
レイアウト情報[明細部]
フラットID
挿入・削除方法
「指定サイズ毎(ヘッダサイズを含む)」または「指定明細件数毎(ヘッダは含まず)」
「ヘッダ挿入・削除時に空レコードの調整を行う」の選択
「明細部の繰返し回数フィールドを削除・挿入する」の選択
文字コード変換方法
変換モード
データ長
B属性項目のエンディアン交換
設定方法の詳細は、“ISI Formatmanagerクライアント(FEDIT/FL-TABLE)ヘルプ”を参照してください。
ポイント
ヘッダ部のフラットIDは、1~5個の範囲で指定できます。
ヘッダ部の挿入・削除対象は最低1個以上の指定が必要です。
ヘッダ部の「最終ヘッダレコードの識別文字設定」で指定する「継続識別文字」、および「最終識別文字」は、識別文字設定フィールドに格納可能な範囲で文字列を指定します。
挿入削除方法で「指定サイズ毎」を指定した場合、サイズは、ヘッダ部の全体長または挿入・削除対象ヘッダ+明細長の長い方~99999バイトの範囲で指定します。なお、ここで指定するサイズは、ヘッダ挿入済みデータ側のデータ長の指定 (「標準」または「拡張」) に依存します。
挿入削除方法で「指定明細件数毎」を指定した場合、件数は、1~999の範囲で指定できます。
「ヘッダ挿入・削除時に空レコードの調整を行う」を選択した場合、ヘッダレコード挿入時には、空レコードを自動的に削除します。ヘッダレコード削除時は、ヘッダ削除時の調整方法でデータ長を指定した場合は、全体のバイト数が指定したデータ長になるまで空レコードを詰めるか、明細件数を指定した場合は、指定した明細件数になるまで空レコードを詰めます。
繰返し数指定可変長フォーマットと短縮FLATファイル形式のヘッダレコードの挿入・削除を行った場合、ヘッダ挿入時は自動的に繰返し回数フィールドを削除し、ヘッダ削除時は自動的に繰返し回数フィールドの追加と明細件数の書込みを行います。