高度なカスタマイズ > ビジネスロジックのカスタマイズ > Product Family Management のカスタマイズ > バリエーションベースラインメンバーのカスタマイズ
バリエーションベースラインメンバーのカスタマイズ
このセクションでは、バリエーションベースラインメンバーの以下のカスタマイズについて説明します。
カスタマイズフックを使用した、メンバーリンク属性ステータスの状態遷移に対する制御の実装。
JCA とテンプレートプロセッサでのメンバーリンクのソフト属性の遷移のカスタマイズ。
API のカスタマイズによるバリエーションベースラインへの (からの) メンバーの追加 (除去)、およびベースラインメンバーリンクへのベースラインオブジェクトリビジョンなどの属性値の設定。
カスタマイズフックを使用したメンバーリンク属性ステータスに対する制御の実装
前提条件: バリエーションベースラインメンバーリンクステータスをカスタマイズするには、次のことを理解している必要があります。
基本的な JAVA。
タイプおよび属性の管理、列挙制約、グローバル列挙に関する基本知識。
Windchill でのカスタマイズ。
手順: サービスの実装
「ステータス」ドロップダウンメニューの値をカスタマイズするには、wt.productfamily.StatusTransitionInterface インタフェースの getValidStatus メソッドを実装します。デフォルトでは、すべてのステータス列挙値が有効な値であり、「ステータス」ドロップダウンメニューにはそのすべてがリストされます。カスタマイズする際に、これらの値を制限できます。getValidStatus メソッドは Map<String, Map<String, String >> を返し、ここでユーザーは FloatingBaselineMemberObjectIdentifier 文字列表現に対してステータスキー値のペアマップを維持しています。たとえば、マッピングは wt.vc.baseline.FloatingBaselineMember:FloatingBaselineObjectId に対して行われます。
getValidStatus メソッドをカスタマイズする際には、Null キーに対してもステータスマップを適用する必要があります。Null キーに対する StatusMap は、addToBaseline などの操作に作成される FloatingBaselineMemberLink のデフォルトのステータスマップとして処理されます。
メソッドの以下の署名を実装します。
statusTransitionDelegate セレクタに対するサービスを修正します。以下のコードに示すようにサービスが登録されます。
サンプルコード
以下のサンプルコードは、ステータス列挙に以下のキー値ペアがあることを前提としています。
status1、Status 1
status2、Status 2
status3、Status 3
status4、Status 4
status5、Status 5
このコードの制限により、floatingBaselineMembers のステータスが status1 である場合、status2 にだけ進むことができます。floatingBaselineMembersstatus2 を持つ場合、status3 にだけ進むことができます。以降も同様になります。
JCA でのメンバーリンクのソフト属性の遷移のカスタマイズ
前提条件: ソフト属性の遷移をカスタマイズするには、次のことを理解している必要があります。
基本的な JAVA。
Windchill でのカスタマイズ。
手順: 属性に対するデータユーティリティの使用
制御する必要がある列に対してデータユーティリティを設定します。&jcaDebug=true を Windchill UI の URL に追加することで、それらの列の現在のデータユーティリティを JCA で表示できます。
TemplateProcessor でのメンバーリンクのソフト属性の遷移のカスタマイズ (UpdateBaselineTable UI)
前提条件: TemplateProcessor でのソフト属性の遷移をカスタマイズするには、次のことを理解している必要があります。
基本的な JAVA。
Windchill でのカスタマイズ。
JavaScript カスタマイズの使用
API のカスタマイズによるバリエーションベースラインメンバーの追加または除去およびベースラインメンバーリンクへのベースラインオブジェクトリビジョンなどの属性値の設定
バリエーションベースラインへの (からの) メンバーの追加 (除去)、およびベースラインメンバーリンクへのベースラインオブジェクトリビジョンなどの属性値の設定を行うために API をカスタマイズするには、次のことを理解している必要があります。
基本的な JAVA。
Windchill でのカスタマイズ。
手順: PersistentHelper の API の使用
これらの API は PersistenceHelper.manager.delete()PersistenceHelper.manager.save() などの PersistenceHelper の API を使用することで実装できます。これらすべての API はマルチオブジェクト API です。
カスタマイズフックを使用した「ベースラインオブジェクトを更新」 UI での部品リビジョン列に対する制御の実装
前提条件: リビジョン列をカスタマイズするには、次のことを理解している必要があります。
基本的な JAVA。
Windchill でのカスタマイズ。
部品属性の読み取りに関する基本知識。
手順: サービスの実装
部品リビジョン列ヘッダーとドロップダウンメニューの値をカスタマイズするには、com.ptc.windchill.lotbaseline.updatebaseline.RevisionAttributesDelegateIfc インタフェースの getRevisionAttributesHeaders および getRevisionAttributesValues メソッドを実装します。
getRevisionAttributesHeaders: ユーザーは必要なフォーマット (空白またはコンマ区切り) で 1 つ以上の部品属性のヘッダーラベル文字列を返すことができます。返されたラベル文字列は既成のリビジョンラベルである「新規リビジョン」に追加されます。
getRevisionAttributesValues(Object): ユーザーは必要なフォーマット (空白またはコンマ区切り) で、カスタマイズしたヘッダーラベルに対応する 1 つ以上の部品属性値を返すことができます。返された文字列は既成のリビジョン値に追加されます。
メソッドの以下の署名を実装します。
revisionAttributesDelegate セレクタに対するサービスを修正します。以下のコードに示すようにサービスが登録されます。
Windchill シェルから、カスタムインタフェースによる xconf ファイルの更新の後で、xconfmanager -Fvp コマンドを実行して Windchill サーバーを再起動して更新を有効にします。
サンプルコード
以下の例では、部品リビジョンの「修正者名」「修正時刻」の値が「ベースラインオブジェクトを更新」 UI の「新規リビジョン」列に追加されます。
これは役に立ちましたか?