DataMagic技術コラム Vol.23
〈共通コンポーネント:日付変換機能拡張編〉
Introduction
DataMagic技術コラムVol.22では共通コンポーネントの利用方法について紹介しました。
» Vol.22 〈共通コンポーネント:EBCDIC系コードの置き換え編〉
今回および次回のTIPSでは、DataMagic Ver.3.1.9で新たに提供する共通コンポーネントについて紹介します。
DataMagicでは多様な入力データを任意の形式に変換することが可能ですが、想定外の入力に対して空文字を出力したい場合、IF関数だけでは対処が困難な場合があります。この問題について、共通コンポーネントを用いて解決する方法を説明します。
To use this tip, you must have DataMagic installed on your computer. For information on where to get DataMagic and how to install it, please refer to the separate article "Installing DataMagic."
本TIPSで紹介するSAISON_FORMAT_DATE_OR_NULL共通コンポーネントはDataMagic Ver.3.0.0以上であれば、現在使用中のDataMagicをアップデートせずに追加出来ます。
We also plan to continue expanding our common components based on requests from our customers.
FORMAT_DATE関数利用時における課題
DataMagicでは、日付変換の方法として以下の2つの方法を用意しています。
- 「出力フォーマット」の「形式」で「日付」形式を選択する方法
- FORMAT_DATE関数を使用する方法
それぞれの特徴については以下のとおりです。
日付変更方法の特徴
日付変換処理においてFORMAT_DATE関数は利用範囲が広い機能なのですが、上記のとおり空文字の入力に対して空文字を出力できないという問題があります。
実際の運用を想定したユースケースを用いて、本件の課題を解消していきます。
Use Cases
日時の入力データを「YYYY/MM/DD HH12:MI:SS 午前|午後」の形式で出力したい。
ただし、入力データが空文字の場合は空文字として出力したい。
フォーマット説明
| YYYY | :西暦年(4桁) |
| MM | :月(01~12) |
| DD | :日(01~31) |
| HH12 | :時間(01~12) |
| MI | :分(00~59) |
| SS | :秒(00~59) |
| 午前|午後 | :「午前」もしくは「午後」 |
「出力フォーマット」の「日付」形式を用いた場合
日付形式のフォーマットには「午前」「午後」を出力するフォーマットが存在しないため、ユースケースを実現することは出来ません。
FORMAT_DATE関数を用いた場合
FORMAT_DATE関数で加工したデータを更に加工することが出来るため、他の関数を組み合わせることでユースケースを実現することが可能です。
ただしFORMAT_DATE関数では入力データが空文字の場合、加工実施日付が出力されるため、IF関数を用いたデータ加工テクニックが必要となりデータ加工手順が煩雑になります。
FORMAT_DATE関数を用いたユースケース実現方法について、以下に実装例を説明します。
データ加工遷移イメージ
以上のように、FORMAT_DATE関数では入力データが空文字の場合に空文字を返却することができないので、IF関数を用いる必要があり、手順がやや複雑になります。利用頻度が多い場合、複雑な処理を毎回記述することとなり保守性の低下に繋がります。
本コラムでは、この問題点について解消可能な共通コンポーネントを紹介します。
共通コンポーネントを用いたデータ変換
「FORMAT_DATE関数利用時における課題」で例示したデータ加工処理を、共通コンポーネントを使用して実装する例を以下に説明します。
Operation check using sample data
「共通コンポーネントを用いたデータ変換」で例示したデータ加工処理を動作させる手順について説明します。
»Download the source data and script files
(Note: The sample file is in zip format. Please unzip it before use.)
Step 1 - Prepare the data to be converted and the script file
最初に入力データ(”in.txt” ファイル)とデータ変換処理のスクリプトファイル(”sample23.igen” ファイル)を用意します。上記からsample23.zipをダウンロードし、DataMagicが導入されているPCの下記のフォルダに保存します。
C:\work\sample23\(“in.txt”と”sample23.igen”を保存)
今回のTIPSでは日付文字列の入力データを使用します。
入力データ
Step 2 – Perform data processing
手順1で取得したスクリプトファイル(”sample23.igen” ファイル)をインポートし、追加されたデータ加工処理SAMPLE23を実行します。
For the procedures for importing and executing common components, please refer to the separate article "DataMagic Technical Column Vol. 22 Appendix: Procedures for Importing and Executing Common Components."
Step 3 – Check the results
実行が完了すると、出力設定において指定されたC:\work\sample23\に“out.txt”というファイルが出来ているのでテキストエディタで内容を確認して下さい。
入出力データ
変換結果の日付フォーマットはYYYY/MM/DD HH12:MI:SS 午前|午後
SAISON_FORMAT_DATE_OR_NULLの使用方法
本TIPで紹介したSAISON_FORMAT_DATE_OR_NULLはDataMagic Ver.3.0.0以上であればデータ加工に使用出来ます。
SAISON_FORMAT_DATE_OR_NULLの利用方法については、共通コンポーネントのインポート後、共通コンポーネント情報一覧からSAISON_FORMAT_DATE_OR_NULLをダブルクリックすることで確認できます。
When using common components, please check the explanation in the red box below.
Common components can be set in [Mapping Information Settings] under [Data Processing Information Settings].
設定方法については「共通コンポーネントを用いたデータ変換」の説明をご確認ください。
lastly
今回紹介したSAISON_FORMAT_DATE_OR_NULL共通コンポーネントのエクスポートファイルは下記のリンクよりダウンロードいただけます。「サンプルデータを用いた動作確認」のsample23.zipを使用せずに共通コンポーネントのみの追加をご希望される場合は以下をご利用ください。
» 共通コンポーネント「SAISON_FORMAT_DATE_OR_NULL」のエクスポートファイルダウンロード
(注:エクスポートファイルはzip形式となります。解凍してからご利用ください。)
If you do not have DataMagic
If you are interested in this product, please download DataMagic evaluation version and try it out.
- The trial version is free to use for 60 days.
- After you sign up for the trial version, you will receive 90 days of free technical support.
DataMagic Column List
- DataMagic Manager Installation
- "DataMagic" is recommended for its "fast, cheap, and easy" features.
- Vol.1 Character code conversion: EBCDIC⇔Shift_JIS
- Vol.2 Character Code Conversion: External Character Codes
- Vol.3 Character Code Conversion: Unicode (UTF-8)
- Vol.4 Data Conversion: Pack⇔Zone Edition
- Vol.5 (Fixed length ⇒ CSV data conversion)
- Vol.6 (Special Edition) HUB+ DataMagic Collaboration Case Study
- Vol.7 <Distribution BMS ⇒ CSV Conversion>
- Vol.8 <Matching Processing>
- Vol.9 (Full-width⇔Half-width Conversion)
- Vol.10 (DB table data extraction)
- Vol.11 Data Correction
- Vol.12 〈String Replacement〉
- Vol.13 (Special Edition) DataMagic Implementation Case Studies
- Vol.14 (Data sorting and file division)
- Vol.15 Data Collection
- Vol.16 File Merging
- Vol.17 HULFT Definition Bulk Registration
- Vol.18 (Special Edition) HULFT-WebFiletransfer + DataMagic Integration Case Study
- Vol.19 (Introduction Case Studies) Our company's use cases
- Vol.20 Data Masking
- Vol.21 (DB Migration Edition)
- Vol.22 <Common Components: EBCDIC Code Replacement>
- Vol.22 Appendix <Common Component Import and Execution Procedures>
- Vol.23 〈共通コンポーネント:日付変換機能拡張編〉
- Vol.24 〈Resolving customer requests!: Common components that can process data even if there is invalid data〉