작업 설정

작업 등록을 활용하도록 구성요소를 설정하여 구성요소 내의 작업을 실행할 페이지 위에 놓을 수 있습니다.

작업 등록

작업은 트리거가 발생할 때 구성요소에서 호출됩니다. 구성요소는 원하는 수의 작업을 등록하고 작업이 지원하는 페이로드를 정의할 수도 있습니다. 사용자가 작업을 선택하면 페이로드를 채워서 작업으로 전달할 수 있습니다.

트리거 등록과 마찬가지로, 테마의 appinfo.json 등록 데이터에 구성요소가 지원하는 작업을 등록할 수 있습니다.

다음은 작업 등록 방법의 예입니다.

  1. 구성요소의 appinfo.json 파일을 편집하고 "actions":[], 항목을 업데이트합니다.
    "actions": [{
      "actionName": "helloWorldChangeWhoIAm",
      "actionDescription": "Change Who I Am",
      "actionPayload": [{
        "name": "whoAreYou",
        "description": "Who are you?",
        "type": {
          "ojComponent": {
           "component": "ojInputText"}
          },
        },
        "value": ""
      }]
    }]
  2. 작업이 등록되면 구성요소의 설정 패널에 있는 링크 탭에서 트리거를 누를 때 호출되는 작업 대화상자에서 볼 수 있습니다.

작업 실행

작업이 등록되면 구성요소 내의 작업을 실행할 페이지 위에 구성요소를 놓을 수 있습니다. 구성요소가 작업을 실행하려면 EXECUTE_ACTION 메시지를 수신해야 합니다. 이 메시지에는 작업으로 전달된 페이로드도 포함되며, 여기서 예상 값을 추출해야 합니다.

예를 들어, EXECUTE_ACTION 메시지를 수신하려면 render.js 파일을 편집하고 다음 항목으로 ViewModel 객체를 업데이트합니다.
self.executeActionListener = function (args) {
  // get action and payload
  var payload = $.isArray(args.payload) ? args.payload[0] : {},
        action = args.action,
        actionName = action && action.actionName;

  // handle 'helloWorldChangeWhoIAm' actions
  if ((actionName === 'helloWorldChangeWhoIAm') && (payload.name === 'whoAreYou')) {
    self.whoAreYou(payload.value);
  }
};

작업을 실행하는 JavaScript 함수가 생성되고 EXECUTE_ACTION 메시지가 발생할 때마다 Sites SDK를 사용하여 함수를 호출합니다.

EXECUTE_ACTION 메시지가 발생할 때마다 작업이 호출되며, 구성요소는 처리하도록 설계된 작업만 처리할 수 있습니다. 이를 위해 작업 이름을 검사하여 처리할 수 있는 작업인지 확인해야 합니다.

작업 페이로드는 값의 배열입니다. 예제에서는 값이 배열의 첫번째 항목이라고 가정합니다. 일반적으로 배열에서 원하는 페이로드 값을 찾아야 합니다.

주:

작업 리스너는 콜백이기 때문에 함수를 실행할 때 ViewModel에 액세스할 수 있도록 JavaScript 클로저를 사용하거나 함수를 적절히 바인딩해야 합니다.