过程
下面给出了包括自定义配置或自定义逻辑的过程:
1. 使用 enumCustomize 工具在 DiscrepancyTypeRB.rbInfo 中创建新的 CUSTOM_DISCREPANCY
2. 创建新委派 CustomDiscrepancyDelegate,并在 WT_HOME\codebase\com\ptc\windchill\associativity\xconfs\associativity.service.properties.xconf 文件中添加一个条目。
<Option cardinality="singleton" selector="CUSTOM_DISCREPANCY" requestor="null"
serviceClass="com.ptc.windchill.associativity.reconciliation.part.CustomDiscrepancyDelegate"/>
CustomDiscrepancyDelegate 中实现以下方法:
public Collection<Discrepancy2> detect(ReconciliationContext context, AssociativePath currentPath,AssociativePath oldPath) throws WTException ;
提供用于检测差异的逻辑。
public void verify(ReconciliationContext context, Collection<? extends Discrepancy2> discrepancies) throws WTException;
提供用于验证差异的逻辑。此方法提供了逻辑分离,以查找差异并验证其是否有效以及是否可以通过解决进行处理。
public ReconciliationReport resolve(ReconciliationContext context, Collection<? extends Discrepancy2> discrepancies) throws WTException;
提供用于解决差异的逻辑。
protected AbstractDiscrepancy2 getDiscrepancyInstance(ReconciliationContext context) throws WTException;
返回自定义差异的实例。可覆盖此方法,以使用 JSON (ReconciliationContext, String) 方法中的实例填充默认信息。
public boolean isOccurrenceBased();
指定差异是基于具体值还是基于使用关系。
public String toJSON(ReconciliationContext context, Discrepancy2 discrepancy) throws WTException;
提供一种将信息从服务器传输到客户端的方法。每个委派确保所有必需的信息均已翻译,以便将其转换回 Discrepancy2。如果其需要解析,则先调用 super 方法,然后再将特定信息添加到 JSON。
public Discrepancy2 fromJSON(ReconciliationContext context, String discrepancyData) throws WTException;
提供一种将客户端信息传输回服务器对象的方法。每个委派均确保所有必需的数据均以翻译,以便与 JSON (ReconciliationContext, Discrepancy2) 一致。在处理特定信息之前调用 super 方法。
CustomDiscrepancyDelegate 的配置如下:
这对您有帮助吗?