可変長フォーマット
可変長フォーマットとは、可変長データをフォーマット形式として扱うことのできる方法です。可変長フォーマットには「可変長のデリミタ指定」と「可変長の項目参照」があります。
可変長フォーマットは、「項目タイプ」が"9"、"X"、"M"、"N"、"I"、"D"、"Z"のいずれかの場合にのみ指定できます。
(1) 可変長のデリミタ指定
データ区切りの識別用に任意のコードを指定し、この識別用コードを可変長データの終わりに必ずつけます。このような形式で指定する可変長フォーマットを「可変長のデリミタ指定」と呼びます。
たとえば、テキスト形式ファイルは、データ区切りの識別コードを改行コードとした可変長フォーマットと考えられます。
「可変長のデリミタ指定」はフォーマット情報の「固定長/可変長」で選択し、データ区切りの識別コードである「デリミタ値」と「デリミタ値」をカットするかどうかを指定します。
「デリミタ値」に指定するコードは、可変長データには使用されないコードを指定することをお勧めします。
また、入力時にデリミタの「カットする」を未選択の場合は、「可変長データ+デリミタ」がコード変換の対象になり、「デリミタ値」で指定したコードもコード変換されてしまいます。出力時は、コード変換後にデリミタを付加しますのでコード変換の対象にはなりません。
出力側の「デリミタ値」を指定しない場合、可変長データのデータ長がわからなくなってしまいます。データ長を出力するためには、マッピング情報設定画面-出力情報設定画面で、数値演算式 "$LEN()"または"$LENNUM()"を指定する必要があります。マッピング-出力情報の詳細は「DataMagic リファレンスマニュアル」を参照してください。
デリミタにNULL文字(0x00)を使用する場合、入力時にデリミタを「カットする」を設定しないと、そこまでをデータとして判断します(「データ中のNULL文字の扱い」参照)。出力データにNULL文字(0x00)を付加する場合は、出力側の「デリミタ値」を設定してください。
|
出力側 |
||
---|---|---|---|
設定する |
設定しない |
||
入力側 |
「カットする」を未選択 |
入力側のデリミタはカットされずに入力データとして処理されます。また、入力側にデリミタがない場合は、デリミタが付加されます。 このデリミタはコード変換処理の対象となります。 出力時に出力側のデリミタが付加されます。出力データの項目の終端は出力側のデリミタとなります。 |
入力側のデリミタはカットされずに入力データとして処理されます。また、入力側にデリミタがない場合は、デリミタが付加されます。 このデリミタはコード変換処理の対象となります。 項目の終端はコード変換されたデリミタとなります。 |
「カットする」を選択 |
出力時に出力側のデリミタが付加されます。 出力データの項目の終端は出力側のデリミタとなります。 |
デリミタは付加されません。 出力データは項目の終端が判別できません。 |

図4.124 可変長のデリミタ指定
(2) 可変長の項目参照
可変長データのデータ長を格納する任意の項目を指定し、この項目の値を参照して可変長データを処理します。このような形式で指定する可変長フォーマットを「可変長の項目参照」と呼びます。
たとえば、Mainframeで使用されている可変長レコードのRDWフィールドと同じ形式です。
「可変長の項目参照」はフォーマット情報の「固定長/可変長」で選択し、データ長を格納する任意の項目である「参照項目名」を指定します。
「参照項目名」に指定する項目は、以下の条件を満たしていなければなりません。
-
「項目タイプ」が"9"、"B"、"F"、"S"、"P"、"Z"であること
(「F」のときは、小数点以下を切り捨てて計算します)
-
可変長データより前に存在していること
-
第一階層であり、「繰り返し数」が"1"であること
-
有効な項目であること
(3) 入力時の可変長の項目参照
入力時に「可変長の項目参照」を選択する場合は、「倍数項」と「定数項」を指定してください。可変長データのデータ長の計算式を以下に示します。
「参照項目名」で指定された領域に格納されている値 ×「倍数項」+「定数項」
データ加工は、上記の計算式で計算された値をデータ長として、可変長データを処理します。

図4.125 可変長の項目参照(入力時)
(4) 出力時の可変長の項目参照
出力時に「可変長の項目参照」を指定して入力側→出力側に関係線を結んだだけでは、「参照項目名」で指定した領域に、データ加工後のデータ長は出力されません。データ加工後のデータ長を出力させるには、マッピング情報設定画面-出力情報設定画面で数値演算式"$LEN()"を指定する必要があります。マッピング-出力情報の詳細は「DataMagic リファレンスマニュアル」を参照してください。

図4.126 可変長の項目参照(出力時)