Supporto degli attributi personalizzati di Windchill
Per importare valori da Windchill MPMLink che non vengono importati come parte del processo di conversione del building block delle istruzioni di lavorazione predefinito, sono necessarie configurazioni aggiuntive. Questi valori possono includere gli attributi Windchill che non sono già mappati al modello di dati del building block delle istruzioni di lavorazione oppure attributi Windchill personalizzati, noti anche come attributi soft.
Nell'esempio riportato di seguito vengono importati i valori di MyCustomAttribute, che è un attributo personalizzato con tipo di dati STRING in un'operazione di Windchill MPMLink.
1. Verificare che i valori degli attributi vengano restituiti nelle chiamate REST. Eseguire il comando seguente per Windchill MPMLink REST Services utilizzando l'oggetto connettore OData per MPMLink (PTC.SCA.SCO.MPMLink_ODataConnector) o direttamente con un client REST, quindi verificare che MyCustomAttribute venga restituito:
GET /servlet/odata/MfgProcMgmt/Operations('ID')
2. Aggiornare la data shape <oggetto_Operator_Advisor>_AP correlata. La proprietà aggiunta alla data shape deve essere il tipo di dati appropriato per l'attributo Windchill a cui verrà mappata.
In questo esempio, si aggiungono valori da MyCustomAttribute a una nuova proprietà con tipo di dati STRING nella data shape PTC.SCA.SCO.WorkDefinition_AP denominata MyCustomProperty.
3. Verificare che una colonna per la nuova proprietà sia disponibile nel database eseguendo un servizio Get correlato alla data shape principale. In questo esempio, eseguire il servizio GetWorkDefinition dall'oggetto PTC.SCA.SCO.DefaultProductionOrderManager e verificare che i risultati includano una colonna MyCustomProperty.
4. Nell'oggetto mappature personalizzate (PTC.SCA.SCO.MPMLinkWorkDefinitionCustomMappings), individuare e sostituire il servizio di mappatura personalizzata per la data shape del building block delle istruzioni di lavorazione e le informazioni di Windchill per cui si desidera mappare l'attributo. In questo esempio, individuare e sostituire il servizio MapWorkDefinitionPropertiesForOperationHolder. Per un elenco dei servizi di mappatura personalizzata disponibili, vedere Servizi di mappatura personalizzata.
5. Specificare la mappatura tra la proprietà personalizzata aggiunta alla data shape <oggetto_Operator_Advisor>_AP e l'attributo Windchill come indicato nei commenti nel codice servizio. In questo esempio, aggiungere quanto segue:
result["MyCustomProperty"] = sourceJson["OperationHolder"]["MyCustomAttribute"];
sourceJson è la parte della chiamata REST fornita come input per il servizio. Solo la parte della chiamata REST applicabile per il tipo di oggetto Windchill mappato dal servizio viene fornita come input per il servizio. Per il valore dell'attributo Windchill, utilizzare il nome dell'attributo come mostrato nella chiamata REST del passo 1. Non utilizzare il nome interno dell'attributo come viene visualizzato in Windchill.
* 
Le mappature definite dal building block delle istruzioni di lavorazione possono anche essere personalizzate utilizzando i servizi di mappatura personalizzati. Ad esempio, per mappare l'attributo Description per un'operazione in Windchill MPMLink alla proprietà LongDescription per le definizioni di lavorazione nel building block delle istruzioni di lavorazione, anziché alla proprietà Description, aggiungere quanto riportato di seguito nel servizio MapWorkDefinitionPropertiesForOperationHolderCustom:
result["LongDescription"] = sourceJson["OperationHolder"]["Description"];
Se si personalizzano mappature definite nel building block delle istruzioni di lavorazione, dopo aver eseguito l'aggiornamento a una nuova versione del building block delle istruzioni di lavorazione, verificare che le mappature personalizzate vengano ancora convertite nel modo previsto.
I valori per la proprietà di MyCustomAttribute nelle operazioni di Windchill MPMLink ora vengono inclusi quando le informazioni del piano di produzione vengono estratte da Windchill MPMLink e convertite in definizioni di lavorazione e informazioni correlate.
Mappatura degli attributi di Windchill con il tipo di dati Numero reale con unità
Gli attributi di Windchill con il tipo di dati Numero reale con unità passano nella chiamata REST come oggetto JSON con più valori anziché come singola coppia attributo-valore. Ad esempio:
"Attribute2": {
"Value": 123.45,
"Unit": "m/s2",
"Precision": 5,
"Display": "123.45 m/s2"
}
È possibile specificare una mappatura per uno dei valori o mappare l'intero oggetto JSON come valore di una proprietà di tipo STRING nel building block delle istruzioni di lavorazione.
Per mappare uno dei valori dell'attributo, specificare sia il nome dell'attributo che il valore che si desidera mappare:
result["MyCustomProperty"] = sourceJson["Attribute2"]["Value"]
Per mappare l'intero oggetto JSON, inclusi tutti i valori, come valore per una proprietà di tipo STRING del building block delle istruzioni di lavorazione, specificare solo il nome dell'attributo:
result["MyCustomProperty"] = sourceJson["Attribute2"]
Mappatura di attributi di Windchill con più valori
Un attributo con più valori in Windchill è un attributo a cui è stato rimosso il vincolo Valore unico. Solo gli attributi di tipo Globale possono avere più valori.
Un attributo con più valori di Windchill viene visualizzato nella chiamata REST con i valori elencati in una matrice JSON, simile alla seguente:
"MultiValuedAttribute": [
"Attribute value 1",
"Attribute value 2",
"Attribute value 3"
]
È possibile specificare una mappatura per un singolo valore o mappare l'intera matrice JSON di valori di attributo come valore di una proprietà di tipo STRING nel building block delle istruzioni di lavorazione.
Per mappare un valore specifico da un attributo con più valori, specificare il nome dell'attributo e la posizione del valore nell'ordine dei valori (a partire da 0).
result["MyCustomProperty"] = sourceJson["MultiValuedAttribute"][1]
Per mappare l'intera matrice JSON di valori per l'attributo come valore per una proprietà di tipo STRING del building block delle istruzioni di lavorazione, specificare solo il nome dell'attributo:
result["MyCustomProperty"] = sourceJson["MultiValuedAttribute"]
Mappatura degli attributi elenco di Windchill
Un attributo elenco in Windchill è un attributo con uno dei vincoli elenco applicati: Elenco di valori enumerati, Elenco di valori validi o Elenco di valori consigliati. Gli attributi elenco possono essere attributi di tipo Globale o Locale.
Un attributo elenco di Windchill viene visualizzato nella chiamata REST come oggetto JSON con più valori anziché come singola coppia attributo-valore. Ad esempio:
"ListAttribute": [
{
"Value": "Test 1",
"Display": "Test 1"
},
}
È possibile specificare una mappatura per uno dei valori o mappare l'intero oggetto JSON come valore di una proprietà di tipo STRING nel building block delle istruzioni di lavorazione.
Per mappare uno dei valori dell'attributo, specificare sia il nome dell'attributo che il valore che si desidera mappare:
result["MyCustomProperty"] = sourceJson["ListAttribute"]["Value"]
Per mappare l'intero oggetto JSON, inclusi tutti i valori, come valore per una proprietà di tipo STRING del building block delle istruzioni di lavorazione, specificare solo il nome dell'attributo:
result["MyCustomProperty"] = sourceJson["ListAttribute"]
È stato utile?