この例題で説明する内容

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

この変換例で入力するファイルと、変換実行後に出力されるファイルを次に示します。

図8.106 変換例(出力するファイルの振り分け)

変換例での変換処理の順序を以下の表に示します。

表8.17 変換例(出力するファイルの振り分け)での変換処理の順序

処理の順番

処理対象のレコード

処理の内容

対応する関係線

内容

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