この例題で説明する内容
ここでは、入力ファイルのデータのうち、値がすべて正常であるレコードと、値に異常があるレコードで出力先を振り分ける場合の変換例について説明します。
この変換例で入力するファイルと、変換実行後に出力されるファイルを次に示します。

図8.106 変換例(出力するファイルの振り分け)
変換例での変換処理の順序を以下の表に示します。
処理の順番 |
処理対象のレコード |
処理の内容 |
|
---|---|---|---|
対応する関係線 |
内容 |
||
1. |
レコード1 |
① |
抽出条件1→変数 |
2. |
|
② |
抽出条件2→出力ファイル(正常) |
3. |
|
③ |
抽出条件3→出力ファイル(異常) |
4. |
レコード2 |
① |
抽出条件1→出力ファイル |
5. |
|
② |
抽出条件2→出力ファイル(正常) |
6. |
|
③ |
抽出条件3→出力ファイル(異常) |
7. |
レコード3 |
① |
抽出条件1→出力ファイル |
8. |
|
② |
抽出条件2→出力ファイル(正常) |
9. |
|
③ |
抽出条件3→出力ファイル(異常) |
10. |
レコード4 |
① |
抽出条件1→出力ファイル |
11. |
|
② |
抽出条件2→出力ファイル(正常) |
12. |
|
③ |
抽出条件3→出力ファイル(異常) |
具体的な処理内容を次に示します。なお、説明中の番号は「表8.17 」の「処理の順番」に対応しています。
処理対象:レコード1
社員番号 |
氏名 |
性別 |
所属 |
---|---|---|---|
1000001 |
振分太郎 |
1 |
10 |
1. 設定された関数に従って、各変数に以下の値を設定します。
社員番号フラグ |
: |
Y |
(レコード1の社員番号が7バイトの数字であるため) |
氏名フラグ |
: |
Y |
(レコード1の氏名に半角スペースが含まれていないため) |
性別フラグ |
: |
Y |
(レコード1の性別が「1」であるため) |
所属フラグ |
: |
Y |
(レコード1の所属が2バイトの数字であるため) |
フラグ結合 |
: |
YYYY |
(社員番号フラグの値、氏名フラグの値、性別フラグの値、所属フラグの値) |
判定フラグ |
: |
Y |
(変数「フラグ結合」に「N」が含まれていないため) |
2. 出力ファイル(正常)に以下の値を出力します。
社員番号 |
: |
1000001 |
(レコード1の社員番号) |
氏名 |
: |
振分太郎 |
(レコード1の氏名) |
性別 |
: |
1 |
(レコード1の性別) |
所属 |
: |
10 |
(レコード1の所属) |
出力ファイル(正常)の内容は以下のとおりになります。
社員番号 |
氏名 |
性別 |
所属 |
---|---|---|---|
1000001 |
振分太郎 |
1 |
10 |
3. 変数「判定フラグ」が"Y"であるため、抽出条件3(判定フラグ=N)により出力ファイル(異常)に値が出力されません。
処理対象:レコード2
社員番号 |
氏名 |
性別 |
所属 |
---|---|---|---|
100002 |
抽出一郎 |
1 |
20 |
4. 設定された関数に従って、各変数に以下の値を設定します。
社員番号フラグ |
: |
N |
(レコード2の社員番号が7バイトの数字ではないため) |
氏名フラグ |
: |
Y |
(レコード2の氏名に半角スペースが含まれていないため) |
性別フラグ |
: |
Y |
(レコード2の性別が「1」であるため) |
所属フラグ |
: |
Y |
(レコード2の所属が2バイトの数字であるため) |
フラグ結合 |
: |
NYYY |
(社員番号フラグの値、氏名フラグの値、性別フラグの値、所属フラグの値) |
判定フラグ |
: |
N |
(変数「フラグ結合」に「N」が含まれているため) |
5. 変数「判定フラグ」が"N"であるため、抽出条件2(判定フラグ=Y)により出力ファイル(正常)に値が出力されません。
6. 出力ファイル(異常)に以下の値を出力します。
社員番号 |
: |
1000002 |
(レコード2の社員番号) |
氏名 |
: |
抽出一郎 |
(レコード2の氏名) |
性別 |
: |
1 |
(レコード2の性別) |
所属 |
: |
20 |
(レコード2の所属) |
出力ファイル(異常)の内容は以下のとおりになります。
社員番号 |
氏名 |
性別 |
所属 |
---|---|---|---|
100002 |
抽出一郎 |
1 |
20 |
処理対象:レコード3
社員番号 |
氏名 |
性別 |
所属 |
---|---|---|---|
1000003 |
変換 花子 |
2 |
30 |
7. 設定された関数に従って、各変数に以下の値を設定します。
社員番号フラグ |
: |
Y |
(レコード3の社員番号が7バイトの数字であるため) |
氏名フラグ |
: |
N |
(レコード3の氏名に半角スペースが含まれているため) |
性別フラグ |
: |
Y |
(レコード3の性別が「2」であるため) |
所属フラグ |
: |
Y |
(レコード3の所属が2バイトの数字であるため) |
フラグ結合 |
: |
YNYY |
(社員番号フラグの値、氏名フラグの値、性別フラグの値、所属フラグの値) |
判定フラグ |
: |
N |
(変数「フラグ結合」に「N」が含まれているため) |
8. 変数「判定フラグ」が"N"であるため、抽出条件2(判定フラグ=Y)により出力ファイル(正常)に値が出力されません。
9. 出力ファイル(異常)に以下の値を出力します。
社員番号 |
: |
1000003 |
(レコード3の社員番号) |
氏名 |
: |
変換 花子 |
(レコード3の氏名) |
性別 |
: |
2 |
(レコード3の性別) |
所属 |
: |
30 |
(レコード3の所属) |
出力ファイル(異常)の内容は以下のとおりになります。
社員番号 |
氏名 |
性別 |
所属 |
---|---|---|---|
100002 |
抽出一郎 |
1 |
20 |
1000003 |
変換 花子 |
2 |
30 |
処理対象:レコード4
社員番号 |
氏名 |
性別 |
所属 |
---|---|---|---|
1000001 |
振分太郎 |
1 |
10 |
100002 |
抽出一郎 |
1 |
20 |
1000003 |
変換 花子 |
2 |
30 |
1000004 |
変数次郎 |
3 |
40 |
10. 設定された関数に従って、各変数に以下の値を設定します。
社員番号フラグ |
: |
Y |
(レコード4の社員番号が7バイトの数字であるため) |
氏名フラグ |
: |
Y |
(レコード4の氏名に半角スペースが含まれていないため) |
性別フラグ |
: |
N |
(レコード4の性別が「1」または「2」ではないため) |
所属フラグ |
: |
Y |
(レコード4の所属が2バイトの数字であるため) |
フラグ結合 |
: |
YYNY |
(社員番号フラグの値、氏名フラグの値、性別フラグの値、所属フラグの値) |
判定フラグ |
: |
N |
(変数「フラグ結合」に「N」が含まれているため) |
11. 変数「判定フラグ」が"N"であるため、抽出条件2(判定フラグ=Y)により出力ファイル(正常)に値が出力されません。
12. 出力ファイル(異常)に以下の値を出力します。
社員番号 |
: |
1000004 |
(レコード4の社員番号) |
氏名 |
: |
変数次郎 |
(レコード4の氏名) |
性別 |
: |
3 |
(レコード4の性別) |
所属 |
: |
40 |
(レコード4の所属) |
出力ファイル(異常)の内容は以下のとおりになります。
社員番号 |
氏名 |
性別 |
所属 |
---|---|---|---|
100002 |
抽出一郎 |
1 |
20 |
1000003 |
変換 花子 |
2 |
30 |
1000004 |
変数次郎 |
3 |
40 |