Validierungsfehler und Regeln für die Transformation in Jitterbit Integration Studio
Einführung
Damit eine Transformation gültig ist, müssen Transformation gültig sein. Auf dieser Seite erfahren Sie, wie Sie ungültige Zuordnungen identifizieren, die damit verbundenen Validierungsfehler anzeigen und Validierungsfehler beheben.
Validierungsfehler
Transformations werden bei der Ermittlung der Komponentengültigkeit auf Projektebene genauso behandelt wie andere Projektkomponenten. Das heißt, Sie können ungültige Transformations auf der Design-Canvas identifizieren und im Projektbereich wie in Komponentengültigkeit beschrieben. Validierungsfehler innerhalb eines Mappings werden bei der Validierung von Transformations miteinbezogen.
Damit eine Transformation gültig ist, darf sie innerhalb der Transformation selbst keine Validierungsfehler aufweisen. Um als gültig zu gelten, muss eine Transformation die folgenden Regeln erfüllen:
- Eine Zuordnung kann keine Verweise auf nicht vorhandene Felder oder Variablen enthalten.
- Eine Zuordnung darf keine Datentypkonflikte enthalten.
- Eine Zuordnung muss eine gültige Script verwenden.
- Ein Zielschleifenknoten kann nicht mehrere Quellen haben.
- Für eine angrenzende Quell- oder Zielaktivität muss ein Schema bereitgestellt werden.
Darüber hinaus kann für bestimmte Zielfelder eine Zuordnung erforderlich sein oder nicht. Beispielsweise können verknüpfte Felder einer untergeordneten Tabelle nicht zugeordnet werden. Weitere Einzelheiten finden Sie unter Validierungsregeln weiter unten auf dieser Seite.
Um diese Fehler zu beheben, können Sie Fehler innerhalb der Transformation selbst identifizieren und entsprechende Anpassungen vornehmen. Ungültige Zuordnungen werden entweder für einen gesamten Zielfeldblock oder für einzelne zugeordnete Objekte innerhalb eines Zielfeldblocks angezeigt.
Gesamtes Zielfeld
Wenn eine gesamte Zielfeldzuordnung ungültig ist, wird links neben dem Zielfeldblock eine rote vertikale Linie angezeigt, ein Warnsymbol wird oben rechts im Zielfeld angezeigt. Wenn Sie mit der Maus über das Warnsymbol fahren, wird der Grund für die ungültige Zuordnung aufgeführt.
Diese Art der ungültigen Zuordnung kann durch die Zuordnung von Feldern entstehen, die nicht zugeordnet werden können, z. B. durch den Versuch, eine eindeutige Objekt-ID in einer Salesforce Insert-Aktivität zuzuordnen als Ziel verwendet.
Wenn eine gesamte Zielfeldzuordnung möglicherweise ungültig ist, wird links neben dem Zielfeldblock eine orangefarbene vertikale Linie angezeigt. Wenn Sie mit der Maus über das Feld fahren, wird der Grund für die möglicherweise ungültige Zuordnung aufgeführt.
Diese Art der ungültigen Zuordnung kann durch das Fehlen einer möglicherweise erforderlichen Zuordnung entstehen, z. B. durch einen Primärschlüssel, der bei einer Datenbankeinfügeaktivität nicht zugeordnet wurde als Ziel verwendet.
Ungültige oder potenziell ungültige Zuordnungen können auch dadurch entstehen, dass mehrere Objekte (z. B. mehr als ein Quellobjekt oder eine Variable) einem Zielfeld zugeordnet werden, ohne dass eine Logik vorliegt, die angibt, wie diese Objekte zu verarbeiten sind.
Um ungültige Zuordnungen aufzulösen, entfernen Sie entweder die Zuordnung oder öffnen Sie das Feld im Script, um Verarbeitungslogik hinzuzufügen. Potenziell ungültige Zuordnungen sollen auf ein potenzielles Problem hinweisen, können aber unverändert bleiben, wenn Sie festgestellt haben, dass die Zuordnung gültig ist.
Um eine Zuordnung zu entfernen, bewegen Sie den Mauszeiger über das Zielfeld und verwenden Sie die Symbol Zuordnung entfernen.
Um ein Feld mit einer ungültigen Zuordnung im Script zu öffnen und Verarbeitungslogik hinzuzufügen, bewegen Sie den Mauszeiger über die Zielfelder und klicken Sie auf das Bearbeiten-Symbol.
Einzelnes zugeordnetes Objekt
Wenn ein einzelnes zugeordnetes Objekt innerhalb eines Zielfelds ungültig ist, wird das zugeordnete Objekt rot umrandet mit einem Warnsymbol rechts angezeigt:
Einzelne Zuordnungen können ungültig sein, wenn ein zugeordnetes Quellobjekt nach der Bearbeitung eines Schema nicht mehr vorhanden ist, wenn eine erforderliche/optionale Nichtübereinstimmung mit der Kardinalität eines Zielfelds vorliegt oder wenn Quell- und Zielfelder inkompatible Datentypen aufweisen.
Die Zuordnung von Quell- und Zielfeldern mit möglicherweise inkompatiblen Datentypen wird für alle Schemata gekennzeichnet, unabhängig davon, ob sie über definierte Datentypen verfügen, z. B. solche, die aus einer Salesforce oder Datenbankaktivität definiert wurden, oder ob sie nur Datentypbezeichnungen haben, z. B. solche, die aus einer Beispieldatei definiert wurden oder manuell definiert wurden (bei diesen Schematypen werden alle Felder als Zeichenfolgen behandelt, unabhängig davon, ob sie Datentypbezeichnungen haben oder nicht).
Eine Nichtübereinstimmung der Datentypen bedeutet nicht unbedingt, dass ein Problem mit der Zuordnung vorliegt. Wenn beispielsweise ein Quellfeld mit einem ganzzahligen Datentyp einem Zielfeld mit einem Zeichenfolgendatentyp zugeordnet wird, sind die resultierenden Daten eine Zeichenfolge, die einen numerischen Wert enthält. Quellfelder mit jedem Datentyp können einem Zielfeld mit einem Zeichenfolgendatentyp zugeordnet werden, daher werden diese Zuordnungen in keiner Weise gekennzeichnet.
Wenn jedoch das Gegenteil der Fall ist und ein Quellfeld mit einer Zeichenfolge oder einem anderen Datentyp einem nicht übereinstimmenden Zieldatentyp zugeordnet wird, können solche Zuordnungen als potenziell inkompatibel gekennzeichnet werden. Zugeordnete Felder mit potenziell inkompatiblen Datentypen werden mit einem orangefarbenen Rand angezeigt:
Beim Hovern wird der Grund für die mögliche Inkompatibilität aufgelistet. Um die Zuordnung zu entfernen, klicken Sie auf das Symbol Zuordnung entfernen.
Beachten Sie, dass der Hinweis auf eine mögliche Datentyp-Nichtübereinstimmung nur bei einfachen Zuordnungen eines Quellobjekts zu einem Zielfeld erscheint und nicht angezeigt wird, wenn das Zielfeld Skriptlogik enthält.
Bei Zielfeldern, die mithilfe von Skriptlogik zugeordnet werden, wird der Wert nach der Verarbeitung des Script und der Auswertung der resultierenden Ausgabe in den Datentyp des Zielfelds konvertiert, dem er zugeordnet wird. Der Benutzer soll anhand der in den Datentyp des Zielfelds konvertierten Ausgabe erkennen, ob diese endgültige Ausgabe das gewünschte Ergebnis ist.
Nehmen wir als Beispiel an, das Zielfeld ist ein double
Datentyp. Unabhängig vom Datentyp im Script wird die endgültige Ausgabe für das Mapping nach der Verarbeitung des Script in einen double
Dies wird anhand der folgenden Transformation veranschaulicht.
<trans>
1 + "string"
</trans>
Das obige Script ergibt einen Wert von "1string"
mit einem string
Datentyp. Anschließend wird diese Ausgabe während der Verarbeitung der Transformation in einen double
Datentyp. Da die Ausgabe mit einer Ziffer beginnt, werden alle Anfangsziffern in die endgültige Mapping-Ausgabe übernommen, da Zahlen für eine double
Die endgültige Ausgabe für das Mapping ist ein Wert von 1
mit einem double
Datentyp.
<trans>
"string" + 1
</trans>
Das zweite Script oben ergibt einen Wert von "string1"
mit einem string
Datentyp. Während der Verarbeitung der Transformation wird diese Ausgabe in einen double
Datentyp. In diesem Fall, weil ein nicht-stelliger Wert, der für eine double
, am Anfang des zurückgegebenen Wertes steht, wird kein Wert übertragen. Stattdessen übernimmt das Zielfeld den Standardwert für eine Zahl; das heißt, die endgültige Ausgabe für die Zuordnung ist ein Wert von 0
mit einem double
Datentyp.
In manchen Fällen möchten Sie möglicherweise den Datentyp des Zielfelds überschreiben und die Ausgabe tatsächlich mit einem anderen Datentyp übertragen. In diesen Fällen können Sie den Format
oder FormatDate
Funktionen innerhalb des Script. Achten Sie darauf, dass die Funktion in der letzten Anweisung des Script steht, da der Rückgabewert des Script immer aus der letzten Zeile stammt.
Validierungsregeln
Damit eine Transformation gültig ist, muss sie richtig konfiguriert sein. Die unten aufgeführten Fehlermeldungen werden angezeigt, wenn die Validierungsfehler, die mit der Transformation als Komponente verknüpft sind, auf der Design-Canvas angezeigt werden oder Projektbereich wie in Komponentengültigkeit beschrieben.
Wenn eine Transformation nicht oder falsch konfiguriert wurde, wird diese Validierungsfehlermeldung zurückgegeben:
Die Transformation ist nicht richtig konfiguriert.
Diese Meldung wird am häufigsten angezeigt, wenn Sie einer Operation eine neue Transformation hinzugefügt haben und diese noch nicht konfiguriert wurde. Um das Problem zu beheben, öffnen Sie den Transformation und konfigurieren Sie die Transformation entsprechend. Eine Transformation muss keine Zuordnungen enthalten, wenn ihr Schema nur aus Knoten ohne Felder besteht. Wenn das Schema Felder enthält, muss mindestens eine Zuordnung vorhanden sein, damit die Transformation ordnungsgemäß konfiguriert werden kann.
Damit eine Transformation gültig ist, darf sie außerdem keine Validierungsfehler innerhalb der Transformation selbst aufweisen. Um als gültig zu gelten, muss eine Transformation die folgenden Regeln erfüllen:
- Eine Zuordnung kann keine Verweise auf nicht vorhandene Felder oder Variablen enthalten.
- Eine Zuordnung darf keine Datentypkonflikte enthalten.
- Eine Zuordnung muss eine gültige Script verwenden.
- Ein Zielschleifenknoten kann nicht mehrere Quellen haben.
- Für eine angrenzende Quell- oder Zielaktivität muss ein Schema bereitgestellt werden.
Darüber hinaus kann für bestimmte Zielfelder eine Zuordnung erforderlich sein oder nicht. Beispielsweise können verknüpfte Felder einer untergeordneten Tabelle nicht zugeordnet werden. Ungültige Zuordnungen werden im Konfigurationsbildschirm der Transformation visuell angezeigt, wie unter Validierungsfehler beschrieben weiter oben auf dieser Seite.
Abhängig vom Fehler wird bei Nichteinhaltung dieser Regel die entsprechende Variante dieser möglichen Fehlermeldungen zurückgegeben:
Die Zuordnung bezieht sich auf ein nicht vorhandenes [Quelle / Ziel / Variable]-Feld $[Pfad].
Möglicher Datentypkonflikt bei der Zuordnung.
Zielfeld $[node.name] [muss zugeordnet werden / kann nicht zugeordnet werden].
Zielfeld $[node.name] ist mit [Datenbankverknüpfungen] seines übergeordneten Elements verknüpft. Sie können diesem Element keinen Wert zuordnen.
Datensätze: Fehler in Zeile [#]: [Syntaxfehler bei der Script ].
Zuordnungen eines Zielschleifenknotens hängen von mehr als einem Quellschleifenknoten ab.
[Quell- / Ziel] Schema muss angegeben werden.
Versuchen Sie zur Behebung des Problems die folgenden Tipps zur Fehlerbehebung:
- Wenn Sie Verweise auf nicht vorhandene Felder, Datentypkonflikte oder andere ungültige Zuordnungen haben, suchen Sie entweder die ungültige Zuordnung und heben Sie die Zuordnung auf oder überprüfen Sie das Schema, um sicherzustellen, dass alle Felder berücksichtigt werden und kompatible Datentypen haben. Wenn Sie Verweise auf nicht vorhandene Variablen haben, überprüfen Sie, ob die Variable existiert.
- Wenn bei der Script Fehler auftreten, überprüfen Sie die Zuordnung und nehmen Sie Anpassungen im Script vor. Validierungsmeldungen werden auch unter jedem Script angezeigt und zeilenweise gemeldet. Das heißt, nach der Behebung eines Fehlers in einer Zeile werden möglicherweise weitere zu behebende Syntaxfehler für nachfolgende Zeilen gemeldet. Nehmen Sie weiterhin Änderungen vor, bis die Meldung anzeigt, dass das Script gültig ist.
- Wenn Sie einen Zielschleifenknoten haben, der von mehr als einem Quellschleifenknoten abhängt, folgen Sie den Anweisungen unter Zuordnen von einer Quelle mit mehreren Instanzen zu einem Ziel mit einer einzigen Instanz unter Datenstrukturen.
- Wenn Sie Quell- oder Zielaktivitäten neben der Transformation haben, stellen Sie sicher, dass Sie für jede ein Schema angeben. Schemata können innerhalb der Aktivität bereitgestellt werden selbst während seiner Konfiguration (siehe Dokumentation für jeden Konnektor) oder durch Definieren eines Schema direkt innerhalb der Transformation.
Wenn eine Transformation aus einem anderen, nicht ohne weiteres zu ermittelnden Grund ungültig ist, wird außerdem diese Fehlermeldung zurückgegeben:
Transformation ist ungültig.