DML-Operationen auf bestimmte sObjects, die manchmal als Setup-Objekte bezeichnet werden, können nicht mit DML auf andere sObjects in derselben Transaktion gemischt werden. Diese Einschränkung besteht, weil einige sObjects den Zugriff des Benutzers auf Datensätze in der Organisation beeinflussen. Sie müssen diese Arten von sObjects in einer anderen Transaktion einfügen oder aktualisieren, um zu verhindern, dass Vorgänge mit falschen Zugriffsberechtigungen durchgeführt werden. Sie können zum Beispiel nicht einen Account und eine Benutzerrolle in einer einzigen Transaktion aktualisieren.
Wenn Sie mit einem Prozess versuchen, beide Aktionen in einer einzigen Transaktion auszuführen, wird ein Fehler angezeigt.
Fehler: An error occurred at element myRule_1_A1 (FlowRecordCreate). (Beim Element myRule_1_A1 (FlowRecordCreate) ist ein Fehler aufgetreten.)
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: User (INSERT --- INSERT FAILED --- ERRORS : (MIXED_DML_OPERATION) DML-Vorgang für eingerichtetes Objekt nach Aktualisierung eines nicht eingerichteten Objekts nicht zulässig (oder umgekehrt): Invoice_Statement__c, ursprüngliches Objekt: Benutzer)
Schritte zum Reproduzieren:
1. Erstellen Sie einen Prozess auf dem Benutzerobjekt.
2. Stellen Sie die Kriterien auf „Aktiv“ | „ist gleich“ | „Wahr“ ein.
3. Legen Sie als sofortige Aktion „Datensatz erstellen“ für das Objekt „Account“ fest.
4. Aktivieren Sie den Prozess.
5. Erstellen und aktivieren Sie einen neuen Benutzer.
Wenn Sie mithilfe einer Validierungsregel versuchen, Benutzer- und Kontaktobjekte zu aktualisieren, wie im folgenden Anwendungsfall:
Validierungsregel:
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 ist ein Formelfeld in User, um den Wert von „Contact.AccountId“ zu erhalten
Beim Anmelden erhält der Benutzer eine Fehlermeldung:
„... you cannot mix EntityObjects with different UddInfos within one transaction: id = 003********“ (Sie können keine EntityObjects mit verschiedenen UddInfos innerhalb einer Transaktion mischen: id = 003********)
oder genauer gesagt:
„We can’t log you in because of the following error.“ (Sie können aufgrund des folgendes Fehlers nicht angemeldet werden)
ERROR_CREATING_USER: Validation Formula "UserProfileSwitchRule" Invalid (java.lang.IllegalStateException: Programmer Error: you cannot mix EntityObjects with different UddInfos within one transaction: id = 003********“ ((Validierungsformel „UserProfileSwitchRule“ ungültig) (java.lang.IllegalStateException: Programmierfehler: Sie können keine EntityObjects mit verschiedenen UddInfos innerhalb einer Transaktion mischen: id = 003********)
Schritte zum Reproduzieren:
1. Melden Sie sich bei der Community-URL an, z. B. B.<instance-community-URL><community-name>https:////s
2. Klicken Sie in der oberen rechten Ecke auf die Schaltfläche „Anmelden“.
3. Melden Sie sich mit dem Benutzernamen und dem Kennwort eines autorisierten Benutzers bei der Community an.
4. Der obige Fehler wird erzeugt.
Wenn die Aktion in derselben Transaktion ausgeführt wird, fügen Sie die Aktion unter „Geplante Aktion“ hinzu. Diese Positionierung trennt Ihre Aktualisierungs- oder Erstellungsaktion von Ihren sofortigen Aktionen.
Geplante Aktion ist unter den folgenden Bedingungen verfügbar:
Die Einstellung für die Evaluierungskriterien lautet:
WICHTIG: Diese Implementierung ist NICHT zulässig, wie in der Fehlermeldung mit diesem Format erklärt wird:
„...(java.lang.IllegalStateException: Programmer Error: you cannot mix EntityObjects with different UddInfos within one transaction: id = 003********“ (Programmierfehler: Sie können keine EntityObjects mit verschiedenen UddInfos innerhalb einer Transaktion mischen: id = 003********)
Das ist eine Einschränkung in der bestehenden Funktionalität.
Hinweis: Standard-Authentifizierungsanbieter wie Salesforce oder Facebook sind von dieser Einschränkung nicht betroffen. Diese Anbieter sind wie die benutzerdefinierte Implementierung im beschriebenen Anwendungsfall. Mithilfe einer Umgehung können sie gemischte Objekte aus den Benutzervalidierungsregeln für benutzerdefinierte Authentifizierungsanbieter vermeiden.
Beispiel:
1. Kommentieren Sie die Anweisung aus, die im Auth-Registrierungshandler ausgelöst wird, z. B. // update(u);
2. Ändern Sie die Validierungsregel so, dass Setup- und Nicht-Setup-Einheit-Objekte „nicht“ gemischt werden können, wie in den nachstehenden Verweisen angegeben.
Tipp (optional): Wenn Sie die Validierungsregel deaktivieren, funktioniert es.
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.