DataMagic技術コラム Vol.22
〈共通コンポーネント:EBCDIC系コードの置き換え編〉
はじめに
DataMagicではデータ変換処理を部品化する機能として共通コンポーネントを提供しています。 共通コンポーネントを用いることにより、複雑な変換処理や汎用的な処理手順を部品化して開発効率を向上することが出来ます。
今回のTIPSでは既存機能では難しい変換処理を行うための共通コンポーネントについて紹介します。

本TIPSを利用するには、DataMagicがコンピュータにインストールされていることが条件となります。DataMagicの入手先やインストール方法などについては、別稿の「DataMagicをインストールする」を参照してください。
本TIPSで紹介するSAISON_REPLACE_HEX共通コンポーネントはDataMagic Ver.3.0.0以上であれば、現在使用中のDataMagicをアップデートせずに追加出来ます。
また、今後もお客様から頂いた要望を元に共通コンポーネントの拡充を実施させて頂く予定です。
EBCDIC系コードの16進数文字列置き換え時における課題
データ加工処理では、文字列の置き換えが必要になるケースが多々あります。
文字列の置き換え方法として、DataMagicではREPLACE_REG関数やSAISON_REPLACE_REG共通コンポーネントを提供していますが、双方共に以下の仕様となっています。
注意
入力データのコード種がEBCDIC系またはJISの場合は、UTF-8に変換して置換を行うため、外字は使用できません。 また、機種依存文字を含む場合、動作を保証しません。
上記の仕様により、入力の漢字コードがEBCDIC系コードのデータに対して16進数文字列(\xHH)の置き換えを実施する場合、DataMagic内部ではEBCDIC系コードをUTF-8に変換して置換するため、置き換えの検索文字列をEBCDIC系コードで定義しても正しく動作しません。
SAISON_REPLACE_REGを用いたEBCDIC系コードの置換(NGケース)

正しく置換するためにはJEFをUTF-8に変換したデータ(\x20\x20\x20\x20\x20)をSAISON_REPLACE_REGの検索文字列(引数1)に渡す必要がありますが、難易度の高い作業となります。
このため、置換前にUTF-8に変換しない16進数置換処理を、新しい共通コンポーネントを用いて実現します。
サンプルデータを用いた運用例を次項の「サンプルデータを用いた動作確認」にて説明します。
サンプルデータを用いた動作確認
入出力データの確認にはバイナリエディタが必要となりますので、別途ご用意ください。
手順1 - 変換対象データとスクリプトファイルを用意する
最初に入力データ(”in” ファイル)とデータ変換処理のスクリプトファイル(”sample22.igen” ファイル)を用意します。下記からsample22.zipをダウンロードし、DataMagicが導入されているPCの下記のフォルダに保存します。
C:\work\SAMPLE22\(“in”と”sample22.igen”を保存)
今回のTIPSでは入力データとして漢字コードJEFの固定長データを使用します。
入力データのバイナリイメージ

手順2 – データ加工処理を実行する
手順1で取得したスクリプトファイル(”sample22.igen” ファイル)をインポートし、追加されたデータ加工処理SAMPLE22を実行します。
共通コンポーネントのインポート手順及び実行手順については別稿の「DataMagic技術コラム Vol.22 Appendix〈共通コンポーネントのインポート手順および実行手順〉」を参照してください。
手順3 – 結果を確認する
実行が完了すると、出力設定において指定されたC:\work\SAMPLE22\に“out”というファイルが出来ているのでバイナリエディタで内容を確認して下さい。
出力データのバイナリイメージ

SAISON_REPLACE_HEXの使用方法
本TIPで紹介したSAISON_REPLACE_HEXはDataMagic Ver.3.0.0以上であればデータ加工に使用出来ます。
SAISON_REPLACE_HEXの利用方法については、共通コンポーネントのインポート後、共通コンポーネント情報一覧からSAISON_REPLACE_HEXをダブルクリックすることで確認できます。

共通コンポーネントをご利用の際は以下の赤枠の説明をご確認ください。

共通コンポーネントは[データ加工情報設定]の[マッピング情報設定]で設定できます。


最後に
今回紹介したSAISON_REPLACE_HEX共通コンポーネントのエクスポートファイルは下記のリンクよりダウンロードいただけます。「3.サンプルデータを用いた動作確認」のsample22.zipを使用せずに共通コンポーネントのみの追加をご希望される場合は以下をご利用ください。
DataMagicをお持ちでない方
本製品に関心のある方は、ぜひ、DataMagic評価版をダウンロードしてお試しください。
- 評価版は無償で60日間ご利用いただけます。
- 評価版のお申し込み後、90日間の技術サポートを無償でご利用いただけます。
DataMagic コラム一覧
- DataMagic for Windows インストール編
- DataMagic Manager インストール編
- “早い、安い、簡単”が魅力「DataMagic」のススメ
- Vol.1 〈文字コード変換:EBCDIC⇔Shift_JIS編〉
- Vol.2 〈文字コード変換:外字コード編〉
- Vol.3 〈文字コード変換:Unicode(UTF-8)編〉
- Vol.4 〈データ変換:パック⇔ゾーン編〉
- Vol.5 〈固定長⇒CSV データ変換編〉
- Vol.6 (番外編)HUB+DataMagic連携事例
- Vol.7 〈流通BMS⇒CSV変換編〉
- Vol.8 〈マッチング処理編〉
- Vol.9 〈全角⇔半角変換編〉
- Vol.10 〈DBテーブルデータ抽出編〉
- Vol.11 〈データ補正編〉
- Vol.12 〈文字列置き換え編〉
- Vol.13 (番外編)DataMagic導入事例
- Vol.14 〈データソート・ファイル分割編〉
- Vol.15 〈データ集計編〉
- Vol.16 〈ファイルマージ編〉
- Vol.17 〈HULFT定義一括登録編〉
- Vol.18 (番外編)HULFT-WebFiletransfer+DataMagic連携事例
- Vol.19 (導入事例編)弊社利用事例
- Vol.20 〈データマスキング編〉
- Vol.21 〈DB移行編〉
- Vol.22 〈共通コンポーネント:EBCDIC系コードの置き換え編〉
- Vol.22 Appendix 〈共通コンポーネントのインポート手順および実行手順〉
- Vol.23 〈共通コンポーネント:日付変換機能拡張編〉
- Vol.24 〈お客様要望を解決!:不正データがあってもデータ加工できる共通コンポーネント編〉