Définition de déclencheurs

Un composant peut inclure des déclencheurs qui exécutent des actions dans d'autres composants. Vous devez inscrire les déclencheurs pour qu'ils puissent être activés par les composants.

Le composant fournit des données traitées pour un déclencheur, qui sont transmises à toutes les actions exécutées lors de l'activation du déclencheur. Vous pouvez sélectionner les actions à exécuter pour chaque déclencheur. Les composants créés pour fonctionner ensemble peuvent activer automatiquement des déclencheurs pour exécuter des actions sans intervention de la part de l'utilisateur.

Inscription des déclencheurs

Pour un composant personnalisé, les déclencheurs sont inscrits en tant que partie des données d'inscription du composant. Pour ajouter un déclencheur, mettez à jour le tableau de propriétés "triggers" avec chaque déclencheur pris en charge par le composant. Vous devez également indiquer les données traitées prises en charge par le déclencheur pour que l'interface utilisateur puisse être créée de façon à permettre aux utilisateurs de mapper les valeurs des données traitées aux propriétés prises en charge par l'action.

  1. Modifiez le fichier appinfo.json et vérifiez l'entrée "triggers":[], :
    "triggers": [{
        "triggerName": "helloWorldWhoAreYou",
        "triggerDescription": "Show Who I Am",
        "triggerPayload": [{
          "name": "whoAreYou",
          "displayName": "Who I Am"
       }]
    }],
  2. Synchronisez le fichier avec le serveur des sites.

Dans cet exemple d'entrée de déclencheur, vous avez défini triggerName ("helloWorldWhoAreYou"). La valeur de nom doit être unique. Vous avez ensuite attribué une description au déclencheur ("Show Who I Am"), qui est utilisée par la boîte de dialogue d'interface utilisateur pour afficher votre déclencheur. Enfin, vous avez défini des données traitées à valeur unique pour le déclencheur. Les utilisateurs pourront sélectionner les entrées de ces données traitées et les mapper aux champs de l'action.

Une fois que le déclencheur est inscrit, vous devriez pouvoir le voir et le sélectionner dans l'onglet Liaison du panneau des paramètres du composant.

Activation de déclencheurs

Les déclencheurs peuvent être activés à tout moment par un composant. En général, un déclencheur est activé par une interaction de l'utilisateur, par exemple lorsque ce dernier clique sur un bouton ou sélectionne une ligne dans un tableau. Un composant peut activer le déclencheur en fonction de critères, par exemple, lorsque les données sont modifiées en raison d'un appel d'API REST. Vous pouvez exécuter plusieurs actions lorsqu'un déclencheur est activé.

Exemple d'activation d'un déclencheur :
  1. Modifiez le fichier render.js et ajoutez une fonction JavaScript dans l'objet viewModel qui appellera le kit SDK Sites pour activer le déclencheur.
    self.raiseTrigger = function (triggerName) {
      SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
        'triggerName': 'helloWorldWhoAreYou', 
        'triggerPayload': { "whoAreYou": "This is " + self.whoAreYou() + "!"}
      });
    };
  2. Ajoutez une entrée dans l'interface utilisateur pour appeler la fonction permettant d'activer le déclencheur (-edit template.html) et un bouton avant </div>.
    <button data-bind="click raiseTrigger">Who Am I?</button>
  3. Synchronisez le fichier render.js ou téléchargez-le vers votre serveur d'instance Oracle Content Management.

Dans l'objet ViewModel, vous avez créé une fonction JavaScript qui est appelée lorsque l'utilisateur clique sur le bouton. Cette fonction appelle le kit SDK Sites afin de lui indiquer d'activer toutes les actions définies pour ce déclencheur "helloWorldWhoAreYou". Elle est également envoyée à triggerPayload qui contient un seul champ, "whoAreYou". Ces valeurs "helloWorldWhoAreYou" et "whoAreYou" correspondent à celles que vous avez saisies lors de l'inscription du déclencheur à l'étape précédente.

Remarque :

Aucun ordre n'est prédéfini pour le déclenchement des actions. Même si les actions sont appelées dans l'ordre dans lequel elles sont répertoriées, l'action suivante est appelée sans attendre que la précédente soit terminée. Si une action effectue un appel asynchrone, il se peut qu'elle ne soit pas terminée lorsque l'action suivante est exécutée.