Salesforce-Connector-Fehlerbehebung in Jitterbit Studio
Übersicht
Dieses Thema bietet spezifische Fehlerbehebungsinformationen zum Salesforce-Connector. Es kann auch für die Salesforce Service Cloud und ServiceMax-Connectoren gelten.
Alle Fehlerbehebungseinträge auf dieser Seite
-
Fehler beim Schreiben von Daten
- Upsert schlägt für einige Datensätze fehl: Doppelte externe ID
- Insert- oder Update-Aktivität: Datensatz-ID-Feld kann nicht zugeordnet werden
- Bulk-Schreibaktivitäten: Erster Datensatz wird übersprungen, wenn die Quelle keine Kopfzeile hat
- Schritte von Bulk-Aktivitäts-Vorgängen werden als „Incomplete" angezeigt, ohne Eingabe- oder Ausgabedaten
- Bulk-Aktivitäten schlagen fehl, wenn sie durch eine API- oder SOAP-Anfrage ausgelöst werden
Testen und Protokollierung
Wenn Probleme mit dem Salesforce-Connector auftreten, werden die folgenden Fehlerbehebungsschritte empfohlen:
-
Stellen Sie sicher, dass die Salesforce-Verbindung erfolgreich ist, indem Sie die Test-Schaltfläche im Konfigurationsbildschirm verwenden. Wenn die Verbindung nicht erfolgreich ist, kann der zurückgegebene Fehler einen Hinweis auf das Problem geben.
-
Überprüfen Sie die Betriebsprotokolle auf Informationen, die während der Ausführung des Vorgangs geschrieben wurden.
-
Aktivieren Sie die Debug-Protokollierung für den Vorgang (für Cloud-Agenten oder für private Agenten), um zusätzliche Protokolldateien und Daten zu generieren.
-
Wenn Sie private Agenten verwenden, können Sie die Agentenprotokolle auf weitere Informationen überprüfen.
-
Für zusätzliche Überlegungen zur Fehlerbehebung siehe Fehlerbehebung bei Vorgängen.
Datensatzlimits und Chunking
Vorgänge schlagen aufgrund von Datensatzlimits der Salesforce-API fehl
-
Symptom: Eine Salesforce-Standardaktivität (wie Upsert) des Salesforce-Connectors schlägt fehl oder verarbeitet weniger Datensätze als erwartet, weil die Quelldaten das Datensatzlimit pro Aufruf überschreiten. Der Vorgang 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 in einem einzelnen Aufruf mehr Datensätze gesendet werden, lehnt Salesforce den Überschuss ab. Dies kann passieren, wenn Chunking nicht aktiviert ist, oder wenn Chunking aktiviert, aber nicht berücksichtigt wird, weil die Quelle ein Connector-SDK-basierter Connector wie HTTP v2 ist. Chunking wird bei SDK-basierten Quellen nicht unterstützt, sodass alle Datensätze unabhängig von der konfigurierten Chunk-Größe in einem einzigen Aufruf gesendet werden (siehe Chunking wird nicht berücksichtigt, wenn die Quelle ein SDK-basierter Connector ist).
-
Lösung:
- Aktivieren Sie Chunking für den Vorgang, und legen Sie die Chunk-Größe auf 200 oder weniger fest. 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 Payload ist, die von einer anderen Aktivität erzeugt wurde, überprüfen Sie, ob der Vorgang sie in Aufrufe von 200 Datensätzen oder weniger aufteilt. Wenn das Limit trotz korrekter Chunk-Größe weiterhin überschritten wird, kontaktieren Sie den Jitterbit-Support.
- Erhöhen Sie für Salesforce-Bulk-Aktivitäten die Standard-Chunk-Größe von 200 auf einen größeren Wert wie 10.000, da Bulk-Aktivitäten für hohe Datensatzvolumen 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 zum endgültigen Ziel kombiniert. Wenn das Ziel eine Salesforce-Aktivität ist, erzeugt jeder Quell-Chunk einen Ziel-Chunk, wobei die Transformation für jeden separat angewendet wird, und die resultierenden Ziel-Chunks werden anschließend kombiniert. Weitere Details finden Sie unter Detaillierte Chunking-Informationen.
Authentifizierungsfehler
Multi-Faktor-Authentifizierung verhindert Verbindungen mit Basisauthentifizierung
- Symptom: Eine Verbindung, die Basic Auth mit dem Salesforce-, Salesforce Service Cloud- oder ServiceMax-Connector verwendet, schlägt beim Verbindungstest fehl oder verbindet sich, schlägt aber bei Vorgängen mit einem Authentifizierungsfehler fehl.
- Ursache: Diese Connectors verwenden dieselbe Codebasis und authentifizieren sich bei einer Salesforce-Organisation. Die Basisauthentifizierung erfordert ein Salesforce-Konto, dessen zugewiesenes Berechtigungsset nicht die Berechtigung Multi-Factor Authentication for API Logins enthält. Wenn diese Berechtigung zugewiesen ist (MFA für das Konto aktiv), schlagen Verbindungen mit Basisauthentifizierung fehl.
- Lösung:
- Überprüfen Sie in Salesforce das Berechtigungsset, das dem Systemintegrations-Login-Benutzer zugewiesen ist, und stellen Sie sicher, dass Multi-Factor Authentication for API Logins nicht ausgewählt ist. Systemintegrations-Login-Typen sind von der MFA-Anforderung von Salesforce ausgenommen. Details finden Sie in Salesforces Multi-Factor Authentication FAQ.
- Wenn MFA nicht vom Integrationsbenutzer entfernt werden kann, wechseln Sie die Verbindung zur 2-beinigen OAuth 2.0-Authentifizierung.
Hinweis
Die Verwendung von 2-beinigem OAuth 2.0 erfordert Agent-Version 11.59 oder höher. Bei 12.x-Agenten ist Version 12.3 oder höher für den Salesforce-Connector und Version 12.4 oder höher für die Salesforce Service Cloud- und ServiceMax-Connectors erforderlich.
Zertifikat: Nichtübereinstimmung des Subject Alternative Name (SAN)
-
Symptom: Eine Salesforce-Verbindung zu einer Sandbox oder einer Organisation mit aktivierten Enhanced Domains schlägt mit folgendem Fehler fehl:
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, ob das Kontrollkästchen Sandbox für Ihre Zielorganisation korrekt gesetzt ist.
- Wenn die Salesforce-URL in den SANs fehlt, generieren Sie das Zertifikat neu, um die spezifische Domäne einzuschließen.
- Wenn dieselbe Verbindung bei einer Cloud-Agent-Gruppe erfolgreich ist, aber bei einem privaten Agenten fehlschlägt, kann die Ursache stattdessen eine fehlende SNI-Erweiterung im TLS-Handshake des Agenten sein. Siehe Salesforce-Sandbox-Verbindung schlägt mit Zertifikat-Nichtübereinstimmung fehl.
- Überprüfen Sie die SAN-Einträge des Zertifikats mit OpenSSL:
Verbindung, Konfiguration oder Vorgang schlägt zeitweise mit SERVER_UNAVAILABLE fehl
-
Symptom: Ein Salesforce-Verbindungstest, eine Aktivitätskonfiguration oder ein Vorgangslauf schlägt zeitweise fehl mit:
SERVER_UNAVAILABLE: server temporarily unavailableDies 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 einen spezifischeren Text von Salesforce weiterzugeben.
- Lösung: Wiederholen Sie den Verbindungstest, den Konfigurationsschritt oder den Vorgang, und warten Sie bei anhaltenden Fehlschlägen zwischen den Versuchen jeweils länger. Wenn der Fehler anhält oder häufig auftritt, prüfen Sie Salesforce Trust auf einen gemeldeten Vorfall für Ihre Instanz, oder wenden Sie sich an 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, erscheint bei der Konfiguration einer Salesforce-Aktivität nicht im Transformationsschema.
- Ursache: Das Datenschema wird zwischengespeichert, als die Aktivität zuletzt konfiguriert wurde, und wird nicht automatisch aktualisiert.
- Lösung: Öffnen Sie die Aktivitätskonfiguration, und gehen Sie jeden Schritt durch. Nehmen Sie mindestens eine kleine Änderung vor (zum Beispiel ein Zeichen am Ende des Aktivitätsnamens hinzufügen und wieder entfernen), um ein erneutes Laden des Schemas zu erzwingen. Klicken Sie auf Fertig, um die aktualisierte Konfiguration zu speichern.
Automap ordnet keine Felder zu, wenn eine Salesforce-Aktivität das Transformationsziel ist
- Symptom: Wenn eine Salesforce-Aktivität (wie Insert oder Upsert) als Ziel einer Transformation verwendet wird, ordnet Automap keine Felder zu.
- Ursache: Das Schema der Salesforce-Aktivität enthält einen zusätzlichen Root-Knoten über den Objektfeldern, wenn das Schema gespiegelt wird. Dieser zusätzliche Root-Knoten verhindert, dass Automap die Quellfelder den richtigen Zielfeldern zuordnet.
- Lösung:
- Suchen Sie in der Transformationsansicht den obersten Objektknoten auf der Zielseite (zum Beispiel Account).
- Ziehen Sie den entsprechenden Quellknoten manuell so, dass er damit übereinstimmt.
- Führen Sie mit den ausgerichteten Knoten Automap erneut aus. Die Felder unter dem Knoten werden dann automatisch zugeordnet.
Abfrageaktivität: Übergeordnete/untergeordnete Abfrage erzeugt hierarchisches Schema
- Symptom: Eine Salesforce-Abfrageaktivität, die eine übergeordnete/untergeordnete SOQL-Abfrage verwendet, erzeugt ein hierarchisches Antwortschema. Wenn dieses Schema auf der Zielseite einer Transformation gespiegelt wird, ist die Ausgabe hierarchisches XML statt einer flachen Struktur.
- Ursache: Das hierarchische Schema spiegelt die übergeordnete/untergeordnete Beziehung in der Abfrage wider. Die Spiegelung des Quellschemas auf der Zielseite der Transformation bewahrt diese Hierarchie in der Ausgabe.
- Lösung:
- Um eine flache Ausgabe zu erzeugen, definieren Sie auf der Zielseite der Transformation ein flaches Schema, statt das Quellschema zu spiegeln.
- Wenn Sie auf Abfrageergebnisse in einem Skript zugreifen, stehen die Daten bereits ohne zusätzliche Konfiguration als flache Struktur zur Verfügung.
Fehler beim Schreiben von Daten
Upsert schlägt für einige Datensätze fehl: Doppelte externe ID
- Symptom: Ein Salesforce-Upsert- oder Bulk Upsert-Vorgang wird abgeschlossen, meldet jedoch Fehler für einige Datensätze.
- Ursache: Mehrere Quelldatensätze verwenden denselben Wert für die externe ID. 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 Management Console-Seite Runtime (Tab 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 externen Salesforce ID für Jitterbit.
Insert- oder Update-Aktivität: Datensatz-ID-Feld kann nicht zugeordnet werden
- Symptom: Eine Transformation enthält eine Zuordnung zum Datensatz-ID-Feld von Salesforce 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 zuordenbares 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, stellen Sie sicher, dass die Quelldaten diese ID liefern und dass die Update-Aktivität so konfiguriert ist, dass sie Datensätze anhand dieser ID abgleicht.
Bulk-Schreibaktivitäten: Erster Datensatz wird übersprungen, wenn die 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 es werden weniger Datensätze als erwartet in Salesforce geschrieben. Wenn die Quelle nur einen Datensatz enthält, werden überhaupt keine Datensätze geschrieben.
- Ursache: Salesforce-Bulk-Schreibaktivitäten behandeln immer die erste Zeile der Quelldaten als Kopfzeile mit den Spaltennamen. Dieses Verhalten kann nicht geändert werden. Wenn die Quelldatei keine eigene Kopfzeile enthält, wird der erste Datensatz als Kopfzeile verwendet und nicht nach Salesforce geschrieben.
- Lösung:
- Stellen Sie sicher, dass die Quelldaten als erste Zeile eine Kopfzeile enthalten. Die Werte in der Kopfzeile müssen mit den in der Feldzuordnung der Aktivität definierten Spaltennamen übereinstimmen.
- Überprüfen Sie, dass die Datenzeilen unmittelbar nach der Kopfzeile in der zweiten Zeile beginnen.
Schritte von Bulk-Aktivitäts-Vorgängen werden als „Incomplete" angezeigt, ohne Eingabe- 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 Vorgangsschritt-Eintrag der Bulk-Aktivität den Status Incomplete an und enthält keine Eingabe- oder Ausgabedaten, selbst wenn der Vorgang erfolgreich abgeschlossen und Datensätze verarbeitet wurden.
- Ursache: Salesforce-Bulk-Aktivitäten erzeugen keine Komponenteneingabe- und -ausgabedaten im Vorgangsprotokoll. Der Status Incomplete beim Aktivitätsschritt und das Fehlen von Eingabe- und Ausgabedaten sind für alle Bulk-Aktivitäten das erwartete Verhalten, unabhängig davon, ob die Verarbeitung erfolgreich war.
- Lösung:
- Um festzustellen, ob Datensätze verarbeitet wurden und ob Fehler aufgetreten sind, überprüfen Sie die Texteinträge im Vorgangsprotokoll auf Fehlermeldungen oder Bestätigungen einer erfolgreichen Verarbeitung.
- Bei privaten Agenten können Sie zudem detaillierte Ergebnisse pro Datensatz herunterladen: Gehen Sie in der Management Console zur Seite Runtime, wählen Sie die Ausführung aus, öffnen Sie den Tab 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 constraintDieselbe Bulk-Aktivität wird ohne Probleme ausgeführt, wenn sie unabhängig oder auf andere Weise ausgelöst wird.
-
Mögliche Ursache: Vorgänge, die durch eine API- oder SOAP-Anfrage ausgelöst werden (wie einen Salesforce Outbound Message-Ablauf), unterstützen keine Salesforce-Bulk-Aktivitäten. In diesem Kontext steht dem Bulk-Ladesubsystem die Organisations-ID nicht zur Verfügung, was den Datenbank-Constraint-Fehler bei der Initialisierung verursacht.
- Lösung: Ersetzen Sie die Bulk-Aktivität in Vorgängen, die Teil einer API- oder SOAP-ausgelösten Kette sind, durch die entsprechende Salesforce-Standardaktivität. Ersetzen Sie zum Beispiel eine Bulk Query durch eine standardmäßige Abfrage-Aktivität, oder ein Bulk Update durch eine standardmäßige Update-Aktivität. Standardaktivitäten funktionieren in diesem Kontext korrekt.