高度なカスタマイズ > Info*Engine ユーザーガイド > Task Webject リファレンス > Group Webject > Join-Groups
  
Join-Groups
説明
2 つの異なるグループから 1 つのグループに同じ情報を結合 (Join) します。JOIN_TYPE パラメータを MAX に設定することによって、両方のグループ内の異なる情報が新しいグループにも含まれます。
* 
Join-Groups Webject と Merge‑Groups Webject は、重複情報の処理方法が異なります。結合 (Join) されたグループの結果では、重複情報は削除されます。データの併合 (Merge) されたグループでは重複情報を保存します。
構文
<ie:webject name="Join-Groups" type="GRP">="GRP">
  <ie:param name="CASE_IGNORE" data="[TRUE | FALSE]"/>
  <ie:param name="CLASS" data="class"/>
  <ie:param name="COMPARISON" data="[ALPHA | NUMERIC]"/>
  <ie:param name="GROUP_IN" data="input_groups"/>
  <ie:param name="GROUP_OUT" data="output_group_name"/>
  <ie:param name="JOIN_TYPE" data="MAX"/>
  <ie:param name="JOINBY" data="attribute"/>
  <ie:param name="SORTBY" data="attribute"/>
  <ie:param name="SORTED" data="[ASC | DESC]"/>
  <ie:param name="UNDEFINED" data="somevalue"/>
</ie:webject>
パラメータ
必須
選択
オプション
GROUP_IN
CASE_IGNORE
GROUP_OUT
CLASS
JOINBY
COMPARISON
JOIN_TYPE
SORTBY
SORTED
UNDEFINED
CASE_IGNORE
大文字と小文字のフラグとして機能します。TRUE を指定すると、大文字と小文字は無視されます。FALSE を指定すると、大文字と小文字は区別されます。このパラメータのデフォルトは FALSE です。このパラメータはオプションです。
CLASS
GROUP_OUT パラメータによって指定された出力グループに含まれているオブジェクトのタイプを指定します。たとえば、Webject が CLASS=MyClassNameGROUP_OUT=data_1 を指定する場合、出力グループの XML 表現には以下のタグが含まれます。
<MyClassName NAME="data_1" TYPE="Object" STATUS="0">
</MyClassName>
このパラメータのデフォルトは Unknown-Class-Name です。これはオプションのパラメータです。
COMPARISON
2 つのグループの比較方法を説明します。英数字を比較する ALPHA と数字を厳密に比較する NUMERIC があります。このパラメータのデフォルトは ALPHA です。このパラメータはオプションです。
GROUP_IN
結合 (Join) を計算するときに使用する 2 つのグループの名前を指定します。2 つのグループ名を指定すると、GROUP_IN パラメータの値が異なる 2 行を含めることができます。以下に例を示します。
<ie:param name="GROUP_IN" data="group1"/>
<ie:param name="GROUP_IN" data="group2"/>
グループは、パラメータにリストされた順序で結合 (Join) されます。
このパラメータは必須です。
GROUP_OUT
2 つのグループの結合 (Join) を計算した結果の名前を指定します。このパラメータは必須です。
JOINBY
比較に使用する属性または列名を識別します。結合 (Join) を実行する場合、2 つのグループに、値の等しい JOINBY パラメータによって指定された属性が含まれている場合、最初に指定されたグループの要素を 2 番目に指定されたグループの要素と結合します。
2 つのグループの比較に使用する属性の名前が同じ場合は、JOINBY パラメータを 1 つだけ含めます。2 つのグループの比較に使用する属性の名前が異なる場合は、2 つの JOINBY パラメータを含めます。出力グループに配置する属性名は、最初に使用した JOINBY パラメータの属性名です。
このパラメータは必須です。
JOIN_TYPE
MAX 結合 (Join) を実行するように指定します。JOIN_TYPE を指定しない場合、結合する 2 つのグループ内の異なる情報は出力されません。JOIN_TYPE を MAX に設定する場合、Webject は結合される両方のグループからのすべての情報を結合します。値のないフィールドには、UNDEFINED 値が使用されます。詳細については、Join-Groupsを参照してください。
このパラメータはオプションです。
SORTBY
並べ替えを実行する属性の名前を指定します。このパラメータを指定していない場合は、結果は並べ替えられません。このパラメータはオプションです。
SORTED
結果グループ内の値を並べ替える方法を決定します。SORTBY パラメータで指定した属性によって、並べ替える値が決定します。ASC を指定して昇順で並べ替えるか、または DESC を指定して降順で並べ替えます。このパラメータのデフォルトは ASC です。このパラメータはオプションです。
UNDEFINED
属性値が存在しない場合は、使用する値を設定しますこのパラメータのデフォルト値は "" です。このパラメータはオプションです。
Join-Groups Webject の例を 2 つ示します。始めにタスクの例、次に JOIN_TYPE パラメータの定義を補足します。
以下の例は、2 つのグループを作成してから、Join-Groups Webject を使用して NAME 属性で結合します。"results" という名前の出力グループを作成し、ローカル出力グループのコレクションにグループを追加します。
<%@page language="java" session="false"%>
<%@taglib uri="http://www.ptc.com/infoengine/taglib/core" prefix="ie"%>
<!--Create a group named createdgroup. -->
<ie:task uri="com/company/CreateGroup.xml"/>
<!--Create a group named createdhrgroup. -->
<ie:task uri="com/company/CreateGroupHr.xml"/>
<!-- Form a group by joining two groups -->
<ie:webject name="Join-Groups" type="GRP">
  <ie:param name="GROUP_IN" data="createdgroup"/>
  <ie:param name="GROUP_IN" data="createhrgroup"/>
  <ie:param name="JOINBY" data="NAME"/>
  <ie:param name="JOIN_TYPE" data="MAX"/>
  <ie:param name="SORTBY" data="NAME"/>
  <ie:param name="SORTED" data="ASC"/>
  <ie:param name="GROUP_OUT" data="results"/>
</ie:webject>
この例は、Join-Group Webject を使用して C3 でグループ A とグループ B を結合した結果を示します。はじめの 2 つの表は結合するグループを示します。この 2 つのグループでは、列 3、行 3 の情報が異なることに注意してください。
表 1 グループ A
C1
C2
C3
行 1
a1
b1
c1
行 2
a2
b2
c2
行 3
a3
b3
c3
表 2 グループ B
C3
C4
C5
行 1
c1
d1
e1
行 2
c2
d2
e2
行 3
c4
d4
e4
以下の Webject を実行するとします。
<ie:webject name="Join-Groups" type="GRP">
  <ie:param name="GROUP_IN" data="Group A"/>
  <ie:param name="GROUP_IN" data="Group B"/>
  <ie:param name="JOINBY" data="C3"/>
  <ie:param name="GROUP_OUT" data="Results"/>
</ie:webject>
表 3 JOIN_TYPE パラメータを使用しない場合の結果
C1
C2
C3
C4
C5
行 1
a1
b1
c1
d1
e1
行 2
a2
b2
c2
d2
e2
この Webject は JOIN_TYPE パラメータを使用しません。グループ A からの列がグループ B からの列の前にあり、グループ A および B の行 3 からの情報が含まれていないことに注意してください。
<ie:webject name="Join-Groups" type="GRP">
  <ie:param name="GROUP_IN" data="Group A"/>
  <ie:param name="GROUP_IN" data="Group B"/>
  <ie:param name="JOINBY" data="C3"/>
  <ie:param name="JOIN_TYPE" data="MAX"/>
  <ie:param name="GROUP_OUT" data="Results"/>
</ie:webject>
JOIN_TYPE パラメータを指定した場合の結果を次に示します。情報を持つすべての行が含まれます。
この例では、グループ A (C1、C2、および C3 の行 3 の値が含まれていた) に行 3 の値が含まれています。グループ B (C3、C4、および C5 の行 3 の値が含まれていた) に行 4 の値が含まれています。グループ間で異なる情報について含まれているデフォルト値は "" です。
表 4 JOIN_TYPE パラメータを使用する場合の結果
C1
C2
C3
C4
C5
行 1
a1
b1
c1
d1
e1
行 2
a2
b2
c2
d2
e2
行 3
a3
b3
c3
""
""
行 4
""
""
c4
d4
e4
グループ B をグループ A と結合すると、異なる順序で結合された同じデータを生成します。C3 列はグループ B から導出されます。グループ B からのデータにグループ A からのデータが続きます。グループ A をグループ B と結合すると、以下のようになります。
表 5 JOIN_TYPE パラメータを使用する場合の結果
C3
C4
C5
C1
C2
行 1
c1
d1
e1
a1
b1
行 2
C2
d2
e2
a2
b2
行 3
C3
""
""
a3
b3
行 4
C4
d4
e4
""
""