データ変換をしてみた:マッピングの初歩 ~菊ちゃんのASTERIA Warp体験記~

こんにちは。インフォテリアのキクチです。

先日北海道に出張してきたのですが(25年ぶりの北海道上陸!!)、東京との気温の違いにびっくりしてしまいました。

寒かった…。

雪で道路が歩きづらい分、地下道が発達していて、街のつくりにも地域性が出るんだなぁ~なんて感じながら、北海道のお客様にお会いしてきました。

また出張のチャンスがあれば、次はどうにか食べ物の地域性なんかも感じられる出張にしたいなぁなんて思っています。

さて、今回のASTERIA Warp体験記ではこれまで単純な使い方しかしてこなかったMapperについて少し深く体験しています。
データ変換の要になってくるMapper関数をどうやって使っていくのか、皆さんの参考になればな、と思いながら頑張りましたのでどうぞお楽しみください!

「Mapper(マッピング)」を体験してみた

さぁ、今回はMapper(マッピング)の体験です。

新しいプロジェクトを立ち上げて、単純なフローを作成します。
今回はMapperに焦点を当てたいので、フローの流れは【ファイル取得⇒マッピング⇒ファイル保存】という単純な流れにしてみます。

フロー全体図

実はこのフロー、以前(ファイルを連携する(はじめの一歩))作成したフローを「コピー」したものを使っています。

作成したフローを「コピー」する

コピーしたいフローを右クリックして表示されるメニュー「コピー」を選択します。

コピーしたいフローを右クリックして表示されるコンテキストメニューから「コピー」を選択

コピーしたいプロジェクト名を右クリックで表示されるメニュー「貼り付け」を選択すると…

コピーしたいプロジェクト上で右クリックして「ペースト」

新しいプロジェクト「ASTERIA Warp体験記_Season2」に新しいフロー「ファイルを連携する1」が追加されています。

新しく追加されたフロー「ファイルを連携する1」

今回はコピーしたフローを新しい名前「Mapperを体験する1」として使っていきたいと思います。

フォローの名前を「Mapperを体験する1」に変更

どんなファイルを連携するか?

さて、まずはどんなファイルを連携するかですが、こんなファイルを連携します。

連携元CSV

この中から、2つ挑戦してみたいと思います。

  1. 「得意先」列に全角文字が使用されているので、半角文字に変換する
  2. 「単価」列と「数量」を掛け合わせて、新たに「金額」列を追加する

「得意先」列を半角、「金額」列を追加

さあ、早速挑戦です!

まずはマッピングを行う前に、ストリーム定義のフィールド名が「field1」などで各列が識別しづらいので、各フィールドに名前を固有の名前をつけてあげます。
ストリーム定義のフィールド名を編集するには、各フィールドをダブルクリックして編集モードに切り替えてもいいのですが、項目数が多いと手間がかかるので、今回は「CSV形式で編集」機能を使ってみます。
ストリーム定義上で右クリックすると、メニューが表示されるので「CSV形式で編集」メニューを選択します。

「CSV形式で編集」メニューを選択

すると、編集画面が立ち上がってくるのでフィールド名を編集します。

CSV編集

OKボタンを押下すると…

入力ストリーム定義

フィールド名がきちんと切り替わっています。データ型の項目をCSV形式で編集したい場合には、フィールド名の隣に「,」で区切って入力してあげればOKです。
編集画面左上の「外部エディタ」ボタンを選択すると普段使っているエディタで編集することも可能です。
使い慣れたエディタを呼び出せるのは便利ですね。

編集画面左上の「外部エディタ」ボタン

「出力ファイル」にも同様に定義

さて、連携元ファイルのストリーム定義が出来たので今度は出力ファイルにも同様に定義をしてあげたいと思います。
今度はマッピングの処理が分かりやすいようにフィールド数を限定して定義してみます。

出力は

  • 商品名
  • 分類名
  • 得意先名(全角を半角に変換)
  • 単価
  • 数量
  • 金額(4.単価 × 5.数量の値)

の6フィールドで行います。

出力ストリーム定義

さあ、それでは実際にマッピングしてみます!

今まで通り単純にマッピングしてみるとこんな感じです。まだ「単価 × 数量」の「金額」フィールドにはマッピング出来ませんね。

単純マッピング

ここでまずは「得意先名」フィールドを全角から半角に変換してみます。
使うマッピング関数は文字列タブの「Asc」関数です。こんな感じになります。

「Asc」関数

「Asc」関数のプロパティはこんな感じ。カタカナ/英字/数字/記号それぞれに変換をかけるのかを選択できるみたいですね。

「Asc」関数のプロパティ

ちなみにどの関数を使えばいいのかは、パレット内の関数のアイコンにマウスを当てるとツールチップで簡単な関数の説明が表示されるので見当をつけることが出来ます。
(通常のコンポーネントも同様にツールチップが表示されます。)

今回ぼくは一応、マニュアル内の関数リファレンスも見てみました。関数の仕様を調べたいときにはとても有効ですね。

ツールチップ「全角文字列を半角文字列に変換」

さて、次は「単価」フィールドと「数量」フィールドを掛け合わせて「金額」フィールドにマッピングです。
使うマッパー関数は数値タブの「Multiply」関数です。単純な掛け算の関数ですね。こんな感じになります。

Multiply関数

「Multiply」関数のプロパティはこんな感じですが、プロパティの値を変更する必要はありません。計算したいフィールドを関数にマッピングしてあげるだけで自動で設定してくれます。

Multiply関数プロパティ

「マッピング設定」終了⇒実行

と、いうことで必要なマッピング設定は終わりましたので、早速実行してみます!

マッピングした状態で実行

正常に終了し、ファイルが出力されています。ファイルを確認してみると…

「得意先名」項目のデータが全角から半角に

しっかりと「得意先名」の項目が全角から半角に、列の最後には「金額」フィールドには「単価 × 数量」の計算結果が出力されています!!
パレットをチラッと見るだけでなんとなく使う関数が分かりますし、リファレンスも関数ごとに用意されているので、とってもお手軽に設定することが出来ました。

そして皆さん気づきましたか?

今回は一度も偉大なASTERIAerの方々に質問しなくても一人で作ることが出来たんです!
これはぼくがASTERIAerへの第一歩を踏み出したのか、ASTERIA Warpがお手軽開発ツールだからなのか…
どう判断するかはみなさんにお任せしますが、どっちにしてもASTERIA歴ちょびっとのぼくでも簡単にデータ変換までたどり着けたのはご理解いただけたかと思います!

最後に

と、いうところで今回はここまでにしたいと思います。

次回はマッパーの便利機能「条件付レイヤー」の使い方を体験してみたいと思います。
複雑な分岐処理を作らなくとも、簡単にデータによって出力項目を変えることが出来る機能だそうなんですが…
果たして、ふつーの分岐処理も体験していないぼくが作成できるものなのか…

そんなこんなで次回も頑張って体験していきますのでお楽しみに!



クラウド版

使い方いろいろ!
手ぶら de ASTERIA Warp
体験 5日間

サーバー準備の手間なくデータ連携ツール「ASTERIA Warp」の
全ての機能を5日間お試しいただけます。

今すぐ体験してみる 書籍の詳細についてはこちらをご覧ください。
基礎と実践 使い方マニュアル
著者:菊地 雄大

著者:
菊地 雄大

ASTERIA Warpのプリセールスエンジニア&体験セミナー講師。関係各所から舞い込んでくるASTERIA Warpに関するご依頼になんとか応えながら日々鍛えてもらっています!

ASTERIA Warp 関連サイトのご紹介

X ASTERIA Warp Developer Network(ADN)サイト

技術情報をお探しの方

ASTERIA Warp Developer Network
(ADN)サイト

ASTERIA Warp製品の技術情報やTips、また情報交換の場として「ADNフォーラム」をご用意しています。

X ASTERIA Warpユーザーグループ(AUG)

ASTERIA Warpデベロッパーの方

ASTERIA Warp オンラインコミュニティ
ADN slack

ASTERIA Warpデベロッパー同士をつなげ、技術情報の共有やちょっとしたASTERIA Warpの疑問解決の場とすることを目的としたコミュニティです。

X ASTERIA Warpユーザーサイト

ASTERIA Warpユーザーの方

ASTERIA Warpユーザーサイト
Login

製品更新版や評価版のダウンロード、各種ドキュメントのご提供、また 技術的なお問合せもこちらで受付ています。

X ASTERIA Warpパートナーサイト

ASTERIA Warpパートナーの方

ASTERIA Warpパートナーサイト
Login

パートナーライセンスの発行や各種ドキュメントのご提供をしています。

ページ先頭へ