Мобильная Торговля
Версия
Расширение как шаг сценария

Общая информация

В МТ можно задать расширение(отчет) как шаг сценария. Для таких шагов-расширений работа может отличаться от стандартных (серийных) шагов сценария. То, что описано ниже, характерно именно для шагов сценария типа "Расширение". Обработчик действия (action) не может быть назначен как шаг-расширение.

По умолчанию шаг-расширение считается выполненным, если пользователь открыл этот шаг. Чтобы задать статус выполнения для шага-расширения в сценарии, нужно определить метод в скрипте данных с именем stepState, результатом выполнения которого будет статус переданный через метод setData api.result c ключом stateValue. Также есть нерекомендуемый к использованию вариант установки состояния шага: выполнение/невыполнение шага-расширения может регулироваться из скрипта через установку свойства type c помощью api.result.

Рассмотрим пример.

Пример установки скрипта как шага сценария

Допустим, у нас есть отчет Custom Sales, который должен быть выведен как шаг-расширение.

В отчете Торговый Агент заполняет информацию по товарам. Если он заполнил всю информацию, шаг считается выполненным. Если информация заполнена частично или не заполнена, шаг считается невыполненным.

Отчет состоит из manifest.json и файла скрипта custom_sales.js. В первую очередь в Чикаго наш отчет должен быть указан в соответствующих настройках (указывается имя скрипта без .js). Ответственному за часть Чикаго передаем имя скрипта - custom_sales.

Далее, в manifest.json необходимо установить параметр visible в значение false, чтобы отчет отображался как шаг сценария и не был виден в списке отчетов своей группы.

{
"uri": "stmobile://report/outletreports/custom_sales",
"type": "report",
"title": "Custom Sales",
"visible": false,
"icon": "./custom_icon",
"datascript": {
"script_file": "custom_sales.js"
},
"template": {
"template_file": "custom_sales.html"
}
}

Чтобы определить шаг-расширение как выполненный:

первый вариант, добавить в Data-скрипт функцию

function stepState() {
api.result.setData('stateValue', 'Completed');
}

второй вариант (не рекомендуемый), необходимо в функции data скрипта custom_sales.js установить свойству type api.result значение ok (api.result.type = 'ok'). Соответственно невыполеннный - установить свойству type api.result значение error (api.result.type = 'error').

Чтобы добавить кастомную иконку для шага сценария, нужно разместить файл с иконкой относительно файла манифеста и указать путь в поле icon.

Дополнительная информация

В случае если в Data-скрипте функция stepState не определена, при повторном открытии ранее выполненного шага-расширения значение свойства type api.result также оказывает влияние на статус шага сценария. Таким образом, установка значения error приведет к изменению состояния обратно на невыполненный.