Intersect-Groups
説明
2 つのグループの共通部分を識別し、新しいグループに結果を配置します。たとえば、グループ A に要素 u、v、および x が含まれ、グループ B に要素 x、y、および z が含まれるとします。この Webject は、両方のグループの共通の要素を識別し、共通部分の結果を使用してグループ C を形成します。この例のグループ C には、要素 x のみが含まれます。
構文
<ie:webject name="Intersect-Groups" type="GRP">
<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="INTERSECTBY" data="attribute"/>
<ie:param name="SORTBY" data="attribute"/>
<ie:param name="SORTED" data="[ASC | DESC]"/>
<ie:param name="CASE_IGNORE" data="[ TRUE | FALSE]"/>
</ie:webject>
パラメータ
必須
|
選択
|
オプション
|
GROUP_IN
|
|
CASE_IGNORE
|
GROUP_OUT
|
|
CLASS
|
INTERSECTBY
|
|
COMPARISON
|
|
|
SORTBY
|
|
|
SORTED
|
CASE_IGNORE
大文字と小文字のフラグとして機能します。TRUE を指定すると、大文字と小文字は無視されます。FALSE を指定すると、大文字と小文字は区別されます。このパラメータのデフォルトは FALSE です。このパラメータはオプションです。
CLASS
GROUP_OUT パラメータによって指定された出力グループに含まれているオブジェクトのタイプを指定します。たとえば、Webject が CLASS=MyClassName と GROUP_OUT=data_1 を指定する場合、出力グループの XML 表現には以下のタグが含まれます。
<MyClassName NAME="data_1" TYPE="Object" STATUS="0">
</MyClassName>
このパラメータのデフォルトは Unknown-Class-Name です。これはオプションのパラメータです。
COMPARISON
2 つのグループの比較方法を説明します。英数字を比較する ALPHA と数字を厳密に比較する NUMERIC があります。このパラメータのデフォルトは ALPHA です。このパラメータはオプションです。
GROUP_IN
共通集合の処理をするときに使用する 2 つの入力グループの名前を指定します。
2 つのグループ名を指定すると、GROUP_IN パラメータの値が異なる 2 行を含めることができます。例:
<ie:param name="GROUP_IN" data="group1"/>
<ie:param name="GROUP_IN" data="group2"/>
このパラメータは必須です。
GROUP_OUT
2 つのグループの共通部分を計算した結果の名前を指定します。このパラメータは必須です。
INTERSECTBY
比較に使用する属性を識別します。共通集合の処理をすると、最初に指定されたグループの指定された属性は、2 番目に指定されたグループの指定された属性と比較されます。値が同じであれば、最初のグループの要素は結果の出力グループに配置されます。値が異なる場合は、破棄されます。
出力グループに配置する属性名は、使用された最初の INTERSECTBY パラメータの属性名です。すべてのグループの INTERSECTBY パラメータが同じ名前であれば、1 つだけ指定する必要があります。いずれかのグループの INTERSECTBY パラメータの名前が異なる場合は、すべての名前を指定する必要があります。
このパラメータは必須です。
SORTBY
並べ替えを実行する属性の名前を指定します。このパラメータを指定していない場合は、結果は並べ替えられません。このパラメータはオプションです。
SORTED
結果グループ内の値を並べ替える方法を決定します。SORTBY パラメータで指定した属性によって、並べ替える値が決定します。ASC を指定して昇順で並べ替えるか、または DESC を指定して降順で並べ替えます。このパラメータのデフォルトは ASC です。このパラメータはオプションです。
例
以下の例は、CreateGroup および CreateGroupHr タスクタグを使用して 2 つのグループを作成してから、Intersect-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 intersecting the two groups. -->
<ie:webject name="Intersect-Groups" type="GRP">
<ie:param name="GROUP_IN" data="createhrgroup"/>
<ie:param name="GROUP_IN" data="createdgroup"/>
<ie:param name="INTERSECTBY" data="NAME"/>
<ie:param name="CASE_IGNORE" data="YES"/>
<ie:param name="COMPARISON" data="ALPHA"/>
<ie:param name="SORTBY" data="NAME"/>
<ie:param name="SORTED" data="ASC"/>
<ie:param name="GROUP_OUT" data="results"/>
</ie:webject>
この例を実行することにより生成される XML 出力は以下のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<wc:COLLECTION xmlns:wc="http://www.ptc.com/infoengine/1.0">
<Unknown-Class-Name NAME="results" TYPE="Object" STATUS="0">
<wc:INSTANCE>
<NAME>Harvy Anderson</NAME>
<POSITION>Marketing</POSITION>
<PHONE>555-222-2222</PHONE>
</wc:INSTANCE>
<wc:INSTANCE>
<NAME>James O'Connor</NAME>
<POSITION>Management</POSITION>
<PHONE></PHONE>
</wc:INSTANCE>
<wc:INSTANCE>
<NAME>Sam Johnson</NAME>
<POSITION>Engineer</POSITION>
<PHONE>555-111-1111</PHONE>
</wc:INSTANCE>
</Unknown-Class-Name>
</wc:COLLECTION>