第10回:実践!パック⇔ゾーン変換

OrangeLab. 運営チーム
作成日時: - 更新日時:
Avatar

使用ソフトウェア:DataMagic for Windows Ver.2.2.2(コード変換・オプション for Windows)
今回はパック形式からゾーン形式に変換する方法をご紹介します。
※下記バージョンのDataMagicについては、次の記事をご参照ください。
DataMagic 実践!パック⇔ゾーン変換(Ver.3.0.0)

はじめに

こんにちは、メディアフォースの西です。

パック形式は、メインフレームやミッドレンジコンピュータでCOBOLの数値項目などを扱う際、1バイトで10進2桁を表現するスペース効率の良い形式です。

しかしながら、オープン系システムではあまり馴染みのない形式のため、メインフレームやミッドレンジコンピュータ上にあるパック形式のデータをオープン系システムで活用するには、適切な形に変換しなければなりません。

DataMagicを活用することで、メインフレームやミッドレンジコンピュータ上のパック形式のデータを簡単に活用することが可能となります。本連載記事では、パック形式のデータを含むIBMメインフレームの固定長データをShift_JISの固定長データに変換する例を紹介します。

<処理イメージ>

事前準備

まずは、変換元となるメインフレームのデータを用意します。

サンプルデータ

上記サンプルデータを「C:\work\SAMPLE1\」に格納してください。("in"というファイル名で保存)
※このサンプルデータは文字コードが"IBM漢字"の固定長データです。

手順

データ変換に必要な定義情報を作成します。
データ変換の流れは大きく分けると以下になります。
  1. 入力ファイル情報の設定
  2. 出力ファイル情報の設定
  3. データ加工情報の設定

Step01

まずは、「1.入力ファイル情報の設定」を行いましょう。
今回のサンプルファイルはフォーマット形式なので、入力ファイルのフォーマット情報を登録します。

タブボタンの「アダプタ」にある「フォーマット」を指定後、「新規作成」をクリックします。

Step02

フォーマット情報詳細画面が起動したら、下記画面を参考に「ID」「項目情報」を設定し、適用ボタンをクリックして保存します。
項目情報の設定は、空行をダブルクリックして表示されるフォーマット情報項目設定画面から行います。





項目名 説明
ID 登録したフォーマット情報を識別するためのIDを指定します。
今回はフォーマットIDを【SAMPLE1_IN】とします。
固定長/可変長 今回のデータは固定長の為、【固定長】を選択します。
※項目名、項目タイプ、繰り返し数、バイト数、小数部桁数は上記フォーマット情報詳細画面に合わせて設定してください。

これで、「1.入力ファイル情報の設定」は完了です。

Step03

次に、「2.出力ファイル情報の設定」を行います。
※今回は出力ファイルもフォーマット形式とします。

Step01~02の手順に沿って、下記画面のようにフォーマット情報を設定します。



項目名 説明
ID 今回はフォーマットIDを【SAMPLE1_OUT】とします。

これで、「2.出力ファイル情報の設定」は完了です。

Step04

入出力ファイル情報の設定が終わったら「3.データ加工情報の設定」を行います。

ここでは、どのようなタイプの入力ファイルを、どのようなタイプのファイルとして出力するのか、また、どういった条件のデータを出力するかなど、データの変換を行うための条件を設定します。

タブボタンから「データ加工」を指定し、操作メニューから「新規作成」をクリックします。

Step05

まず、入力ファイルの設定を行います。

データ加工情報設定画面が表示されます。
任意のIDを入力し、「入力ファイルアイコン」をダブルクリックします。



項目名 説明
ID 今回はデータ加工情報IDを【SAMPLE1】とします。

Step06

入力設定画面のアダプタ別タブとコード変換タブを設定し、OKをクリックします。

<アダプタ別タブ>


項目名 説明
形式 どのようなタイプの入力の形式を行うか選択します。
今回は【フォーマット】を選択します。
ID フォーマットIDを設定します。
Step02で作成した【SAMPLE1_IN】を設定します。
ファイル名 入力ファイルを指定します。
事前準備で用意した【C:\work\SAMPLE1\in】を設定します。
数値バイトオーダ 入力ファイルの数値バイトオーダを選択します。
入力0レコードの扱い 入力データの0レコードだった場合の動作を選択します。

<コード変換タブ>


項目名 説明
漢字コード種 入力ファイルの漢字コード種を選択します。
今回は【IBM漢字】を選択します。
EBCDICコードセット 1 バイトコードセット種を設定します。

これで、入力ファイルの設定は完了です。

Step07

次に、データの抽出条件の設定を行います。
入力設定画面の設定が終わると新たに抽出情報が作成されます。

「抽出条件アイコン」をダブルクリックします。


Step08

抽出条件設定画面が表示されます。

下記画面を参考に設定を行い、OKボタンをクリックして保存します。
※ 今回は、すべてのレコードを抽出する条件としています。



これで、データの抽出条件の設定は完了です。

Step09

次に、出力ファイルの設定を行います。

「出力ファイルアイコン」をダブルクリックします。

Step10

出力設定画面のアダプタ別タブとコード変換タブを設定し、OKをクリックします。

<アダプタ別タブ>


項目名 説明
形式 どのようなタイプの入力の形式を行うか選択します。
今回は【フォーマット】を選択します。
ID フォーマットIDを設定します。
Step03で作成した【SAMPLE1_OUT】を設定します。
数値バイトオーダ 出力ファイルの数値バイトオーダを選択します。
出力先指定 出力先の指定方法を選択します。今回は、"固定値"を指定します。
ファイル名には、出力ファイルの絶対パスまたは相対パスで設定します。
今回、出力ファイル名は【C:\work\SAMPLE1\out】とします。
出力ファイルの切り替え 出力ファイルの切り替えを行うかどうかを選択します。
出力ファイルが0バイトの場合削除する 出力ファイルが0バイトだったとき、出力ファイルを削除する場合に選択します。

<コード変換タブ>


項目名 説明
漢字コード種 出力ファイルの漢字コード種を選択します。
今回は【SHIFT-JIS】を選択します。
シフトコード 入力ファイルのシフトコードの扱いを選択します。
今回は【カットする】を選択します。
レコード毎に改行する レコードごとに改行コードを付加するフラグです。
今回はチェックボックスをONにします。
改行コード 改行コードを16 進数で指定します。指定した改行コードまでをレコードとして判断します。
今回は改行コードを【0D0A】とします。
EBCDICコードセット 1 バイトコードセット種を設定します。

これで、出力ファイルの設定は完了です。

Step11

次に、入力ファイル・出力ファイルの項目間のマッピング処理を定義します。

抽出条件と出力条件を結び、「マッピングアイコン」をダブルクリックします。

Step12

マッピング情報設定画面が表示されます。
下記画面の参考に、入力項目と出力項目のマッピング線を結び、OKをクリックします。

Step13

最後に、データ加工情報設定画面の適用をクリックします。
これで、「3.データ加工情報の設定」は完了です。

Step14

それでは実行してみましょう。データ加工情報設定画面上部の実行をクリックします。



実行するとデータ実行画面が画面が表示されるので、出力ファイル生成モードを確認し実行ボタンをクリックします。
正常終了したら出力ファイルを確認してください。

Step15

Step10で指定した「C:\work\SAMPLE1\」に"out"というファイルが出力されます。

出力されたファイルをバイナリエディタ等で確認します。
文字コードがIBM漢字からShift-JIS、数量・単価項目がパック形式からゾーン形式に変換されているのがわかります。



※下記は上記出力結果を明示的に表現しています。

【補足】パック・ゾーン形式データの符号部について

今回はパック・ゾーン形式データの符号部にデフォルト値を利用しましたが、システムに合わせて、符号部に任意の値を設定することが可能です。

フォーマット情報画面の「ゾーン/パック10進数詳細設定」の設定ボタンから設定します。





<ゾーン10進数設定>
項目名 説明
ゾーン部 変換データのゾーン符号
符号部 - 入力時の扱い 入力時に使用する変換データのゾーン10進数の符号を指定します。
符号部 - 出力時の扱い 出力時に使用する変換データのゾーン10進数の符号を指定します。

<パック10進数設定>
項目名 説明
符号部 - 入力時の扱い 入力時に使用する変換データのパック10進数の符号を指定します。
符号部 - 出力時の扱い 出力時に使用する変換データのパック10進数の符号を指定します。

さいごに

いかがでしたか?

今回はパック形式からゾーン形式の変換でしたが、今回作成したフォーマット情報(SAMPLE1_IN、SAMPLE1_OUT)を使ってゾーン形式からパック形式への変換も可能です。その際は、新たにデータ加工情報を作成してください。

サンプルデータ

ファイルはzip形式での提供となります。解凍してからご利用ください。

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています

コメント