高度なカスタマイズ > ビジネスロジックのカスタマイズ > 変更管理のカスタマイズ > 変更関連テーブルのリンクに関する属性の編集 > カスタマイズの手順 > データユーティリティの作成 (ステップ 3)
  
データユーティリティの作成 (ステップ 3)
概要
次のような相違があります。
ここでは、列を変更対象オブジェクト (部品、ドキュメント) のテーブルに表示しています。これは、変更対象オブジェクトを変更管理オブジェクトに関連付けるバイナリリンクの値を表しています。
次の操作を行う際に、値が維持される必要があります。
ページ制限を超えたページング
テーブルの並べ替え
テーブルビューの変更 (列または行が表示されない場合を含む)
テーブルに対する追加および除去
クラス ChangeLinkAttributeDataUtility には多数のヘルパーメソッドがあり、これらのケースを処理するための拡張のカスタマイズポイントとして利用できます。
ChangeLinkAttributeDataUtility を使用すると、メソッドのリクエストに対してリンクがキャッシュされるため、パフォーマンスの面で複数の属性を効果的に処理できます。
プロセス
リンク属性を変更するデータユーティリティを機能させるために必要な、主なポイントは次のとおりです。
1. クラス ChangeLinkAttributeDataUtility を拡張します。
2. メソッド createGuiComponent(String id,Object datum,ChangeLinkAttributeBean linkBean); をオーバーライドします。ChangeLinkAttributeBean は、リクエスト内のリンク管理をサポートする特殊な Bean クラスです。
3. linkBean.getObjectReference(datum) を使用して、変更適用オブジェクトの ObjectReference をデータムから取得します (テーブルの参照タイプを正規化します)。
4. getGUIComponentId(component_id, wtreference) を活用して、以下のパラメータに基づいて GuiComponent の ID を生成します。
component_id: createGuiComponent メソッドでパラメータ id によって返されるコンポーネント ID。
wtreference: オブジェクトタイプ ChangeRecord2 に関連付けられている変更対象オブジェクトへの参照。
たとえば、コンポーネント ID が distributionList であれば、getGUIComponentId メソッドは VR:wt.part.WTPart:67429#distributionList という値を返します。
5. GuiComponent の名前と ID を、上で生成した値に設定します。
6. インプレースで編集可能なフィールドでは、super.setEventListener(component,linkBean); を呼び出して、コンポーネントの編集した値 onBlur をコピーするようにリスナーを設定します。
7. retrieveValue(String id, BinaryLinklink); をオーバーライドして、リンクから属性値を抽出します (VIEW および初期 EDIT コンポーネントモード)。
8. 現在の値を取得するには、retrieveValue( ) を使用します。
9. ProcessExistingLinks(NmOid oid,String componentId) をオーバーライドして、リンクを dataUtility にロードします。