Ereignis erstellen
Wenn Sie kein geeignetes vorhandenes Ereignis finden, können Sie ein eigenes erstellen.
Vorbereitungen
Warum und wann dieser Vorgang ausgeführt wird
Prozedur
- Navigieren zu Alle > Systemrichtlinie > Events > Registrierungund wählen Sie Neu.
-
Füllen Sie die Felder des Formulars aus.
Tabelle : 1. Formular zur Registrierung von Ereignissen ausfüllen Feld Beschreibung Ereignisname Name des neuen Ereignisses. Tabelle Datenbanktabelle für dieses Ereignis. Hinweis:In der Liste werden nur Tabellen und Datenbankansichten angezeigt, die sich im selben Bereich wie das Ereignis befinden.Warteschlange Name der Warteschlange, in die das Ereignis bei Auslösung platziert wird. Verwenden Sie nur Kleinbuchstaben, keine Leerzeichen und keine Sonderzeichen außer Unterstrichen (_). Beispiel: my_queue. Weitere Informationen finden Sie unter Using custom queues to process events.
Priorität Reihenfolge, in der Nachrichten verarbeitet werden. Niedrigere Werte haben eine höhere Priorität. Hinweis:Die Systemeigenschaft com.glide.sysevent.priority.enabled ist standardmäßig aktiviert. Wenn Sie die Option deaktivieren, erfolgt die Ereignisverarbeitung nicht nach Priorität.Zugriff für Anrufer Einstellungen für eingeschränkten Anruferzugriff. - Anruferbeschränkung: Anrufe bei der -Ressource müssen manuell genehmigt werden.
- Anruferverfolgung: Anrufe bei der -Ressource werden automatisch genehmigt.
Ausgelöst von Name der Geschäftsregel, die das Ereignis ausführt. Dieses Feld dient nur als Referenz und wird von keinem Prozess verwendet. Stellen Sie sicher, dass genügend Informationen vorhanden sind, um Ihr Ereignis erneut zu finden. Beschreibung Kurze Beschreibung des Zwecks des Ereignisses. - Klicken Sie auf den zugehörigen Link Business-Regeln.
-
Wenn Sie ein Event für eine Basissystemtabelle erstellen, wählen Sie die vorhandene Event-Geschäftsregel für die Tabelle aus.
Wählen Sie beispielsweise die Geschäftsregel sc request events aus, um ein anwenderdefiniertes Anforderungsereignis zu erstellen.
-
Wenn Sie eine vorhandene Ereignisgeschäftsregel aktualisieren, fügen Sie dem Skripteine neue Bedingung hinzu.
Das folgende Beispielskript fügt ein Ereignis request.commented mit der Sys-ID des Benutzers als parm1 und dem Benutzernamen als parm2 hinzu.
if (current.operation() != 'insert' && current.comments.changes()) { gs.eventQueue('request.commented', current, gs.getUserID(), gs.getUserName()); } -
Wenn Sie ein Ereignis für eine anwenderdefinierte Tabelle erstellen, erstellen Sie eine neue Geschäftsregel, die nach Datenbankvorgängen ausgeführt wird.
Diese Geschäftsregel definiert beispielsweise mehrere Events für eine anwenderdefinierte Anwendung namens „Marketing Events“.
Tabelle : 2. Beispiel für eine Geschäftsregel für Ereignisse Feld Wert Name Teilnehmer-Ereignisse Tabelle Teilnehmer [x_snc_marketing_ev_attendee] Anwendung Marketing-Ereignisse Erweitert Ausgewählt Wann nach Einfügen Ausgewählt Aktualisieren Ausgewählt Löschen Ausgewählt Skript Fügen Sie ein anwenderdefiniertes Skript hinzu, das:- Sucht nach einer oder mehreren Bedingungen im aktuellen Datensatz.
- Ruft die Methode gs.eventQueue() auf und gibt einen Ereignisnamen an.
Siehe Codebeispiel.
Hinweis:Wenn Sie Filterbedingungen, Rollenbedingungenoder einen Bedingungswert hinzufügen, verifizieren Sie, dass die Geschäftsregel wie erwartet ausgeführt wird.(function executeRule(current, previous /*null when async*/) { //This function will be automatically called when this rule is processed. //Add event when attendee inserted if(current.operation() == 'insert' && current.marketing_event.changes()) { gs.eventQueue('x_snc_marketing_ev.attendee.added', current, current.marketing_event, current.email); } //Add event when marketing event changes if(current.operation() == 'update' && current.marketing_event.changes()) { gs.eventQueue('x_snc_marketing_ev.attendee.deleted', previous, previous.marketing_event, previous.email); gs.eventQueue('x_snc_marketing_ev.attendee.added', current, current.marketing_event, current.email); } //Add event when attendee deleted if(current.operation() == 'delete') { gs.eventQueue('x_snc_marketing_ev.attendee.deleted', current, current.marketing_event, current.email); } })(current, previous); - Registrieren Sie das Ereignis.