役割ベース UI 機能のカスタマイズ - 属性の表示
目的
サイト、組織、またはコンテナの管理者が役割ベース表示機能を使用して管理できる UI コンポーネント (操作またはその他の UI エレメント) のセットをカスタマイズできるようにします。
バックグラウンド
不要な操作や特定のロールでは使用しない操作が表示されることでユーザーが混乱しないように、管理者は役割ベース UI 機能を使用して、ユーザーに表示される操作の数を最適化できます。このサポートは当初、コンテナマネージャ (特にプロジェクトマネージャ) 向けでした。それが、サイトレベルまたは組織レベルで操作表示を設定するプロファイルという概念に拡張されてきました。
サイト管理者、組織管理者、またはコンテナ管理者は、定義済みの操作をどのユーザーに表示するかを指定できます。サイトおよび組織管理者は、プロファイルを使用してこの指定を行うことができます。プロファイルは、「サイト」> 「プロファイル」または「組織」> 「プロファイル」で作成できます。定義済み操作はデフォルト設定で表示され、管理者はこれらの操作の非表示を選択できます。管理者は、どの参加者 (ユーザー、グループ、組織) がプロファイルに属しているかを指定できます。プロファイルのすべてのメンバーに対して操作が表示されます。1 人のメンバーが複数のプロファイルに属している場合は、最も操作数の多い表示が提供されます。
コンテナレベルでは、管理者はユーザー役割に基づいて表示を指定できます。その役割に属するすべてのユーザーに対して、指定した表示が提供されます。コンテナレベルの役割表示によって、メンバーが参加者になる可能性のあるすべてのプロファイルがオーバーライドされます。
プロフィールおよび役割ベース表示の管理の詳細については、
役割による操作表示の設定についてを参照してください。
範囲/適用可能性/前提条件
• 役割ベースの表示管理機能が有効になっています。つまり、プリファレンス com.ptc.netmarkets.roleAccess.enabled が true に設定されています。カスタマイズはこの機能が無効のときに実行できますが、この機能を有効にするまでは結果が UI に表示されません。
• カスタマイズ担当者はこの機能を使用して、OOTB UI コンポーネントとカスタマイズした UI コンポーネントの両方を管理できます。
予測される結果
役割ごとの表示の設定時およびプロファイルの設定時に、管理可能な UI コンポーネントのリストが管理者に対して表示されます。管理者は、このリストに含まれていない UI コンポーネントの表示を管理できません。
カスタマイズ担当者は、管理者に提供される UI コンポーネントのリストをカスタマイズできます。実行できる操作は以下のとおりです。
• リストへの UI コンポーネントの追加
• リストからの UI コンポーネントの除去
• UI コンポーネントのデフォルト表示設定の指定
• リストでの UI コンポーネントの表示順の変更
• リストでの UI コンポーネントのラベルの変更
サイトまたは組織レベルでの目的は、プロフィール作成時に表示されるリストを管理することです。
コンテナレベルでは、役割ごとの表示の設定時に表示される同等のリストを管理します。
ソリューション
roleaccessprefs.xml ファイル (および必要な関連ファイル) を修正します。
前提となる知識
この目的を達成するには、次のことを理解している必要があります。
• Windchill でのユーザー役割の動作
• Windchill でのアドホックアクセス制御ポリシーの管理
• Windchill クライアントアーキテクチャでの操作フレームワーク
• Windchill クライアントアーキテクチャでのナビゲーションフレームワーク
• XML ファイルのカスタマイズの管理
• RBINFO ファイルのカスタマイズの管理
| 以下の「追加リソース」セクションには、これらの各項目に対する参照が含まれています。 |
ソリューションエレメント
エレメント | タイプ | 説明 |
*actionModels.xml | XML | 操作が使用されるモデルを定義するファイル。操作がまだモデルで定義されていない場合は、検証コードで操作と適切な表示設定が見つかるように、操作を 1 つ作成する必要があります。actionmodels.xml は <Windchills>/codebase にあります。ほかの *actionmodels.xml ファイルは通常、<Windchill>/codebase /config/actions にあります。 |
*actions.xml | XML | 操作とほかの UI コンポーネントが定義されているファイル。操作にはオプションで uicomponent 値が指定されます。 actions.xml はその他の *actions.xml ファイルとともに <Windchill>/codebase /config/actions にあります。 |
roleaccessprefs.xml | XML | デフォルト表示を UI コンポーネントに割り当てるためのファイル。このファイルでアイテムを設定すると、そのアイテムをサイトまたはコンテナに対して非表示にできます。コンテナマネージャでデフォルト値をオーバーライドできるかどうかも、ここで変更できます。 <Windchill>/codebase にあります。 |
roleAccessResource. rbInfo | XML | 操作または UI コンポーネントに対して Uis で提供するラベルを定義します。 <Windchill>/wtCustom/com/ptc/netmarkets/roleAccess/ にあります。 |
actions.xml (および、すべての *actions.xml ファイル) では、uicomponent 属性値が操作に対して割り当てられる場合があります。uicomponent 属性では、roleaccessprefs.xml ファイルおよび roleAccessResource.rbInfo ファイルで参照できる UI コンポーネントの名前を指定します。複数の操作で同じ uicomponent 値を使用できます。これにより、複数の操作を 1 つの UI コンポーネントとして管理できます。操作に uicomponent 値がない場合は、代わりに操作の name を使用して、その操作を UI コンポーネントとして参照できます。ただし、この場合、その操作をほかの操作とともに 1 つの UI コンポーネントにグループ化することはできません。
roleaccessprefs.xml ファイルは、Windchill ユーザーインタフェースの主要なタブに対応する複数のエレメント (またはセクション) を含む <uics> エレメントから構成されています。たとえば、<プロジェクト> セクションは「プロジェクト」タブに対応します。各セクションには 0 個以上の <uic> 要素が含まれており、各要素はそのタブ内での表示を管理可能な UI コンポーネントを表しています。<uic> 要素の name 属性で指定された各 UI コンポーネントは、1 つまたは複数のセクションに表示できます。これにより、UI コンポーネントのデフォルト表示設定を、別々のタブに個別に割り当てることができます。
roleaccessprefs.xml ファイルは、プロファイル (サイトレベルと組織レベル) および役割 (コンテナレベル) の両方に基づいた表示管理用の UI コンポーネントリストに適用されます。ただし、<グローバル> セクションは、プロファイルを使用する表示管理にのみ適用されます。UI コンポーネントが特定のタブに関係しない場合 (Windchill UI ヘッダの「サーチ」リンクの場合など)、または UI コンポーネントが第 1 レベルのタブ自体である場合、その UI コンポーネントは roleaccessprefs.xml の <グローバル> セクションにリストされる必要があります。
各 UI コンポーネントは、UI コンポーネントのわかりやすいラベルを提供する roleAccessResource.rbInfo にエントリがある必要があります。これらのラベルは、表示の設定時に管理者に提示されるリストの UI コンポーネントに使用されます。このファイルでは、リソースエントリ定数によって UI コンポーネントが識別されます。UI コンポーネントは、操作定義の uicomponent か、操作に uicomponent がない場合は操作名に一致する必要があります。リソースエントリ値によって、わかりやすいラベルが提供されます。
| UI コンポーネントのラベルは動詞句である必要があります。操作名または UI コンポーネント名が動詞句でない場合、先頭に 'View' を付けます。たとえば、"View Team Page" のようにします。 |
手順 - 表示管理に使用できる操作の作成
この例では、「プロジェクト」、「プログラム」、「製品」、および「ライブラリ」の各タブでの「フォルダを作成」操作の表示を管理する機能を管理者に提供します。
| この例では、「フォルダを作成」操作が役割ベースの表示管理にまだ使用できないことを前提とします。実際の製品では、デフォルトで使用できます。 |
1. roleaccessprefs.xml 内の <プロジェクト>、<プログラム>、<製品>、および <ライブラリ> の各セクションの下に、新しい <uic> を追加します。
<uic name=”PROJECT_CREATE_FOLDERS” order=”00” enabled=”true” defaultAll=
”true”
defaultManager=”true” defaultGuest=”false” managerEnabled=”true” guestEn
abled=”false”/>
| 属性の詳細については、以下の uic 要素に関するセクションを参照してください。 |
| 複数のタブタイプに有効な操作については、影響を与えるすべてのセクションの下にエントリを追加してください。 |
2. 操作の表示名に使用する新しいリソースエントリを roleAccessResource.rbInfo に追加します。
31.value=Create Folders
31.constant=PROJECT_CREATE_FOLDERS
バンドルを再生成します。uic の名前は、リソースバンドルのエントリの定数と同じである必要があります。
3. <Windchill>/codebase/config/actions/actions.xml で、属性 uicomponent=”PROJECT_CREATE_FOLDERS” を追加して、「フォルダを作成」操作を修正します。
<action name=” folder_create” checkaccess=”true”
uicomponent=”PROJECT_CREATE_ FOLDERS”>
| XML ファイルをカスタマイズするときは、ベストプラクティスに従って XML ファイルをバックアップしてください。 |
4. サーブレットエンジンおよびメソッドサーバーを再起動します。
上記のステップ 1 から 3 は、順不同で実行できます。"PROJECT_CREATE_FOLDERS" は、uic 名、リソースエントリ定数 (引用符なし)、および操作 uicomponent として使用されることに注意してください。カスタマイズした動作を互いに関連付けるには、これら 3 つのアイテムすべてが同じ値を共有する必要があります。
この手順が完了すると、管理者は、サイトレベルまたは組織レベルで定義されたプロフィールおよびコンテナレベルの役割に基づいて、「プロジェクト」、「プログラム」、「製品」、および「ライブラリ」の各タブの「フォルダを作成」操作の表示を設定できるようになります。
カスタマイズポイント
uic 要素
roleaccessprefs.xml の各 UIC は、制御対象の UI コンポーネントまたは操作を表しています。
パラメータ | デフォルト値 | 有効な値 | 必須 | 説明 |
name | 該当なし | 文字列 | Y | UI コンポーネントの名前。これは、actions.xml 中の action エレメントの uicomponent (または name) 属性の値と一致する必要があります。また、リソースバンドル中のリソースエントリの constant 値とも一致する必要があります。 |
order | 該当なし | 整数 | N | この UI コンポーネントのウィザードでの位置。より小さな番号の UI コンポーネントは、より大きな番号の UI コンポーネントの前に配置されます。 |
enabled | true | true | false | N | この uicomponent がウィザードに表示され、システムによって使用されるかどうか。 |
defaultAll | true | true | false | N | すべてのメンバーに対する表示のデフォルト値。 |
defaultManager | true | true | false | N | プロジェクトマネージャに対する表示のデフォルト値。 | アクセス許可は、すべての役割にわたるすべてのアクセス許可の和集合です。defaultManager を false に設定する場合は、defaultAll も false に設定する必要があります。このように設定しない場合、マネージャは ALL_MEMBERS 役割を使用して引き続きアクセス可能な状態になります。 |
|
defaultGuest | true | true | false | N | ゲスト役割のユーザーに対する表示のデフォルト値。 | ゲストは厳密にはプロジェクトのメンバーではありません。ゲストは ALL_MEMBERS 役割に含まれません。 |
|
managerEnabled | true | true | false | N | この uicomponent がマネージャ役割に影響を与えるかどうか。デフォルトの UIC でこの値を変更しないでください。カスタマイズされた UIC では、独自の設定を選択できます。 |
guestEnabled | true | true | false | N | この uicomponent がゲスト役割に影響を与えるかどうか。デフォルトの UIC でこの値を変更しないでください。カスタマイズされた UIC では、独自の設定を選択できます。 |
表示管理に使用できるカスタマイズ済みタブの作成
表示管理に使用できるカスタマイズ済み操作の作成は、使用可能なデフォルトの操作を作成する際の手順と基本的に同じです。ただし、タブはコンテナ管理者 (役割ベース表示の設定) によって管理できません。そのため、サイト管理者および組織管理者が表示プロフィールの設定に使用できるカスタマイズ済みタブを作成することだけが可能です。つまり、タブの <uic> エレメントを roleaccessprefs.xml の <グローバル> セクションにのみ追加できるということです。たとえば、カスタマイズ済みタブをすでに作成しており、関連する <マイタブ>actions.xml ファイルがあると仮定します。次のように、プロフィールベースの表示管理のリストにタブを追加できます。
1. roleaccessprefs.xml の <global> セクションの下に、新しい uic 要素を一意の名前 (CUSTOMIZED_TAB など) で追加します。
<uic name=”CUSTOMIZED_TAB” order=”190” enabled=”true” defaultAll=”true”/>
2. action.xml の適切な操作を UI コンポーネントに関連付けます。
<ooleanpe name=”customization” >
<action name=”list2” uicomponent=”CUSTOMIZED_TAB”>
<command windowType=”page”/>
</action>
3. 新しいエントリを roleAccessResource.rbInfo に uic 名と同じ定数で追加します。この値はプロフィール操作 UI に表示されます。
40.value=View Customized Tab
40.constant=CUSTOMIZED_TAB
バンドルを再生成します。
4. サーブレットエンジンおよび MethodServer を再起動します。
複数の操作への uicomponent の割当
1 つの UI コンポーネントを複数の操作に関連付ける場合は、同じ値を使用して各操作の uicomponent 属性を指定する必要があります。たとえば、「手順 - 表示管理に使用できる操作の作成」のセクションで説明されている手順を実行すると、folder_create 操作が関連付けられている PROJECT_CREATE_FOLDERS という UI コンポーネントが作成されます。actions.xml でその操作に対する uicomponent 属性を次のように指定することによって、list_create_folder 操作を同じ UI コンポーネントに割り当てることができます。
<action name=”list_create_folder”
uicomponent=”PROJECT_CREATE_FOLDERS” ajax=”row”>
結果として、「役割を設定」ページおよび「プロフィールを作成」ページの "Create Folders" エントリは、folder_create 操作と list_create_folder 操作の両方の表示に影響を及ぼします。
UI コンポーネントのラベルの変更
ほかの点は変更しないで、「役割を設定」ページおよび「プロフィールを作成」ページの UI コンポーネントに使用されるラベルを変更できます。roleAccessResource.rbInfo ファイルの関連リソースエントリの value 値を変更して、バンドルを再生成するだけです。以下に例を示します。
31.value=Create Folders - My New Label
31.constant=PROJECT_CREATE_FOLDERS
サンプルコード
OOTB コードの使用例
同じ uicomponent を使用する複数の操作の例は以下のとおりです。製品/プロジェクト/ライブラリの「チーム」ページは同じコードを共有しますが、各操作はオブジェクトごとに個別に定義されます。各操作には、"PROJECT_TEAM" の同じ uicomponent があります。これにより、同じリソース (rbInfo) エントリを使用できるようになり、「プロフィールを作成」ページの「操作表示」テーブルのサイズを最小化できます。PROJECT_TEAM を使用するタブタイプごとに roleaccessprefs.xml で PROJECT_TEAM を定義する必要があります。また、タブタイプごとに異なるデフォルト値を設定できます。
その他のリソース
関連カスタマイズドキュメント
その他の関連 Windchill ドキュメント