Client XML aus Objekt erzeugen

Wertauflöser - Kurzfassung

Zweck: Gibt die Datenstruktur des Eingabewerts als Text im Client-XML-Format zurück.

Siehe auch: Objekt aus Client XML erzeugen

images/download/attachments/91139418/image2022-3-7_10-1-13-version-1-modificationdate-1646643673499-api-v2.png

Der Client XML aus Objekt erzeugen-Wertauflöser gibt die Datenstruktur des Eingabewerts als Text im Client-XML-Format (s. XML Datenencoder) zurück.

Der Parameter Klassen Feldname definiert den Namen des XML-Attributs, das im Ausgabeformat verwendet werden soll, um die "Klasse" von Objekten zu deklarieren.

Konfiguration

Der Parameter Klassen Feldname erlaubt als Textfeld die Eingabe eines statischen Texts, der im Ausgabeformat verwendet wird, um die "Klasse" von Objekten innerhalb der XML-Struktur zu deklarieren.

  • Als Standardwert ist die Zeichenfolge class vorbelegt.

  • Wird kein Klassen Feldname angegeben, entfällt der Verweis auf den Datentyp im ausgegebenen XML ersatzlos.

WICHTIG◄ Der Standardwert für den Parameter Klassen Feldname kann in der Konfiguration rein technisch mit einer beliebigen statischen Zeichenfolge überschrieben werden. Allerdings sollten hier nur "Namen" angegeben werden, die sich auch als Namen für ein XML-Attribut eignen. Falls der angegebene Klassen Feldname unzulässige Zeichen (Sonderzeichen, Leerzeichen) enthält, scheitert der Encoder zur Laufzeit mit einer Fehlermeldung.

Beispiele

Die Basis für die folgenden Beispiele für die Verwendung des Client XML aus Objekt erzeugen bildet immer dieselbe Konfiguration:

Durch unterschiedliche Auslösende Ereignisse (nicht im Bild) soll jeweils der Versand einer Benachrichtigung per E-Mail ausgelöst werden. Dabei sollen die wichtigsten Details zur "Situation", in der das Ereignis ausgelöst wurde, als Client-XML im E-Mail-Anhang wiedergegeben werden:

Wie rechts dargestellt, werden die erforderlichen Informationen im Parameter Objekt Resolver einer Ausführen mit-Ereignisaktion durch einen Erzeuge Liste-Wertauflöser in eine Liste gepackt, die für die folgende E-Mail-Versand-Ereignisaktion als Bezugsobjekt gilt.

ANMERKUNG◄ Über die Variable contextEntity (s. Parameter Objekt in Variable speichern) kann auf die Entität im Datenkontext des auslösenden Ereignisses zugegriffen werden, z. B. um deren Daten im Betreff oder dem Body der E-Mail zu nutzen.

images/download/attachments/91139418/image2022-3-21_8-52-9-version-1-modificationdate-1647849129120-api-v2.png

Beispiel: Listenobjekt als Standard-Client-XML

Die rechts abgebildete Konfiguration für den Reiter Anhänge der E-Mail-Versand-Ereignisaktion hängt den Inhalt der als Bezugsobjekt der Ereignisaktion vorliegenden unspezifischen Liste von Objekten (Objekt[]) im Standard-Client-XML-Format (mit dem Klassen-Feldname class) an die erzeugte E-Mail an.

Der angehängten Datei wird der Dateiname "log.xml" und der Mime type text/xml durch statisch definierte Texte zugewiesen.


images/download/attachments/91139418/image2022-3-21_9-2-51-version-1-modificationdate-1647849771829-api-v2.png

Laufzeitbeispiel:

  • Im Beispiel wurde das Ereignis XF_TEST ausgelöst, das der Dynamische Aufzählungswert im ersten Eintrag (item) identifiziert.

  • Der Long-Wert an der zweiten Position identifiziert den Benutzer der Session.

  • Es folgt ein String mit dem Namen der verwendeten Rolle: "Super user limited".

  • Das letzte item der Liste ist die Zeitangabe für den Beginn des Tags (Zeitzone UTC), an dem das Ereignis ausgelöst wurde.

Client-XML (mit Klassen-Feldname: class)
<Object class="list">
<item class="de.lobster.scm.denum.DynamicEnumDto">
<enumName>de.lobster.scm.actionevent.CustomActionEvent</enumName>
<name>XF_TEST</name>
</item>
<item class="java.lang.Long">
<value>1901</value>
</item>
<item class="string">Super user limited</item>
<item class="de.lobster.scm.utils.date.DateTime">
<dateValue>1647820800000</dateValue>
<timeZone class="string">UTC</timeZone>
</item>
</Object>

Beispiel: Listenobjekt als Client-XML mit nicht-Standard "Klassen-Feldname"

Die Konfiguration rechts ist bis auf den abweichenden Wert clazz für den Parameter Klassen-Feldname unverändert.

images/download/attachments/91139418/image2022-3-21_9-21-20-version-1-modificationdate-1647850880154-api-v2.png


Laufzeitbeispiel:

  • Wie in der Konfiguration spezifiziert, werden die Klassen im ausgegebenen XML nun über das XML-Attribut clazz identifiziert.

Client-XML (mit Klassen-Feldname: clazz)
<Object clazz="list">
<item clazz="de.lobster.scm.denum.DynamicEnumDto">
<enumName>de.lobster.scm.actionevent.CustomActionEvent</enumName>
<name>XF_TEST</name>
</item>
<item clazz="java.lang.Long">
<value>1901</value>
</item>
<item clazz="string">Super user limited</item>
<item clazz="de.lobster.scm.utils.date.DateTime">
<dateValue>1647820800000</dateValue>
<timeZone clazz="string">UTC</timeZone>
</item>
</Object>