Comportement des opérations de mise à jour spécialisées
Il existe plusieurs messages spécialisés déconseillés qui exécutent des opérations de mise à jour. Dans des versions précédentes, il était nécessaire d’utiliser ces messages, mais désormais les mêmes opérations doivent être exécutées avec la classe IOrganizationService.Update ou la classe UpdateRequest avec IOrganizationService.Execute
Demande de message déconseillé | Attribut(s) à mettre à jour |
---|---|
AssignRequest | <entity>.OwnerId |
SetStateRequest | <entity>.StateCode <entity>. StatusCode |
SetParentSystemUserRequest | SystemUser.ParentSystemUserId |
SetParentTeamRequest | Team.BusinessUnitId |
SetParentBusinessUnitRequest | BusinessUnit.ParentBusinessUnitId |
SetBusinessEquipmentRequest | Equipment.BusinessUnitId |
SetBusinessSystemUserRequest | SystemUser.BusinessUnitId |
<entity> fait référence à toute entité qui fournit cet attribut.
Important
Lorsque vous mettez à jour la colonne StateCode
, il est important de toujours définir le StatusCode
souhaité.
StateCode
et StatusCode
ont des valeurs dépendantes. Il peut y avoir plusieurs valeurs StatusCode
valides pour une valeur StateCode
donnée, mais chaque colonne StateCode
a une seule valeur de DefaultStatus configurée. Lorsque vous mettez à jour StateCode
sans spécifier de StatusCode
, la valeur d’état par défaut est définie par le système.
De plus, lorsque l’audit est activé sur la table et la colonne StatusCode
, la valeur modifiée de la colonne StatusCode
ne sera pas capturée dans les données d’audit, sauf si elle est spécifiée dans l’opération de mise à jour.
Pour plus d’informations, voir Messages de mise à jour hérités.
Ce changement a introduit quelques comportements spéciaux qui doivent être notés pour les plug-ins et les workflows.
Pour les plug-ins
Lorsque des demandes de mise à jour sont traitées qui incluent à la fois les champs du propriétaire et d’autres champs standard pour les tables appartenant à l’entreprise, les plug-ins enregistrés pour le message Mettre à jour dans les étapes PreOperation et/ou PostOperation s’exécutent une fois pour tous les champs non propriétaires, puis une fois pour les champs propriétaires. Des exemples de champs de propriétaire seraient businessunit
et manager
(pour une table SystemUser). Parmi des exemples de tables appartenant à l’entreprise figurent SystemUser, BusinessUnit, Equipment et Team.
Lorsque les demandes de mise à jour sont traitées, incluant les champs État/Statut et d’autres champs standard, les plug-ins enregistrés pour le message Mise à jour dans les phases PreOperation et/ou PostOperation s’exécutent une fois pour tous les champs autres que État/Statut, puis une fois pour les champs État/Statut.
Pour que le code de plug-in reçoive les modifications de données complètes de la mise à jour, vous devez inscrire le plug-in dans la phase PreOperation, puis stocker les informations pertinentes dans SharedVariables dans le contexte de plug-in pour les plug-ins ultérieurs (dans le pipeline) à utiliser.
Pour les workflows
Lorsque les demandes de mise à jour sont traitées, incluant les deux champs Propriétaire et d’autres champs standards, les workflows enregistrés pour le message Mise à jour s’exécutent une fois pour tous les champs non Propriétaire, puis une fois pour les champs Propriétaire. Les workflows enregistrés pour le message Attribuer par les utilisateurs continuent à être déclenchés par les mises à jour des champs Propriétaire.
Lorsque les demandes de mise à jour sont traitées, incluant les deux champs État/Statut et d’autres champs standard, les workflows enregistrés pour le message Mise à jour s’exécutent une fois pour tous les champs non État/Statut, puis une fois pour les champs État/Statut. Les workflows enregistrés pour l’étape Modifier le statut restent déclenchés par les mises à jour des champs État/Statut.
Voir aussi
Mettre à jour et supprimer des tables à l’aide du SDK pour .NET
Infrastructure d’événements
Notes
Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)
Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).