Le operazioni DML relative a determinati sObjects, denominati a volte "oggetti di setup", non sono combinabili con operazioni DML relative ad altri sObjects all'interno della stessa transazione. Il motivo di questa restrizione è che alcuni sObjects influenzano l'accesso dell'utente ai record dell'organizzazione. Per evitare che le operazioni avvengano con autorizzazioni errate a livello di accesso, è necessario inserire o aggiornare questi tipi di sObjects in una transazione diversa. Ad esempio, non è possibile aggiornare un account e un ruolo utente in un'unica transazione.
Se si utilizza un processo per cercare di fare entrambe le cose in un'unica transazione, viene visualizzato un messaggio di errore.
Errore: Si è verificato un errore nell'elemento myRule_1_A1 (FlowRecordCreate).
INSERT --- INSERT FAILED --- ERRORS : (MIXED_DML_OPERATION) L'operazione DML sull'oggetto di configurazione non è consentita fino a quando non si aggiorna un oggetto non di configurazione (o viceversa): Invoice_Statement__c, oggetto originale: Utente
Passaggi da riprodurre:
1. Creare un processo sull'oggetto utente
2. Impostare i criteri come Attivo | uguale | Vero
3. Impostare l'azione immediata come creazione di record sull'oggetto account.
4. Attivare il processo
5. Creare e attivare un nuovo utente.
Se si usa una regola di convalida per tentare di aggiornare gli oggetti utente e contatto, come nel seguente caso d'uso:
Regola di convalida:
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 è un campo formula in Utente che permette di ottenere il valore di "Contact.AccountId"
Al momento dell'accesso, l'utente riceverà un messaggio di errore:
"... non è possibile mescolare EntityObjects con UddInfos diversi all'interno di un'unica transazione: id = 003********"
o più specificamente:
"Non siamo in grado di farti accedere a causa del seguente errore.
ERROR_CREATING_USER: Formula di convalida "UserProfileSwitchRule" non valida (java.lang.IllegalStateException: Errore di programmazione: non è possibile mescolare EntityObjects con UddInfos diversi all'interno di un'unica transazione: id = 003**********"
Passaggi da riprodurre:
1. Accedere all'URL della Community - ad es., https://<instance-community-URL>/<community-name>/s
2. Fare clic sul pulsante [Accedi] nell'angolo in alto a destra
3. Accedere alla community utilizzando le credenziali nome utente e password di un utente autorizzato.
4. Viene generato l'errore di cui sopra
Quando l'azione viene eseguita all'interno della stessa transazione, aggiungere l'azione sotto l'azione pianificata. Questo posizionamento separa l'azione di aggiornamento o di creazione dalle azioni immediate.
Azione pianificata è disponibile alle seguenti condizioni:
L'impostazione dei criteri di valutazione è:
IMPORTANTE: Questa implementazione NON è consentita come spiegato nel messaggio d'errore che contiene questo formato -
"...(java.lang.IllegalStateException: Errore di programmazione: non è possibile mescolare EntityObjects con UddInfo diversi all'interno di un'unica transazione: id = 003**********"
Si tratta di una limitazione della funzionalità esistente.
Nota: I Provider di autenticazione standard come Salesforce o Facebook non sono interessati da questa limitazione. Questi fornitori sono come l'implementazione personalizzata del caso d'uso descritto. È possibile utilizzare una soluzione alternativa per evitare oggetti misti provenienti dalle regole di convalida utente per i Provider di autenticazione personalizzati.
Ad esempio:
1. Commentare la dichiarazione che viene lanciata nell'handler registrazione nel Provider di autenticazione -- ad es., // update(u);
2. Modificare la regola di convalida per *non* mescolare gli oggetti entità di impostazione e non di impostazione come specificato nei riferimenti riportati di seguito.
Suggerimento (facoltativo): la disabilitazione della regola di convalida ne consente il funzionamento.
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.