チェーンマッピング

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  マッピングのデザイン >

チェーンマッピング

MapForce ではチェーン構造により複数のコンポーネントを含むようなマッピングがサポートされます。チェーン構造のマッピングとは、少なくとも 1 つのコンポーネントがソースかつターゲットコンポーネントとして機能するマッピングのことです。このようなコンポーネントの出力は、それ以降のマッピングで入力として使用されます。このようなマッピングのことを「中間」コンポーネントと呼びます。

 

例えば、下に示されるマッピングは、(XML 書式の)2つの段階で処理される経費報告書を表示しています。 A から B へのマッピングの部分は、 「Travel」 とマークされる経費のみをフィルターします。 B から C へのマッピングの部分は、1500 以下の 「Travel」 経費のみをフィルターします。コンポーネント B は、入力と出力接続の両方が存在するため、「中間」 コンポーネントです。このマッピングは、次のパスで見つけることができます: <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\ChainedReports.mfd

mf_passthrough_01

ChainedReports.mfd

「パススルー」 と呼ばれる機能がチェーンマッピングに搭載されています。「パススルー」 は、出力ウィンドウ内でチェーンマッピングの各段階による出力を確認することのできるプレビュー機能です。例えば、 上のマッピングでは、 A から B への、および、 B から C への、結果する XML 出力をプレビューして、保存することができます。

 

メモ:XML、CSV、TXT ファイルといったファイルをベースにした「中間」コンポーネントだけが「パススルー」機能を搭載します。データベースコンポーネントを中間コンポーネントとして使用することはできますが、パススルーコンポーネントは表示されません。プレビューやコードの生成を行うたびに、中間コンポーネントは再度生成されますが、生成を行う前に一度削除しなければならないため、データベースにてこのような操作を行うことはできません。

 

MapForce Server または、生成されたコードによりマッピングが実行される場合、マッピングのチェーン全体が実行されます。チェイン内の各ステップで必要な出力ファイルをマッピングは生成し、マッピングのチェーンのステップの出力が次のマッピングステップへ入力として転送されます。

 

中間コンポーネントのために、動的な ファイル名を生成することもできます。コンポーネントが対応して構成されていることを条件に、 マッピングから "File:" アイテム への接続を受け入れることができます。更に詳しい情報に関しては、次を参照してください: 複数の入力、および、出力ファイルを動的に処理する

 

ic-preview-inact プレビューボタン

コンポーネント B ならびに C にはプレビューボタンが表示されます。この機能を使用することにより MapForce 内で B の中間マッピング結果のプレビューだけではなく、チェーン構造の最終結果をプレビューすることができます。対応するコンポーネントのプレビューボタンをクリックし、出力ボタンをクリックすることでマッピング結果を確認することができます。

 

パススルー ボタンが有効化されている中間 コンポーネント をプレビューすることはできません。 同時にデータをプレビューし、パススルーすることは意味を成さないため、プレビューボタンは、自動的に無効化されます。このようなコンポーネントの出力を確認するためには、パススルーボタンをクリックして、無効化してから、プレビューボタンをクリックします。

 

ic-passthru-active パススルーボタン

中間コンポーネント B には、更に「パススルー」という名前のボタンがコンポーネントのタイトルバーに表示されます。

 

パススルーボタンが有効 ic-passthru になっている場合、コンポーネント A からコンポーネント B へ、そしてコンポーネント C へというかたちで全てのデータをプレビューウィンドウへマッピングします。2 つの結果が生成されます。

 

マッピングコンポーネント A の結果が中間コンポーネント B へマッピングされます。
中間コンポーネント B の結果がターゲットコンポーネント C へマッピングされます。

 

パススルーボタンが無効 ic-passthru-active になっている場合、マッピングチェーンの一部だけが実行されます。生成されるマッピング結果は、(コンポーネント B と C のうち)どちらのプレビューボタンがアクティブになっているかに依存します。

 

コンポーネント B のプレビューボタンがアクティブになっている場合、コンポーネント A から B へのマッピング結果が生成されます。マッピングチェーンはコンポーネント B で停止し、プレビューを行うのにコンポーネント C は全く使用されません。
コンポーネント C のプレビューボタンがアクティブになっている場合、中間コンポーネント B から C へのマッピング結果が生成されます。パススルー機能が無効になっているため、コンポーネント B に対する自動チェーンが中断されます。マッピング右側にあるチェーンだけが実行され、コンポーネント A は使用されません。

 

"パススルー" ボタンが無効化されている場合、中間コンポーネントは、"入力 XML ファイル" と "出力 XML ファイル" フィールド内で同一のファイル名を持つ必要があります。これにより、 B と C の間のマッピングの部分をプレビューする際に、出力として生成されるファイルが A と B の間のマッピングを入力と使用することができます。また、生成されたコード内で、または、 MapForce Server 実行内で、マッピングのチェーンが壊れないことを保証することができます。

 

前記のように、 マッピング  MapForce Server、または、生成されたコードにより実行された場合、すべてのコンポーネントの出力が生成されます。この場合、 コンポーネント B のパススルー ボタン、および現在選択されているプレビューコンポーネントは破棄されます。上のマッピングを例にして、2つの結果ファイルは以下のように生成されます:

 

1.A から B へのマッピング コンポーネントから結果する出力ファイル
2.B から C へのマッピング コンポーネントから結果する出力ファイル

 

次のセクションである サンプル: パススルーが有効な場合サンプル: パススルーが無効な場合 は、どのようにソースデータがパススルーボタンが有効化、または、無効化されている場合に、転送されるかを説明しています。


(C) 2019 Altova GmbH