Triggers instellen

Een component kan triggers bevatten waarmee acties in andere componenten worden uitgevoerd. Triggers die door componenten moeten worden gegenereerd, moet u registreren.

De component levert een payload voor een trigger, die vervolgens wordt doorgegeven aan een actie die wordt uitgevoerd wanneer de trigger wordt gegenereerd. U kunt selecteren welke acties worden uitgevoerd voor elke trigger. Componenten die zijn ontworpen om samen te werken kunnen automatisch triggers genereren om acties uit te voeren zonder gebruikersinteractie.

Triggers registreren

Voor aangepaste componenten worden triggers geregistreerd als onderdeel van de registratiegegevens voor de component. Als u een trigger wilt toevoegen, werkt u de array van de eigenschap "triggers" bij met elke trigger die door de component wordt ondersteund. U moet ook de payload opgeven die door de trigger wordt ondersteund zodat de gebruikersinterface kan worden gemaakt waarin gebruikers waarden in de payload kunnen toewijzen aan eigenschappen die door de actie worden ondersteund.

  1. Bewerk het bestand appinfo.json en controleer de ingang "triggers":[],:
    "triggers": [{
        "triggerName": "helloWorldWhoAreYou",
        "triggerDescription": "Show Who I Am",
        "triggerPayload": [{
          "name": "whoAreYou",
          "displayName": "Who I Am"
       }]
    }],
  2. Synchroniseer het bestand met de siteserver.

In deze voorbeeldtriggeringang hebt u de trigger triggerName ("helloWorldWhoAreYou") gedefinieerd. De waarde voor de naam moet uniek zijn. Vervolgens hebt u een beschrijving voor de trigger opgegeven ("Show Who I Am"), die wordt gebruikt om uw trigger weer te geven in het dialoogvenster van de gebruikersface. Tot slot hebt u een payload met één waarde voor de trigger gedefinieerd. Gebruikers kunnen ingangen in deze payload selecteren en deze toewijzen aan velden in de actie.

Als een trigger eenmaal is geregistreerd, kunt u deze bekijken en selecteren op het tabblad Koppeling in het paneel 'Instellingen' voor uw component.

Triggers genereren

Triggers kunnen op elk punt worden gegenereerd door een component. Gewoonlijk wordt een trigger gegenereerd door een interactie van de gebruiker, zoals het klikken op een knop of het selecteren van een rij in een tabel. Een component kan de trigger genereren op basis van elk criterium, bijvoorbeeld wanneer gegevens zijn gewijzigd door een REST-API-aanroep. U kunt elk gewenst aantal acties uitvoeren wanneer een trigger wordt gegenereerd.

Hier ziet u een voorbeeld van hoe u een trigger kunt genereren:
  1. Bewerk het bestand render.js en voeg een JavaScript-functie toe in het object viewModel waarmee de Sites SDK wordt aangeroepen om de trigger te genereren.
    self.raiseTrigger = function (triggerName) {
      SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
        'triggerName': 'helloWorldWhoAreYou', 
        'triggerPayload': { "whoAreYou": "This is " + self.whoAreYou() + "!"}
      });
    };
  2. Voeg een ingang toe in de gebruikersinterface om de trigger (-edit template.html) te genereren en voeg een knop toe vóór </div>.
    <button data-bind="click raiseTrigger">Who Am I?</button>
  3. Synchroniseer of upload het bestand render.js naar de server van uw Oracle Content Management instance.

In het object ViewModel hebt u een JavaScript-functie gemaakt die wordt aangeroepen wanneer op de knop wordt geklikt. Met deze functie wordt de Sites SDK aangeroepen om alle acties te laten uitvoeren die voor deze trigger "helloWorldWhoAreYou" zijn gedefinieerd. Met de functie wordt ook een triggerPayload met één veld, "whoAreYou", doorgegeven. Deze waarden, "helloWorldWhoAreYou" en "whoAreYou", komen overeen met de waarden die u hebt ingevoerd bij het registreren van de trigger in de vorige stap.

Opmerking:

Er is geen vooraf gedefinieerde volgorde voor wanneer een actie wordt uitgevoerd. Hoewel de acties worden aangeroepen in de volgorde die wordt aangegeven, wordt er niet gewacht tot de actie is voltooid voordat de volgende actie wordt aangeroepen. Als met een actie een asynchrone aanroep wordt gestart, wordt die mogelijk niet voltooid voordat de volgende actie wordt uitgevoerd.