使用追溯
追溯链接用于追溯外部资源与 Windchill 可追溯对象之间的关系。例如,追溯可用来描述外部系统受控需求与 Windchill 部件之间的关系。
追溯有助于项目经理和工程师了解这些关系。使用追溯链接,可以加深您对设计意图的理解,并协助您评估由变更带来的影响。
追溯链接的类型
Windchill 对象与外部项之间的追溯链接类型如下:
• “分配”- 将高级别远程需求域项链接到高级别部件或装配。此链接表示需求数据至少部分满足被追溯项的约束。例如,在设计过程的早期阶段将需求文档链接到装配。
• “满足”- 将 Windchill 对象链接到远程需求域项。此链接表示对象满足被追溯项的约束。例如,将装配组件链接到最终需求文档。
• “实施”- 将 Windchill 可追溯对象链接到远程架构域项。此链接表示作为系统设计实体的机械、电气或软件设计实施的可追溯对象。例如,将部件链接到远程架构项或其可变类型。
|
|
在设计过程的早期阶段,使用“分配”链接将外部资源分配给高级别部件,如成品或装配。在设计过程后期,使用“满足”链接将外部资源关联到装配中的特定部件。
|
|
|
向对象添加“满足”或“实施”追溯链接时,系统会创建该部件的新小版本。
|
关于向前复制
对 Windchill 对象进行迭代或版本修订时,将出现以下情况:
• 继续沿用已添加到对象的追溯链接。
• “分配”链接将被向前复制到修订版本的所有小版本。例如,如果将部件从修订版本 A 修订为 B,B 会对先前版本应用所有追溯链接。
• “满足”和“实施”链接适用于其所添加到的小版本以及后续小版本和修订版本。例如,如果针对小版本 A.2 添加了“满足”或“实施”链接,该链接也适用于小版本 A.3 及更高小版本,但不适用于小版本 A.1。如果针对修订版本 A 的任何小版本添加了“满足”或“实施”链接,该链接也适用于修订版本 B。
类似于向前复制,向后复制的工作原理如下:
• “分配”链接将被向后复制到修订版本的所有小版本。例如,如果为小版本 B.2 创建了“分配”链接,该链接对小版本 B.1 也可用,但对早期修订版本不可用。
• “满足”和“实施”链接适用于其所添加到的小版本,而不适用于早期的小版本或修订版本。例如,如果针对小版本 B.2 添加了“满足”或“实施”链接,该链接对小版本 B.1 和修订版本 A 均不适用。
查看待查状况
如果任何与部件关联的追溯链接被标记为“待查”,
“待查状况”列会显示
“待查”图标。只能将此列添加到部件信息页面
“结构”选项卡中的部件结构阅览器中。
要查看“待查状况”列,请执行以下步骤:
1. 在“结构”选项卡上,转到 > 。
2. 创建一个新视图,并添加“待查状况”列。
3. 保存该视图后,即可从“视图”下拉列表中选择该视图。
查看可追溯性状况
如果
Windchill 可追溯对象存在关联的远程追溯链接,
“可追溯性状况”列会显示
“存在远程追溯链接”图标。可以将此列添加到任何 JCA 表格视图中,例如部件结构阅览器、
“高级搜索”和
“文件夹浏览器”等。
要在部件结构阅览器中查看“可追溯性状况”列,请执行以下步骤:
1. 在“结构”选项卡上,转到 > 。
2. 创建一个新视图,并添加“可追溯性状况”列。
3. 保存该视图后,即可从“视图”下拉列表中选择该视图。
自定义可追溯性状况
通过使用
BusinessAlgorithm 类创建计算属性,您可以将
“可追溯性状况”列自定义为针对特定链接类型 (例如
“满足”和
“分配”) 显示
“追溯至外部系统”图标。
使用以下 API 添加自定义属性。API 属于 TraceabilityStatusHelper 类。
public static boolean checkTraceabilityStatus(Traceable traceableObject, String... typeInternalNames)
示例代码
public class TraceabilityStatusBusinessAlgorithm implements BusinessAlgorithm {
private static final Logger logger = LogR.getLoggerInternal(TraceabilityStatusBusinessAlgorithm.class.getName());
@Override
public Object execute(BusinessAlgorithmContext context, Object[] args) {
boolean isTraceLinkPresent = false;
BusinessObject businessObject = context.getCurrentBusinessObject();
try {
final Traceable traceable = (Traceable) businessObject.getWTReference().getObject();
// Convert to String array
String[] attrStringArray = new String[args.length];
for (int i = 0; i < args.length; i++) {
attrStringArray[i] = (String) args[i];
}
isTraceLinkPresent = TraceabilityStatusHelper.checkTraceabilityStatus(traceable, attrStringArray);
} catch (WTException e) {
logger.error("An error occurred during traceability evaluation: " + e.getMessage());
}
return isTraceLinkPresent;
}
@Override
public Object getSampleValue() {
return false;
}
}