このサイトをビューするために JavaScript を有効化してください。

Altova MapForce 2020 Enterprise Edition

マッピングのデザイン > 変数の使用

サンプル: データベースのテーブルの行の計算

スクロール ホーム トップ その他

このサンプルで説明されているマッピングは、 <マイ ドキュメント>\Altova\MapForce2020\MapForceExamples\ フォルダー内の DB_UserList.mfd です。このマッピングは、ユーザーのレコードを "Users" という名前のデータベーステーブルから抽出し、 XML ファイルに書き込みます。データベースの列 "Username" には、個人の姓と名の両方が含まれています (例えば、 "Vernon Callaby")。 このマッピングの目的は以下のとおりです:

 

1."Users" テーブル内の各レコードのために、 XML ファイル内に新規の Person 要素を作成する。

2.データベース フィールド "Username" から抽出された値を XML ファイル内の個別のフィールド("First" と "Last")に分割する。

3.各レコードのために、データベース内に存在するレコードの全体の番号に対して比較される連番を検索し (例えば、 "4 件中の 1 件目"など) Details 要素にこの情報を書き込みます。

mf_map_DB_UserList

DB_UserList.mfd

上で説明されているとおり、最初の目的を達成するために、 ソース "Users" テーブルとターゲット XML ファイルの Person 要素 の間に接続が描かれます。これにより、ソーステーブル内の各レコードのために、ターゲット内に新規の Person 要素が作成されます。

 

フィールド "Username" の値が substring-beforesubstring-after 関数に与えられています。これらの2つの関数は、 スペース文字 (" ") の前後のテキストをそれぞれ抽出し、このマッピングの目的を達成します。

 

3つ目の目的を達成するために、マッピングは count 関数を使用します。集計関数の結果は、変数にパスされます。変数は、マッピング上に結果が保管され、各個人の "Details" 要素 をターゲット XML に書き込む際に使用することができます。効率性のために、データベースのレコードは1度のみ数えられるべきであり、変数のスコープは compute-when=once に設定されています (次を参照してください: 変数のコンテキストとスコープの変更)。

(C) 2019 Altova GmbH