高度なカスタマイズ > ビジネスロジックのカスタマイズ > Windchill ProjectLink のカスタマイズ > バリエーションベースラインのメンバーのためのカスタム計画属性アルゴリズムの作成 > 期限と進行状況の計算でサポートされる API
  
期限と進行状況の計算でサポートされる API
以下の API がサポートされます。
FBMLPlannableAttributesHandler.updateFloatingBaselineMemberLinksFromActivity(activityList): 関連付けられているバリエーションベースラインメンバーリンクの進行状況属性と期限属性が関連する計画アクティビティの修正の影響を受けた場合にこれらの属性を更新する API。
FBMLPlannableAttributesHandler.updateFloatingBaselineMemberLinks(floatingBaselineMemberList): バリエーションベースラインメンバーリンクが更新された場合にそのメンバーリンクの進行状況属性と期限属性を更新する API。たとえば、FloatingBaselineMember リンクオブジェクトから WTPart のリビジョンが修正された場合などです。
EPPCustomUtils.getFloatingBaselineMemberLinks(parts, baselineIdentifers, matchExactVersion): partObject の指定されたコレクションの関連 FloatingBaselineMember オブジェクトを取得する API。この API は、WTPart の指定されたコレクションの FloatingBaselineMember オブジェクトを取得する際には VariantBaseline とバージョンの完全一致の基準を適用します。
DeliverableHelper.service.getAssociatedActivities(subjectListCollection): 指定された「成果物の対象」リストについて、この API は WTKeyedHashMap (キー: SubjectOfDeliverable-ObjectIdentifier、値: WTArrayList(PlanActivity)) を返します。ここで、キーは指定された SubjectOfDeliverable の ObjectIdentifier、値は PlanActivity の WTArrayList です。浮動ベースラインメンバーが作成または更新された場合にこの API を使用できます。
* 
対象がいずれのアクティビティにも関連付けられていない場合、リターンマップ WTKeyedHashMap にこの対象のエントリは含まれません。
DeliverableHelper.service.getActivitySubjects(activityList): 指定されたアクティビティリストについて、この API は WTKeyedHashMap (キー: PlanActivity.ObjectIdentifier、値: ArrayList(SubjectOfDeliverable)) を返します。アクティビティが作成、更新、または削除された場合にこの API を使用できます。
* 
どのアクティビティにも成果物の対象が関連付けられていない場合、空の ArrayList が WTKeyedHashMap に返されます。
PlannableHelper.service.getAllAncestorsOfActivities(actList): 指定されたアクティビティリストについて、この API は WTKeyedHashMap (キー: PlanActivity、値: WTArrayList(PlanActivity)) を返します。ここで、キーは指定されたアクティビティ、値はそのすべての祖先の WTArrayList です。
* 
どのアクティビティにも親サマリーアクティビティが存在せず、その親が計画である場合、空の WTArrayList(PlanActivity) が WTKeyedHashMap(PlanActivity, WTArrayList(PlanActivity)) に返されます。
DeliverableHelper.service.getActivitiesHavingDeliverableSubjects(activityColl): 指定されたアクティビティのコレクションについて、この API は成果物の対象が関連付けられているアクティビティの WTCollection を返します。
* 
成果物としてマークされているが成果物の対象がないアクティビティは、返されるアクティビティのコレクションに含まれません。
throwActivityCustomEvents(HashMap<String, PlanActivity>actMap, WTCollection newActCollection): この API は throwActivityEvents の最後に呼び出され、イベントをさらに追加するときに使用されます。StandardEPPCustomEventHandlerService を拡張し、この API をオーバーライドして、アクティビティに関連付けられている計画属性を更新するようカスタマイズしたイベントを作成して発生させることができます。
getIcon Object result,HashMap<Object, Object>iconList: この API は浮動ベースラインメンバーの「進行状況」グラフィックアイコンを返します。浮動ベースラインメンバーのステータス (赤色、黄色、緑色、なし) を表示するアイコンコンポーネントオブジェクトを返します。その他の場合、healthStatusTypeFBML.getDisplay() メソッドを呼び出して、進行状況属性のテキスト表示であるオブジェクトを返します。カスタム進行状況アイコンを設定することもできます。
カスタム進行状況アイコンを設定するステップ
HealthStatusIconHandler インタフェースを使用してカスタムアルゴリズムを設定できます。このインタフェースは以下のように定義されています。
1. public HashMap<Object, Object> getHealthStatusImageIcon(List objects);
2. public Object getIcon(HealthStatusType healthStatusType, boolean isComplete, boolean isCancelled,AbstractPlanActivity activity) throws WTException, WTPropertyVetoException;public String getIconForCompletedLate();
3. public String getIconForCompletedPlannables();
4. public String getIconForCancelledPlannables();
5. HashMap<object, Object> getIcon(FloatingBaselineMember fbmlObject, Object result, HashMap <Object, Object> iconList)throws WTException;
このインタフェースおよび所定のサポートされている API を実装することでカスタムアルゴリズムをプラグインできます。これらの実装されたメソッドでは、進行状況を表示する独自のアイコンを指定できます。カスタムアルゴリズムを作成した後、xconf ファイルでこれを設定します。
1. ${WT_HOME}/Windchill/codebase/com/ptc/projectmanagement/projectmanagement.service.properties.xconf に以下のエントリを追加します。
<!-- Handlers for displaying graphical 'Health Status' for plan activity -->
<Service context="default"
name="com.ptc.projectmanagement.plan.HealthStatusIconHandler">
<Option cardinality="singleton" requestor= "null" selector =
"com.ptc.projectmanagement.plan.Plannable"
serviceClass="com.ptc.projectmanagement.plan.PlannableHealthStatusIconHandler"/>
</Service>
* 
このエントリの serviceClass フィールドとしてカスタムハンドラ名を追加します: serviceClass= <custom_handler_name>
2. Windchill シェルで xconfmanager -p を実行し、メソッドサーバーを再起動します。