Hauptmenü

Ticket Aktion/Ruleset - Update DF Selection List und Checklist

Begonnen von mplan, 09.09.2024 09:28:51

⏪ vorheriges - nächstes ⏩

mplan

Hallo,

in der Ticketansicht haben wir Platzhalter für max. 3 Checklisten (Links,Mitte,Rechts) vorgesehen.
Über eine Ticketaktion und Selection Feld platzieren wir eine ausgewählte Checkliste.

Problem besteht beim Editieren:
In einer Ticketaktion soll mit dem DF vom Typ Selection/Auswahl die entsprechende Checkliste angezeigt und editiert werden können.
In der Aktion sind die 3 Checklistenfelder erst einmal ausgeblendet. Wählt man eine Platzierung aus, wird die entsprechende Checklist eingeblendet  und die anderen ausgeblendet (Show/hide im Ruleset).
Speichert man nun den Stand der ausgewählten Checkliste, wird auch eine leere Checkliste eingefügt, die gar nicht erscheinen soll.
In gewisser Weise ist es nachvollziehbar, da die Checklist ausgeblendet (Hide) und nicht deaktiviert (Disable) gesetzt ist.

Mit einem Ruleset wollte ich nun 
  • leere Checklisten "disablen" (damit sie nicht mit gespeichert werden)
  • das Auswahlfeld begrenzen, um leere Checklisten nicht auswählbar zu haben
Leider gelingt es mir nicht:
  • PossibleValuesRemove DynamicFields.locationChecklist "Checklist3: Rechts"  # oder auch nur "Rechts" entfernt nicht den Wert "Rechts",
    egal ist auch,ob TR verwendet wird oder nicht
  • Prüfung auf leere Checkliste geht auch nicht mit
    if TR.DynamicFields.contains(Checklist3,"id")   oder 
    if DynamicFields.Checklist3.isEmpty

Habt ihre eine Idee, wie man die Aktion bzw Ruleset so begrenzen kann, dass nur nicht leere ( bzw. Felder mit gültiger Checkliste) angezeigt und ausgewählt und gespeichert werden?

P.S. Kann es sein, dass im Ruleset keine Platzhalter ausgewertet werden? Ein
 "Set Title "Hallo <KIX_TICKET_DynamicField_locationChecklist_ObjectValue_0>"
wird nicht ausgewertet bei mir.

P.S. Version 18.32 im Einsatz, bei der das Setzen der PossibleValues für DF gefixt sein soll ( KIX2018-11490).

Viele Grüße
Michael

Benedikt Geißler

Hallo Michael,

Platzhalter werden in Rulesets nicht unterstützt, das ist korrekt.

Hier wäre ein Beispiel, wie die interaktive Auswahl der Checklisten funktionieren könnte. Ich habe dafür ein neues Auswahlfeld "CheckListSelect" definiert (Werte: 1 und 2 jeweils im Schlüssel) und zur Demonstration die beiden mitgelieferten DFs MobileProcessingChecklist010 und MobileProcessingChecklist020 verwendet.

Bildschirmfoto vom 2024-09-17 15-36-10.png

Diese DFs habe ich dann in einer neuen Ticket-Aktion namens "Checklisten" eingefügt:

Bildschirmfoto vom 2024-09-17 15-40-58.png

Das Ruleset sieht wie folgt aus:

Bildschirmfoto vom 2024-09-17 15-42-39.png

Die globale Bedingung lautet "TR.ObjectActionName eq "Checklisten"",damit das Ruleset nur in dieser einen Aktion läuft. Hier nochmal in Textform die Regeln:

Rule "Checkliste 1 einblenden" on Ticket if TR.DynamicFields.contains(CheckListSelect, 1)
 Show DynamicFields.MobileProcessingChecklist010
End

Rule "Checkliste 1 ausblenden" on Ticket if !Rule "Checkliste 1 einblenden"
 Clear DynamicFields.MobileProcessingChecklist010
 Hide DynamicFields.MobileProcessingChecklist010
End

Rule "Checkliste 2 einblenden" on Ticket if TR.DynamicFields.contains(CheckListSelect, 2)
 Show DynamicFields.MobileProcessingChecklist020
End

Rule "Checkliste 2 ausblenden" on Ticket if !Rule "Checkliste 2 einblenden"
 Clear DynamicFields.MobileProcessingChecklist020
 Hide DynamicFields.MobileProcessingChecklist020
End

In der Aktion sind alle Checklisten immer aktiv, allerdings keine Pflichtfelder. Wenn Checkliste 1 ausgewählt wird, wird es eingeblendet (Show), wenn nicht, wird das Feld geleert (Clear) und versteckt. (Hide) Da es nicht deaktiviert wird, wird auch der Leerwert mit abgespeichert. Folglich wird in der Ticketdetailansicht danach kein MobileProcessingChecklist010 mehr dargestellt.

Die GUI-Konfiguration für die Checklistenfelder entspricht dem Standardwart:
{
  "text": "Mobile Processing Checklist 010",
  "textStyle": "font-weight:bold;margin-bottom:0.5rem",
  "icon": "kix-icon-ci",
  "componentId": "dynamic-field-value",
  "componentData": {
    "name": "MobileProcessingChecklist010"
  },
  "conditions": [
    {
      "property": "DynamicFields.MobileProcessingChecklist010",
      "operator": "NE",
      "value": null,
      "useObjectService": false,
      "useDisplayValue": false
    }
  ]
}

Bildschirmfoto vom 2024-09-17 15-49-58.png

Ist dies das, was du dir vorstellst?

Viele Grüße
Benedikt

Sascha N.

Hallo,

danke für den interessanten Artikel.
Wir haben bei uns die V32 (KIX 18 (Build: 4648-1.1974-1) letztens installiert und ich würde nun gerne Eure Hinweise von hier umzusetzen...
Kann man das Ruleset als JSON unter "erweiterte Bedingung" einbauen ?
[
  {
    "option": "FIELD_NAME",
    "value": "CheckListSelect"
  },
  {
    "rules": [
      {
        "actions": [
          "Show DynamicFields.Checkliste01MAEintritt"
        ],
        "condition": "ChecklistenAuswahl.contains(CheckListSelect, 1)",
        "context": "Ticket",
        "name": "Checkliste MAEintritt einblenden"
      },
      {
        "actions": [
          "Clear DynamicFields.Checkliste01MAEintritt",
          "Hide DynamicFields.Checkliste01MAEintritt"
        ],
        "condition": "!Rule 'Checkliste MAEintritt einblenden'",
        "context": "Ticket",
        "name": "Checkliste MAEintritt ausblenden"
      },
      {
        "actions": [
          "Show DynamicFields.Checkliste02MAAustritt"
        ],
        "condition": "ChecklistenAuswahl.contains(CheckListSelect, 2)",
        "context": "Ticket",
        "name": "Checkliste MAAustritt einblenden"
      },
      {
        "actions": [
          "Clear DynamicFields.Checkliste02MAAustritt",
          "Hide DynamicFields.Checkliste02MAAustritt"
        ],
        "condition": "!Rule 'Checkliste MAAustritt einblenden'",
        "context": "Ticket",
        "name": "Checkliste MAAustritt ausblenden"
      }
    ]
  }
]

mplan

Hi Sascha,
das ist auch ein interessanter Ansatz.
Beantworten kann ich Deine Frage leider nicht, könnte man mal testen.

Mein Ziel war es, die wachsende Zahl von Checklisten einfacher zu verwalten. Benedikts Idee funktioniert grundsätzlich, 
ich kann nur keine leeren Checklisten ausblenden über die Workflow Rules. Dafür klingt Dein Ansatz in der Richtung gut... ;-)

Viele Grüße
Michael