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