В Creatio используется специальный элемент процесса для вызова веб-сервисов и обработки полученных данных.
Общая схема бизнес-процесса (Рис. 1):
-
Пользовательский параметр бизнес процесса: “Базовая валюта”, который содержит текущее значение системной настройки Базовая валюта.
-
Начальное событие Стартовый таймер: “Запускать ежедневно” — процесс запускается ежедневно в определенное время.
-
Действие системы Читать данные: “Читать базовую валюту” — процесс получает название текущей базовой валюты.
-
Действие системы Вызвать веб-сервис “Получить курс обмена валют с веб-сервиса Fixer” — процесс вызывает метод “latest” для получения курсов обмена по отношению к текущей базовой валюте. Элемент содержит два исходящих условных потока:
-
“Выполнено”: процесс продолжает обновлять валюты, если был получен ответ от веб-сервиса.
-
“Ошибка”: процесс завершится, если в результате вызова веб-сервиса произошла ошибка или был превышен срок ожидания.
-
-
Системные действия Добавить данные — добавить запись на деталь Курс валюты для необходимых валют. Например, “Добавить курс евро”— процесс добавит запись на деталь Курс валюты для валюты “евро”. В добавленной записи поле Курс будет содержать курс обмена валюты, полученный от веб-сервиса.
-
[Логическое И] —логический оператор обеспечит завершение процесса только после обновления всех курсов валют.
Для настройки процесса:
- Используйте пользовательский параметр, чтобы передать бизнес-процессу текущее значение системной настройки “Базовая валюта”.
- Нажмите , перейдите на вкладку Параметры и нажмите кнопку Добавить параметр. Выберите тип параметра “Справочник” (Рис. 2).
-
Заполните свойства параметра (Рис. 3):
-
Заполните поля Название и Код.
-
В поле Справочник выберите справочник “Валюта”.
-
В поле Значение нажмите —> Системная настройка и выберите системную настройку Базовая валюта.
-
- Нажмите , перейдите на вкладку Параметры и нажмите кнопку Добавить параметр. Выберите тип параметра “Справочник” (Рис. 2).
- Настройте свойства элемента “Запускать ежедневно”:
-
В поле Периодичность запуска процесса выберите “День”.
-
В блоке полей Запускать каждые укажите “1 день в 1:30”.
-
Выберите свой часовой пояс и настройте другие свойства при необходимости .
-
- Настройте свойства элемента “Читать базовую валюту” (Рис. 5):
-
В поле Какой режим чтения данных использовать? укажите “Читать первую запись из выборки”.
-
В поле Из какого объекта читать данные? укажите “Валюта”.
-
В области Как отфильтровать записи? установите следующий фильтр: “Id = Базовая валюта”. В данном случае “Базовая валюта” — это название пользовательского параметра процесса, который вы добавили ранее.
-
В поле Значение каких колонок вычитать? выберите “Только выбранных колонок”.
-
Нажмите Добавить колонку и выберите колонку Краткое название, чтобы процесс вычитал краткое название базовой валюты (USD, EUR, и т.д.) из справочника.
-
- Настройте свойства элемента “Получить курс обмена валют с веб-сервиса Fixer” (Рис. 6):
-
В поле Какой сервис вызывать? выберите “Курсы обмена валют (Fixer)”.
-
В поле Какой метод вызывать? выберите метод “Получить курсы обмена”.
-
Заполните значения параметров вызова:
-
Укажите значение параметра Базовая валюта, передав его из параметра Краткое название элемента “Читать базовую валюту”. Для этого нажмите —> Параметр процесса и выберите элемент Читать базовую валюту и его параметр Краткое название.
-
Укажите значение для параметра Endpoint. Для данного процесса достаточно использовать endpoint “latest”. Введите значение “latest” вручную.
-
-
-
Добавьте исходящий поток к логическому оператору Логическое “И”. Установите условие для перехода по этому потоку — только в случае, если исходящий параметр Выполнено элемента “Получить курс обмена валют с веб-сервиса Fixer” имеет значение “true”:
- В поле Условие перехода нажмите кнопку .
- В открывшемся окне Формула на вкладке Элементы процесса выберите элемент “Получить курс обмена валют с веб-сервиса Fixer”.
- В правой части окна двойным нажатием выберите параметр Выполнено.
- Добавьте к переменной параметра текст “==true”, чтобы конечная формула имела следующий вид: #Получить курс обмена валют с веб-сервиса Fixer.Выполнено#==true
-
Добавьте исходящий условный поток к сигналу Останов. Установите условие для перехода по этому потоку — только в случае, если исходящий параметр Выполнено элемента “Получить курс обмена валют с веб-сервиса Fixer” имеет значение “false”. Таким образом, если вызов веб-сервиса заканчивается ошибкой, процесс остановится (Рис. 6).
- Добавьте элемент Добавить данные для каждого курса, который нужно обновить. Например, для обновления курса евро настройте следующие свойства элемента “Добавить курс евро” (Рис. 7):
В результате процесс будет запускаться автоматически каждый день в 01:30. Процесс будет:
Если вызов веб-сервиса заканчивается ошибкой, то процесс остановится.
-
проверять курс текущей базовой валюты,
-
вызывать веб-сервис для получения курсов валют относительно базовой валюты,
-
записывать обновленные курсы для выбранных валют (в данном случае для евро, австралийского доллара и рубля) на детали Курс валюты в справочнике Валюты (Рис. 8).
-