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.

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
#0bzw.#1am 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:
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.