Créer un événement

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 2 minutes de lecture
  • Si vous ne trouvez pas d’événement existant approprié, vous pouvez créer le vôtre.

    Avant de commencer

    Rôle requis : admin

    Pourquoi et quand exécuter cette tâche

    Le gs. La fonction EventQueue fonctionne directement avec le backend et donc les règles métier qui sont appelées par gs. EventQueue() ne sont pas invoqués.

    Procédure

    1. Accédez à la Tout > Politique système > Événements > Registre, puis sélectionnez Nouveau.
    2. 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.
    3. Cliquez sur le lien connexe Règles métier .
    4. 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é.
    5. 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());
      }
    6. 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);
    7. Enregistrez l’événement.

    Que faire ensuite

    Créez une action de script ou une notification pour traiter l’événement.