'svcscript' capability для WebSocket Token API

Содержание

Обзор

Запуск служебного сценария с передачей стартовых параметров и указанием таймаута выполнения. Ответ поступает после завершения работы сценария. В случае успешного завершения работы в ответе содержится объект со значениями всех локальных переменных.

Исполнение сценария и ожидание ответа можно прервать отправкой запроса abort_svcscript с тем же самым значением qid, что и исходный запрос start_svcscript. В этом случае сразу же поступает ответ на запрос с именем abort_svcscript_result.

Если ошибка параметров или запуска - ответное сообщение возвращается сразу. При недоступности ответственных микросервисов таймаут перед отправкой неудачного ответа может достигать 5 секунд.

Можно задать параметры startparam1, startparam2, …​, startparam20. Стартовые параметры передаются в сценарий и доступны в выражениях через функцию startparam(N). Первый стартовый параметр доступен в компоненте Старт для сохранения в переменную.

Можно задать параметр timeout в миллисекундах (по умолчанию 10000). По истечении таймаута ожидание ответа прерывается, сценарий тоже прерывается после очередного компонента.

Если нужно выполнять сценарии асинхронно, то достаточно отправлять запросы с уникальными qid и не ожидать ответов.

Пример запроса
[
  "start_svcscript",
  {
    "qid": 123,
    "code": "test_script",
    "startparam1": "abc",
    "startparam2": "def",
    "startparam5": "{\":a\":1}",
    "startparam12": "[{\"a\":\"123\"}\r\n,{\"a\":\"456\"}]",
    "timeout": 5000
  }
]
Пример ответа после завершения работы сценария
[
  "start_svcscript_result",
  {
    "qid": 123,
    "result": "ok",
    "data": {
      "variables": {
        "body": "[{\"a\":1,\"b\":\"111\"},\n{\"a\":2,\"b\":\"222\"},\n{\"a\":1,\"b\":\"333\"},\n{\"b\":\"444\"},\n{}]",
        "code": 36,
        "err": "",
        "path": ":SYNC/common/1.txt",
        "text": "hello"
      }
    }
  }
]
Пример ответа после обрыва.
[
  "abort_svcscript",
  {
    "qid": 123,
    "result": "ok"
  }
]

Параметры:

  • code - код служебного сценария в домене.

  • startparamN - параметр передаваемый в сценарий.

  • timeout - таймаут выполнения сценария в миллисекундах.

  • result - код результата.

  • data - объект с подробностями результата.

  • variables - объект со значениями всех локальных переменных сценария.