|
テーブルに操作列を追加することはできなくなっています。データストアに操作列はありますが、UI には表示されません。各行で右クリックすると操作メニューが表示されるだけです。
|
操作列に操作を表示しない場合は、操作モデルを EMPTY_ACTION_MODEL に設定できます。そうした場合、「表示する操作はありません」という文字列が操作列に表示されます。 |
問題の説明 | ソリューション |
---|---|
操作列がテーブルに表示されない | デフォルトでは、操作列は表示されません。ユーザーが参照することはできません。行の右クリックが、行の操作を表示する唯一の方法です。 |
一部の操作のアイコンが表示されない | UI の標準に従って、システムのいずれかのツールバーで操作のアイコンが表示される場合にのみ、操作メニューにもアイコンが表示されるようになっています。ツールバーに属さない操作について、この制限を回避する場合は、次のようにその操作を持つダミーモデルを作成します。 <model name=”toolbarModelNotUsedAnywhere”> <action name=”myAction” type=”myActionType”/> </model> こうすると、その操作に定義されたアイコンが操作メニューに表示されます。 |
ユーザーが右クリックすると、「表示する操作はありません」というエラーメッセージが表示される | • 操作モデルの menufor 属性にそのタイプが (XML ファイルで) 定義されているか確認します。menufor=”your.type.Here” (テーブルの設定に列を追加するときに、ビルダーで使用するモデルを定義することもできます) • MVC ビルダーで NmActions 列 ID をテーブル設定に追加します。 public ComponentConfig buildComponentConfig (ComponentParams params) { ComponentConfigFactory factory = getComponentConfigFactory (); JcaTableConfig table = (JcaTableConfig) factory.newTableConfig (); table.addComponent (factory.newColumnConfig (DescriptorConstants.ColumnIdentifiers.NM_ACTIONS , true)); .... return table; } • fiddler/firebug を使って、右クリックしたときに実行される servlet/ActionsMenu リクエストの oid パラメータを確認します。それが必要な oid ではない場合、または、oid が存在しない場合、テーブルに使用されているバッキングオブジェクトから正しい NmOid を作成できません。デーブル操作の oid の使用を制御する方法に関する詳細は、NmObjectUtility ドキュメンテーションを参照してください。 • テーブル/列で使用する操作モデル定義する場合 (予測される結果の「テーブルの操作列」セクションで説明)。fiddler/firebug を使って、クリックしてメニューを表示するときに実行される servlet/ActionsMenu リクエストの actions パラメータを確認します。actions パラメータの値は定義したモデル名になっていますか。actions=EMPTY_ACTION_MODEL になっている場合、現在のテーブルビューでは操作列が定義されていません。右クリックメニューが機能するには操作列が必要です。「表示」> 「カスタマイズ」を使って、現在のテーブルビューに操作列を追加してください。テーブルビルダーを変更して、操作列をデフォルト列にします。 • モデルの操作に定義されているバリデータを確認します。すべての操作が非表示として検証されていますか。その場合は、URL パラメータとして jcaDebug=true を追加すると、無効な操作としてメニューで非表示になっている操作のリストが表示されるはずです。 |
ユーザーが右クリックすると次のエラーメッセージが表示される。「このオブジェクトにはアクセスできません。またはオブジェクトが存在しません。」 | その行オブジェクトに対するアクセス権をユーザーが実際に持っていない場合、このメッセージに問題はありません。 ユーザーがアクセス権を持っている場合 (たとえば、情報ページに移動して、そこで操作メニューを表示できる場合)、fiddler/firebug を使って、右クリックしたときに実行される servlet/ActionsMenu リクエストの oid パラメータを確認します。それが必要な oid ではない場合、または、oid が存在しない場合、テーブルに使用されているバッキングオブジェクトから正しい NmOid を作成できません。デーブル操作の oid の使用を制御する方法に関する詳細は、NmObjectUtility ドキュメンテーションを参照してください。 |
UI でリストに表示されない操作がある | 特定の条件で操作を隠しているバリデータが設定されている可能性があります。バリデータでの操作の設定については、Windchill クライアントアーキテクチャの操作フレームワークを参照してください。 jcaDebug=true を url に追加して、隠れている操作も表示します。jcaDebug オプションを有効にすると、より多くの情報がメニューに表示されます。また、リストの最後にある操作で、そのメニューの操作モデルレポートを表示できます。 |
表示される操作セットが間違っている | jcaDebug=true を追加して、メニューの操作に設定されたバリデータを確認します。バリデータが想定どおりに機能しているか確認します。 1. タイプによって操作モデルを見つける場合 (予測される結果の「テーブルの操作列」セクションで説明)、そのオブジェクトタイプの操作モデルに menuFor が定義されていますか。 行のオブジェクトタイプに関して見つかる操作モデルを確認するには、com.ptc.netmarkets.util.misc. StandardNmActionService に対する log4j ロガーを有効にします。 2. 使用するモデルがテーブル/列で定義されている場合 (予測される結果の「テーブルの操作列」セクションで説明)。 デフォルトのデータユーティリティがどの操作モデルを返すか確認するには、com.ptc.core.components.factory.dataUtilities.NmActionDataUtility に対する log4j ロガーを有効にします。 jcaDebug パラメータを指定すると、操作モデルレポートへのリンクもメニュー末尾に表示されます。操作モデルレポートには、モデル名、そのモデルの操作セット、モデルの定義場所、ほかのモデルをオーバーライドしているか、などが示されます。想定どおりにモデルが定義されているか確認してください。 列のカスタムデータユーティリティを作成した場合は、正しい列を使用しているか確認します。URL に jcaDebug=true を設定して、列ヘッダーの DOM エレメントを調べ、列 ID が想定どおりか確認します。各列のヘッダーテキストは先頭が列 ID です。たとえば、デフォルト操作列は "nmActions validated by: …" のようなヘッダーテキストになります。 |