Les opérations DML sur certains sObjects, parfois appelées objets de configuration, ne peuvent pas être mélangées avec DML sur d’autres sObjects dans la même transaction. Cette restriction existe car certains sObjects affectent l’accès de l’utilisateur aux enregistrements dans l’organisation. Vous devez insérer ou mettre à jour ces types de sObjects dans une transaction différente pour empêcher les opérations de se produire avec des autorisations de niveau d’accès incorrectes. Par exemple, vous ne pouvez pas mettre à jour un compte et un rôle utilisateur dans une seule transaction.
Si vous utilisez un processus pour tenter de faire deux actions en une seule transaction, une erreur apparaîtra.
Erreur : An error occurred at element myRule_1_A1 (FlowRecordCreate).
INSERT --- INSERT FAILED --- ERRORS : (MIXED_DML_OPERATION) DML operation on setup object is not permitted after you have updated a non-setup object (or vice versa): Invoice_Statement__c, original object: Utilisateur
Étapes à reproduire :
1. Créez un processus sur l’objet utilisateur
2. Définissez les critères sur Actif | égal à | True
3. Définissez l’action immédiate sur Créer un enregistrement sur l’objet de compte
4. Activez le processus
5. Créez et activez un nouvel utilisateur.
Si vous utilisez une règle de validation pour tenter de mettre à jour l'utilisateur et les objets de contact comme dans les cas d'utilisation suivants :
Règle de validation :
IF( Community_User_s_Account_ID__c== $Setup.COMM_Profile__c.BluIdAccountId__c , IF( OR(ProfileId== $Setup.COMM_Profile__c.FullAccessProfile__c ,ProfileId== $Setup.COMM_Profile__c.BasicProfileId__c) , true, false),false) Community_User_s_Account_ID__c is a formula field in User to get value of "Contact.AccountId"
Lors de la connexion, l’utilisateur obtiendra une erreur :
"... you cannot mix EntityObjects with different UddInfos within one transaction: id = 003********"
ou plus précisément :
"We can’t log you in because of the following error.
ERROR_CREATING_USER: Validation Formula "UserProfileSwitchRule" Invalid (java.lang.IllegalStateException: Programmer Error: you cannot mix EntityObjects with different UddInfos within one transaction: id = 003**********"
Étapes à reproduire :
1. Connectez-vous à l’URL de la communauté, par exemple https://<instance-community-URL>/<community-name>/s
2. Cliquez sur le bouton [Connexion] dans le coin supérieur droit
3. Connectez-vous à la communauté à l’aide des identifiants nom d'utilisateur et mot de passe d'un utilisateur autorisé.
4. L’erreur ci-dessus est générée
Lorsque l’action exécute la même transaction, ajoutez l’action sous Action planifiée. Cet emplacement sépare votre action de mise à jour ou de création de vos actions immédiates.
Action planifiée est disponible dans les conditions suivantes :
Le paramètre Critères d'évaluation est :
IMPORTANT : Cette implémentation n’est PAS autorisée, comme expliqué dans le message d’erreur contenant ce format -
"...(java.lang.IllegalStateException: Programmer Error: you cannot mix EntityObjects with different UddInfos within one transaction: id = 003**********"
Il s’agit d’une limitation de la fonctionnalité existante.
Remarque : Les fournisseurs d'authentification standard comme Salesforce ou Facebook ne sont pas affectés par cette limitation. Ces fournisseurs sont comme l’implémentation personnalisée dans le cas d’utilisation décrit. Vous pouvez utiliser une solution de contournement pour éviter les objets mixtes des règles de validation utilisateur pour les fournisseurs d’authentification personnalisés.
Par exemple :
1. Commentez la déclaration qui est lancée dans le gestionnaire d’enregistrement d’authentification, par exemple : // update(u) ;
2. Modifiez la règle de validation pour ne *pas* mélanger les objets d’entité de configuration et de non-configuration tel que spécifié dans les références ci-dessous.
Conseil (facultatif) : La désactivation de la règle de validation la fait fonctionner.
000382600

We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.