Loading

Fehler bei der Berechnung von CPQ-Angeboten, da kein exklusiver Zugriff auf Datensätze möglich ist

Veröffentlichungsdatum: Sep 27, 2025
Beschreibung
Fehler einer asynchronen Angebotsberechnung mit folgender Fehlermeldung: "unable to obtain exclusive access to this record or 1 records: <Quote Id>" (Exklusiver Zugriff auf diesen oder 1 Datensätze nicht möglich: <Angebots-ID>), wobei "<Quote Id>" (<Angebots-ID>) die ID des Angebotsdatensatzes ist, bei dem der Fehler auftritt.
Lösung
Die Fehlermeldung "unable to obtain exclusive access to this record or 1 records:" bedeutet, dass ein Prozess 10 Sekunden lang versucht hat, eine Sperre für einen Datensatz zu erlangen, bevor der Prozess schließlich mit der Fehlermeldung beendet wurde, dass der Datensatz nicht verfügbar ist. Wenn ein langfristiger Prozess oder zu viele kurzfristige Prozesse gleichzeitig versuchen, mit einem Datensatz zu interagieren, kann dies den Fehler hinsichtlich des exklusiven Zugriffs hervorrufen.

Die häufigste Ursache für diese Fehlermeldung in Salesforce CPQ ist, dass sich mehrere Berechnungen für ein einzelnes Angebot in der Warteschlange einer einzigen Transaktion befinden. Diese Berechnungen benötigen für die Verarbeitung durch den Heroku-Service in etwa die gleiche Zeit. Daher versuchen sie gleichzeitig, in den Angebotsdatensatz zurückzuschreiben. Dies kann dazu führen, dass einer oder mehrere Prozesse daran gehindert werden, das Angebot für eine Aktualisierung zu sperren.

Wenn diese Fehlermeldung auftritt, sollten Administratoren die folgenden Bereiche überprüfen, um festzustellen, ob Einfügungen oder Aktualisierungen für das Objekt "Angebot" oder "Angebotsbelegposten" reduziert werden können. Eine Verringerung der Aktualisierungen führt dazu, dass weniger Berechnungsvorgänge ausgeführt werden. Dadurch verringert sich die Wahrscheinlichkeit, dass die Fehlermeldung auftritt.
  • Benutzerdefinierte Apex-Klassen/Auslöser: Jede DML-Anweisung für einen Angebotsbelegposten führt dazu, dass eine neue Berechnung in die Warteschlange gestellt wird. Jede DML-Anweisung für ein Angebot, in dem eines der Berechnungsfelder geändert wurde, führt dazu, dass eine neue Berechnung in die Warteschlange gestellt wird. Prüfen Sie die Debug-Protokolle, um festzustellen, ob mehrere DML-Anweisungen für diese Objekte in benutzerdefiniertem Apex-Code vorkommen. Versuchen Sie, die Logik so zu ändern, dass nach Möglichkeit nur eine einzige DML-Anweisung verwendet wird.
  • Workflow-Regeln und Prozessgenerator: Jede Feldaktualisierung in den Berechnungsfeldern des Angebots oder in einem beliebigen Feld des Angebotsbelegpostens führt dazu, dass eine Berechnung in die Warteschlange gestellt wird. Wenn Sie die Option "Rekursion" im Prozessgenerator oder die Einstellung "Workflow-Regeln nach Feldänderung neu auswerten" für Workflow-Regeln verwenden, kann es ebenfalls zu zusätzlichen Feldaktualisierungen und damit zu zusätzlichen Berechnungen kommen. Aufgrund des Risikos von Fehlern bezüglich der Datensatzsperrung und anderer Apex-Obergrenzen wird empfohlen, die Verwendung von Workflow-Regeln und des Prozessgenerators für die Objekte "Angebot" und "Angebotsbelegposten" zu vermeiden.
  • Verwaltete Nicht-CPQ-Pakete: Ähnlich wie bei benutzerdefiniertem Apex kann ein verwaltetes Nicht-CPQ-Paket eine Logik enthalten, die zusätzliche DMLs/Workflow-Regeln/Prozessgeneratoren usw. für CPQ-Objekte auslöst und zusätzliche Berechnungen verursacht. Analysieren Sie die Debug-Protokolle, um herauszufinden, wo DML-Anweisungen ausgeführt werden. Auch wenn die Protokolle für das verwaltete Paket ausgeblendet sind, sind die DML-Anweisungen trotzdem in den Protokollen enthalten.
Nummer des Knowledge-Artikels

000380651

 
Laden
Salesforce Help | Article