Zum Inhalt springen

Fehlersuche bei Operationen im Jitterbit Integration 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 dem 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:

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 mit der Harmony-Cloud synchronisiert 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 die erforderlichen 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:

  1. Verwenden Sie das Dienstprogramm JitterbitUtils des privaten Agents.
  2. Führen Sie die Option --resync-environment ENVIRONMENT auf dem Agentenserver aus (ersetzen Sie ENVIRONMENT durch 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 Leistungsoptimierung der Umgebungs-Synchronisierung.

Extra-Subelement-Warnung

Eine extra subelement-Warnung in den Protokollnachrichten kann im Allgemeinen 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.

Ungültige Zeichen in XML-Schema-Zuordnungen

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 zur Laufzeit dieser Fehler zurückgegeben:

Die Ausnahme ist ungültiges Leerzeichenzeichen (0x1e) im auszugebenden Text

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 Zeichen &, <, >, ' und " des gesamten CDATA-Abschnitts, einschließlich seiner Definition (<![CDATA[ ... ]]>), durch &amp, &lt, &gt, &apos, &quot 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>"
}

Nachbearbeitung von gespiegelten XML-Schemas

Aufgrund von Änderungen in den Harmony-Versionen 10.25 und 10.27 kann es sein, dass Sie ein anderes Verhalten in Projekten feststellen, die vor diesen Versionen erstellt wurden. Diese Änderungen betreffen XML-Schemas, die gespiegelt wurden, und haben höchstwahrscheinlich 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 anzeigen.

Vergleichen Sie die Unterschiede zwischen diesem Beispiel für ein gespiegeltes XML-Schema vor 10.25 und einem, das in 10.25 oder später erstellt wurde:

XML-Schema annotiert

  • Beispiel XML-Schema vor 10.25: In Projekten, die vor 10.25 erstellt wurden, verwenden gespiegelte XML-Schemas das Standard-Namensraum-Präfix für XML-Dokumente: xsi. Wie oben rot hervorgehoben, erklärt xmlns:xsi den Namensraum, und nicht zugeordnete Felder werden im Schema mit dem Attribut xsi: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-Schemas 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 gespiegelten XML-Schema, das vor 10.25 erstellt wurde, importiert haben, wurde das Schema neu verarbeitet und geändert, um das qualifizierte Namensraum-Präfix zu verwenden.

Ab Version 10.27 behalten importierte Projekte, deren gespiegelte XML-Schemas vor 10.25 erstellt wurden, das Standard-Namensraum-Präfix des XML-Schemas, sodass das Schema identisch mit dem ist, 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 Update eines XML-Schemas vor Version 10.25 zu erzwingen, damit das aktualisierte Namensraum-Präfix verwendet wird, können Sie das Schema neu generieren, 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 von dem Endpunkt zurückgegeben werden.

Wenn beispielsweise die Aktivität einen Feldnamen von location_ids[] bereitstellt, wird dieser in location_ids__ umgewandelt, der Endpunkt erwartet jedoch weiterhin den ursprünglichen Feldnamen location_ids[] und gibt einen Fehler zurück, wie zum Beispiel "error_message": "{location_ids:expected String to be a Array}",}}.

Um dieses Problem zu lösen, befolgen Sie diese Schritte:

  1. Bestätigen Sie, dass in der betroffenen Aktivität ein JSON-Schema verwendet wird. Solche Schemata haben einen Wurzelknoten mit dem Namen json:

    json schema

  2. 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).

  3. Konfigurieren Sie die Aktivität neu, stellen Sie sie bereit und führen Sie die Operation aus.

    Wichtig

    Wenn JSON-Namen beibehalten in einem Projekt aktiviert wird, in dem es derzeit deaktiviert ist, beachten Sie, dass die JSON-Namen beibehalten Verarbeitung nur für Operationen und Schemata verwendet wird, die nach der Aktivierung der Einstellung konfiguriert werden. Das heißt, bestehende Operationen und Schemata verwenden weiterhin die veraltete JSON-Verarbeitung. 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 JSON-Namen beibehalten Verarbeitung 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:

jsonPropertyName