Hauptmenü

Bedingungen auf DFs vom Typ Selections

Begonnen von Alexander Gensler, 08.12.2025 16:02:11

⏪ vorheriges - nächstes ⏩

Alexander Gensler

Hallo zusammen,

in RuleSets kann man ja relativ einfach eine Bedingung auf ein DF vom Typ Selection machen mit
Rule "XY" on Ticket if TR.DynamicFields.contains(DFName,GewuenschterDFWert)
Was wäre denn das Äquivalent dazu, wenn ich die Macro Action "Bedingung" in einem Job oder einer Ticketaktion verwende?
Folgende Bedingungen habe ich schon erfolglos probiert:
<KIX_TICKET_DynamicField_DFName_Key> contains "01Montag"
<KIX_TICKET_DynamicField_DFName> contains "Montag"
<KIX_TICKET_DynamicField_DFName_Key> eq "01Montag"
<KIX_TICKET_DynamicField_DFName> eq "Montag"

Sowohl die Seite für Bedingungen als auch für Selections waren in dieser Sache leider nicht hilfreich.

Viele Grüße
Alexander

Frank Niethardt

Hallo Alexander,

so zum Beispiel:

2025-12-09_14h03_34.png

Viele Grüße
Frank

Alexander Gensler

#2
Hallo Frank,

danke dir für deine Info. Ich hätte wohl ergänzend dazuschreiben sollen, dass die Selection eine Mehrfachauswahl aktiviert hat. Deine Lösung funktioniert nur gut, wenn es eine Einfachauswahl à la Ja/Nein o.ä. ist und man davon ausgehen kann, dass auf ObjectValue_0 der zu erwartende Wert ist.

In meinem Fall handelt es sich um eine Selection mit neun möglichen Werten, die auch alle neun gleichzeitig ausgewählt werden können. Ausgehend von der Erkenntnis, dass ObjectValue_n die Key-Werte in aufsteigender Reihenfolge abspeichert, müsste ich dennoch mind. 9+8+7+6+5+4+3+2+1 = 45 Bedingungen prüfen. Das ist mir dann doch ein bisschen zu viel^^

Ich habe testweise mal die Platzhalter in einen Artikel geschrieben:
Debug-Artikel:
artikel.png


DF-Config
DFWerte.png

Frank Niethardt

Moin,

bei der Bedingung kannst du ja Perl Mittel benutzen, daher auch mit grep arbeiten.

grep( /${currentSelection}/i, "Montag")
Obiges ist jetzt ungetestet und aus einer anderen Konfiguration bei mir abgewandelt. Ich benutze es, um zu entscheiden, ob das aktuell gemeldete System nicht von einem bestimmten Wert ist, um dann das Ticket weiter zu behandeln. In etwa so:

!grep( /^${currentSystem}$/i, ("Atlassian","Amazon","XEROX"))

Viele Grüße
Frank



Alexander Gensler

Hallo Frank,

deine Lösung mit grep konnte ich nicht zum Laufen bringen, ich möchte jedoch nicht ausschließen, dass das meinen unzulänglichen Fähigkeiten im Bereich Linux/Perl/Grep geschuldet ist^^

Im Austausch mit einem Kollegen, der ebenfalls KIX im Einsatz hat konnte ich jedoch nun eine funktionierende Lösung finden, nachfolgend zur Kenntnis für alle, die mal das gleiche Problem haben:

schleife.png
Man kann mittels Schleife über DFName_ObjectValue iterieren. Die Schleifenvariable (in meinem Fall ${current}) beinhaltet dann den Key-Wert und kann auf den Wunsch überprüft werden.

VG
Alexander