Anlass und Zeitpunkt für die Ausführung dieser Task
Eine gespeicherte Abfrage ist eine Abfrage, die in der Datenbank
gespeichert und mit einem Namen versehen ist. Die Abfragedefinitionen sind
zwar in der Datenbank gespeichert, aber die in der gespeicherten Abfrage
enthaltenen Elemente werden dynamisch zusammengefügt, wenn sie abgefragt werden.
Alle gespeicherten Abfragen sind frei
zugänglich. Allerdings können Sie diese gespeicherten Abfragen nur
erstellen und löschen, wenn Sie über Business-Prozessadministrator- oder Taskadministratorrechte verfügen.
Sie können Abfragen für Business-Prozessobjekte, Taskobjekte oder für eine Kombination
dieser beiden Objekttypen speichern.
Erforderliche Schritte für diese Task
- Erstellen Sie eine gespeicherte Abfrage.
Beispielsweise erstellt
das folgende Codefragment eine Abfrage für Prozessinstanzen und speichert sie mit
einem bestimmten Namen.
process.createStoredQuery("Kundenbestellungen mit A beginnend",
"DISTINCT PROCESS_INSTANCE.PIID, PROCESS_INSTANCE.NAME",
"PROCESS_INSTANCE.NAME LIKE 'A%'",
"PROCESS_INSTANCE.NAME",
null,null);
Diese Abfrage gibt eine sortierte Liste aller
Namen von Prozessinstanzen, die mit dem Buchstaben A beginnen, mit den zugeordneten
Prozessinstanz-IDs (PIID) zurück.
- Führen Sie die in der gespeicherten Abfrage definierte Abfrage aus.
QueryResultSet result = process.query("Kundenbestellungen mit A beginnend", new Integer(0));
Diese Aktion gibt die Objekte zurück, die die Bedingungen erfüllen.
In diesem Beispiel sind dies alle Kundenbestellungen, die mit A beginnen.
- Optional: Listen Sie die verfügbaren gespeicherten Abfragen auf.
Beispielsweise zeigt das folgende Codefragment, wie eine Liste der
gespeicherten Abfragen für Prozessobjekte abgerufen werden kann:
String[] storedQuery = process.getStoredQueryNames();
- Optional: Überprüfen Sie die von der angegebenen gespeicherten Abfrage
definierte Abfrage.
StoredQuery storedQuery = process.getStoredQuery("Kundenbestellungen mit A beginnend");
String selectClause = storedQuery.getSelectClause();
String whereClause = storedQuery.getWhereClause();
String orderByClause = storedQuery.getOrderByClause();
Integer threshold = storedQuery.getThreshold();
- Löschen Sie eine gespeicherte Abfrage.
Das folgende Codefragment zeigt,
wie die in Schritt 1 erstellte gespeicherte Abfrage gelöscht wird.
process.deleteStoredQuery("Kundenbestellungen mit A beginnend");