CData Arc のデータマッピングと変換の概要
CData Arc フローに入力されたデータは、最終的な送信先に送信する前に、別のフォーマットに変換する必要がある場合が多いです。Arc は、様々なシステムのデータを統合するために、多くの標準フォーマットへのデータのマッピングをサポートしています。
このページでは、データマッピングや変換を組み込んだフローを設計するための主要な概念について説明します。
データ変換フローについて
統合における重要な部分は、あるシステムで使用されているフォーマットから別のフォーマットにデータを変換することです。
たとえば、取引先はEDI ファイルを送信してArc フローを開始します。EDI データはデータベースに挿入する必要がありますが、はじめにEDI フォーマット(例:X12、EDIFACT)からデータベースが認識できるフォーマットに変換する必要があります。
Arc は多くの異なるシステムを統合するため、考えられるすべてのデータフォーマットのペア間で直接変換メカニズムを使用することは不可能です。その代わりにArc は、一般的な中間フォーマットとしてXML を使用することによってデータ変換を合理化します。
XML Map コネクタは、データがXML に変換されると実際の変換/マッピング手順を実行します。
フローの概要
完全な変換フローは通常、以下の構造を持ちます。
- コネクタはソースデータフォーマットをXML に変換します。
- XML Map コネクタは、このXML を目的のXML 構造にマッピングします。
- マッピングされたXML は、宛先フォーマットに変換されます。
この3 つの部分からなるフローは、外部からアプローチする必要があるため、まずソースと宛先をXML としてモデル化し、次にXML Map コネクタが2 つのXML 構造間のマッピング関係を確立します。
Database コネクタは、すでにインプットとアウトプットをXML としてモデル化しているため、これらのコネクタを含む変換フローでは、データフォーマットをXML に変換したりXML から変換したりするための追加の手順は必要ありません。
ソースと宛先をXML としてモデル化
データ変換フローには常に、開始(ソース)フォーマットと終了(宛先)フォーマットがあります。フローの役割は、データをソースフォーマットから宛先フォーマットに変換することです。
Arc はソースフォーマットと宛先フォーマットの両方をXML としてモデル化するため、フォーマットの変換は、あるXML 構造を別のXML 構造にマッピングするだけで可能です。データ変換には、おおまかに2 つの要素があります。
- 1 つ目は、ソースおよび宛先フォーマットのXML モデルを生成するコネクタです。
- もう1 つは、ソースXML モデルを宛先モデルにマッピングするコネクタです。
ファイルとXML の変換
Arc には、ファイルをXML に、またはその逆方向に変換する多くのコネクタが含まれています。
- X12 コネクタ
- EDIFACT コネクタ
- CSV コネクタ
- JSON コネクタ
- Flat File コネクタ
これらのコネクタは両方向の変換を実行できます。つまり、ファイルフォーマットをXML 構造としてモデル化するだけでなく、同じXML 構造をもとのファイルフォーマットに変換する(戻す)ことも可能です。
たとえば、X12 コネクタはX12 ドキュメントを、特定の要素を持つXML に変換します。特定の要素とは、インターチェンジヘッダー、機能グループヘッダー、および様々なデータ要素を持つトランザクションセットを指します。X12 ファイルのXML 構造に準拠するXML ファイルはすべてX12 に変換して戻すことができます。
テストファイルのアップロード
XML との間で変換を行う多くのコネクタは、「テストファイルをアップロード」機能を提供します。テストファイルをアップロードすると、ファイルの内部XML モデルを構築するようにコネクタに指示されます。このモデルには後のマッピング/変換ステップ(XML Map コネクタ)でアクセスできます。
「テストファイルをアップロード」機能は、任意の変換コネクタの「インプット」タブにある「…ほか」ドロップダウンボタンから利用できます。
たとえば、EDIFACT ドキュメントをデータベースINSERT に変換する必要があるとします。まず、EDIFACT コネクタの「インプット」タブに移動して「…ほか」ドロップダウンから「ファイルをアップロード」を選択し、サンプルのEDIFACT ドキュメントに移動します。EDIFACT コネクタはEDIFACT ドキュメントをXML としてモデル化し、このEDIFACT コネクタがフロー内のXML Map コネクタに接続されると、XML Map コネクタは自動的にこのXML モデルを読み取ります。
注:(「インプット」タブの「ファイルをアップロード」オプションを使用することによって)サンプルファイルはいつでも手動でXML に変換でき、XML Map コネクタにアップロードできるため、この「テストファイルのアップロード」機能は必要ありません。「テストファイルのアップロード」機能は、このプロセスを合理化するための手段に過ぎません。
XML としてデータベースをクエリ
Arc はデータベースの入力および出力を、XML としてモデル化します。ユーザーがDatabase コネクタ(またはMySQL、SQL Server、CData などの類似のコネクタ)でインプットマッピングまたはアウトプットマッピングを作成すると、コネクタは結果のデータベースクエリのXML モデルを構築します。
データベースデータ(INSERT/UPDATE およびSELECT)は自動的にXML としてモデル化されるため、データベースの出入力をXML に変換するための追加の手順は必要ありません。
データベースクエリのXML モデルへのアクセス
Database コネクタ(または類似のコネクタ)でインプット/アウトプットマッピングを作成した後、マッピングの右側にある「コードビュー」アイコン(</>)をクリックすると、作成されたXML モデルにアクセスできます。
ただし、通常は「コードビュー」XML モデルを直接表示または変更する必要はありません。以下のテンプレートファイルのセクションで説明しますが、Database コネクタによってこれらのXML モデルが変換ステップで自動的に使用できるようになります。
変換で活躍するXML Map コネクタ
ソースと宛先両方のデータフォーマットがXML に変換されると、XML Map コネクタは、一方のXML 構造をもう一方にマッピングするという重要なステップを実行します。
XML Map コネクタは、ビジュアルデザイナにドラックアンドドロップコントロールを提供し、マッピング関係を確立するプロセスを簡略化します。ビジュアルデザイナには、ソース構造と宛先構造の両方の折りたたみ可能なツリー上モデルが表示されます。ソースから宛先にXML 要素をドラッグすると、2 つの要素間のマッピング関係が確立されます。
XML をマッピングするプロセスについては以下で簡単に説明します。XML Map コネクタの詳細については、XML Map コネクタのドキュメントを参照してください。
テンプレートファイル
XML Map コネクタにはテンプレートとして、ソースXML ファイルと宛先XML ファイルが必要です。これらのテンプレートファイルの構造は、ビジュアルデザイナ内でマッピングを確立できるようビジュアルデザイナにデータを入力するために使用されます。
テンプレートファイルの自動検出
XML Map コネクタがフロー内の他のコネクタに(いずれかの方向で)接続されている場合、XML Map コネクタはこれらの隣接するコネクタに保存されているXML テンプレートを検出しようとします。
コネクタは、以下の2 つのソースから内部XML テンプレートを生成します。
- 変換コネクタ(X12、EDIFACT、CSV、JSON)の「テストファイルのアップロード」機能
- Database コネクタ(および類似のMySQL、SQL Server、CDataコネクタ)のインプット/アウトプットマッピング
XML Map コネクタが、アップロードされたテストファイルまたは隣接するコネクタに構成されたインプット/アウトプットマッピングを検出すると、ソースファイルまたはデスティネーションファイルドロップダウンメニューで使用できるようになります。
注:必要なテンプレートファイルがXML Map コネクタの設定に表示されない場合は、フローページの右側にある保存アイコンを使用してフローへの変更を保存したことを確認してください。そうしないと、コネクタ間の接続が認識されない場合があります。
テンプレートファイルの手動アップロード
ソースおよび宛先テンプレートファイルを自動的に検出するアプローチに加えて、ソースファイルまたはデスティネーションファイルとしてXML ファイルを手動でアップロードできます。これらのファイルは、マッピングのインプット/アウトプット構造を表す必要があります。
たとえば、サンプルのX12 ドキュメントを構成されたX12 コネクタに渡し、そのコネクタからの出力をダウンロードして、ソースファイルとして手動でアップロードすることができます。X12 コネクタの「テストファイルのアップロード」機能は、この特定の手順のショートカットとして使用されます。
マッピングの作成
ソースファイルとデスティネーションファイルが構成されると、XML Map コネクタのビジュアルデザイナにこれらのツリー構造が表示されます。
要素をソースから宛先の要素にドラッグして2 つの要素間のマッピング関係を確立します。マッピング関係には、Value マッピングとForeach マッピングの2 種類があります。
Foreach 関係
XML 要素に子があって値がない場合、_親_要素とみなされます。_親_要素を、ソースから宛先の_親_要素にドラッグすると、2 つの要素間にForeach 関係が確立されます。
これは、ソース要素が出現するたびにアウトプットXML に宛先要素が出現することを意味します。これには宛先要素のすべての子が含まれることに注意してください。
ソースの_親_要素は、宛先の_親_要素にのみドラッグできます。
たとえば、EDI ドキュメントからデータベース挿入にマッピングする場合、ソースXML 内に発注を表す複数の要素が存在することがあります。各発注は、「Order」テーブルへの新しい挿入が必要なため、ソースの発注と宛先の「Order」テーブルの挿入の間には、Foreach 関係が存在する必要があります。発注を表す_親_要素を「Order」挿入を表す_親_要素にドラッグし、この関係を確立します。
Foreach 関係の例を含む詳細については、XML Map コネクタのドキュメントページを参照してください。
Value マッピング
XML 要素に値があって子がない場合、_リーフ_要素とみなされます。_リーフ_要素を、ソースから宛先の_リーフ_要素にドラッグすると、2 つの要素間にValue マッピングが確立されます。
これは、ソース要素の値がインプットファイルから解析され、アウトプットファイルの宛先要素へのデータ入力に使用されることを意味します。これらのValue マッピングは、Foreach 関係がすでに確立されている場合にのみ作成する必要があります。
マッピング_リーフ_ノードの詳細については、XML Map コネクタのドキュメントページを参照してください。
マッピング機能の応用
マッピング処理中に、インプットファイルの値をフォーマットまたは操作する必要がある場合があります。XML Map コネクタは、特定のマッピング条件を満たすフォーマッタ、コンディション、およびカスタムスクリプトを提供します。
XML Map コネクタの拡張機能については、XML Map コネクタのドキュメントページを参照してください。
次のステップ
独自のカスタムデータフローを開始するには、CData Arc をダウンロードしてください。このアプリケーションには、全機能が使用可能な30 日間の無償トライアルライセンスが付属しているため、データ変換およびマッピング機能をすぐに試すことができます。
当社のナレッジベースには、「CData Arc の起動と実行」、「CData Arc で最初のフローを作成する」などの記事もあります。
Ready to get started?
Use CData Arc's free 30-day trial to start building your own custom workflows today: