Prise en charge des attributs personnalisés Windchill
Pour importer des valeurs de Windchill MPMLink qui ne sont pas importées dans le cadre du processus de conversion standard du bloc de construction d'instructions de travail, des configurations supplémentaires sont requises. Ces valeurs peuvent inclure des attributs Windchill qui ne sont pas déjà mappés au modèle de données du bloc de construction d'instructions de travail ou aux attributs personnalisés Windchill, également appelés attributs paramétrés.
L'exemple suivant importe les valeurs de MyCustomAttribute, qui est un attribut personnalisé de type de données STRING sur une opération Windchill MPMLink.
1. Vérifiez que les valeurs d'attribut sont renvoyées dans les appels REST. Exécutez la commande suivante sur Windchill MPMLink REST Services, à l'aide de l'objet de connecteur MPMLink OData (PTC.SCA.SCO.MPMLink_ODataConnector) ou directement avec un client REST, et vérifiez que MyCustomAttribute est renvoyé :
GET /servlet/odata/MfgProcMgmt/Operations('ID')
2. Mettez à jour la forme de données <Operator_Advisor_object>_AP associée. La propriété ajoutée à la forme de données doit avoir le type de données approprié pour l'attribut Windchill sur lequel elle va être mappée.
Dans cet exemple, nous ajoutons des valeurs de MyCustomAttribute dans une nouvelle propriété de type de données STRING sur la forme de données PTC.SCA.SCO.WorkDefinition_AP appelée MyCustomProperty.
3. Vérifiez qu'une colonne est disponible dans la base de données pour la nouvelle propriété en exécutant un service Get associé à la forme de données principale. Dans cet exemple, exécutez le service GetWorkDefinition à partir de l'objet PTC.SCA.SCO.DefaultProductionOrderManager, et vérifiez que les résultats incluent une colonne MyCustomProperty.
4. Sur l'objet de mappages personnalisés (PTC.SCA.SCO.MPMLinkWorkDefinitionCustomMappings), recherchez et remplacez le service de mappage personnalisé de la forme de données du bloc de construction d'instructions de travail et les informations Windchill pour lesquelles vous souhaitez mapper l'attribut. Dans cet exemple, recherchez et remplacez le service MapWorkDefinitionPropertiesForOperationHolder. Pour obtenir la liste des services de mappage personnalisé qui sont fournis, consultez la rubrique Services de mappage personnalisés.
5. Spécifiez le mappage entre la propriété personnalisée ajoutée à la forme de données <Operator_Advisor_object>_AP et l'attribut Windchill comme indiqué dans les commentaires du code de service. Pour cet exemple, ajoutez les éléments suivants :
result["MyCustomProperty"] = sourceJson["OperationHolder"]["MyCustomAttribute"];
sourceJson est la partie de l'appel REST qui est fournie comme entrée pour le service. Seule la partie de l'appel REST applicable au type d'objet Windchill mappé par le service est fournie comme entrée pour le service. Pour la valeur d'attribut Windchill, utilisez le nom d'attribut comme indiqué dans l'appel REST de l'étape 1. N'utilisez pas le nom interne de l'attribut tel qu'il apparaît dans Windchill.
* 
Les mappages définis dans le bloc de construction d'instructions de travail peuvent également être personnalisés grâce aux services de mappage personnalisé. Par exemple, pour mapper l'attribut Description d'une opération dans Windchill MPMLink à la propriété LongDescription pour les définitions de travail dans le bloc de construction d'instructions de travail, au lieu de la propriété Description, ajoutez ce qui suit sur le service MapWorkDefinitionPropertiesForOperationHolderCustom :
result["LongDescription"] = sourceJson["OperationHolder"]["Description"];
Si vous personnalisez l'un des mappages définis par le bloc de construction d'instructions de travail, vous devez confirmer que vos mappages personnalisés effectuent toujours la conversion comme prévu après la mise à niveau à une nouvelle version du bloc de construction d'instructions de travail.
Les valeurs de la propriété MyCustomAttribute sur les opérations Windchill MPMLink sont désormais incluses lorsque les informations de gamme sont extraites de Windchill MPMLink et converties en définitions de travail et en informations associées.
Mappage d'attributs Windchill avec le type de données Nombre réel avec unités
Les attributs Windchill dont le type de données est Nombre réel avec unités traversent l'appel REST en tant qu'objet JSON avec plusieurs valeurs, plutôt que sous la forme d'une paire attribut-valeur unique. Par exemple : 
"Attribute2": {
"Value": 123.45,
"Unit": "m/s2",
"Precision": 5,
"Display": "123.45 m/s2"
}
Vous pouvez spécifier un mappage pour l'une des valeurs ou mapper l'intégralité de l'objet JSON en tant que valeur d'une propriété de type STRING dans le bloc de construction d'instructions de travail :
Pour mapper l'une des valeurs d'attribut, spécifiez à la fois le nom d'attribut et la valeur que vous souhaitez mapper :
result["MyCustomProperty"] = sourceJson["Attribute2"]["Value"]
Pour mapper l'intégralité de l'objet JSON, y compris toutes les valeurs, en tant que valeur d'une propriété de type STRING de bloc de construction d'instructions de travail, spécifiez uniquement le nom d'attribut :
result["MyCustomProperty"] = sourceJson["Attribute2"]
Mappage des attributs Windchill à valeurs multiples
Un attribut à valeurs multiples dans Windchill est un attribut dont la contrainte Valeur unique a été supprimée. Seuls les attributs Global peuvent être à valeurs multiples.
Un attribut à valeurs multiples de Windchill apparaît dans l'appel REST avec les valeurs répertoriées dans un tableau JSON, similaire à ce qui suit :
"MultiValuedAttribute": [
"Attribute value 1",
"Attribute value 2",
"Attribute value 3"
]
Vous pouvez spécifier un mappage pour une valeur unique ou mapper l'intégralité du tableau JSON de valeurs d'attribut en tant que valeur d'une propriété de type STRING dans le bloc de construction d'instructions de travail :
Pour mapper une valeur spécifique à partir d'un attribut à valeurs multiples, spécifiez le nom d'attribut et la position de la valeur dans l'ordre des valeurs (en partant de 0).
result["MyCustomProperty"] = sourceJson["MultiValuedAttribute"][1]
Pour mapper l'intégralité du tableau JSON de valeurs de l'attribut en tant que valeur d'une propriété de type STRING de bloc de construction d'instructions de travail, spécifiez uniquement le nom d'attribut :
result["MyCustomProperty"] = sourceJson["MultiValuedAttribute"]
Mappage des attributs de liste Windchill
Un attribut de liste dans Windchill est un attribut sur lequel l'une des contraintes de liste est appliquée : Liste de valeurs énumérées, Liste des valeurs correctes ou Liste des valeurs suggérées. Les attributs de liste peuvent être des attributs Global ou Local.
Un attribut de liste de Windchill apparaît dans l'appel REST en tant qu'objet JSON avec plusieurs valeurs, plutôt que sous la forme d'une paire attribut-valeur unique. Par exemple : 
"ListAttribute": [
{
"Value": "Test 1",
"Display": "Test 1"
},
}
Vous pouvez spécifier un mappage pour l'une des valeurs ou mapper l'intégralité de l'objet JSON en tant que valeur d'une propriété de type STRING dans le bloc de construction d'instructions de travail :
Pour mapper l'une des valeurs d'attribut, spécifiez à la fois le nom d'attribut et la valeur que vous souhaitez mapper :
result["MyCustomProperty"] = sourceJson["ListAttribute"]["Value"]
Pour mapper l'intégralité de l'objet JSON, y compris toutes les valeurs, en tant que valeur d'une propriété de type STRING de bloc de construction d'instructions de travail, spécifiez uniquement le nom d'attribut :
result["MyCustomProperty"] = sourceJson["ListAttribute"]
Est-ce que cela a été utile ?