Selektionsmaske
Der Aktionstyp Selektion dient dazu, dem Anwender eine Auswahlmöglichkeit zu bieten. Die Auswahl basiert auf Suchen und über entsprechende Konfigurationsmöglichkeiten kann der Anwender bei der Auswahl unterstützt werden.
![](../../../__attachments/8095464/20181015_BPM_ConfigureSelection.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Zunächst muss die Suche konfiguriert werden. Hierzu kann der Prozessdesigner über den Schalter Suche hinzufügen die im CRM bereits vorhanden Prozess-Suchen anzeigen, dem Prozess hinzufügen oder über den Schalter Neue Suche eine Prozess-Suche anlegen. Diese Suchen sind Systemsuchen und in der CRM-Anwendung über die normale Suchmaske nicht auswählbar oder veränderbar.
Beim Erstellen einer neuen Suche aus dieser Maske heraus kann als Start-Entität nur eine der Entitäten aus dem Datenmodell des Prozesses genutzt werden.
Insbesondere ist der Button inaktiv, wenn das Datenmodell des Prozesses leer ist.
Aus den Suchen, die dem Prozess bekannt sind, kann er dann die Suchen wählen:
![](../../../__attachments/8095464/CRM-4727_ChoseSearch.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Diese Suche lässt sich dann über den Schalter
An dieser Stelle kann verifiziert werden, ob die Suche das erwartete Ergebnis liefert.
![](../../../__attachments/8095464/image2019-2-19_14-13-46.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Abbildung: Bearbeitung einer Suche
Die Anzeigefelder der Suche werden dem Anwender bei der Ausführung angezeigt, daher werden diese in der Box Anzeigefelder zur Orientierung auch dem Prozessdesigner aufgelistet.
Zusätzlich zur gewählten Suche, kann die angezeigte Suche im Selektionsdialog auch durch eine Variable mit der ID (Plainkey) einer anderen Suche übersteuert werden. Beide Suchen sollten sich in der Struktur gleichen. Dadurch ist es möglich die verwendete Suche auf Grund vorangegangener Entscheidungen im Prozess zu verändern.
![](../../../__attachments/8095464/CRM-4727_ChoseSearchVariable.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Enthält die gewählte Suche Parameter-Templates, so müssen diese vor der Ausführung und der Anzeige in der Suchmaske durch Variablen ersetzt werden. Die gewählten Variablen werden als Suchparameter angezeigt. Überflüssige Parameter kann man über das Kontextmenü wieder entfernen.
![](../../../__attachments/8095464/CRM-4727_AddSearchParameter.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Anschließend kann er im Feld Ergebnis-Selektion konfigurieren, wie viele Datensätze der Anwender wählen kann oder muss, um den Schritt erfolgreich abzuschließen.
![](../../../__attachments/8095464/20181015_BPM_ConfigureSelection1.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Die Optionen Suche direkt ausführen sorgt dafür, dass der Anwender beim Öffnen des Tasks eine Liste mit den Ergebnissen vorfindet, dies ist sinnvoll, wenn die Suche soweit bereits eingegrenzt ist. Für den Fall das die Option Suchfelder anzeigen deaktiviert ist, ist dies der Standard. Suchfelder anzeigen sorgt dafür, dass die in der Suche als Suchfelder deklarierten Felder dem Anwender zur Eingabe angezeigt werden und zudem bekommt er die Möglichkeit die Suche auszuführen.
Analog zur Detailmaske stehen Skriptmöglichkeiten zur Verfügung. Es gibt die analogen Einstiegspunkte und die analogen Hilfsklassen inklusive Autovervollständigung (Tasten UNBEKANNTER ANHANG+UNBEKANNTER ANHANG). Wobei es hier die Klasse SearchListUtils
gibt, die den Zugriff auf die markierten Datensätze ermöglicht. Über die Hilfsklasse FieldUtils
können im initTask-Bereich der Selektion Suchfelder VOR der automatischen Ausführung der Suche vorbelegt werden. Das Volltext-Suchfeld kann über den Feldnamen "Lucene.Entitätsname" angesprochen werden. Datumsfelder, die mit der Funktion "liegt zwischen" aus zwei Felder bestehen kann man mit der Angabe von "#0" bzw. "#1" das entsprechende Felder der Suchmaske wählen.
Es ist möglich, die Suche auch automatisch, also ohne Benutzerinteraktion, zu starten, indem die Methode SearchListUtils.startSearch()
verwendet wird. Diese erlaubt die Ausführung der Suche direkt beim Start der Benutzer-Aktion ohne Benutzerinteraktion. Dabei werden die vorbelegten Werte aus der Selektionsmaske bzw. die via FieldUtils.setValue()
gesetzten Werte zur Suche verwendet.
Es können auch Variablen als Suchparameter zu einer Suche hinzugefügt werden. Diese Parameter ersetzen die Platzhalter-Templates analog zu den Logiken im CRM in der sichtbaren Reihenfolge. Werden weniger Parameter angegeben als in der Suche definiert wurden, so werden die Parameter ohne Variablen mit keiner Bedingung versehen. Die Ersetzung der Platzhalter-Templates greift beim Öffnen der Aktion vor der initialen Ausführung der Suche.
Zur Vereinfachung der Auswahl durch den Benutzer kann das Fortfahren per Doppelklick aktiviert werden. Dies ist sinnvoll wenn genau ein Datensatz gewählt werden soll. Der Doppelklick ist aber auch bei einer Mehrfachauswahl per CTRL -Taste möglich.