Fehlersuche bei der Ausführungszeit von Operationen in Jitterbit Studio
Einführung
Wenn Sie Probleme bei der Ausführung einer Operation haben, werden die folgenden Fehlersuche-Maßnahmen empfohlen.
Verbindung testen
Für alle Operationen, die Connectoren verwenden, klicken Sie in der Verbindung auf die Schaltfläche Test, um sicherzustellen, dass die Verbindung erfolgreich ist.
Für auf Connector SDK-basierten Connectoren, die in Operationen ausgeführt werden, die auf privaten Agenten laufen, stellt das Klicken auf die Schaltfläche Test sicher, dass die neueste Version des Connectors auf den Agenten heruntergeladen wird (es sei denn, die Automatische Connector-Aktualisierung deaktivieren Organisationsrichtlinie wird verwendet).
Überprüfen Sie die Operationsprotokolle
Überprüfen Sie die Operationsprotokolle auf Informationen, die während der Ausführung der Operation geschrieben wurden.
Je nach Agententyp können Sie zusätzliche Protokolldateien und Daten abrufen:
- Aktivieren Sie das Debug-Protokoll für Operationen (für Cloud-Agenten oder für private Agenten).
- Aktivieren Sie das ausführliche Protokollieren von Connectoren (nur private Agenten).
- Überprüfen Sie die Agentenprotokolle (nur private Agenten).
Mögliche Fehler in den Operationsprotokollen
Die folgenden Abschnitte behandeln Fehler, die in einem Operationsprotokoll vorhanden sein können, und deren Behebung.
Eine Dateiabhängigkeit wurde nicht gefunden
Der Fehler Eine Dateiabhängigkeit wurde nicht gefunden kann viele Ursachen haben. Eine mögliche Ursache ist, dass private Agenten nicht mehr synchron mit der Harmony-Cloud sind, was dazu führt, dass der private Agent keine Dateien (wie Schemata) erhält, die er erhalten sollte. Dieses Synchronisationsproblem kann dazu führen, dass Operationen fehlschlagen, wenn der Agent nicht auf erforderliche Abhängigkeiten zugreifen kann.
Während dieses Problem normalerweise von selbst behoben wird, können Sie manuell eine Umgebungsneusynchronisierung auslösen, um das Problem zu beheben:
- Verwenden Sie das Dienstprogramm
JitterbitUtilsdes privaten Agents. - Führen Sie die Option
--resync-environment ENVIRONMENTauf dem Agentenserver aus (ersetzen SieENVIRONMENTdurch den Namen Ihrer Umgebung).
Dieser Prozess zwingt den Agenten, sich erneut mit der Harmony-Cloud zu synchronisieren und fehlende Dateien oder Abhängigkeiten herunterzuladen.
Für weitere Informationen zur Umgebungs-Synchronisierung siehe Umgebungs-Synchronisierungs-Leistungsoptimierung.
Extra subelement warning
Eine extra subelement-Warnung in den Protokollnachrichten kann in der Regel ignoriert werden. Diese Warnung zeigt an, dass die API-Nutzlast eines Connectors mehr Knoten oder Felder von Daten zurückgegeben hat, als im Antwortdatenschema definiert sind.
Unallowed characters in XML schema mappings
Je nach Aktivität des Connectors sind diese Zeichen ungültig und führen zu einem Laufzeitfehler:
\x00 (NULL) |
\x0E (shift out) |
\x01 (start of heading) |
\x0F (shift in) |
\x02 (start of text) |
\x1A (substitute character) |
\x03 (end of text) |
\x1B (escape) |
\x04 (end of transmission) |
\x1C (file separator, information separator four) |
\x05 (enquiry) |
\x1D (file separator, information separator three) |
\x06 (acknowledge) |
\x1E (file separator, information separator two) |
\x07 (bell) |
\x1F (file separator, information separator one) |
\x08 (backspace) |
\xD800 bis \xDFFF (UTF-16 hohe Surrogatzeichen) |
\x0B (vertical tab) |
\xFFFE |
\x0C (form feed) |
\xFFFF |
Wenn die Eingabe- oder Ausgabedaten, die an eine Transformation angrenzende XML-basierte Connector-Aktivität übergeben oder von dieser zurückgegeben werden, eines der oben genannten Zeichen enthalten, wird zur Laufzeit ein spezifischer Fehler zurückgegeben, der auf dieses Zeichen verweist. Zum Beispiel, wenn das \x1E Steuerzeichen in der Antworttransformation für die Epicor Kinetic Get BAQ-Aktivität vorhanden ist, wird dieser Fehler zur Laufzeit zurückgegeben:
Die Ausnahme ist ungültiges Leerzeichenzeichen (0x1e) im Text zur Ausgabe
Nicht unterstützte XML-Elemente, wenn sie in JSON eingebettet sind
Zeichendaten (CDATA)-Abschnitte werden nicht unterstützt, wenn XML in JSON eingebettet ist, das durch eine Transformation gesendet werden soll. Das Einfügen von CDATA-Abschnitten kann dazu führen, dass der folgende Fehler in einem Betriebsprotokoll zur Laufzeit erscheint:
Transformation fehlgeschlagen. Fehler: Die Operation "Operation" ist fehlgeschlagen.
Fehler: XML-Datei konnte nicht in JSON konvertiert werden.
org.jitterbit.integration.server.engine.EngineSessionException: org.xml.sax.SAXParseException ...
Um dies zu umgehen, verwenden Sie ein Jitterbit-Skript, um die &, <, >, ' und " Zeichen des gesamten CDATA-Abschnitts, einschließlich seiner Definition (<![CDATA[ ... ]]>), durch &, <, >, &apos, " zu ersetzen. Falls erforderlich, kann der gesamte XML-String, der den CDATA-Abschnitt enthält, ersetzt werden, wenn das gezielte Ansprechen des Abschnitts nicht zu Ihrem Anwendungsfall passt.
Das folgende Beispiel wird ohne Ersetzungen als ungültig betrachtet:
{
"name": "Jitterbit",
"data": "<xml><content><![CDATA[<greeting>Hello, world!</greeting>]]></content></xml>"
}
Gespiegelte Schemata mit Substitutionsgruppen
Spiegelte Schemata, die Substitutionsgruppen verwenden, werden nicht unterstützt. Die Verwendung eines gespiegelten Schemas mit Substitutionsgruppen führt zu einem Laufzeitfehler bei der Operation:
Failed to initialize transformation "<transformation name>". Failed to expand the (source|target) tree for the path: <path to substitution head node>.
Dieser Fehler kann auch aus anderen Gründen auftreten und weist nicht unbedingt darauf hin, dass das Problem mit einem gespiegelten Schema mit Substitutionsgruppen zusammenhängt. Wenn der Fehler auf Ihr Schema zutrifft, empfehlen wir, das gespiegelte Schema zu löschen und es auf andere Weise neu zu erstellen (hochladen, benutzerdefiniertes Schema erstellen usw.).
Neuverarbeitung von gespiegelten XML-Schemata
Aufgrund von Änderungen in den Harmony-Versionen 10.25 und 10.27 können Sie in Projekten, die vor diesen Versionen erstellt wurden, ein anderes Verhalten feststellen. Diese Änderungen betreffen XML-Schemata, die gespiegelt wurden, und haben wahrscheinlich Auswirkungen auf Zuordnungen, die XML-Funktionen verwenden, die Namensräume betreffen, wie die Funktion SelectNodes. In diesem Fall können Zuordnungen, die zuvor gültig waren, jetzt ungültig sein und einen Fehler im Zusammenhang mit der Syntax der XML-Funktion aufweisen.
Vergleichen Sie die Unterschiede zwischen diesem Beispiel eines gespiegelten XML-Schemas vor 10.25 und einem, das in 10.25 oder später erstellt wurde:

- Beispiel XML-Schema vor 10.25: In Projekten, die vor 10.25 erstellt wurden, verwenden gespiegelte XML-Schemata das Standard-Namensraum-Präfix für XML-Dokumente:
xsi. Wie oben rot hervorgehoben, erklärtxmlns:xsiden Namensraum, und nicht zugeordnete Felder werden im Schema mit dem Attributxsi:nil="true"angezeigt. - Beispiel XML-Schema in 10.25 und später: In Projekten, die in 10.25 und später erstellt wurden und oben grün hervorgehoben sind, verwenden gespiegelte XML-Schemata das Namensraum-Präfix
ns, um einen qualifizierten Namensraum zu deklarieren. Nicht zugeordnete Felder werden im Schema nicht angezeigt.
In den Versionen 10.25 und 10.26, wenn Sie ein Projekt mit einem spiegelten XML-Schema importiert haben, das vor 10.25 erstellt wurde, wurde das Schema neu verarbeitet und geändert, um das qualifizierte Namensraum-Präfix zu verwenden.
Ab Version 10.27 behalten importierte Projekte, deren spiegelte XML-Schemas vor 10.25 erstellt wurden, das standardmäßige XML-Schema-Namensraum-Präfix, sodass das Schema identisch ist mit dem, als es erstellt wurde. Diese Änderung bedeutet, dass alle Projekte vor 10.25, die in die aktuelle Version importiert werden, wie ursprünglich vorgesehen funktionieren sollten.
Um ein vor 10.25 erstelltes XML-Schema zu zwingen, das aktualisierte Namensraum-Präfix zu verwenden, können Sie das Schema regenerieren, indem Sie es aktualisieren oder die Aktivität, die das Schema bereitstellt, neu konfigurieren.
Sonderzeichen in von Konnektoren bereitgestellten JSON-Schemas
Wenn eine Transformation ein JSON-Schema verwendet, das von einer benachbarten Konnektor-Aktivität geerbt wurde, werden alle Sonderzeichen in einem Schemafeld oder Knotennamen durch Unterstriche (_) ersetzt.
Bei der Verwendung der veralteten JSON-Verarbeitung (der Standard für Projekte, die vor der 11.48 Harmony-Version erstellt wurden), kann dieses Verhalten dazu führen, dass Fehler vom Endpunkt zurückgegeben werden.
Wenn beispielsweise die Aktivität einen Feldnamen von location_ids[] bereitstellt, wird er in location_ids__ umgewandelt, jedoch erwartet der Endpunkt weiterhin den ursprünglichen Feldnamen location_ids[] und gibt einen Fehler zurück, wie z. B. "error_message": "{location_ids:expected String to be a Array}",}}.
Um dieses Problem zu lösen, befolgen Sie diese Schritte:
-
Bestätigen Sie, dass ein JSON-Schema in der betroffenen Aktivität verwendet wird. Solche Schemata haben einen Wurzelknoten mit dem Namen
json:
-
Konfigurieren Sie das Projekt so, dass die JSON-Namen beibehalten Verarbeitung verwendet wird, indem Sie die JSON-Namen beibehalten Projekteinstellung aktivieren (Agenten-Version 11.48 oder höher ist erforderlich).
-
Konfigurieren Sie die Operation neu, setzen Sie sie ein und führen Sie sie aus.
Wichtig
Wenn JSON-Namen beibehalten in einem Projekt aktiviert ist, in dem es derzeit deaktiviert ist, beachten Sie, dass die Verarbeitung von JSON-Namen beibehalten nur für Operationen und Schemata verwendet wird, die nach der Aktivierung der Einstellung konfiguriert werden. Das bedeutet, dass bestehende Operationen und Schemata weiterhin die veraltete JSON-Verarbeitung verwenden. Wir empfehlen, alle bestehenden Operationen und Schemata in solchen Projekten neu zu konfigurieren, da die Verwendung beider Schema-Verarbeitungsmethoden in einem einzigen Projekt zu Inkonsistenzen im Projekt führen kann.
Wenn Sie die Verarbeitung von JSON-Namen beibehalten verwenden, können Sie den Feld- oder Knotennamen, der an den Endpunkt übergeben wird, überprüfen, indem Sie den jsonPropertyName in den Eingabe- oder Ausgabedaten der Aktivität anzeigen, wenn das Debug-Logging aktiviert ist (für Cloud-Agenten oder für private Agenten). Der Wert des jsonPropertyName ist der Wert, der in der Anfrage gesendet wird:
