高度なカスタマイズ > サービスおよびインフラストラクチャのカスタマイズ > LDAP 属性のカスタマイズ > LDAP マップ属性のユーザー情報ページでのカスタマイズ
  
LDAP マップ属性のユーザー情報ページでのカスタマイズ
1. サイト管理者としてログインし、「サイト」 > 「ユーティリティ」 > 「Info*Engine 管理」の順に移動します。
ユーザーにマッピングする追加の属性を含んでいる LDAP があり、この LDAP 用に設定されている JNDI アダプタを編集します。
JNDI アダプタのプロパティページの「その他のプロパティ」セクションでプロパティ <サービス名>.windchill.mapping.user.attributes を追加し、マッピングする属性をこのプロパティの値として (コンマで区切って) 入力します。<サービス名> は、プロパティを修正する対象のアダプタの名前です。windchill を Web アプリケーションとして指定した名前またはその他の名前に置き換える場合は、プロパティ wt.org.webAppNamewt.properties に追加し、使用する名前を指定します。
2. <Windchill>\codebase ディレクトリにある LogicalAttributes.xml ファイルを開きます。WTUser クラス名の定義をサーチし、このセクションのステップ 1 で作成した属性の定義を追加します。
たとえば、citizenship という属性名の場合、その定義は次のとおりです。LogicalForm タグ内の値は、ステップ 1 で定義した属性と同じにしてください。属性では大文字と小文字が区別されます。
<Property>
<LogicalForm>citizenship</LogicalForm>
<ExternalForm>SCA|citizenship.key</ExternalForm>
</Property>
3. これらの各属性に関する追加情報と、これらの属性に対応していて、これらの属性の値を読み込むために呼び出す必要のある Server Calculated Attribute Function (SCAF) に関する追加情報を、カスタマイズのためにサポートされているリソースバンドルに追加します。
たとえば、<Windchill>\src\wt\org ディレクトリにある orgModelRB.rbInfo ファイルを修正し、次のようなエントリを追加します。
WCTYPE|wt.org.WTUser~SCA|citizenship.key.value=Citizenship
WCTYPE|wt.org.WTUser~SCA|citizenship.key.abbreviatedDisplay=Citizenship
WCTYPE|wt.org.WTUser~SCA|citizenship.key.dataType=java.lang.String
WCTYPE|wt.org.WTUser~SCA|citizenship.key.serverFunction=
com.ptc.core.foundation.org.server.impl.SACFLdapAttributeContainerFunction
WCTYPE|wt.org.WTUser~SCA|citizenship.key.serverFunction.arg1=
String{citizenship}
* 
serverFunction の値は、独自の SCAF 関数を作成しない場合は、上記と同じままである必要があります。さらに、ステップ 1 で属性をブールとして定義した場合、key.dataTypejava.lang.Boolean である必要があります。key.serverFunction でタイプを変更しないでください。これは常に文字列タイプである必要があります。
4. 次に、Windchill シェルで次のコマンドを実行して、対応する .ser ファイルをランタイム場所 (<Windchill>\codebase\wt\org など) に生成します。
tools bundle -Dbundle.input=<Windchill>\src\wt\org -Dbundle.recurse=true
5. 構築が完了した後、ランタイム場所 (<Windchill>\codebase\wt\org) をチェックして、.ser ファイルが作成されていることを確認します。
6. Windchill シェルで次のコマンドを実行し、generated in the <Windchill>\temp ディレクトリにある .lst ファイルを表示して、エントリが正しく生成されていることを確認します。
windchill wt.util.resource.ResourceBundleUtil wt.org.orgModelRB en_US
7. Windchill シェルで次のコマンドを実行して、クライアント JAR を再構築します。
ant -f codebase/MakeJar.xml
8. <Windchill>\Tomcat ディレクトリから作業ディレクトリを削除します。
9. Windchill を再起動します。
10. 「サイト」 > 「ユーティリティ」 > 「タイプおよび属性の管理」の順に移動し、ステップ 2 でユーザータイプに対して定義した属性の新しいエイリアス属性を作成します。
「内部名」の値が、ステップ 2 で LogicalForm タグ内に入力した名前と一致していることを確認します。
マッピングする LDAP の属性が文字列かブールであるかに応じて、次の画面で対応するタイプを選択します。
次の画面で表示名を指定します。これには任意の名前を指定できますが、これらの属性が追加されるレイアウトに表示されるものを表す名前にしてください。
「マッピング」フィールドで、ステップ 2 で ExternalForm タグ内に入力した値と一致する値を指定します。
11. 属性が作成されると、「情報ページ」レイアウトにこれらの属性を追加できます。デフォルトでは、これらの追加の属性は「簡略ユーザー」詳細ページにも表示されます。「簡略ユーザー」詳細ページでこれらの追加の属性を非表示にするには、カスタム Java バリデータを作成する必要があります。インストールディレクトリ内の prog_examples\principal\user\validators にバリデータの例があります。そのファイルの名前は UserAttributeCompanyNameValidator です。
非表示にする属性に基づいて変更する必要があるのは、クラスの名前とリターンタイプのみです。同様のファイルをカスタマイズディレクトリに作成し、Windchill シェルで次のコマンドを実行して構築する必要があります。
ant -f bin/tools.xml class -Dclass.includes=*.java -Dclass.source=
<ファイルが配置されているカスタムディレクトリ構造>
例:
ant -f bin/tools.xml class -Dclass.includes=*.java -Dclass.source=
<Windchill>\prog_examples\principal\user\validators
* 
非表示にする属性ごとに 1 つのバリデータを作成する必要があります。
12. バリデータに関する情報は、codebase\com\ptc\windchill\principal ディレクトリにある PrincipalAdmin-service.properties.xconf ファイルの <!-user attribute validators -!> セクションに格納されます。
xconfManager -Fp コマンドを使用して変更を適用します。
例:
<OptionserviceClass="com.ptc.windchill.principal.user.validators.
UserAttributeCompanyNameValidator
"
cardinality="duplicate" requestor="null" selector="company" />
13. Windchill を再起動します。