Ustawianie wyzwalaczy

Składnik może zawierać wyzwalacze uruchamiające czynności w innych składnikach. Wyzwalacze, aby były uaktywniane przez składniki, trzeba zarejestrować.

Składnik dostarcza do wyzwalacza ładunek, który jest przekazywany do czynności uruchamianej w chwili uaktywnienia wyzwalacza. Można wybrać czynności uruchamiane dla poszczególnych wyzwalaczy. Składniki, które są projektowane z myślą o ich współpracy, mogą automatycznie uaktywniać wyzwalacze w celu uruchamiania czynności bez interakcji użytkownika.

Rejestrowanie wyzwalaczy

W przypadku składnika niestandardowego wyzwalacze są rejestrowane w ramach jego danych rejestracyjnych. Aby dodać wyzwalacz, należy zaktualizować tablicę właściwości "triggers", dodając do niej obsługiwany wyzwalacz. Trzeba także określić ładunek obsługiwany przez wyzwalacz, aby mógł zostać utworzony interfejs użytkownika umożliwiający użytkownikom odwzorowywanie wartości z ładunku na właściwości obsługiwane przez czynność.

  1. Otworzyć plik appinfo.json do edycji i sprawdzić wpis "triggers":[],:
    "triggers": [{
        "triggerName": "helloWorldWhoAreYou",
        "triggerDescription": "Show Who I Am",
        "triggerPayload": [{
          "name": "whoAreYou",
          "displayName": "Who I Am"
       }]
    }],
  2. Zsynchronizować plik z serwerem serwisów.

W tym przykładowym wpisie wyzwalacza została zdefiniowana właściwość triggerName ("helloWorldWhoAreYou"). Wartość tej właściwości musi być unikatowa. Wyzwalacz ma przypisany opis ("Show Who I Am"), który jest używany w oknie dialogowym, w interfejsie użytkownika, do wyświetlenia wyzwalacza. Na koniec został zdefiniowany ładunek wartości dla wyzwalacza; użytkownicy będą mogli wybierać wpisy z tego ładunku i odwzorowywać je na pola używane w czynności.

Gdy wyzwalacz zostanie zarejestrowany, będzie można go zobaczyć i wybrać po przejściu na kartę Łącze w panelu ustawień składnika.

Uaktywnianie wyzwalaczy

Wyzwalacze mogą być uaktywniane w dowolnej chwili przez składnik. Zazwyczaj wyzwalacz jest uaktywniany wskutek interakcji użytkownika, takiej jak naciśnięcie przycisku lub wybranie wiersza w tabeli. Składnik może uaktywnić wyzwalacz na podstawie dowolnych kryteriów — na przykład, gdy dane ulegną zmianie spowodowanej wywołaniem REST API. Gdy wyzwalacz zostanie uaktywniony, może być wykonywana dowolna liczba czynności.

Przykład uaktywniania wyzwalacza:
  1. Otworzyć plik render.js do edycji i dodać w obiekcie viewModel funkcję JavaScript, która będzie wywoływać Sites SDK w celu uaktywnienia wyzwalacza.
    self.raiseTrigger = function (triggerName) {
      SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
        'triggerName': 'helloWorldWhoAreYou', 
        'triggerPayload': { "whoAreYou": "This is " + self.whoAreYou() + "!"}
      });
    };
  2. Dodać w interfejsie użytkownika wpis wywołujący funkcję uaktywniającą wyzwalacz (-edit template.html) oraz poprzedzić składnik </div> przyciskiem.
    <button data-bind="click raiseTrigger">Who Am I?</button>
  3. Zsynchronizować (lub wysłać) plik render.js z serwerem swojej instancji Oracle Content Management.

W obiekcie ViewModel utworzyliśmy funkcję JavaScript, która zostanie wywołana, gdy przycisk zostanie naciśnięty (click). Funkcja ta wywołuje Sites SDK i zleca mu uaktywnienie wszystkich czynności zdefiniowanych dla tego wyzwalacza "helloWorldWhoAreYou". Przekazuje także ładunek triggerPayload zawierający jedno pole "whoAreYou". Wartości "helloWorldWhoAreYou" i "whoAreYou" odpowiadają tym, które wprowadziliśmy na poprzednim etapie, rejestrując wyzwalacz.

Uwaga:

Nie ma określonej kolejności wykonywania czynności. Mimo że czynności są wywoływane w kolejności, w jakiej są wyszczególnione, to jednak nie ma okresu oczekiwania na ukończenie poprzedniej czynności — następna czynność jest wywoływana od razu. Jeśli czynność wykonuje wywołanie asynchroniczne, to jej działanie może nie zostać ukończone, zanim zostanie wywołana następna czynność.