使用追蹤
追蹤連結可讓您追蹤外部資源與 Windchill 可追蹤物件之間的關係。例如,追蹤可能會描述在外部系統中管理的需求與 Windchill 中的零件之間的關係。
追蹤可協助專案經理與工程師瞭解這些關係。使用追蹤連結可改善您對設計意圖的瞭解,並協助您評量變更的影響。
追蹤連結的類型
Windchill 物件與外部項目間追蹤連結的類型包括:
• 「分配」- 將高層級遠端需求網域項目連結至高層級零件或組件。此連結表示需求資料至少部份履行所追蹤項目的義務。例如,在設計流程的早期,將需求文件連結至組件。
• 「符合」- 將 Windchill 物件連結至遠端需求網域項目。此連結指示物件符合所追蹤項目。例如,將組件元件連結至已完成的需求文件。
• 「實行」- 將 Windchill 可追蹤物件連結至遠端架構網域項目。此連結表示系統設計實體的機械、電氣或軟體設計實行的可追蹤物件。例如,將零件連結至遠端架構項目或其可變類型。
|
|
在設計流程的早期,可使用「分配」連結將外部資源指派給高層級零件,例如最終項目或組件。在設計流程後期,可使用「符合」連結將外部資源關聯至組件中的特定零件。
|
|
|
當您將「符合」或「實行」追蹤連結新增至物件時,會建立零件的新版序。
|
關於複製至下一版序
版序化或版本修訂 Windchill 物件時,會發生下列情況:
• 會延用新增至物件的追蹤連結。
• 「分配」連結會往前複製到修訂版本的所有版序。例如,如果將零件從修訂版本 A 版本修訂為 B,則 B 會延用所有追蹤連結。
• 「符合」與「實行」連結可在其新增至的版序以及更新的版序與修訂版本中使用。例如,如果「符合」或「實行」連結是在版序 A.2 中所新增,則其可在 A.3 及 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;
}
}