Aktionen des Typs Aus XML importieren ermöglichen es, Formularfelder mit dem Inhalt eines XML-Dokuments zu befüllen. Hierzu wird für jedes zu befüllende Formularfeld ein XPath angegeben auf einen entsprechend Wert im XML angegeben.
INHALTSVERZEICHNIS
|
Parameter
Details für das Einlesen und Setzen
- XML-Quelle
- Auswahl der einer XML-Datei, welche als XML-Quelle dienen soll. Zur Verfügung stehen Formulardateien, Mandantdateien, über eine URL (externe Ressource) geladene Dateien, Vorganganhänge oder Dateien aus vorherigen Aktionen. Siehe Aktionen für eine Liste der unterstützten URL-Protokolle.
- XSL-Template
- Optional kann ein XSL-Template festgelegt werden, welches das XML-Dokument vor der Auswertung transformiert.
Zu setzende Werte
- Feldname
- Name des Formularelements, dessen Wert gesetzt wird.
- XPath
- XPath auf einen Wert im XML-Dokument, dessen Wert in das Formularfeld eingetragen wird.
- Namespace-Angaben innerhalb von Elementnamen werden nicht unterstützt.
- Wenn Elementnamen mit Namespace-Angaben im XML existieren, so muss in der XPath-Definition mittels XPath-Funktion local-name() auf den lokalen Teil im Elementnamen zugegriffen werden.
- Sollte es XML-Elementname mit Sonderzeichen (z.B. Punkt) im Elementnamen geben, so müssen diese im XPath-Ausdruck gesondert maskiert werden, damit die Sonderzeichen nicht fälschlicherweise als XPath-Syntaxangabe interpretiert werden. (z.B. der Elementname name.mit.punkt kann mit der Syntax
*[local-name()='name.mit.punkt'] im XPath-Ausdruck abgefragt werden) - Alle XPath-Angaben sollten in so fern eindeutig formuliert sein, sodass sie bei Auswertung des Ausdrucks genau ein Ergebnis zurück liefern. Sonst liefert die Logik der Workflow-Aktion immer nur das erste Ergebnis zurück, was unter Umständen nicht immer der gewünschte Wert sein muss.
- bei Angabe von // wird relativ zum Wurzel-Element der Pfad (/familienname/name) gesucht
- durch die Funktion local-name() in den Pfad-Elementen wird jeweils nur der lokale Namensteil aus dem Elementnamen für eine Suche einbezogen. (Anstatt des voll qualifizierten Elementnamens xsb:familienname wird nur der lokale Namensteil familienname zur Suche verwendet)
- Die Funktion text() liefert den Inhalt des Element-Knotens name
Hinweise zur Definition von XPath-Ausdrücken
Die nachfolgende Abbildung zeigt einen Ausschnitt eines XMLs mit Namespace-Angaben:
|
Ein korrekter XPath-Ausdruck zum Erhalt des Familiennamens aus dem vorliegenden XML-Beispiel wäre:
//*[local-name()='familienname']/*[local-name()='name']/text()
Zur Erläuterung der einzelnen Elemente des XPath-Ausdrucks:
Aktionsplatzhalter
Aktionen vom Typ Aus XML importieren stellen Aktionsplatzhalter bereit, welche in darauf folgenden Aktionen verwendet werden können.
Standardplatzhalter
- [%$<Aktionsname>.SUCCESS%]
- Rückgabe ob Aktion erfolgreich ausgeführt wurde. Liefert Boolean (true/false) zurück.
- [%$<Aktionsname>.RESULT%]
- Rückgabe aller von der Aktion bereitgestellten Ergebnisse in strukturierter Form.
- [%$<Aktionsname>.ERROR_CODE%]
- Der geworfene Fehler-Code im Fehlerfall der Aktion. Leer wenn kein Fehler aufgetreten ist.
- [%$<Aktionsname>.ERROR_MESSAGE%]
- Die geworfene Fehler-Nachricht im Fehlerfall der Aktion. Leer wenn kein Fehler aufgetreten ist.
Aktionsspezifische Platzhalter
- [%$<Aktionsname>.ERROR.message%]
- Fehlernachricht, die zurückgeliefert wird, wenn die PDF-Datei nicht in das Dateisystem geschrieben werden konnte, die angegebene URL keinem gültigen Format entspricht, keine Quelldatei ermittelt werden konnte, das Datei-Format der Quelldatei nicht unterstützt wird, beim Verarbeiten der XML-Daten ein Fehler auftritt oder die XSLT-Transformation nicht erfolgreich war.
Beispiel
Zur Verdeutlichung sei ein kurzes Beispiel für die Nutzung von XPaths gegeben. Beispielweise sehe das XML-Dokument wie folgt aus:
<?xml version="1.0" encoding="UTF-8"?> <xfc-data xfc-version="7.0.0" generation-date="2021-07-27 11:23:43.190 MEZ"> <processes> <process process-uid="f1e677ad-012d-4586-884b-ac2ee029cb00" creation-date="2021-07-27 11:23:43.0 MEZ" project-name="XML" status=""> <form version="1"> <field name="upl1"> <plainValue><![CDATA[]]></plainValue> <values count="0"/> <label><![CDATA[]]></label> </field> <field name="tf1"> <plainValue><![CDATA[foobar]]></plainValue> <values count="1"> <value index="0"><![CDATA[foobar]]></value> </values> <label><![CDATA[]]></label> </field> <field name="xf-action"> <plainValue><![CDATA[btnPrev]]></plainValue> <values count="1"> <value index="0"><![CDATA[btnPrev]]></value> </values> <label><![CDATA[]]></label> </field> </form> </process> </processes> </xfc-data>
Zum Selektieren des Wertes des Feldes mit Namen tf1 kann der folgende XPath genutzt werden.
//processes//field[@name="tf1"]/plainValue/text()
War dieser Artikel hilfreich?
Das ist großartig!
Vielen Dank für das Feedback
Leider konnten wir nicht helfen
Vielen Dank für das Feedback
Feedback gesendet
Wir wissen Ihre Bemühungen zu schätzen und werden versuchen, den Artikel zu korrigieren

