高度なカスタマイズ > Windchill アダプタ > Windchill アダプタ Webject の使用 > INSTANCE パラメータを使用したアダプタの名前の指定 > プログラムによるアダプタ名の検出
  
プログラムによるアダプタ名の検出
* 
前の例では、Windchill アダプタの INSTANCE パラメータ名をハードコード化する方法を示しています。これは、手動で修正しないと、ほかのインストールで再使用できないという意味なので、タスクを作成する際に望ましいオプションではありません。
Windchill アダプタ名を検出するには、システム設定を使用するのが最適です。
タスクを JCA クライアントで使用するために作成する場合、supporting-adapter 入力パラメータを使用して、どのアダプタでシステムが設定されているかを調べる必要があります。
そうしないと、システム設定が無効になります。この場合、インスタンスパラメータは以下のようになります。
<ie:param name="INSTANCE" data="$(@FORM[]supporting-adapter[*])"
valueSeparator=";" delim=";"/>
タスクが JCA クライアントから呼び出されると、supporting-adapter 入力パラメータはシステムの設定に基づいて提供されます。通常、これは Windchill アダプタ Webject の INSTANCE パラメータを指定する最も一般的な方法です。
タスクが JCA クライアントで使用する対象でない場合は通常、Get-Properties MGT Webject を使用して wt.federation.ie.VMName プロパティを呼び出し、インスタンスパラメータへの入力として使用します。
<ie:webject name="Get-Properties" type="MGT">
<ie:param name="ATTRIBUTE" data="wt.federation.ie.VMName" />
<ie:param name="GROUP_OUT" data="properties" />
</ie:webject>
...
<ie:param name="INSTANCE"
data="$(properties[0]wt.federation.ie.VMName[0])" />
また、サーブレットでの実行中に VMName プロパティまたはシステムプロパティオブジェクトのいずれかを使用して Info*Engine から呼び出すことにより、INSTANCE パラメータの値をプログラムで提供できます。
次に例を示します。
<%
String vmName = com.infoengine.au.NamingService.getVMName();
// if running in the servlet engine vmName points to the servlet's
// name and not the adapter's name
// the servlet will be configured with its server name pointing to
// the adapter
vmName = System.getProperty ( vmName + ".ieServerName", vmName );
// now VMName should point to the current Windchill adapter
// regardless of whether the task is being runn in the server or
// servlet engine
%>
...
<ie:param name="INSTANCE" data="$(@FORM[]supporting-adapter[*])"
valueSeparator=";" delim=";" default="<%=vmName%>" />