Windchill benutzerdefinierte Attribute unterstützen
Um Werte aus Windchill zu importieren, die nicht als Teil des standardmäßigen Operator Advisor Konvertierungsprozesses importiert werden, sind zusätzliche Konfigurationen erforderlich. Diese Werte können Windchill Attribute beinhalten, die nicht bereits dem Operator Advisor Datenmodell zugeordnet sind, oder von benutzerdefinierten Windchill Attributen, die auch als Soft-Attribute bezeichnet werden.
Im folgenden Beispiel werden die Werte von MyCustomAttribute importiert, wobei es sich um ein benutzerdefiniertes Attribut des Datentyps STRING für eine Windchill MPMLink Operation handelt.
1. Überprüfen Sie, ob die Attributwerte in REST-Aufrufen zurückgegeben werden. Führen Sie den nachfolgenden Befehl für die Windchill MPMLink REST-Dienste aus. Verwenden Sie hierzu entweder das MPMLink OData-Konnektor-Ding (PTC.SCA.SCO.MPMLink_ODataConnector) oder führen Sie den Befehl direkt im REST-Client aus, und überprüfen Sie, ob MyCustomAttribute zurückgegeben wird:
GET /servlet/odata/MfgProcMgmt/Operations('ID')
2. Aktualisieren Sie den zugehörigen <Operator_Advisor_Objekt>_AP-Data Shape. Die Eigenschaft, die dem Data Shape hinzugefügt wird, muss dem jeweiligen Datentyp für das Windchill Attribut entsprechen, dem sie zugeordnet wird.
In diesem Beispiel werden Werte von MyCustomAttribute einer neuen Eigenschaft vom Datentyp STRING namens MyCustomProperty für den Data Shape PTC.SCA.SCO.WorkDefinition_AP hinzugefügt.
3. Stellen Sie sicher, dass eine Spalte für die neue Eigenschaft in der Datenbank verfügbar ist, indem Sie einen Dienst Get ausführen, der sich auf den primären Data Shape bezieht. Führen Sie in diesem Beispiel den Dienst GetWorkDefinition aus dem Ding PTC.SCA.SCO.DefaultProductionOrderManager aus, und stellen Sie sicher, dass die Ergebnisse eine Spalte MyCustomProperty enthalten.
4. Suchen Sie in dem Ding für benutzerdefinierte Zuordnungen (PTC.SCA.SCO.MPMLinkWorkDefinitionCustomMappings) nach dem entsprechenden Dienst für benutzerdefinierte Zuordnungen des Operator Advisor Data Shape und die Windchill Informationen, für die Sie das Attribut zuordnen möchten, und überschreiben Sie diese. Suchen Sie für dieses Beispiel den Dienst MapWorkDefinitionPropertiesForOperationHolder, und überschreiben Sie ihn. Eine Liste der bereitgestellten Dienste für benutzerdefinierte Zuordnungen finden Sie unter Dienste zum Anpassen von Zuordnungen.
5. Geben Sie die Zuordnung zwischen der benutzerdefinierten Eigenschaft, die dem Data Shape <Operator_Advisor_Objekt>_AP hinzugefügt wurde, und dem Windchill Attribut gemäß den Kommentaren im Dienstcode an. Fügen Sie für dieses Beispiel Folgendes hinzu:
result["MyCustomProperty"] = sourceJson["OperationHolder"]["MyCustomAttribute"];
Bei sourceJson handelt es sich um den Teil des REST-Aufrufs, der als Eingabe für den Dienst bereitgestellt wird. Es wird nur der für den Windchill Objekttyp, der von dem Dienst zugeordnet wird, zutreffende Teil des REST-Aufrufs als Eingabe für den Dienst bereitgestellt. Verwenden Sie den Attributnamen aus dem in Schritt 1 verwendeten REST-Aufruf als Wert für das Windchill Attribut. Verwenden Sie nicht den internen Namen des Attributs, wie er in Windchill angezeigt wird.
* 
Die von Operator Advisor definierten Zuordnungen können auch mithilfe der Dienste zur benutzerdefinierten Zuordnung angepasst werden. Um z.B. das Attribut Description für eine Operation in Windchill MPMLink der Eigenschaft LongDescription für Arbeitsdefinitionen in Operator Advisor zuzuordnen, und nicht der Eigenschaft Description, fügen Sie dem Dienst MapWorkDefinitionPropertiesForOperationHolderCustom Folgendes hinzu:
result["LongDescription"] = sourceJson["OperationHolder"]["Description"];
Wenn Sie eine der von Operator Advisor definierten Zuordnungen anpassen, stellen Sie sicher, dass Ihre benutzerdefinierten Zuordnungen nach dem Upgrade auf eine neue Version von Operator Advisor weiterhin wie erwartet konvertiert werden.
Werte für die MyCustomAttribute-Eigenschaft für Windchill MPMLink Operationen werden jetzt eingeschlossen, wenn Prozessplaninformationen aus Windchill MPMLink abgerufen werden und in Operator Advisor Arbeitsdefinitionen sowie zugehörige Informationen konvertiert werden.
Windchill Attribute des Datentyps "Reelle Zahl mit Einheiten" zuordnen
Windchill Attribute des Datentyps Reelle Zahl mit Einheiten werden im REST-Aufruf als JSON-Objekt mit mehreren Werten und nicht als einzelnes Attribut-Wert-Paar weitergegeben. Beispiel:
"Attribute2": {
"Value": 123.45,
"Unit": "m/s2",
"Precision": 5,
"Display": "123.45 m/s2"
}
Sie können eine Zuordnung für einen der Werte festlegen oder das gesamte JSON-Objekt als Wert einer Eigenschaft vom Typ STRING in Operator Advisor zuordnen:
Um einen der Attributwerte zuzuordnen, geben Sie sowohl den Attributnamen als auch den Wert an, der zugeordnet werden soll:
result["MyCustomProperty"] = sourceJson["Attribute2"]["Value"]
Um das gesamte JSON-Objekt, einschließlich aller Werte, als Wert für eine Eigenschaft vom Typ STRING in Operator Advisor zuzuordnen, geben Sie nur den Attributnamen an:
result["MyCustomProperty"] = sourceJson["Attribute2"]
Mehrwertige Windchill Attribute zuordnen
Bei einem mehrwertigen Attribut in Windchill wurde die Beschränkung Einzelwert entfernt. Nur Attribute vom Typ Global können mehrwertig sein.
Mehrwertige Attribute aus Windchill sind im REST-Aufruf als in einem JSON-Array aufgelistete Werten enthalten, ähnlich dem folgenden Schema:
"MultiValuedAttribute": [
"Attribute value 1",
"Attribute value 2",
"Attribute value 3"
]
Sie können eine Zuordnung für einen einzelnen Wert festlegen oder das gesamte JSON-Array aus Attributwerten als Wert einer Eigenschaft vom Typ STRING in Operator Advisor zuordnen:
Um einen bestimmten Wert aus einem mehrwertigen Attribut zuzuordnen, geben Sie den Attributnamen und die Position des Werts in der Reihenfolge der Werte an (beginnend bei 0).
result["MyCustomProperty"] = sourceJson["MultiValuedAttribute"][1]
Um das gesamte JSON-Array aus Werten für das Attribut als Wert für eine Operator Advisor Eigenschaft vom Typ STRING zuzuordnen, geben Sie nur den Attributnamen an:
result["MyCustomProperty"] = sourceJson["MultiValuedAttribute"]
Windchill Listenattribute zuordnen
Für ein Listenattribut in Windchill gilt eine der folgenden Listenbeschränkungen: Aufzählungswertliste, Liste gültiger Werte oder Liste vorgeschlagener Werte. Listenattribute können entweder Global oder Lokal sein.
Ein Listenattribut aus Windchill ist im REST-Aufruf als JSON-Objekt mit mehreren Werten und nicht als einzelnes Attribut-Wert-Paar enthalten. Beispiel:
"ListAttribute": [
{
"Value": "Test 1",
"Display": "Test 1"
},
}
Sie können eine Zuordnung für einen der Werte festlegen oder das gesamte JSON-Objekt als Wert einer Eigenschaft vom Typ STRING in Operator Advisor zuordnen:
Um einen der Attributwerte zuzuordnen, geben Sie sowohl den Attributnamen als auch den Wert an, der zugeordnet werden soll:
result["MyCustomProperty"] = sourceJson["ListAttribute"]["Value"]
Um das gesamte JSON-Objekt, einschließlich aller Werte, als Wert für eine Eigenschaft vom Typ STRING in Operator Advisor zuzuordnen, geben Sie nur den Attributnamen an:
result["MyCustomProperty"] = sourceJson["ListAttribute"]