高级自定义 > 业务逻辑自定义 > Windchill ProjectLink 自定义 > 为变型基线的成员编写自定义计划属性算法 > 最后期限和健康状况计算支持的 API
  
最后期限和健康状况计算支持的 API
支持以下 API:
FBMLPlannableAttributesHandler.updateFloatingBaselineMemberLinksFromActivity(activityList):当关联变型基线成员链接的健康状况和最后期限属性受到相关计划活动修改的影响时,用于更新这些属性的 API。
FBMLPlannableAttributesHandler.updateFloatingBaselineMemberLinks(floatingBaselineMemberList):更新变型基线成员链接时,用于更新其健康状况和最后期限属性的 API。例如,修改 FloatingBaselineMember 链接对象中 WTPart 的修订版本。
EPPCustomUtils.getFloatingBaselineMemberLinks(parts, baselineIdentifers, matchExactVersion):用于检索给定 partObjects 集合的关联 FloatingBaselineMember 对象的 API。在检索给定 WTPart 集合的 FloatingBaselineMember 对象时,它将应用 VariantBaseline 和精确版本匹配的条件。
DeliverableHelper.service.getAssociatedActivities(subjectListCollection):对于给定的可交付结果主题列表,此 API 会返回 WTKeyedHashMap (key:SubjectOfDeliverable-ObjectIdentifier, value:WTArrayList(PlanActivity)),其中键是给定 SubjectOfDeliverable 的 ObjectIdentifier,值是 PlanActivity 的 WTArrayList。创建或更新浮动基线成员时,可以使用此 API。
* 
如果主题不与活动关联,则 return map-WTKeyedHashMap 中不存在此主题的任何条目。
DeliverableHelper.service.getActivitySubjects(activityList):对于给定活动列表,此 API 会返回 WTKeyedHashMap(key: PlanActivity.ObjectIdentifier, value:ArrayList(SubjectOfDeliverable)。创建、更新或删除活动时,可以使用此 API。
* 
如果活动没有关联的可交付结果主题,则会在 WTKeyedHashMap 中返回空的 ArrayList。
PlannableHelper.service.getAllAncestorsOfActivities(actList):对于给定活动列表,此 API 会返回 WTKeyedHashMap(key:PlanActivity, value:WTArrayList(PlanActivity)),其中键是给定活动,值是其所有祖先的 WTArrayList。
* 
如果活动没有父项汇总活动,且其父项为计划,则会在 WTKeyedHashMap(PlanActivity, WTArrayList(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 会返回浮动基线成员的图形健康状况图标。它将返回浮动基线成员的图标组件对象,其中显示任何状态 (红色、黄色、绿色或不可用)。在任何其他情况下,此 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 shell 中运行 xconfmanager -p,然后重新启动方法服务器。