はじめに
DataMagic は、色々な機能を備えています。
機能・概要一覧
| 機能 | 概要 |
|---|---|
| マッチング | 入力ファイルのレコードと、共通する項目名をキーにした複数のマッチングファイルのレコードを結合し、一つのデータセットとして出力する |
| マージ | 入力ファイルとマージファイルを連結して、入力マージデータとして取り扱えます。入力マージデータに対しては、データ加工前に重複行の削除やソートする |
| 出力先振り分け | 抽出条件に沿って、出力ファイルを振り分ける |
| 数値項目演算 | 出力項目が数値タイプの場合、入力項目同士や任意の値との演算式を指定し、その演算結果を出力項目の値として出力する |
| データ抽出 | 入力データから、指定した条件に合致したデータのみを抽出する |
| 項目入替 | 入力データの項目を入れ替えて、別のフォーマットで出力する |
| 項目結合 | 複数の項目を結合して、1つの項目として出力する |
| 項目分割 | 単一項目を分割して、複数の項目として出力する |
| 全角半角 | 「カナ」「英数字」および「記号」を、半角から全角、全角から半角へ変換する |
| 出力フォーマット指定 | 日付型、数字文字列型の入力項目を出力する際に、フォーマットを指定する |
| 入力ソート | 入力ファイルの形式がCSV、フォーマット、Excelの場合は、データ加工の前にソートする |
| 属性変換 | 入力データを出力データに変換する際に、数値タイプを任意の数値タイプへ変換する |
| 日付項目演算 | 日付データに対して、演算や西暦⇔和暦の変換を指定し、その結果を出力項目の値として出力する |
| 関数 | 入力項目の値を関数で処理し、その処理結果を出力項目の値として出力する |
| マッピング | 入力ファイルから出力ファイルへのデータの流れや加工、変換ルールを定義し、異なるデータ形式間での項目の対応関係を設定する |
| 動的指定 | データ加工の実行時にコマンドの引数に指定した数値や文字列を、条件や出力情報に使用できる |
| ユーザ出口変換 | データを加工するときに、項目単位で独自の変換を設定するために、ユーザ出口プログラムを独自に作成できる |
| データ挿入 | レコード内の任意の項目にユーザ指定の任意の値を挿入できる |
| 仕様書出力 | データ加工の処理と設定内容を仕様書としてExcelファイルに出力できる |
| チュートリアル | データ加工の設定を対話的に実行して、DataMagicの基本的な操作方法を習得できる |
| カスタムエラー | カスタムエラー条件を使用すると、データの形式は問題ないが、意図しないデータ(例 別の事業所のデータ)を検出したときにデータ加工をエラーにできる |
| ステップ実行 | 入力ファイルの読み込み、抽出、およびデータ変換時に発生した、設定とデータの整合性が取れていないことに起因するエラー(システムエラーや設定値不正ではないもの)をスキップする |
| コード変換 | 1バイトコード間、または2バイトコード間で、文字コードを変換する |
属性変換ってなんだ
製品紹介資料や製品マニュアルを読んでいると、その製品(群)独自の用語が出てきて、「これって一般用語?」と考えることが、たま~にあります。
DataMagic の 機能説明書 によると、属性変換(機能)とは
入力データを出力データに変換する際に、数値タイプを任意の数値タイプへ変換できます。目的の数値タイプに変換することで、異なるプラットフォームのデータを容易に扱えます。また、数値タイプを文字列タイプに、文字列タイプを数値タイプに変換できます。
だそうです。しかし
属性の変換は、データ加工情報設定画面―マッピング情報設定画面で設定できます。
なんて
まったく思いつきもしなかった。
いや~、マニュアルって読んでみるもんですね ![]()
私もまだまだ初心者のようです。
この記事を書くまで、属性変換はず~っと、ご丁寧に変換後の属性で出力用のフォーマット定義を作って、関係線引いてデータ加工してました。
でも、一発モノで属性変換だけなら、マッピング情報設定画面の設定で変えられるのって、定義情報も増えないし、イイですね。
項目タイプ
DataMagic で扱える項目タイプについては、各種マニュアルの色々なところに記されていますが、操作マニュアルの 4.9.1 項目タイプの一覧 に載っている情報が、一番詳しく書かれているかも。
簡易版なら、各種マニュアルの「はじめに」ページに載ってる以下の一覧表ですね。
今回は、数値:12345 を、私の中ではスタンダードな以下の4つの数値タイプに代入して、属性変換を色々試してみます。
- 〝9〟(サイン無外部10進数)
- 符号を持たないゾーン形式の10進数データ形式
- 〝S〟(サイン付外部10進数)
- 符号付きのパック形式の10進数データ形式
- 〝P〟(サイン付内部10進数)
- 符号付きのゾーン形式の10進数データ形式
- 〝B〟(バイナリ)
- 符号付き整数の数値データ形式
バイナリに格納できる値の範囲は以下のとおりです。- 2バイト: -32768~32767
- 4バイト: -2147483648~2147483647
- 8バイト: -9223372036854775808~9223372036854775807
設定
入力ファイル
今回の入力ファイルを
- 16進数で表示すると、
こんな感じ
- プレビューで表示すると、
こんな感じ
フォーマット定義
今回は、マッピング情報設定画面で設定を編集するので、フォーマット定義は入出力で同じものを使用します。

マッピング情報設定画面
マッピング情報設定画面を開いて、以図のように変更。
今回はこの変更を、すべての項目でおこないます。
属性を変更したい項目を選択
出力項目情報の中の赤枠のアイテム値を、変更後の値に変える
(ちなみに図の例では、5バイトのSタイプに変更)
出力結果
すべての入力項目で、出力結果がすべて変更後の属性になっていることを確認!
補足
属性変換では、 数値タイプを文字列タイプに、文字列タイプを数値タイプに変換できる ようなので、そちらも試してみます。
ちなみに、「どの項目タイプからどの項目タイプに変換できるのか」や「変換時の注意点」などは、操作マニュアルの 4.9.2 項目タイプの変換可否 に組合せの一覧が載っているので、そちらで確認してください。
設定
補足では、以下の条件で設定・処理します
- ★ 入力データ
- 1項目目 = -9876
- 2項目目 = -12345
- ★ フォーマット定義
- 1項目目 = 2バイトの Bタイプ(数値タイプ)
- 2項目目 = 6バイトの Xタイプ(文字タイプ)
- ★ マッピング情報設定画面の関係線
- 1項目目(数値タイプ)→ 2項目目(文字タイプ)
- 2項目目(文字タイプ)→ 1項目目(数値タイプ)
入力ファイル
フォーマット定義
マッピング情報設定画面
出力結果
で出力されていることが確認できました。
付随情報
本編では、主に PC や Linux で使用される ASCII系の文字コード で作ったデータを使用しましたが、DataMagic は、主に汎用機やオフコンで使用される EBCDIC系の文字コード で作成されたデータも扱うことが出来ます。
フォーマット系のレイアウトで数値を扱う場合、ゾーン部の初期値が 3、出力時の符号部の初期値が 4 (正) 5 (負) と、ASCII系の値になっています。
EBCDIC系の数値データを扱う場合は 〝ゾーン/パック10進数詳細設定〟 で符号部の値を変える必要があります。
以上です。













