Angehängte Dokumente
Wertauflöser - Kurzfassung
Zweck: Gibt die Inhalte aller Dokumente zurück, die einer Entität im Eingabewert zugewiesen sind und dem optional spezifizierbaren Dokumententyp angehören.
Der Angehängte Dokumente-Wertauflöser erwartet eine Entität als Eingabewert und liefert ein Array, das die "Inhalte" aus dem documentContent-Feld aller Dokumente auflistet, die sämtliche der folgenden Kriterien erfüllen:
Für das Dokument besteht Lesezugriff im anwendbaren Kontext.
Das Feld "Referenziertes Objekt" (referencedEntity) des Dokuments verweist auf den Typ der Entität im Eingabewert.
Das Feld "Referenziertes-Objekt-ID" (referencedEntityId) des Dokuments verweist auf die ID (id) der Entität im Eingabewert.
Das Feld "Referenz-Status" (referenceStatus) des Dokuments verweist auf den Status "Referenziert" (REFERENCED).
►ANMERKUNG◄ Bei jedem Speichern eines Dokuments werden die unter Dokumente zuweisen beschriebenen Prozesse erneut gestartet, um das Dokument zuzuweisen. Scheitert die Zuweisung für ein vorher bereits erfolgreich zugewiesenes Dokument, z. B. weil jetzt ein anderer Dokumentenreferenztyp ausgewählt ist, der keine Entität als Treffer liefert, dann lautet nach dem Speichern des Dokuments der Referenz-Status "Zuordnung fehlgeschlagen" (UNRESOLVED). Damit gilt das Dokument nicht als "angehängt" aus Sicht der Entität für die die Kriterien 2 und 3 weiter erfüllt wären.
Sonderfälle:
Falls als Eingabewert keine Entität vorliegt, gibt der Wertauflöser "Kein Wert" ($null) zurück.
Falls als Eingabewert eine Entität vorliegt, aber keine Dokumente gefunden werden, die die oben genannten Kriterien erfüllen, wird ein leeres Array zurückgegeben.
Falls als Eingabewert eine Entität vorliegt und genau ein Dokument nach die oben genannten Kriterien erfüllt, wird dessen Inhalt als einziger Eintrag in einem Array zurückgegeben.
►HINWEIS◄ Der Wertauflöser dient nicht zum Zugriff auf Dokumente als Entitäten, sondern liefert nur deren Inhalt. Zugriff auf die Daten der Dokument-Entitäten für "angehängte Dokumente" würde dagegen z. B. eine Suche (Ereignisaktion) für den Entitätstyp "Dokument" (de.lobster.scm.doc.Document) ermöglichen, die die oben genannten Kriterien (2, 3 und 4) mit Bezug zum Eingabewert abbilden muss.
►ACHTUNG◄ Der Rückgabewert ist ein Array und KEINE Liste ...
Dass der Rückgabewert ein Array und keine echte "Liste" (List) ist, kann gelegentlich Einschränkungen bedingen bzw. Vorkehrungen erforderlich machen. Die folgende Liste erhebt keinen Anspruch auf Vollständigkeit:
Ein Array besteht eine Typprüfung auf den Typ "Liste" (List) nicht. Auch die Kombination der Option "Ist Liste von" in Verbindung mit dem Typ "Inhalt" in der Typprüfung löst dieses Problem nicht.
Der Zugriff auf bestehende Einträge im Array über den Listenwert-Wertauflöser ist (im Unterschied zu früheren Versionen von Lobster Data Platform / Orchestration) möglich.
Allerdings können dem Array keine Einträge hinzugefügt werden.
Mit dem Eingabeobjekt (Typsicher)-Wertauflöser kann das Array formal in eine "Liste" umgewandelt werden, die dann auch einer Typprüfung standhält.
Allerdings können auch dieser Liste keine Einträge hinzugefügt werden.
Konfiguration
Als Eingabewert wird eine Entität eines beliebigen Typs erwartet, da Dokumente nur an Entitäten zugewiesen, also an diese "angehängt", werden können.
Über den optionalen Parameter vom Typ kann die Auswahl der Dokumente durch statische Einfachauswahl auf genau einen bestimmten Dokumententyp eingeschränkt werden. Ohne eine Auswahl für den Parameter vom Typ liefert der Wertauflöser die Inhalte aller zugewiesenen Dokumente (Kriterien s. oben) unabhängig von deren Dokumententyp. Die Auswahl wird durch eine Suchfunktion unterstützt, die wie im Bild zu sehen neben der Lokalisierung auch den internen Namen für den Dokumententyp berücksichtigt. Sind im Kontext der Konfiguration Dynamische Aufzählungsfilter für den Dokumententyp anwendbar, schränken diese die Auswahl ein. Das Laufzeitverhalten einer Konfiguration verändern Dynamische Aufzählungsfilter dagegen nicht. |
|
Beispiel
Einfacher Anwendungsfall: "Lebenslauf"-Datei(en) als Anhang zum Benutzer
Ein Zuordnungskriterium (s. Zuordnungskriterien) soll als bestanden gelten, wenn als Eingabewert im Datenkontext ein Benutzer vorliegt, für dessen Konto mindestens ein "angehängtes" Dokument vom Dokumententyp "Lebenslauf" (CV) gefunden wird.
Konfiguration:
Das Zuordnungskriterium kombiniert zwei Regeln in einer UND-Verknüpfung:
|
|
Laufzeitbeispiel: Wert der Variablen docCV, wenn genau ein angehängtes PDF-Dokument mit dem Dokumententyp "Lebenslauf" (CV) für den Benutzer gefunden wurde:
<value xsi:type=
"array"
>
<item mediaType=
"application/pdf"
name=
"cv-2801.pdf"
xsi:type=
"core:Content"
>
<body>JVBERi0xLjUNCiW1tbW1DQoxID[...]</body>
</item>
</value>
Der Rückgabewert ist ein array-Objekt mit einem Eintrag (item) vom Typ "Inhalt" (Content).
Das durch das item-Element repräsentierte "Inhalt"-Objekt beinhaltet neben dem base64-Dateiinhalt im body-Element auch die Felder "Medientyp"(mediaType) und "Name" (name) als XML-Attribute.
Komplexerer Anwendungsfall: Dateianhänge für eine Sendung zusammenstellen
Ein Eigenes Aktionsevent soll im Kontext eines Workflows für ein Geschäftsobjekt vom Typ "Sendung" (Sendungen) eine Benachrichtigung per E-Mail auslösen.
Der erzeugten E-Mails sollen folgende Dateien angehängt werden:
Die Inhalte aller zugewiesenen Dokumente für die betreffende Sendung.
Eine auf dem Lobster Data Platform / Orchestration-Server hinterlegte PDF-Datei mit den aktuellen Allgemeinen Geschäftsbedingungen.
Der Textkörper (Body) der E-Mail soll die Namen der angehängten Dokumente auflisten. Deshalb sollen alle Anhänge in einer Listenvariablen attachments gesammelt werden, bevor die E-Mail-Versand-Ereignisaktion ausgeführt wird.
Konfiguration:
Der Screenshot rechts zeigt einen Ausschnitt aus einer Ereignisbehandlung, die die Zuweisung an die Listenvariable attachments per Setze Wert-Ereignisaktion regelt: Auf der rechten Seite der Zuweisung wird die Liste aller relevanten Anhänge durch eine Wertauflöserkette zusammengestellt:
|
|