高度なカスタマイズ > Windchill アダプタ > Windchill アダプタ Webject ライブラリ > Action Webject > Apply-Service
  
Apply-Service
Apply-Service Webject は、Windchill サービスを呼び出します。この Webject は、ヘルパークラスまたはサービスメソッドに、Webject への入力項目として指定されるオブジェクトの属性からのパラメータ値を提供するメカニズムを提供します。TYPE と WHERE、OBJECT_REF、および GROUP_IN パラメータは入力オブジェクトを指定します。
指定されたメソッドはヘルパークラスの静的なメソッド名であるか、ヘルパークラス経由でアクセス可能なサービスメソッドの名前である必要があります。
呼び出されるサービスにパラメータが必要な場合は、適切な数の ARG パラメータを指定する必要があります。引数タイプが Windchill オブジェクトの場合、GROUP_IN 経由で指定するか、OBJECT_REF または TYPE および WHERE を使用して選択できます。
* 
これらのパラメータは任意に組み合わせることができますが、Windchill サービスを適用する入力オブジェクトを Webject が 1 つ持つように、TYPE と WHERE、OBJECT_REF、または GROUP_IN の少なくとも 1 つが指定されている必要があります。
ARG パラメータを指定しない場合、TYPE と WHERE、OBJECT_REF、および GROUP_IN パラメータは必要ありません。Webject は指定された Windchill サービスを各オブジェクトに適用しながら提供されたすべての入力オブジェクトに作業版数を適用します。Webject によって返された出力グループには、累積結果が含まれます。
構文
<ie:webject name="Apply-Service" type="ACT">
<ie:param name="ACCEPT_LANGUAGE"
data="$(@SERVER[]accept_language[])"/>
<ie:param name="ARG" data="argument"/>
<ie:param name="ATTRIBUTE" data="attribute"/>
<ie:param name="AUTHORIZATION"
data="$(@SERVER[]authorization[0])"/>
<ie:param name="CONNECTION_ATTEMPTS" data="attempts"/>
<ie:param name="CONNECTION_ATTEMPT_INTERVAL" data="interval"/>
<ie:param name="CONTAINER_REF" data="[ufid | MEMBERSHIP]"/>
<ie:param name="DBUSER" data="username"/>
<ie:param name="DESCRIPTOR" data="attribute_name"/>
<ie:param name="FORMAT" data="[TRUE | FALSE]"/>
<ie:param name="GROUP_FILTER" data="group_name"/>
<ie:param name="GROUP_IN" data="group_in"/>
<ie:param name="GROUP_OUT" data="group_out"/>
<ie:param name="INCLUDE_ARGS" data="[TRUE | FALSE]"/>
<ie:param name="INCLUDE_CONSTRAINTS" data="[TRUE | FALSE]"/>
<ie:param name="INCLUDE_DESCRIPTORS" data="[TRUE | FALSE]"/>
<ie:param name="INSTANCE" data="appl_name"/>
<ie:param name="METHOD" data="method_name"/>
<ie:param name="NEXT_OP" data="operation_name"/>
<ie:param name="OBJECT_REF" data="ufid"/>
<ie:param name="PASSWD" data="password"/>
<ie:param name="REFERENCE_EXCEPTIONS" data="[TRUE | FALSE]"/>
<ie:param name="SERVICE" data="service_name"/>
<ie:param name="SESSION_ID" data="$(session[]session_id[])"/>
<ie:param name="STATIC" data="[TRUE | FALSE]"/>
<ie:param name="TRANSACTION" data="[TRUE | FALSE]"/>
<ie:param name="TYPE" data="type_name"/>
<ie:param name="UNFORMATED" data="dataType" />
<ie:param name="WHERE" data="where_clause"/>
<ie:param name="WHERE_CASE_SENSITIVITY" data="[TRUE | FALSE]"/>
</ie:webject>
パラメータ
必須
相互依存
オプション
INSTANCE
ARG
ACCEPT_LANGUAGE
GROUP_OUT
AUTHORIZATION
ATTRIBUTE
METHOD
CONTAINER_REF
CONNECTION_ATTEMPTS
SERVICE
DBUSER
CONNECTION_ATTEMPT_INTERVAL
DESCRIPTOR
FORMAT
GROUP_FILTER
SESSION_ID
GROUP_IN
STATIC
INCLUDE_ARGS
TRANSACTION
INCLUDE_CONSTRAINTS
UNFORMATTED
INCLUDE_DESCRIPTORS
NEXT_OP
OBJECT_REF
PASSWD
REFERENCE_EXCEPTIONS
TYPE
WHERE
WHERE_CASE_SENSITIVITY
* 
表に記載されているパラメータの定義が以下にない場合、そのパラメータは共通の定義を持っています。これらのパラメータの説明については、アダプタ Webject の概要の「一般 Webject パラメータ」セクションを参照してください。
ARG
METHOD パラメータによって名付けられたメソッドの引数。メソッドによって要求されるすべての引数を提供するために、このパラメータに対しては複数の値が指定できます。指定される値の順番と番号は、サービスメソッドによって要求されている順番と番号に一致する必要があります。
たとえば、サービスメソッドが wt.part.WTPartjava.lang.String、および int という 3 つのタイプの引数を要求している場合、Webject は 3 つの ARG パラメータを持つ必要があります。これらのパラメータを、サービスメソッドの正式な引数と同じ順番で指定する必要があります。
各 ARG パラメータ値のフォーマットは type=name-or-value です。
type は Java クラス名または Java プリミティブ型 (wt.part.WTPartjava.lang.Stringint など) の名前を指定します。type はサービスメソッドの対応する引数の型と一致する必要があります。
name-or-value は取得する属性名を、Webject によって処理される現在の入力オブジェクトから指定するか、リテラル値を指定します。
属性名が指定されると、名前の付いた属性は現在の入力オブジェクトから取得され、その引数の値としてサービスメソッドに渡されます。
リテラル値は一重引用符で囲まれた値です。リテラル値が指定されると、値自体はその引数の値としてサービスメソッドに渡されます。
いずれの場合にも、typewt.fc.Persistable のサブクラスであるクラス名を指定し、Webject は name-or-value がオブジェクトの UFID を指定すると解釈します。Webject は自動的にオブジェクトを取得し、その引数の値としてオブジェクトをサービスメソッドに渡します。
たとえば、現在の入力オブジェクトの OBID 属性によって参照されているオブジェクトを取得して、wt.part.WTPart 型の引数としてサービスメソッドに渡すには、パラメータを以下のフォーマットで指定します。
<ie:param name="ARG" data="wt.part.WTPart=obid"/>
現在の入力オブジェクトの masterReference 属性によって参照されているオブジェクトを取得して、wt.doc.WTDocumentMaster 型の引数としてサービスメソッドに渡すには、パラメータを以下のフォーマットで指定します。
<ie:param name="ARG" data="wt.doc.WTDocumentMaster=masterReference"/>
CONTAINER_REF
Webject を適用する対象となる Windchill コンテキスト。このパラメータは以下のタイプの入力を受け取ります。
Windchill コンテキストの UFID。このパラメータには複数の UFID を指定できます。
MEMBERSHIP - ユーザーがメンバーになっているコンテキストのみが照会されます。
このパラメータを指定した場合、TYPE および WHERE パラメータに対して実行される照会の範囲は、関連付けられたコンテキストに限られます。
GROUP_IN
Windchill サービスが適用されるオブジェクトを含むグループの名前。このパラメータは TYPE、WHERE、または OBJECT_REF パラメータの代わり、または追加として指定できます。
TYPE、WHERE、または OBJECT_REF が指定されていない場合、GROUP_IN を指定する必要があります。
GROUP_OUT
サービスメソッドによって生じた結果を含む出力グループの名前。サービスメソッドがビジネスオブジェクト (wt.fc.Persistable のサブクラスであるオブジェクト) を返す場合、出力グループの各要素はオブジェクトの通常の製品表現になります。
サービスメソッドがたとえば、簡単な文字列などの別のタイプの結果を返す場合、出力グループには 2 つの属性 (class および result) を持つ 1 つの要素が含まれます。
class 属性は result 属性のオブジェクトタイプを指定します。
result属性は実際の結果の値を指定します。
このパラメータは必須です。
METHOD
入力オブジェクトに追加するメソッドの名前。これにはヘルパークラスがアクセスを提供するサービスメソッド名か、ヘルパークラス自体で定義された静的なメソッドの名前を指定できます。呼び出すメソッドが静的なメソッドであっても、インスタンス化されるクラスには引数のないコンストラクタが存在する必要があります。これは必須のパラメータです。
OBJECT_REF
Windchill オブジェクトの Unique Federation Identifier (UFID)。複数の値を指定して複数のオブジェクトを識別できます。
このパラメータは、WHERE の代わりに、または WHERE と組み合わせて使用できます。WHERE を指定しない場合は、OBJECT_REF を指定する必要があります。
SERVICE
Windchill サービスへのアクセスを提供するヘルパーの完全修飾 Java クラス名。たとえば、wt.part.WTPartHelper、wt.folder.FolderHelper、wt.vc.VersionControlHelper、wt.doc.WTDocumentHelper などです。このパラメータは必須です。
STATIC
METHOD パラメータによって指定されたメソッド名がヘルパークラスで指定された静的なメソッド名か、サービスメソッド名かを指定します。このパラメータに有効な値は TRUE および FALSE です。
このパラメータが TRUE として指定されている場合、メソッドはヘルパークラス自体の静的なメソッドです。パラメータが FALSE に指定されている場合、メソッドはサービスメソッドです。このパラメータのデフォルトは FALSE です。
このパラメータはオプションです。
TRANSACTION
メソッドをデータベーストランザクションのコンテキスト内で呼び出す必要があるかどうかを指定します。このパラメータに有効な値は TRUE および FALSE です。
このパラメータが FALSE に指定されている場合、データベーストランザクション内のコンテキストでメソッドは呼び出されません。このパラメータが TRUE に指定されている場合、メソッドはデータベーストランザクションのコンテキスト内で呼び出され、メソッドがすべての指定された入力オブジェクトに確実に呼び出しできない場合に、変更が自動的にロールバックされます。
* 
METHOD パラメータによって指定されたメソッドがデータベース内の情報を作成または更新し、複数の入力オブジェクトが指定されている場合、このパラメータを TRUE として指定してください。これによって、メソッドが 1 つまたは複数の入力オブジェクトに確実に呼び出しできない場合にデータベースが変更されないようになります。
TYPE
オブジェクトタイプの名前。WHERE を指定した場合、TYPE も指定する必要があります。詳細については、TYPE および WHERE パラメータの指定を参照してください。
WHERE
照会するオブジェクトを識別する照会定義式。このパラメータは、OBJECT_REF の代わりに、または OBJECT_REF と組み合わせて使用できます。
OBJECT_REF が指定されていない場合、WHERE を指定する必要があります。WHERE を指定した場合、TYPE も指定する必要があります。詳細については、TYPE および WHERE パラメータの指定を参照してください。
このパラメータのデフォルトは FALSE です。このパラメータはオプションです。
テキスト文字列をサービスメソッドに渡すには、以下のフォーマットでパラメータを指定します。
<ie:param name="ARG" data="java.lang.String='foo'"/>