Partager via


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é).