Impostare i trigger

Un componente può includere trigger che eseguiranno azioni specifiche in altri componenti. È necessario registrare i trigger che dovranno essere richiamati dai componenti.

Il componente fornisce un payload per un trigger, che viene passato a qualsiasi azione eseguita quando il trigger viene richiamato. È possibile selezionare le azioni che verranno eseguite per ogni trigger. I componenti strutturati per funzionare insieme possono richiamare i trigger in modo automatico per eseguire azioni senza l'interazione dell'utente.

Registrare i trigger

Per un componente personalizzato, i trigger vengono registrati come parte dei dati di registrazione per il componente. Per aggiungere un trigger, aggiornare l'array di proprietà "triggers" con ogni trigger supportato dal componente. È inoltre necessario specificare il payload supportato dal trigger, in modo da poter creare l'interfaccia utente per consentire agli utenti di mappare i valori all'interno del payload alle proprietà supportate dall'azione.

  1. Modificare il file appinfo.json e rivedere la voce "triggers":[],:
    "triggers": [{
        "triggerName": "helloWorldWhoAreYou",
        "triggerDescription": "Show Who I Am",
        "triggerPayload": [{
          "name": "whoAreYou",
          "displayName": "Who I Am"
       }]
    }],
  2. Sincronizzare il file con il server dei siti.

In questa voce trigger di esempio viene definito un triggerName ("helloWorldWhoAreYou"). Il valore del nome deve essere univoco. Viene quindi fornita la descrizione del trigger ("Show Who I Am"), utilizzata dalla finestra di dialogo dell'interfaccia utente per visualizzare il trigger. Viene infine definito un payload con un solo valore per il trigger; gli utenti saranno in grado di selezionare le voci nel payload e di mapparle ai campi nell'azione.

A registrazione avvenuta, il trigger può essere visualizzato e selezionato quando si accede alla scheda Collegamento nel pannello Impostazioni per il componente.

Richiamare i trigger

I trigger possono essere richiamati in un punto qualsiasi da un componente. In genere un trigger viene richiamato da un'interazione utente, quale ad esempio il clic su un pulsante o la selezione di una riga in una tabella. Un componente può richiamare il trigger in base a svariati criteri, ad esempio la modifica dei dati dovuta a una chiamata di API REST. È possibile eseguire un numero illimitato di azioni quando il trigger viene richiamato.

Di seguito viene fornito un esempio delle modalità di richiamo di un trigger.
  1. Modificare il file render.js e aggiungere una funzione JavaScript nell'oggetto viewModel che chiamerà il kit Sites SDK per richiamare il trigger.
    self.raiseTrigger = function (triggerName) {
      SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
        'triggerName': 'helloWorldWhoAreYou', 
        'triggerPayload': { "whoAreYou": "This is " + self.whoAreYou() + "!"}
      });
    };
  2. Aggiungere una voce nell'interfaccia utente per chiamare la funzione per richiamare il trigger (-edit template.html) e un pulsante prima di </div>.
    <button data-bind="click raiseTrigger">Who Am I?</button>
  3. Sincronizzare o caricare il file render.js nel server dell'istanza di Oracle Content Management.

Nell'oggetto ViewModel è stata creata una funzione JavaScript che viene chiamata quando si fa clic sul pulsante. Questa funzione chiama il kit Sites SDK per comunicare di attivare tutte le azioni definite per il trigger "helloWorldWhoAreYou". Passa inoltre un valore triggerPayload che contiene un solo campo, "whoAreYou". I valori "helloWorldWhoAreYou" e "whoAreYou" corrispondono a quelli immessi durante la registrazione del trigger nel passo precedente.

Nota:

Non esiste un ordine predefinito per l'esecuzione delle azioni. Sebbene ogni azione venga chiamata in base all'ordine della lista, non ne viene atteso il completamento prima che l'azione successiva venga richiamata. Se effettua una chiamata asincrona, un'azione potrebbe non essere completata prima dell'esecuzione dell'azione successiva.