はじめに
DataMagic は、色々な機能を備えています。
機能・概要一覧
| 機能 | 概要 |
|---|---|
| マッチング | 入力ファイルのレコードと、共通する項目名をキーにした複数のマッチングファイルのレコードを結合し、一つのデータセットとして出力する |
| マージ | 入力ファイルとマージファイルを連結して、入力マージデータとして取り扱えます。入力マージデータに対しては、データ加工前に重複行の削除やソートする |
| 出力先振り分け | 抽出条件に沿って、出力ファイルを振り分ける |
| 数値項目演算 | 出力項目が数値タイプの場合、入力項目同士や任意の値との演算式を指定し、その演算結果を出力項目の値として出力する |
| データ抽出 | 入力データから、指定した条件に合致したデータのみを抽出する |
| 項目入替 | 入力データの項目を入れ替えて、別のフォーマットで出力する |
| 項目結合 | 複数の項目を結合して、1つの項目として出力する |
| 項目分割 | 単一項目を分割して、複数の項目として出力する |
| 全角半角 | 「カナ」「英数字」および「記号」を、半角から全角、全角から半角へ変換する |
| 出力フォーマット指定 | 日付型、数字文字列型の入力項目を出力する際に、フォーマットを指定する |
| 入力ソート | 入力ファイルの形式がCSV、フォーマット、Excelの場合は、データ加工の前にソートする |
| 属性変換 | 入力データを出力データに変換する際に、数値タイプを任意の数値タイプへ変換する |
| 日付項目演算 | 日付データに対して、演算や西暦⇔和暦の変換を指定し、その結果を出力項目の値として出力する |
| 関数 | 入力項目の値を関数で処理し、その処理結果を出力項目の値として出力する |
| マッピング | 入力ファイルから出力ファイルへのデータの流れや加工、変換ルールを定義し、異なるデータ形式間での項目の対応関係を設定する |
| 動的指定 | データ加工の実行時にコマンドの引数に指定した数値や文字列を、条件や出力情報に使用できる |
| ユーザ出口変換 | データを加工するときに、項目単位で独自の変換を設定するために、ユーザ出口プログラムを独自に作成できる |
| データ挿入 | レコード内の任意の項目にユーザ指定の任意の値を挿入できる |
| 仕様書出力 | データ加工の処理と設定内容を仕様書としてExcelファイルに出力できる |
| チュートリアル | データ加工の設定を対話的に実行して、DataMagicの基本的な操作方法を習得できる |
| カスタムエラー | カスタムエラー条件を使用すると、データの形式は問題ないが、意図しないデータ(例 別の事業所のデータ)を検出したときにデータ加工をエラーにできる |
| ステップ実行 | 入力ファイルの読み込み、抽出、およびデータ変換時に発生した、設定とデータの整合性が取れていないことに起因するエラー(システムエラーや設定値不正ではないもの)をスキップする |
| コード変換 | 1バイトコード間、または2バイトコード間で、文字コードを変換する |
今回の課題
【DataMagic】データ加工やってみた!日付の入力フォーマット ってなんだろう では、フォーマット形式の日付タイプと「日付の入力フォーマット」の関係について確認してみました。
がぁ、そもそも〝日付データ = 日付タイプ〟 とは限らない訳で。
日時のデータでも、数値や文字列として格納していることも。
特に、Mainframeで扱うファイルは、いかにレコード長を押さえて多くの情報を格納するかを考えるので、数字で表現できる情報はパック10進数(Pタイプ)にすることも少なくない。
実は、ある 有力筋 から以下の情報をGet![]()
DataMagicの「日付の入力フォーマット」機能は、ファイル形式や日付タイプか否かに関係なく、以下の処理で参照する入力データには全て適用されます。
- 日付演算
- 出力フォーマットに日付を選択
と言うことで、今回はこの情報
の裏どりをやってみます。
入力データ
〝ファイル形式や日付タイプか否かに関係なく〟ですが、【DataMagic】データ加工やってみた!日付の入力フォーマット ってなんだろう のエラー画像に『日付文字列に変換できませんでした。』と言われているので、そもそも〝日付文字列に変換できる〟ことが前提 ![]()
ってことは、日付文字列
日付データに変えられる項目タイプは、以下の黄色のラインに
が付いている項目(と思われる)。
流石に全部試すのはご勘弁
いただき、
今回は〝フォーマット形式以外〟の代表格:CSV形式 で検証してみます。
"令和07年01月01日"
"R7年1月1日"
"2025/01/01"
"25/01/01"
"2025/1/1 18:15:45"
"2025/1/1 6:15:45 pm"
"西暦2025/01/01"
20250101181545
レイアウト情報
今回は、入出力共に ID省略 で検証します。
データ加工
1.入力ファイルエリアの編集
入力設定
入力形式=CSV、漢字コード種=SHIFT-JIS
以下で説明する項目以外の設定は、初期値を採用します。
レイアウト
- ID:
-
省略
区切り文字、囲み文字 は共に初期値 で設定 - ファイル名:
- 入力データをコピペして作った検証用日付データのファイルを指定
上記を設定後、プレビュー をクリックすると、日付タイプの場合はこの時点でエラーになっていましたが、今回はCSV形式なので、内容は同じでもデータはキャラクタとして扱われ、そのまま表示されます。
2.出力ファイルエリアの編集
出力設定
出力形式=CSV、漢字コード種=SHIFT-JIS
以下で説明する項目以外の設定は、初期値を採用します。
レイアウト
- ID:
-
省略
区切り文字、囲み文字 は共に初期値 で設定 - ファイル名:
- 出力ファイル名を指定
3.抽出条件の設定
初期設定のまま使用
4.関係線の設定1〔抽出条件と出力ファイル〕
抽出条件のアイコンを選んで、出力ファイルのアイコンの上にドラッグ&ドロップし、アイコン間の関係線をつなぎます。
5.関係線の設定2〔入力項目と出力項目をマッピング〕
下図のように、入力項目と出力項目を 1 対 1 で関係線を結び、
出力項目の出力フォーマットを 赤枠内 のように編集
- 形式 = 日付
- フォーマット = 時分秒付きで好きなフォーマットを指定
6.データ加工処理
すべての設定が終わったので、 最後にIDを登録して、現在表示されている内容で、データ加工を実行します。
すると、下図の「日付文字列変換エラー」になりました。
そこで、【DataMagic】データ加工やってみた!日付の入力フォーマット ってなんだろう の2.オプションの設定 と同じように、日付の入力フォーマットを登録すると、出力フォーマットの設定通り出力されました。
補足
本編では〝出力フォーマットに日付を選択〟の検証をしましたが、もう一つ。
〝日付演算〟でも、日付の入力フォーマットの登録があると
勿論、日付の入力フォーマットの登録が無いと
こちらは「日付演算エラー」になりました。
以上です。








