2017年3月7日火曜日

Enterprise Integration Pack による ファイル変換 2.マップの作成

1.スキーマの作成 はこちら

LogicApps の Enterprise Integration Pack は BizTalk Server や BizTalk Service で提供されていた機能を利用できる、非常に強力な機能です。前回はデータのレイアウト定義を表すスキーマを作成しましたので、今回は変換処理にまつわるマップを作成します。

マップは、定義したスキーマ間でレイアウト、データの変換や色々な編集・演算を行うための設定です。前回作成した BizTalk 用のソリューションに追加することで、マップの設定を行うことができます。

image

追加直後はこのような表示になります。通常であれば、各種コントロールが表示されているツールボックスには、マップ上で利用できる機能 = Functoid が並んでいます。これを利用して、ある値を計算したり、結合したり、色々な事を行った結果を、別スキーマで定義されたデータに出力することができます。

マップは左側が入力で、右側が出力となります。それぞれのスキーマを選択します。

image

同じプロジェクトに含まれているスキーマが選択可能ですので、あらかじめスキーマは二つ用意しておきます。

image

マップ編集画面では、直感的な操作が可能です。まず値をそのまま出力する場合は、左側(または出力側の右側から)ドラッグして、出力先の項目でドロップすると、上記のように矢印がひかれ、左の項目から右の項目へと出力される設定が行われます。

image

Functoid を利用して計算を行う場合は、ツールボックスから利用したい Functoid をドラッグ&ドロップします。上記の例は、加算(Addition)の Functoid で左から入力した値を合算し、右へ出力するものです。ここでは、単価と税額を合算させています。

image

各 Functoid の config 画面を出すと、上記のように細かい設定も可能です。マウスの場合は、Functoid 上で右クリックするとメニューから選択できます。

image

Functoid の結果は、さらに別の Functoid へと連携させることもできます。ここでは、合算した単価と税額に対して、数量を乗算するよう、乗算の Functoid へと接続させています。

image

このような感じで、入力側から出力側へと値を関連付けていきます。こうすることで、データの変換を行う設定をマップに設定していきます。

Functoid が BizTalk をはじめとした、マップ機能の主な機能で、非常に多彩な事が実行可能です。例えば Script という Functoid がありますが、これはマップ上で独自のスクリプトを実行するための物です。

image

このように C# や VB、XSLT スタイルシートなどに加えて、懐かしの JScript も利用可能です。

image

拡張機能には、単純ではない機能な Functoid が用意されています。

image

Conversion は変換機能。ASCII 変換や16進数変換などがあります。

image

Cumulative は集計関係で、合計や平均、最大最小などがあります。

image

Date/Time では日付計算ようのものが。

image 

Logical では論理演算に用いるもの、LogicApps にも同様の関数があるのでイメージはつかみやすいものがあります。

image

Mathematical は算術演算。

image

Scientific は三角関数やべき乗といった、比較的複雑な演算。

image

String では文字列にまつわる Functoid が用意されています。

このように、BizTalk な機能である Enterprise Integration においても、ノンコーディングで多くのことを実現させる思想は共通しています。これら多くの Functoid を利用することで、単純なデータ変換だけでなく、集計レコードとして作成したり分析結果を算定させたりと、非常に多くのことが実現可能です。

このようにして作成したマップも、LogicApps で利用することができます。LogicApps だけでは比較的手間の多い処理を、マップ上で実現させることですっきりとした LogicFlow を作成することも可能です。

前回、今回で作成したものをベースに、次回は LogicApps 上で実際に利用するという事を行ってみます。

0 件のコメント:

コメントを投稿