支援 Windchill 自訂屬性
欲匯入未作為 現成 Operator Advisor 轉換流程一部份匯入之 Windchill 中的值,需要其他組態。這些值可能包含尚未對應至 Operator Advisor 資料模型的 Windchill 屬性,或自訂 Windchill 屬性 (亦稱為可變屬性)。
下列範例將匯入 MyCustomAttribute 的值,這是有關 Windchill MPMLink 操作的 STRING 資料類型自訂屬性。
1. 核對 REST 呼叫中是否傳回了這些屬性值。使用 MPMLink OData 連接器物件 (PTC.SCA.SCO.MPMLink_ODataConnector) 或直接使用 REST 用戶端,針對 Windchill MPMLink REST Services 執行下列指令,並核對是否傳回了 MyCustomAttribute
GET /servlet/odata/MfgProcMgmt/Operations('ID')
2. 更新相關的 <Operator_Advisor_object>_AP 資料形式。新增至資料形式的內容必須是其要對應到的 Windchill 屬性之適當資料類型。
若需進一步資訊,可參閱 將自訂內容新增至 Operator Advisor 實體
在此範例中,我們會將 MyCustomAttribute 中的值新增至 PTC.SCA.SCO.WorkDefinition_AP 資料形式中名為 MyCustomProperty 的新 STRING 資料類型內容中。
3. 透過執行與主資料形式相關的 Get 服務,核對資料庫中是否存在新內容所對應的欄。在此範例中,執行 PTC.SCA.SCO.DefaultProductionOrderManager 物件中的 GetWorkDefinition 服務,並核對結果是否包括 MyCustomProperty 欄。
4. 在自訂對應物件 (PTC.SCA.SCO.MPMLinkWorkDefinitionCustomMappings) 中,尋找並覆寫 Operator Advisor 資料形式的自訂對應服務以及想要為其對應屬性的 Windchill 資訊。在此範例中,尋找並取代 MapWorkDefinitionPropertiesForOperationHolder 服務。如需有關所提供的自訂對應服務清單的資訊,請參閱 自訂對應服務
5. 指定新增至 <Operator_Advisor_object>_AP 資料形式的自訂內容與如服務程式碼中註解所示 Windchill 屬性之間的對應。在此範例中,新增下列程式碼:
result["MyCustomProperty"] = sourceJson["OperationHolder"]["MyCustomAttribute"];
sourceJson 是作為服務輸入提供之 REST 呼叫部份。只有適用于服務所對應之 Windchill 物件類型的 REST 呼叫部份會作為服務輸入提供。對於 Windchill 屬性值,請使用步驟 1 中 REST 呼叫所示的屬性名稱。請勿使用如 Windchill 中所顯示之屬性的內部名稱。
* 
Operator Advisor 所定義的對應也可以使用自訂對應服務進行自訂。例如,欲將 Windchill MPMLink 中作業的 Description 屬性對應至 Operator Advisor 中工作定義的 LongDescription 內容,而非 Description 內容,請在 MapWorkDefinitionPropertiesForOperationHolderCustom 服務上新增下列程式碼:
result["LongDescription"] = sourceJson["OperationHolder"]["Description"];
若自訂任何由 Operator Advisor 定義的對應,請確認您的自訂對應在升級為 Operator Advisor 的新版本之後仍會依預期轉換。
當從 Windchill MPMLink 中提取製程計劃資訊並將其轉換為 Operator Advisor 工作定義與相關資訊時,即會將 Windchill MPMLink 操作的 MyCustomAttribute 內容值包括在內。
將 Windchill 屬性對應為「具有單位的實數」資料類型
「具有單位的實數」資料類型的 Windchill 屬性將在 REST 呼叫中作為具有多個值的 JSON 物件,而不是單一屬性值對。例如:
"Attribute2": {
"Value": 123.45,
"Unit": "m/s2",
"Precision": 5,
"Display": "123.45 m/s2"
}
您可以為其中一個值指定對應,或將整個 JSON 物件作為 Operator AdvisorSTRING 類型內容的值進行對應:
欲對應其中一個屬性值,請指定要對應的屬性名稱與值:
result["MyCustomProperty"] = sourceJson["Attribute2"]["Value"]
欲對應整個 JSON 物件 (包括所有值),作為 Operator Advisor STRING 類型內容的值,請僅指定屬性名稱:
result["MyCustomProperty"] = sourceJson["Attribute2"]
對應多值 Windchill 屬性
Windchill 中的多值屬性是已移除「單一值」條件約束的屬性。只有「全域」屬性可以是多值屬性。
Windchill 中的多值屬性會以 JSON 陣列形式在 REST 呼叫中列出這些值,如下所示:
"MultiValuedAttribute": [
"Attribute value 1",
"Attribute value 2",
"Attribute value 3"
]
您可以為單一值指定對應,或將屬性值的整個 JSON 陣列作為 Operator AdvisorSTRING 類型內容的值進行對應:
欲對應多值屬性中的特定值,請指定屬性名稱並按值的順序指定值的位置 (從 0 開始)。
result["MyCustomProperty"] = sourceJson["MultiValuedAttribute"][1]
欲對應屬性的整個 JSON 值陣列作為 Operator Advisor STRING 類型內容的值,可僅指定屬性名稱:
result["MyCustomProperty"] = sourceJson["MultiValuedAttribute"]
對應 Windchill 清單屬性
Windchill 中的清單屬性是套用下列其中一個清單條件約束的屬性:「列舉值清單」「合法值清單」「建議值清單」。清單屬性可以是「全域」屬性或「本機」屬性。
Windchill 中的清單屬性會在 REST 呼叫中顯示為具有多個值的 JSON 物件,而不是單一屬性值對。例如:
"ListAttribute": [
{
"Value": "Test 1",
"Display": "Test 1"
},
}
您可以為其中一個值指定對應,或將整個 JSON 物件作為 Operator AdvisorSTRING 類型內容的值進行對應:
欲對應其中一個屬性值,請指定要對應的屬性名稱與值:
result["MyCustomProperty"] = sourceJson["ListAttribute"]["Value"]
欲對應整個 JSON 物件 (包括所有值),作為 Operator Advisor STRING 類型內容的值,請僅指定屬性名稱:
result["MyCustomProperty"] = sourceJson["ListAttribute"]