Créer un événement
Si vous ne trouvez pas d’événement existant approprié, vous pouvez créer le vôtre.
Avant de commencer
Pourquoi et quand exécuter cette tâche
Procédure
- Accédez à la Tout > Politique système > Événements > Registre, puis sélectionnez Nouveau.
-
Renseignez les champs du formulaire.
Tableau 1. Achèvement du formulaire d’inscription à un événement Champ Description Nom d'événement Nom de votre nouvel événement. Table Table de base de données pour cet événement. Remarque :Seules les tables et les vues de base de données du même champ d’application que l’événement apparaissent sur la liste.File d'attente Nom de la file d’attente dans laquelle l’événement est placé lorsqu’il est déclenché. Utilisez uniquement des lettres minuscules, pas d’espace et aucun caractère spécial à l’exception du trait de soulignement (_). Par exemple, my_queue. Consultez Using custom queues to process events.
Priorité Ordre dans lequel les messages seront traités. Les valeurs inférieures ont une priorité plus élevée. Remarque :La propriété système com.glide.sysevent.priority.enabled est activée par défaut. Si vous le désactivez, le traitement des événements n’est pas effectué par priorité.Accès pour l'appelant Paramètres d’accès restreint pour l’appelant. - Restriction de l’appelant : les appels à la ressource doivent être approuvés manuellement.
- Suivi de l’appelant : les appels vers la ressource sont automatiquement approuvés.
Déclenché par Nom de la règle métier qui exécute l’événement. Ce champ n’est fourni qu’à titre de référence et n’est utilisé par aucun processus. Assurez-vous qu’il y a suffisamment d’informations pour localiser à nouveau votre événement. Description Brève description du but de l’événement. - Cliquez sur le lien connexe Règles métier .
-
Si vous créez un événement pour une table système de base, sélectionnez la règle métier d’événement existante pour la table.
Par exemple, sélectionnez la sc request events règle métier pour créer un événement de demande personnalisé.
-
Si vous mettez à jour une règle métier d’événement existante, ajoutez une nouvelle condition au script.
L’exemple de script suivant ajoute un request.commented événement avec l’ID système de l’utilisateur en tant que parm1 et le nom d’utilisateur de l’utilisateur en tant que parm2.
if (current.operation() != 'insert' && current.comments.changes()) { gs.eventQueue('request.commented', current, gs.getUserID(), gs.getUserName()); } -
Si vous créez un événement pour une table personnalisée, créez une règle métier qui s’exécute après les opérations de base de données.
Par exemple, cette règle métier définit plusieurs événements pour une application personnalisée appelée Événements marketing.
Tableau 2. Exemple de règle métier d’événement Champ Valeur Nom Événements des participants Table Participant [x_snc_marketing_ev_attendee] Demande Événements marketing Avancés Sélectionné Quand après Insérer Sélectionné Mettre à jour Sélectionné Supprimer Sélectionné Script Ajouter un script personnalisé qui :- Vérifie une ou plusieurs conditions sur l’enregistrement actuel.
- Appelle la méthode gs.eventQueue() et spécifie un nom d’événement.
Voir l’exemple de code.
Remarque :Si vous ajoutez des conditions de filtre, des conditions de rôle ou une valeur Condition , vérifiez qu’elle exécute la règle métier au moment prévu.(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); - Enregistrez l’événement.