サンプル: パススルーが有効な場合

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

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

サンプル: パススルーが有効な場合

このサンプルで使用されているマッピング (ChainedReports.mfd) は、 <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\ フォルダー内にあります。このマッピングは、旅費の経費を含む ReportA.xml という名前の XML ファイルを処理します。簡素化のために、名前空間宣言と expense-item 要素の一部は省略されています:

 

<?xml version="1.0" encoding="UTF-8"?>
<expense-report currency="USD" detailed="true">
  <Person>
    <First>Fred</First>
    <Last>Landis</Last>
    <Title>Project Manager</Title>
    <Phone>123-456-78</Phone>
    <Email>f.landis@nanonull.com</Email>
  </Person>
  <expense-item type="Travel" expto="Development">
    <Date>2003-01-02</Date>
    <Travel Trav-cost="337.88">
        <Destination/>
    </Travel>
    <description>Biz jet</description>
  </expense-item>
  <expense-item type="Lodging" expto="Sales">
    <Date>2003-01-01</Date>
    <Lodging Lodge-cost="121.2">
        <Location/>
    </Lodging>
    <description>Motel mania</description>
  </expense-item>

  <expense-item type="Travel" expto="Marketing">
    <Date>2003-02-02</Date>
    <Travel Trav-cost="2000">
        <Destination/>
    </Travel>
    <description>Hong Kong</description>
  </expense-item>
</expense-report>

ReportA.xml

マッピングの目的は、上のファイルを基にして、2つの更なるレポートを生成することです:

 

ReportB.xml - このレポートは、 "Travel" 型の旅費のみを含みます。
ReportC.xml - このレポートは、1500 を超えない "Travel" 型の旅費のみを含みます。

 

この目的を達成するためには、マッピング (コンポーネント B) の中間コンポーネントでは、表示されているとおりパススルー ボタン btn_component_pass-through_pressed が有効化されています。これによりマッピングは段階的に実行されます: A から B は、そして、 B から C へ実行されます。中間コンポーネントにより作成される出力は、 B と C の間のマッピングのために使用されます。

mf_passthrough_02

 

マッピングのチェーン内の各段階で生成される出力ファイルは、各コンポーネントの設定により決定されます。(コンポーネント 設定を開くには、右クリックし、コンテキストメニューから プロパティ を選択します)。具体的には、最初のコンポーネントは、 ReportA.xml という名前の XML ファイルからデータを読み取るように構成されています。ソースコンポーネントであるからであり、出力 XML ファイル フィールドは関連性がないため、空白のままです。

mf_passthrough_03

ソースコンポーネントの設定

下に示されるように、 2番目のコンポーネント (ReportB) は、ReportB.xml という名前の出力ファイルを作成するように構成されています。入力 XML ファイル フィールドは、灰色で表示されています。(このサンプル内で示されているように) パススルーが有効化されている場合、中間コンポーネントの 入力 XML ファイル フィールドは、自動的に無効化されます。マッピングを実行するために入力ファイル名が存在する必要はなく、マッピング内のこの段階で生成される出力は、一時的なファイル内に保管され、マッピングの後の段階で再利用することができます。また、(下で示されるように)出力 XML ファイルが定義されている場合、中間出力ファイルのファイル名のために使用されます。出力 XML ファイル が定義されていない場合、デフォルトのファイル名が自動的に使用されます。

mf_passthrough_04

中間コンポーネントの設定

最後に、3番目のコンポーネントは、 ReportC.xml という名前の出力ファイルを生成するように構成されています。これはターゲットコンポーネントであるため、入力 XML ファイルフィールド には関連性はありません。

mf_passthrough_05

ターゲット コンポーネントの設定

マッピングウィンドウ内の出力タブをクリックして、マッピングをプレビューする場合は、2つのファイルが出力に表示されます:

 

1.ReportB.xml は、 A から B へのマッピングの結果を表します。
2.ReportC.xml は、 B から C へのマッピングの結果を表します。

 

2件の生成された出力ファイルから選択するには、出力ウィンドウ内に表示されているファイルを矢印ボタンをクリックして、または、ドロップダウンリストからエントリを選択します。

mf_passthrough_06

生成された出力ファイル

MapForce によりマッピングが実行される場合、(「ツール | オプション | 一般」から構成することのできる)設定 「出力ファイルに直接書き込む」 により、中間ファイルが一時的なファイル、または、物理的ファイルとして保存されるかを決定します。MapForce 内でマッピングが直接プレビューされる場合のみ、これは妥当であることに注意してください。このマッピングが MapForce Server により、または、生成されたコードにより実行された場合、実際のファイルは、マッピングのチェーンの各段階で生成されます。

 

StyleVision がインストールされている場合、 そして、 StyleVision Power Stylesheet (SPS) ファイルがターゲット コンポーネントに (このサンプル内で示されているように) 割り当てられている場合、最後のマッピング出力を HTML、 RTF、 PDF、または Word ファイルとして確認(保存) することができます。MapForce 内でこの出力を表示するには、対応する名前を持つタブをクリックしてください。

mf_passthrough_07

生成された HTML 出力

マッピングのチェーンの最後のターゲットコンポーネントの出力のみが表示されることに注意してください。中間コンポーネントの StyleVision 出力を表示するには、パススルー ボタンを無効化して中間コンポーネントを ( サンプル: パススルーが無効な場合 内で表示されているとおり)プレビューする必要があります。


(C) 2019 Altova GmbH