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

Altova MapForce 2020 Enterprise Edition

マッピングがノード、または行をグループ分けする必要がある場合、次の MapForce 内蔵関数を使用してこの目的を達成することができます:

 

group-by

group-adjacent

group-into-blocks

group-starting-with

group-ending-with

 

マッピング上でこれらの関数を使用する場合、ライブラリウィンドウからドラッグしてマッピングエリアにドロップします。マッピングにビルトイン関数を追加するも参照してください。

 

メモ:Gグループ関数は次の変換言語内で使用することができます: XSLT 2.0、C++、C#、Java、Built-In.

 

次のセクションではグループ関数のために使用することのできる一般的なサンプルが挙げられています。これらのサンプルは次のデモマッピングが伴います: <マイ ドキュメント>\Altova\MapForce2020\MapForceExamples\Tutorial\GroupingFunctions.mfd。デモマッピングには各関数のために1つずつ与えるための複数の変換が含まれています。一度にプレビュー可能な出力は1つであるため、希望する変換に適用するプレビュー mf_ic_preview ボタンを 「出力」 タブをクリックする前に、にクリックしてください。

 

group-by

group-by 関数は、指定するグループキーに従いレコードのグループを作成します。例えば、下で示される抽象的な変換では、グループキーは、 「Department」 です。トータルで3つの一意の部署が存在するため、 group-by を適用すると3つのグループが作成されます:

mf_group-by

詳細に関しては、 group-by 関数を参照してください。

 

group-adjacent

group-adjacent 関数は group-by 関数と同様、グループキーを引数としてグループ分けすることを必要とします。group-by とは異なり、この関数は次のキーが異なる都度新規のグループを作成します。 2つの隣接するレコードが同じキーを持つ場合、これらのアイテムは同じグループに配置されます。

 

例えば、下記の抽象的な変換に示されるように、グループキーは「Department」です。このダイアグラムの左側は入力データを示し、右側はグループ分けの後の出力データを示しています。次は、変換の実行中に発生します:

 

最初は、最初のキー 「Administration」 は新規のグループを作成します。

次のキーは異なるため、2番目のグループである「Marketing」が作成されます。

3番目のキーもまた異なるための、「Engineering」と呼ばれる他のグループが作成されます。

4番目のキーは3番目と同じキーです。このため、レコードは既存のグループに配置されます。

最後に、 5番目のキーは4番目のキーと異なるため、最後のグループを作成します。

 

下に説明されるとおり、 「Michelle Butler」 と 「Fred Landis」 は隣接する同じキーを持つために一緒にグループ分けされています。しかしながら、 「Vernon Callaby」 と 「Frank Further」 は同じキーを所有しているにもかかわらず隣接していないため、異なるグループに分けれています。

mf_group-adjacent

詳細に関しては、 group-adjacent 関数を参照してください。

 

group-into-blocks

group-into-blocks 関数は、 N が block-size 引数に与えられる値である、 N アイテムを含む等価のグループを作成します。最後のグループは、ソース内のアイテムの数に従い、 N つのアイテム、または少ない数のアイテムを含むことができます。 下のサンプルでは、 block-size は 2 です。総数で5つのアイテムが存在し、最後のアイテムを除き、それぞれのグループは2つのアイテムを含んでいます。

mf_group-into-blocks

詳細に関しては、 group-into-blocks 関数を参照してください。

 

group-starting-with

group-starting-with 関数はブール式の条件を引数として取ります。関数はブール式の条件が true の場合、条件を満たすレコードから、新規のグループが作成されます。 下のサンプルでは、 「Key」が「heading」と等価であることが条件です。 最初と4番目のレコードのために、この条件が true の場合、 2つのグループが結果として作成されます:

mf_group-starting-with

メモ:条件を満たす最初のレコードの前にレコードが存在する場合、追加のグループが作成されます。例えば、  「line」 レコードが最初の 「heading」 レコードよりも多く存在する場合、 これらは新しいグループ内に配置されます。

 

詳細に関しては、 group-starting-with 関数を参照してください。

 

group-ending-with

group-ending-with 関数はブール式の条件を引数として取ります。関数はブール式の条件が true の場合、 条件を満たすレコードが最後になるように、新規のグループが作成されます。 下のサンプルでは、「Key」が 「trailing」 と等価であることが条件です。 3番目と5番目のレコードのために、この条件が true の場合、 2つのグループが結果として作成されます:

mf_group-ending-with

メモ:条件を満たす最後のレコードの前にレコードが存在する場合、追加のグループが作成されます。 例えば、  「line」 レコードが最後の 「heading」 レコードよりも多く存在する場合、 これらは新しいグループ内に配置されます。

 

詳細に関しては、 group-ending-with 関数を参照してください。

(C) 2019 Altova GmbH