Hallo
@Maekaey,
das ist ein bißchen schwieriger als eigentlich nötig, denn das Format, in dem die Attribute übergeben werden, ist das gleiche, wie bei den List & Label Vorlagen, also "Param1=Wert1|Param2=Wert2|..." und Du müsstest den gewünschten Wert
~irgendwie~ aus der (langen) Liste von Wertepaaren extrahieren.
Wenn ich aber nichts übersehen habe, dann gibt es bei den Workflows leider keinen Befehl, der analog zum
Alias$(Parameter,WerteListe) Befehl bei den Vorlagen elegant den Wert zu einem Parmeter aus der Werteliste isoliert und zurückgibt. Eigentlich hoffe ich, dass ich mich hier irre, denn ein solcher Befehl wäre auch bei den Workflows sehr praktisch ...
Falls ich aber recht habe und es so etwas einfaches nicht gibt, dann kann man das Ganze auch in
DotLiquid-Code in einer "Erweiterten Eigenschaft" nachbilden, die Du in einem eigenen Editor-Fenster anlegst. Den Editor rufst Du über den Button ganz unten in der Auswahlliste für
Workflow-Bedinungen auf, legst eine neue Eigenschaft an, gibst ihr einen aussagekräftigen Namen und gibst dann folgenden Code in das Editorfenster ein ...
Code:
{% assign AttributParam = 'Lieferantennummer' -%}
{% assign KundenAttribute = Vorgang.Attribute | Split: "|" -%}
{% for KundenAttribut in KundenAttribute -%}
{% assign EinzelAttribut = KundenAttribut | Split: "=" -%}
{% if EinzelAttribut[0] == AttributParam -%}
{% assign AttributWert = EinzelAttribut[1] -%}
{% endif -%}
{% endfor -%}
{{ AttributWert }}
Ganz oben definiere ich den Attribut-Paramter nach dem gesucht werden soll. Das mache ich dort oben, damit man den Code leicht an verschiedene Suchbegriffe anpassen kann ohne immer im Code selbst rumschmieren zu müssen. Dann spalte ich die potentiell mehreren Kundenattribute in Gruppen aus je einem
Param=Wert Paar auf und spalte diese Paare dann weiter in jeweils einen Vektor mit zwei Einträgen, einem für den
Parameter und einem für den
Wert auf. Damit kann man dann ganz bequem in einer for-Schleife über die Attributpaare laufen, in
EinzelAttribut[0] nach dem gesuchten Attribut suchen und dann mit EinzelAttribut[1] seinen Wert zurückgeben, in Deinem Beispiel also z.B. "
beispiel@email.de".
Hinweis: Ich gebe den Attributwert hier übrigens deshalb nicht gleich innerhalb der Schleife mit
{{ EinzelAttribut[1] }} zurück, sondern weise ihn einer Variable "AttributWert" zu, weil es auch vorkommen könnte (wäre doof, aber
~könnte~), dass man das gleiche Kundenattribut mehrmals definiert hat. Dann würden zwei Werte zurückgegeben werden, was den Workflow kippen würde. Deshalb weise ich den gefundenen Attributwert einer Variablen zu und gebe deren aktuellen=letzten Wert erst in der allerletzten Zeile aus.
Durch das
{{ AttributWert }} in der letzten Zeile wird dieser Wert dann also automatisch an die aufrufende Workflow-Bedingung zurückgegeben, wo Du einfach nur auf "ist nicht leer" prüfst. Unten, in der Workflow-Aktion wählst Du "Email senden" und in der "Empfänger:" Zeile klickst Du auf die drei Punkte ganz rechts und gibst im sich öffnenden Editor-Fenster wieder den gleichen DotLiquid-Code ein. Damit wird dann die Email-Adresse in das "Empfänger:" Feld zurückgegeben.
Damit sollte Dein Workflow laufen ...
Gruß,
Ingmar