Skip to main content
Skip table of contents

Selektion

Der Aktionstyp Selektion dient dazu, eine Auswahl von Datensätzen bereitzustellen. Die Auswahl basiert auf CRM-Suchen, über entsprechende Konfigurationen kann die Auswahl für Anwender gezielt vorbereitet und eingeschränkt werden.

Konfiguration der Suche für die Selektion

Zunächst wird die Suche konfiguriert, die der Selektion zugrunde liegt. Im Abschnitt Detailkonfiguration der Aktion kann eine vorhandene Suche aus der Prozess-Bibliothek ausgewählt werden. Diese Suchen sind Systemsuchen und in der normalen CRM-Suchmaske weder auswählbar noch änderbar.

image-20260202-172109.png

Auswahl einer konfigurierten Suche in der Detailkonfiguration

Sind noch keine Suchen im Prozess konfiguriert, können diese in der Prozess-Bibliothek angelegt werden.

Zusätzlich zur konfigurierten Suche kann die tatsächlich angezeigte Suche im Selektionsdialog über eine Variable mit der ID (Plainkey) einer anderen Suche überschrieben werden. Beide Suchen sollten die gleiche Struktur aufweisen. Auf diese Weise kann die verwendete Suche abhängig von vorangegangenen Prozessentscheidungen dynamisch gewechselt werden.

Parameter-Templates und Suchparameter

Enthält die gewählte Suche Parameter-Templates, müssen diese vor Ausführung und Anzeige in der Suchmaske durch Variablen ersetzt werden. Die gewählten Variablen werden in der Konfiguration als Suchparameter angezeigt; nicht benötigte Parameter können über das Kontextmenü wieder entfernt werden.

Im Bereich Ergebnis-Selektion wird definiert, wie viele Datensätze gewählt werden können oder müssen, damit der Prozessschritt erfolgreich abgeschlossen werden kann (z.B. genau ein Datensatz, mindestens einer, beliebig viele).

Die Option Suche direkt ausführen sorgt dafür, dass beim Öffnen des Tasks sofort eine Ergebnisliste angezeigt wird. Das ist sinnvoll, wenn die Suche bereits so weit eingeschränkt ist, dass keine zusätzliche Eingabe erforderlich ist.

Ist die Option Suchfelder anzeigen deaktiviert, wird die Suche standardmäßig direkt ausgeführt.

Ist Suchfelder anzeigen aktiviert, werden die in der Suche definierten Suchfelder zur Eingabe eingeblendet, sodass der Anwender die Suchbedingungen anpassen kann.

Steuerung der Suche per Skript

Über ein Maskenskript kann das Verhalten der Suche weiter gesteuert werden. In der Einstiegs-Methode initTask() lassen sich Suchfelder zum Beispiel mit FieldUtils.setValue aus Prozess-Variablen vorbelegen.

Besonderheiten:

  • Das Volltext-Suchfeld kann über den Feldnamen "Lucene.<Bereich>" angesprochen werden.

  • Datumsfelder mit der Funktion „liegt zwischen“ bestehen aus zwei Feldern und können mit
    #0 bzw. #1 am Ende des Feldnamens gezielt adressiert werden.

Die Ausführung dieser Methoden erfolgt vor der automatischen Ausführung der Suche.

Es ist außerdem möglich, die Suche vollständig automatisch, also ohne Benutzerinteraktion, beim Öffnen der Benutzeraktion zu starten, indem die Methode SearchListUtils.startSearch() verwendet wird. Dabei werden alle zuvor im Skript vorbelegten Werte der Selektionsmaske berücksichtigt.

Zusätzlich können Variablen als Suchparameter zu einer Suche hinzugefügt werden. Diese ersetzen die Platzhalter-Templates in der Suche (analog zu den Logiken im CRM) in der sichtbaren Reihenfolge.
Werden weniger Parameter übergeben als in der Suche definiert, erhalten die verbleibenden Platzhalter keine Bedingung. Die Ersetzung der Platzhalter-Templates erfolgt beim Öffnen der Aktion vor der initialen Ausführung der Suche.

Verarbeitung der Selektion im Prozess

Zur Vereinfachung der Auswahl kann das Fortfahren per Doppelklick aktiviert werden. Das ist insbesondere sinnvoll, wenn genau ein Datensatz gewählt werden soll. Ein Doppelklick funktioniert jedoch auch bei Mehrfachauswahl in Kombination mit der STRG-Taste.

Damit die ausgewählten Datensätze im Prozess weiterverarbeitet werden können, werden sie in der Einstiegs-Methode completeTask() als Prozess-Variable gesetzt:

GROOVY
void completeTask()
{
  List<IContainer> selectedRows = SearchListUtils.getSelectedRows();
  ProcessUtils.setVariable("listSelection", selectedRows);
}

Die Variable listSelection enthält anschließend alle in der Selektion gewählten Datensätze und kann in nachfolgenden Prozessschritten verwendet werden.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.