group-adjacent

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

ホーム >  関数 > 関数ライブラリレファレンス > core | sequence functions >

group-adjacent

group-adjacent 関数は、 key 入力に接続されているキーにより nodes/rows 入力に接続されているアイテムをグループ分けします。この関数は、アイテムが隣接しない場合、同じキー情報を共有するアイテムを個別のグループに分けます。複数の連続した (隣接した) アイテムが同じキーを共有する場合、これらのアイテムは同じグループに配置されます。

 

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

 

最初は、最初のキー 「Administration」 は新規のグループを作成します。
次のキーは異なるため、2番目のグループである「Marketing」が作成されます。
3番目のキーもまた異なるための、「Engineering」と呼ばれる他のグループが作成されます。
4番目のキーは3番目と同じキーです。このため、レコードは既存のグループに配置されます。
最後に、 5番目のキーは4番目のキーと異なるため、最後のグループを作成します。

 

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

mf_group-adjacent

 

引数

名前

詳細

nodes/rows

アイテムのシーケンス

ノードまたは行のシーケンス (例えば、 接続は子アイテム、 CSV レコードなどを持つ、ソース XML ノードを基にすることができます)。

key

A variable type

アイテムをグループするキー

 

サンプル

使用するソースデータは次のコンテンツを持つ XML ファイルです (下のコードリストでは名前空間と XML 宣言は簡素化のために削除されていることに注意してください)。

 

<company>
  <person department="Administration" name="Vernon Callaby"/>
  <person department="Marketing" name="Susi Sanna"/>
  <person department="Engineering" name="Michelle Butler"/>
  <person department="Engineering" name="Fred Landis"/>
  <person department="Administration" name="Frank Further"/>  
</company>

 

ビジネスの条件は、隣接する部署の個人レコードをグループ分けします。 これを達成するには、 次のマッピングが group-adjacent 関数を呼び出し、 departmentkey として提供します。

mf_group-adjacent_map

マッピングの結果は以下のとおりです:

 

<groups>
  <group>
    <record key="Administration" value="Vernon Callaby"/>
  </group>
  <group>
    <record key="Marketing" value="Susi Sanna"/>
  </group>
  <group>
    <record key="Engineering" value="Michelle Butler"/>
    <record key="Engineering" value="Fred Landis"/>
  </group>
  <group>
    <record key="Administration" value="Frank Further"/>
  </group>
</groups>

 

他のグループサンプルと共に、このサンプルは、 次のマッピングファイルの一部です: <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\GroupingFunctions.mfd. Output タブをクリックする前に、プレビューする関数に適用することのできる プレビュー mf_ic_preview ボタン をクリックします。


(C) 2019 Altova GmbH