Zum Inhalt springen

Salesforce-Connector-Fehlerbehebung in Jitterbit Studio

Übersicht

Dieses Thema bietet Informationen zur Fehlerbehebung, die speziell für den Salesforce-Connector gelten. Es kann auch auf Salesforce Service Cloud und ServiceMax-Connectoren zutreffen.

Alle Einträge zur Fehlerbehebung auf dieser Seite

Testen und Protokollierung

Wenn Probleme mit dem Salesforce-Connector auftreten, werden diese Schritte zur Fehlerbehebung empfohlen:

  1. Stellen Sie sicher, dass die Salesforce-Verbindung erfolgreich ist, indem Sie die Schaltfläche Test im Konfigurationsbildschirm verwenden. Wenn die Verbindung nicht erfolgreich ist, kann der zurückgegebene Fehler einen Hinweis auf das Problem geben.

  2. Überprüfen Sie die Operationsprotokolle auf alle Informationen, die während der Ausführung der Operation geschrieben wurden.

  3. Aktivieren Sie die Debug-Protokollierung für Operationen (für Cloud-Agenten oder für private Agenten), um zusätzliche Protokolldateien und Daten zu generieren.

  4. Wenn Sie private Agenten verwenden, können Sie die Agent-Protokolle auf weitere Informationen überprüfen.

  5. Weitere Überlegungen zur Fehlerbehebung finden Sie unter Fehlerbehebung bei Operationen.

Datensatzlimits und Chunking

Operationen schlagen aufgrund von Salesforce-API-Datensatzlimits fehl

  • Symptom: Eine Salesforce-Standardaktivität (z. B. Upsert) schlägt fehl oder verarbeitet weniger Datensätze als erwartet, da die Quelldaten das Datensatzlimit pro Aufruf überschreiten. Die Operation kann mit folgendem Fehler fehlschlagen:

    EXCEEDED_ID_LIMIT: record limit reached. cannot submit more than 200 records into this call
    
  • Ursache: Salesforce-Standardaktivitäten akzeptieren maximal 200 Datensätze pro Aufruf. Wenn mehr Datensätze in einem einzelnen Aufruf gesendet werden, lehnt Salesforce die überschüssigen ab. Dies kann auf zwei Arten geschehen: Chunking ist nicht aktiviert, oder Chunking ist aktiviert, aber die Quelle kann es nicht berücksichtigen. Chunking wird nur berücksichtigt, wenn die Quelle ein nativer Connector ist. Bei jeder anderen Quelle, z. B. HTTP v2, werden alle Datensätze in einem einzelnen Aufruf gesendet, unabhängig von der konfigurierten Chunk-Größe. Siehe Chunking erfordert einen nativen Connector als Quelle.

  • Lösung:
    • Aktivieren Sie Chunking für die Operation und setzen Sie die Chunk-Größe auf 200 oder weniger. Anweisungen finden Sie unter Chunking aktivieren.
    • Bestätigen Sie, dass die Chunk-Größe tatsächlich auf die Quelldaten angewendet wird. Wenn die Quelle eine große Nutzlast ist, die von einer anderen Aktivität erzeugt wird, überprüfen Sie, ob die Operation sie in Aufrufe von 200 Datensätzen oder weniger aufteilt. Wenn das Limit trotz einer korrekten Chunk-Größe immer noch überschritten wird, wenden Sie sich an den Jitterbit-Support.
    • Erhöhen Sie für Salesforce-Massenaktivitäten die standardmäßige Chunk-Größe von 200 auf einen größeren Wert wie 10.000, da Massenaktivitäten für die Verarbeitung großer Datensatzmengen ausgelegt sind.

Chunking teilt die Daten während der Transformation auf, nicht beim Abrufen. Wenn die Quelle eine Salesforce-Aktivität ist, wird jeder Chunk in eine temporäre Datei geschrieben und die Dateien werden nach der Verarbeitung aller Chunks in das endgültige Ziel kombiniert. Wenn das Ziel eine Salesforce-Aktivität ist, erzeugt jeder Quell-Chunk einen Ziel-Chunk, wobei die Transformation separat auf jeden angewendet wird, und die resultierenden Ziel-Chunks werden dann kombiniert. Weitere Informationen finden Sie unter Detaillierte Chunking-Informationen.

Authentifizierungsfehler

Multi-Faktor-Authentifizierung verhindert Basic-Auth-Verbindungen

  • Symptom: Eine Verbindung, die Basic Auth mit dem Connector Salesforce, Salesforce Service Cloud oder ServiceMax verwendet, schlägt beim Verbindungstest fehl oder verbindet sich, schlägt aber bei Operationen mit einem Authentifizierungsfehler fehl.
  • Ursache: Diese Connectoren nutzen dieselbe Codebasis und authentifizieren sich bei einer Salesforce-Organisation. Die Basic-Authentifizierung erfordert ein Salesforce-Konto, dessen zugewiesener Berechtigungssatz die Berechtigung Multi-Faktor-Authentifizierung für API-Logins nicht enthält. Wenn diese Berechtigung zugewiesen ist (MFA für das Konto aktiv), schlagen Basic-Auth-Verbindungen fehl.
  • Lösung:
    • Überprüfen Sie in Salesforce den Berechtigungssatz, der dem Systemintegrations-Anmeldekonto zugewiesen ist, und bestätigen Sie, dass Multi-Faktor-Authentifizierung für API-Logins nicht ausgewählt ist. Systemintegrations-Anmeldetypen sind von der MFA-Anforderung von Salesforce ausgenommen. Weitere Informationen finden Sie in den Häufig gestellten Fragen zur Multi-Faktor-Authentifizierung von Salesforce.
    • Wenn MFA nicht vom Integrationskonto entfernt werden kann, wechseln Sie die Verbindung zu 2-legged OAuth 2.0-Authentifizierung.

Hinweis

Die Verwendung von 2-legged OAuth 2.0 erfordert Agent-Version 11.59 oder später. Bei 12.x-Agenten ist Version 12.3 oder später für den Salesforce-Connector und 12.4 oder später für die Connectoren Salesforce Service Cloud und ServiceMax erforderlich.

Zertifikat Subject Alternative Name (SAN) stimmt nicht überein

  • Symptom: Eine Salesforce-Verbindung zu einer Sandbox oder einer Organisation mit aktivierten Enhanced Domains schlägt fehl mit:

    Certificate for <url> doesn't match any of the subject alternative names
    
  • Mögliche Ursachen:

    • Das Zertifikat enthält die Salesforce MyDomain oder Sandbox-URL nicht in seinen Subject Alternative Names.
    • Das Kontrollkästchen Sandbox in den Salesforce-Verbindungseinstellungen ist nicht korrekt aktiviert.
  • Lösung:

    • Überprüfen Sie die SAN-Einträge des Zertifikats mit OpenSSL: openssl x509 -in cert.crt -text -noout. Bestätigen Sie, dass der Abschnitt Subject Alternative Name Ihre Salesforce MyDomain-URL enthält.
    • Überprüfen Sie in den Salesforce-Verbindungseinstellungen in Studio, dass das Kontrollkästchen Sandbox für Ihre Zielorganisation korrekt eingestellt ist.
    • Wenn die Salesforce-URL in den SANs fehlt, generieren Sie das Zertifikat neu, um die spezifische Domäne einzuschließen.
    • Wenn dieselbe Verbindung in einer Cloud-Agent-Gruppe erfolgreich ist, aber in einem privaten Agent fehlschlägt, kann die Ursache stattdessen eine fehlende SNI-Erweiterung im TLS-Handshake des Agenten sein. Siehe Salesforce-Sandbox-Verbindung schlägt mit Zertifikatkonflikt fehl.

Verbindung, Konfiguration oder Vorgang schlägt intermittierend mit SERVER_UNAVAILABLE fehl

  • Symptom: Ein Salesforce-Verbindungstest, eine Aktivitätskonfiguration oder ein Vorgangsablauf schlägt intermittierend fehl mit:

    SERVER_UNAVAILABLE: server temporarily unavailable
    

    Dies kann beispielsweise beim Auswählen eines Objekts während der Aktivitätskonfiguration auftreten.

  • Mögliche Ursache: Salesforce gibt diesen Fehlercode zurück, wenn der eigene Server die Anfrage vorübergehend nicht verarbeiten kann. Der Connector meldet dies mit dieser generischen Meldung, anstatt spezifischere Texte von Salesforce weiterzuleiten.

  • Lösung: Wiederholen Sie den Verbindungstest, den Konfigurationsschritt oder den Vorgang, und warten Sie zwischen den einzelnen Versuchen länger, wenn der Fehler weiterhin auftritt. Wenn der Fehler weiterhin besteht oder häufig auftritt, überprüfen Sie Salesforce Trust auf einen gemeldeten Incident, der Ihre Instanz betrifft, oder kontaktieren Sie den Salesforce-Support. Ein verwandtes Szenario wird im Salesforce-Artikel SERVER_UNAVAILABLE: Too Many Requests Waiting for Connections beschrieben.

Fehler bei der Aktivitätskonfiguration

Datenschema enthält kürzlich hinzugefügte Salesforce-Felder nicht

  • Symptom: Ein Feld, das kürzlich zu einem Salesforce-Objekt hinzugefügt wurde, wird im Transformationsschema bei der Konfiguration einer Salesforce-Aktivität nicht angezeigt.
  • Ursache: Das Datenschema wird aus dem Zeitpunkt zwischengespeichert, als die Aktivität zuletzt konfiguriert wurde, und wird nicht automatisch aktualisiert.
  • Lösung: Öffnen Sie die Aktivitätskonfiguration und durchlaufen Sie jeden Schritt. Nehmen Sie mindestens eine kleine Änderung vor (z. B. Hinzufügen und Entfernen eines Zeichens aus dem Aktivitätsnamen), um ein Neuladen des Schemas zu erzwingen. Klicken Sie auf Fertig, um die aktualisierte Konfiguration zu speichern.

Automap ordnet Felder nicht zu, wenn eine Salesforce-Aktivität das Transformationsziel ist

  • Symptom: Wenn eine Salesforce-Aktivität (z. B. Einfügen oder Upsert) als Ziel einer Transformation verwendet wird, werden mit Automap keine Felder zugeordnet.
  • Ursache: Das Salesforce-Aktivitätsschema enthält einen zusätzlichen Stammknoten über den Objektfeldern, wenn das Schema gespiegelt wird. Dieser zusätzliche Stammknoten verhindert, dass Automap Quellfelder den richtigen Zielfeldern zuordnet.
  • Lösung:
    1. Suchen Sie auf der Transformations-Canvas den Objektknoten auf oberster Ebene auf der Zielseite (z. B. Konto).
    2. Ziehen Sie den entsprechenden Quellknoten manuell, um ihn auszurichten.
    3. Wenn die Knoten ausgerichtet sind, führen Sie Automap erneut aus. Felder unter dem Knoten werden automatisch zugeordnet.

Query-Aktivität: Übergeordnet-untergeordnete Abfrage generiert hierarchisches Schema

  • Symptom: Eine Salesforce-Query-Aktivität mit einer übergeordnet-untergeordneten SOQL-Abfrage generiert ein hierarchisches Antwortschema. Wenn dieses Schema auf der Zielseite einer Transformation gespiegelt wird, ist die Ausgabe hierarchisches XML anstelle einer flachen Struktur.
  • Ursache: Das hierarchische Schema spiegelt die übergeordnet-untergeordnete Beziehung in der Abfrage wider. Das Spiegeln des Quellschemas auf dem Transformationsziel bewahrt diese Hierarchie in der Ausgabe.
  • Lösung:
    • Um eine flache Ausgabe zu erzeugen, definieren Sie ein flaches Schema auf der Zielseite der Transformation, anstatt das Quellschema zu spiegeln.
    • Wenn auf Abfrageergebnisse in einem Skript zugegriffen wird, sind die Daten bereits ohne zusätzliche Konfiguration als flache Struktur verfügbar.

Datenschreibfehler

Upsert schlägt für einige Datensätze fehl: Doppelte externe ID

  • Symptom: Ein Salesforce Upsert- oder Bulk Upsert-Vorgang wird abgeschlossen, meldet aber Fehler für einige Datensätze.
  • Ursache: Mehrere Quelldatensätze teilen denselben externen ID-Wert. Wenn die externe ID nicht eindeutig ist, gibt Salesforce einen Fehler zurück und der Upsert schlägt für diese Datensätze fehl.
  • Lösung:
    • Überprüfen Sie die Fehlerdatei auf der Seite Runtime der Management Console (Registerkarte Activity Logs), um zu ermitteln, welche Datensätze fehlgeschlagen sind.
    • Stellen Sie sicher, dass das als externe ID verwendete Feld für jeden Datensatz einen eindeutigen Wert hat. Siehe Erstellen einer Salesforce-externen ID für Jitterbit.

Insert- oder Update-Aktivität: Datensatz-ID-Feld kann nicht zugeordnet werden

  • Symptom: Eine Transformation enthält eine Zuordnung zum Salesforce Datensatz-ID-Feld in einer Insert- oder Update-Aktivität, aber der Vorgang verwendet den zugeordneten Wert nicht.
  • Ursache: Das Salesforce Datensatz-ID-Feld kann in Insert- und Update-Aktivitäten keine Zuordnung enthalten. Salesforce weist die Datensatz-ID beim Einfügen automatisch zu; die Update-Aktivität identifiziert Datensätze anhand ihrer vorhandenen Salesforce-ID, die kein zuordnungsfähiges Zielfeld ist.
  • Lösung: Entfernen Sie die Zuordnung zum Datensatz-ID-Feld aus der Transformation. Wenn das Ziel darin besteht, einen bestimmten Datensatz anhand seiner Salesforce-ID zu aktualisieren, überprüfen Sie, dass die Quelldaten diese ID bereitstellen und dass die Update-Aktivität so konfiguriert ist, dass sie Datensätze dagegen abgleicht.

Bulk-Schreibaktivitäten: Erster Datensatz übersprungen, wenn Quelle keine Kopfzeile hat

  • Symptom: Eine Salesforce Bulk-Schreibaktivität (Bulk Insert, Bulk Upsert, Bulk Update, Bulk Delete oder Bulk Hard Delete) wird ohne Fehler ausgeführt, aber weniger Datensätze als erwartet werden in Salesforce geschrieben. Wenn die Quelle nur einen Datensatz enthält, werden überhaupt keine Datensätze geschrieben.
  • Ursache: Salesforce Bulk-Schreibaktivitäten behandeln die erste Zeile der Quelldaten immer als Spaltenüberschriftszeile. Dieses Verhalten kann nicht geändert werden. Wenn die Quelldatei keine dedizierte Kopfzeile enthält, wird der erste Datensatz als Kopfzeile verbraucht und nicht in Salesforce geschrieben.
  • Lösung:
    • Stellen Sie sicher, dass die Quelldaten eine Kopfzeile als erste Zeile enthalten. Die Kopfzeilenwerte müssen mit den in der Feldzuordnung der Aktivität definierten Spaltennamen übereinstimmen.
    • Überprüfen Sie, dass Datenzeilen in der zweiten Zeile beginnen, unmittelbar nach der Kopfzeile.

Bulk-Aktivitätsvorgänge werden als „Unvollständig" angezeigt, ohne Ein- oder Ausgabedaten

  • Symptom: Beim Anzeigen eines Vorgangsprotokolls, das eine Salesforce Bulk-Aktivität (Bulk Insert, Bulk Upsert, Bulk Update, Bulk Delete oder Bulk Hard Delete) enthält, zeigt der Vorgangssschriteintrag der Bulk-Aktivität einen Status von Unvollständig an und zeigt keine Ein- oder Ausgabedaten an, auch wenn der Vorgang erfolgreich abgeschlossen wurde und Datensätze verarbeitet wurden.
  • Ursache: Salesforce Bulk-Aktivitäten generieren keine Komponenteneingabe- und -ausgabedaten im Vorgangsprotokolle. Der Status Unvollständig im Aktivitätsschritt und das Fehlen von Ein- und Ausgabedaten sind erwartetes Verhalten für alle Bulk-Aktivitäten, unabhängig davon, ob die Verarbeitung erfolgreich war.
  • Lösung:
    • Um zu ermitteln, ob Datensätze verarbeitet wurden und ob Fehler aufgetreten sind, überprüfen Sie die Texteinträge im Vorgangsprotokolle auf Fehlermeldungen oder Bestätigung einer erfolgreichen Verarbeitung.
    • Bei privaten Agenten können Sie auch detaillierte Ergebnisse pro Datensatz herunterladen: Gehen Sie in der Management Console zur Seite Runtime, wählen Sie die Ausführung aus, öffnen Sie die Registerkarte Activity Logs und laden Sie die Ergebnisdatei herunter.

Bulk-Aktivitäten schlagen fehl, wenn sie durch eine API- oder SOAP-Anfrage ausgelöst werden

  • Symptom: Eine Salesforce Bulk-Aktivität (Bulk Query, Bulk Update, Bulk Insert, Bulk Upsert, Bulk Delete oder Bulk Hard Delete) schlägt sofort bei der Initialisierung fehl mit:

    Failed to initialize the operation: Failed to get the operation with OperationID = [ID].
    A database exception occurred. The reported error was:
    ERROR: null value in column "organization_id" of relation "bulkloadinstancetab" violates not-null constraint
    

    Die gleiche Bulk-Aktivität wird ohne Probleme ausgeführt, wenn sie unabhängig oder auf andere Weise ausgelöst wird.

  • Mögliche Ursache: Operationen, die über eine API- oder SOAP-Anfrage ausgelöst werden (z. B. ein Salesforce-Outbound-Message-Flow), unterstützen keine Salesforce Bulk-Aktivitäten. In diesem Kontext ist die Organisations-ID für das Bulk-Load-Subsystem nicht verfügbar, was zum Datenbankconstraint-Fehler bei der Initialisierung führt.

  • Lösung: Ersetzen Sie die Bulk-Aktivität durch die entsprechende Standard-Salesforce-Aktivität in Operationen, die Teil einer API- oder SOAP-ausgelösten Kette sind. Ersetzen Sie beispielsweise eine Bulk Query durch eine Standard-Query-Aktivität oder ein Bulk Update durch eine Standard-Update-Aktivität. Standard-Aktivitäten funktionieren in diesem Kontext ordnungsgemäß.