Zum Hauptinhalt springen
Alle KollektionenSalesforce-IntegrationSalesforce-FAQ
Fehler beim Umgang mit der Entwicklerkonsole
Fehler beim Umgang mit der Entwicklerkonsole
Gin Lin avatar
Verfasst von Gin Lin
Vor über einer Woche aktualisiert

Wenn Sie einige automatisierte Tests, Prozesse oder Trigger in Salesforce durchgeführt haben, können Fehler auftreten, wenn Sie Salesforce Integration verwenden. Dieser Artikel hilft Ihnen diese häufigen Fehler zu beheben.


Apex Testing Problem

Szenario

Bei der Durchführung automatisierter Tests für das Unternehmen kann ein Fehler auftreten, wenn der Test einen Cooby-HTTP-Aufruf enthält.

Lösung

Es gibt 2 Methoden, um diese Fehler zu beheben.

  1. TestContext Class: Vorgeben, dass der Callout erfolgreich ist, um das Auftreten eines Fehlers zu beheben.

    Die TestContext Klasse enthält Methoden zum Einrichten von HTTP-Callout-Mocks während der Testausführung.

    • setPackageMock()

      • Zweck: Legt einen Standard-Paketmock für HTTP-Callouts fest, wenn Tests ausgeführt werden.

      • Nutzung: Diese Methode sollte aufgerufen werden, um sicherzustellen, dass HTTP-Callouts während der Testausführung verspottet werden.

    • setMock (HttpCalloutMock mockInstance)

      • Zweck: Richtet eine bestimmte Spock-Instanz für HTTP-Callouts beim Ausführen von Tests ein.

      • Parameter:

        • mockInstance: Die Instanz von HttpCalloutMock wird bei Tests verwendet.

      • Nutzung: Benutzen Sie diese Methode, um einen benutzerdefinierten Mock für HTTP-Callouts während der Tests anzugeben.

  2. TriggerControl Class: Schalten Sie den Trigger aus und verhindern Sie das Callout-Verhalten direkt.

    Die TriggerControl Klasse enthält Methoden zum Verwalten des Status von Triggern (Aktivieren oder Deaktivieren) für verschiedene sObjects.

    • deaktiviert(String sObjectName)

      • Zweck: Deaktiviert den Trigger für das angegebene sObject.

      • Parameter:

        • sObjectName: Der Name des Objekts, für das der Trigger deaktiviert werden soll.

      • Nutzung: Rufen Sie diese Methode auf, um zu verhindern, dass ein Trigger für ein bestimmtes sObjekt ausgeführt wird.

    • aktiviert (String sObjectName)

      • Zweck: Aktiviert den Trigger für das angegebene sObject.

      • Parameter:

        • sObjectName: Der Name des sObject, für den der Trigger aktiviert werden soll.

      • Nutzung: Rufen Sie diese Methode auf, damit ein Trigger für ein bestimmtes sObject.

    • deaktiviert(String sObjectName)

      • Zweck: Prüft, ob der Trigger für das angegebene Objekt deaktiviert ist.

      • Parameter:

        • sObjectName: Der Name des zu überprüfenden Objekts.

      • Gibtzurück: Wahr, wenn der Trigger deaktiviert ist, andernfalls falsch.

      • Nutzung: Verwenden Sie diese Methode, um den Triggerstatus eines bestimmten sObjects zu überprüfen.

    • deaktiviert()

      • Zweck: Deaktiviert alle Trigger.

      • Nutzung: Rufe diese Methode auf, um zu verhindern, dass alle Trigger ausgeführt werden.

    • enableAll()

      • Zweck: Aktiviert alle Trigger.

      • Nutzung: Rufe diese Methode auf, damit alle Trigger ausgeführt werden können.


Installierungsproblem posten

Das Post-Installationsskript verstehen

Das Post Install Script läuft als spezieller Systembenutzer, der unser Paket repräsentiert. Dies bedeutet, dass alle vom Skript ausgeführten Operationen anscheinend von unserem Paket durchgeführt werden.

Die Ausführung des Post-Installationsskripts wird durch einen System-API-Aufruf initiiert, was den verfügbaren Salesforce-Funktionen während dieser Transaktion bestimmte Einschränkungen auferlegt. Einige dieser Einschränkungen beinhalten:

  • Zugriff auf bestimmte Standardobjekte wie Gruppen, CollaborationGroup und Netzwerkmitglied, etc

  • Begrenzte Nutzung von Plattform-Events.

  • DML Operationen auf Setup Objects. API-Transaktionen können keine DML Operationen bei Einrichtungs- und Metadaten-Objekten wie dem Erstellen oder Modifizieren von Benutzerrollen, Profilen oder benutzerdefinierten Einstellungen durchführen.

  • Auslöser und Workflowregeln. Einige Trigger und Workflow-Regeln können während der API-Transaktionen nicht aufgerufen werden je nachdem, wie die Transaktion strukturiert ist und ob sie die Reihenfolge der Ausführung respektiert.

  • Sitzungsverwaltung. Die von API eingeleiteten Transaktionen unterhalten keine Benutzersitzungen wie interaktive Sitzungen. Dies kann Session-basierte Operationen beeinflussen, wie zum Beispiel die Aufrechterhaltung des Zustands über mehrere Transaktionen.

If jede der Automatisierungen in deiner Organisation, die bei Kontakt, Lead ausgelöst oder Coobys Objekte mit den obigen Funktionen interagieren, kann die Datenaktualisierung fehlschlagen und Sie erhalten eine E-Mail mit Fehlermeldungen.

Besonderer Kontext und Herausforderungen

Es ist wichtig zu beachten, dass das Post Install Script im Kontext eines speziellen "ghost" Benutzers ausgeführt wird. Dieser einzigartige Kontext kann zu mehreren Herausforderungen führen:

  • Funktionseinschränkungen: Aufgrund der Systemausführung einige Salesforce-Funktionen sind eingeschränkt, was möglicherweise nicht der Fall ist, wenn die Jobs manuell von einem normalen Benutzer ausgeführt werden.

  • Kontextuelle Unterschiede: Der Code, der perfekt in einem regulären Benutzerkontext ausgeführt wird, kann aufgrund dieser Einschränkungen während der Post-Installations-Ausführung fehlschlagen.

  • Debugging Schwierigkeiten: Diese Fehler können vor der Veröffentlichung schwer zu erkennen sein und noch schwieriger zu debuggen, wenn sie auftreten. Leider gibt es keine Möglichkeit, Ihren InstallHandler-Code in diesem "ghost"-Benutzerkontext auszuführen.

Szenario

Cooby ändert sich während der Nach-Installation umfassend mit Kontakt/Lead (damit unsere Funktionen korrekt ausgeführt werden können). Wenn der Benutzer Trigger gesetzt hat, wenn sich Kontakt/Lead ändert, tritt zu diesem Zeitpunkt ein Fehler auf.

Lösung

Wenn Sie Fehler während der Post-Installation bemerken, bitte:

  1. [Required] Fehlermeldungenüberprüfen: Überprüfen Sie die Fehlermeldungen, um die spezifischen Probleme zu identifizieren.

  2. [Required] Debug-Protokolleüberprüfen: Analysieren Sie die Fehlerzeilen, um die Ursache der Fehler zu ermitteln.

  3. [Option 1] Batch manuell für Cooby Data Maintenance ausführen: Anleitung

  4. [Option 2] Automatisierungaktualisieren oder deaktivieren: Die Auslösebedingungen der Automatisierungsprozesse vorübergehend deaktivieren oder aktualisieren, die zu diesen Fehlern führen könnten.

Wir empfehlen Ihnen, die Automatisierungsprozesse Ihres Ords zu überprüfen und vorübergehend anzupassen, falls Fehler auftreten. Dies kann die Überprüfung und möglicherweise Aktualisierung von benutzerdefinierten Automatisierungen, Triggern oder Workflows beinhalten, die mit den vom Post-Installation-Skript ausgeführten Operationen kollidieren könnten.


Batch manuell für Cooby Datenpflege ausführen

Szenario

Da es nach der Installation einen Fehler gibt, wird Cooby nicht korrekt ausgeführt und der Benutzer möchte diese Trigger nicht deaktivieren.

Schritt der Operation

  1. Entwicklerkonsole öffnen:

    • Melden Sie sich bei Ihrem Salesforce Org an.

    • Klicken Sie auf das Zahnrad Symbol in der oberen rechten Ecke.

    • Wählen Sie Entwicklerkonsole aus dem Dropdown-Menü.

  2. Wartungsaufträge ausführen:

    • Klicken Sie in der Entwicklerkonsole auf Debug in der Menüleiste.

    • Wählen Sie Anonymes Fenster öffnen (oder Strg + E).

  3. Geben Sie im anonymen Fenster folgenden Befehl ein:

    cooby.DataMaintenanceManager.run();

    • Klicken Sie auf um den Batch-Job zu starten.

  4. Sobald Sie fertig sind, bedeutet dies, dass Sie den manuellen Batch-Job abgeschlossen haben.

Batch Job Status wird überprüft

  1. Navigiere zu Apex Jobs:

    • Zum Einrichten klicken Sie auf das Zahnrad oben rechts und wählen Einrichten.

    • Geben Sie im Schnellsuche Feld Apex Jobs ein und wählen Sie es aus den Ergebnissen.

  2. Job Status überwachen:

    • Auf der Apex Jobs-Seite sehen Sie eine Liste aller Apex Jobs.

    • Die Status Spalte zeigt den aktuellen Status Ihres Batch-Jobs an (z.B. Warteschlange, InProgress, abgeschlossen oder fehlgeschlagen).

    • Wir sind besonders an fünf speziellen Apex Klassen interessiert. Einige dieser Klassen könnten Gesamte Batches haben: 0, zeigt an, dass es nichts zu ändern gibt und du alle eingestellt bist.

Verarbeitung von Fertigstellung und Fehlern

E-Mail-Benachrichtigung erhalten:

  • Sobald alle Batch-Aufträge abgeschlossen sind, erhalten Sie möglicherweise eine E-Mail-Benachrichtigung.

  • Diese E-Mail enthält Details über Fehler, die bei der Ausführung der Batch-Jobs aufgetreten sind.

Wenn du Fehler während des Batch-Jobs bemerkst, Bitte beachten Sie, dass diese Fehler direkt mit den Automatisierungsprozessen in Ihrem Salesforce Org zusammenhängen. Um diese Fehler zu beheben, folgen Sie den folgenden Schritten:

  1. Fehlermeldungen prüfen:

    • Überprüfen Sie die Fehlermeldungen in der E-Mail-Benachrichtigung oder auf der Apex Jobs-Seite. Diese Meldungen enthalten oft Details zu den spezifischen Automatisierungsprozessen oder den Bedingungen, die den Fehler verursacht haben.

  2. Debug-Protokolle überprüfen:

    • Navigieren Sie zum Setup und suchen Sie im Schnellsuchfeld nach "Debug Logs".

    • Überprüfen Sie die Protokolle, um den genauen Prozess und die Bedingungen zu ermitteln, die die Fehler ausgelöst haben.

  3. Automatisierung aktualisieren oder deaktivieren:

    • Sobald Sie den relevanten Automatisierungsprozess identifiziert haben können Sie entweder vorübergehend deaktivieren oder die Auslösebedingungen aktualisieren, um zu verhindern, dass die Fehler erneut auftreten.


Wir hoffen, dass dieses Dokument Ihnen hilft, besser zu verstehen, wie Cooby funktioniert. Für alle Bedenken oder Fragen bezüglich Ihrer Salesforce-Integration senden Sie uns bitte eine E-Mail an [email protected]💜

Hat dies deine Frage beantwortet?