Triggerek beállítása

Az összetevő olyan triggereket is tartalmazhat, amelyek a műveleteket más összetevőkben fogják végrehajtani. Az összetevők által indítható triggereket regisztrálni kell.

Az összetevő olyan adattörzset biztosít a trigger számára, amely minden olyan műveletnek átadódik, amely a trigger indításakor végrehajtódik. Megadhatja, hogy az egyes triggereknél mely műveletek végrehajtására kerüljön sor. Az együttműködésre alkalmas összetevők automatikusan elindíthatják a triggereket, hogy felhasználói beavatkozás nélkül végrehajthassák a műveleteket.

Triggerek regisztrálása

Egyéni összetevő esetében a triggerek regisztrálása az összetevő adatainak regisztrációja részeként megy végbe. Trigger hozzáadásához módosítsa a "triggers" tulajdonságtömböt az összetevő által támogatott minden egyes triggerrel. Meg kell adnia a trigger által támogatott adattörzset is egy olyan felhasználói felület létrehozásához, amely segítségével a felhasználók leképezhetik az adattörzsben lévő értékeket a művelet által támogatott tulajdonságokra.

  1. Szerkessze az appinfo.json fájlt, és ellenőrizze a "triggers":[], bejegyzést:
    "triggers": [{
        "triggerName": "helloWorldWhoAreYou",
        "triggerDescription": "Show Who I Am",
        "triggerPayload": [{
          "name": "whoAreYou",
          "displayName": "Who I Am"
       }]
    }],
  2. Szinkronizálja a fájlt a webhelyek kiszolgálójához.

Ebben a minta triggerbejegyzésben egy triggerName nevet definiált ("helloWorldWhoAreYou"). A név értékének egyedinek kell lennie. Utána megadta a trigger leírását ("Show Who I Am"), amelyet a felhasználói felületi párbeszéd használ a trigger megjelenítéséhez. Végül definiált a trigger számára egy egyetlen értéket tartalmazó adattörzset, amelyben majd a felhasználók kiválaszthatják a bejegyzéseket, és leképezhetik azokat a műveletben lévő mezőkre.

Miután regisztrált egy triggert, megtekintheti és kiválaszthatja azt, ha az adott összetevő Beállítások paneljének Hivatkozás lapjára lép.

Triggerek indítása

Az összetevő bármely pontnál elindíthatja a triggereket. Általában a triggert egy felhasználói beavatkozás indítja el, például egy gombra kattintás vagy egy táblázat egyik sorának a kiválasztása. Egy összetevő bármilyen feltétel alapján elindíthatja a triggert, például amikor egy REST API hívása miatt megváltoznak az adatok. Egy trigger elindításakor bármennyi művelet végrehajtható.

Íme egy példa egy trigger elindítására:
  1. Szerkessze a render.js fájlt, és adjon hozzá egy olyan JavaScript függvényt a viewModel objektumban, amely meghívja a Sites SDK-t, ami elindítja a triggert.
    self.raiseTrigger = function (triggerName) {
      SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
        'triggerName': 'helloWorldWhoAreYou', 
        'triggerPayload': { "whoAreYou": "This is " + self.whoAreYou() + "!"}
      });
    };
  2. Adjon hozzá egy bejegyzést a felhasználói felületen, amivel meghívja a függvényt, amely elindítja a triggert (-edit template.html) és egy gombot a következő előtt: </div>.
    <button data-bind="click raiseTrigger">Who Am I?</button>
  3. Szinkronizálja vagy töltse fel a render.js fájlt az Oracle Content Management példánykiszolgálójára.

A ViewModel objektumban létrehozott egy JavaScript függvényt, amelyet a gombra kattintással hívott meg. Ez a függvény meghívja a Sites SDK-t, és arra utasítja, hogy indítsa el a "helloWorldWhoAreYou" triggerhez definiált összes műveletet. Átmegy egy triggerPayload adattörzsön is, ami egyetlen "whoAreYou" mezőt tartalmaz. A "helloWorldWhoAreYou" és a "whoAreYou" értéke megegyezik azokkal az értékekkel, amelyeket az előző lépésben a trigger regisztrálásakor adott meg.

Megjegyzés:

Nincs előre definiált sorrend, hogy mikor hajtódjon végre egy művelet. Habár az egyes műveletek a felsorolt sorrendben lesznek meghívva, a rendszer nem várja meg az aktuális művelet befejeződését, mielőtt meghívná a következő műveletet. Ha egy művelet aszinkron hívást hajt végre, nem fejeződhet be a következő művelet végrehajtása előtt.