Как использовать интеграцию с веб-сервисами для автоматического обновления курсов валют в справочнике [Валюты]
В Creatio используется специальный элемент процесса для вызова веб-сервисов и обработки полученных данных.
Пример
Создайте бизнес процесс, который автоматически получит последние актуальные курсы обмена валют при помощи веб-сервиса http://api.fixer.io/ и обновит курсы на детали [Курс валюты] справочника [Валюты].
Важно
Детальные инструкции по настройке интеграции с веб-сервисом “http://fixer.io/” приведены в документации Fixer. Подробнее >>>
Общая схема бизнес-процесса (Рис. 347):
параметр бизнес процесса: “Базовая валюта”, который содержит текущее значение системной настройки [Базовая валюта]. Подробнее >>>
Пользовательский[Стартовый таймер]: “Запускать ежедневно” — процесс запускается ежедневно в определенное время. Подробнее >>>
Начальное событие[Читать данные]: “Читать базовую валюту” — процесс получает название текущей базовой валюты. Подробнее >>>
Действие системы[Вызвать веб-сервис] “Получить курс обмена валют с веб-сервиса Fixer” — процесс вызывает метод “latest” для получения курсов обмена по отношению к текущей базовой валюте. Элемент содержит два исходящих условных потока:
Действие системы“Выполнено”: процесс продолжает обновлять валюты, если был получен ответ от веб-сервиса.
“Ошибка”: процесс завершится, если в результате вызова веб-сервиса произошла ошибка или был превышен срок ожидания.
[Добавить данные]: добавить запись на деталь [Курс валюты] для необходимых валют. Например, “Добавить курс евро”— процесс добавит запись на деталь [Курс валюты] для валюты “евро”. В добавленной записи поле [Курс] будет содержать курс обмена валюты, полученный от веб-сервиса.
Системные действияЛогическое И: этот логический оператор обеспечит завершение процесса только после обновления всех курсов валют.
Базовая валюта Creatio указывается в системной настройке [Базовая валюта]. Используйте пользовательский параметр, чтобы передать бизнес-процессу текущее значение системной настройки “Базовая валюта”:
Рис. 348).
Нажмите , перейдите на вкладку [Параметры] и нажмите кнопку [Добавить параметр]. Выберите тип параметра “Справочник” (
Рис. 349):
Заполните свойства параметра (
Заполните поля [Название] и [Код].
В поле [Справочник] выберите справочник “Валюта”.
В поле [Значение] нажмите –> [Системная настройка] и выберите системную настройку [Базовая валюта].
Свойства элемента “Запускать ежедневно” (Рис. 350):
В поле [Периодичность запуска процесса] выберите “День”.
В блоке полей [Запускать каждые] укажите “1 день в 1:30”.
Выберите свой часовой пояс и настройте другие свойства при необходимости.
Свойства элемента “Читать базовую валюту” (Рис. 351):
В поле [Какой режим чтения данных использовать?] укажите “Читать первую запись из выборки”.
В поле [Из какого объекта читать данные?] укажите “Валюта”.
В области [Как отфильтровать записи?] установите следующий фильтр: “Id = Базовая валюта”. В данном случае “Базовая валюта” — это название пользовательского параметра процесса, который вы добавили ранее.
На заметку
Чтобы установить фильтр: нажмите [Добавить условие], выберите колонку [Id]; нажмите [<?>] и выберите команду [Сравнить с параметром]; в окне [Выбор параметра] нажмите вкладку [Параметры процесса] и выберите параметр “Базовая валюта”, который вы добавили ранее.
В поле [Значение каких колонок вычитать?] выберите “Только выбранных колонок”.
Нажмите [Добавить колонку] и выберите колонку [Краткое название], чтобы процесс вычитал краткое название базовой валюты (USD, EUR, и т.д.) из справочника.
Свойства элемента “Получить курс обмена валют с веб-сервиса Fixer” (Рис. 352):
Важно
Перед тем, как использовать элемент [Вызвать веб-сервис], убедитесь, что вы установили интеграцию с необходимым веб-сервисом, используя раздел [Веб-сервисы] в рабочем месте [Студия]. Инструкции по настройке интеграции с веб-сервисом “http://fixer.io/” описаны в отдельной статье. Подробнее >>>
В поле [Какой сервис вызывать?] выберите “Курсы обмена валют (Fixer)”.
В поле [Какой метод вызывать?] выберите метод “Получить курсы обмена”.
На заметку
Веб-сервис “http://fixer.io/” не требует аутентификации, поэтому вы можете использовать только один элемент [Вызвать веб-сервис], чтобы получить ответ в течение требуемого периода. Если веб-сервис требует аутентификации, то помимо методов запроса на получение требуемых данных, вам нужно настроить методы аутентификации. На схеме процесса вам потребуется добавить как минимум два элемента [Вызвать веб-сервис]: первый элемент вызовет метод аутентификации, а второй элемент [Вызвать веб-сервис] вызовет необходимый функциональный метод, передавая cookie аутентификации, Id сессии и т.д. в качестве параметра запроса.
Заполните значения параметров вызова:
Укажите значение параметра [Базовая валюта], передав его из параметра [Краткое название] элемента “Читать базовую валюту”. Для этого нажмите —> [Параметр процесса] и выберите элемент [Читать базовую валюту] и его параметр [Краткое название].
Укажите значение для параметра [Endpoint]. Для данного процесса достаточно использовать endpoint “latest”. Введите значение “latest” вручную.
Добавьте исходящий поток к логическому оператору [Логическое “И”]. Установите условие для перехода по этому потоку — только в случае, если исходящий параметр [Выполнено] элемента “Получить курс обмена валют с веб-сервиса Fixer” имеет значение “true”:
В поле [Условие перехода] нажмите кнопку .
В открывшемся окне [Формула] на вкладке [Элементы процесса] выберите элемент “Получить курс обмена валют с веб-сервиса Fixer”.
В правой части окна двойным нажатием выберите параметр [Выполнено].
Добавьте к переменной параметра текст “==true”, чтобы конечная формула имела следующий вид: [#Получить курс обмена валют с веб-сервиса Fixer.Выполнено#]==true
Добавьте исходящий условный поток к сигналу [Останов]. Установите условие для перехода по этому потоку — только в случае, если исходящий параметр [Выполнено] элемента “Получить курс обмена валют с веб-сервиса Fixer” имеет значение “false”. Таким образом, если вызов веб-сервиса заканчивается ошибкой, процесс остановится.
Добавьте элемент [Добавить данные] для каждого курса, который нужно обновить. Например, для обновления курса евро настройте следующие свойства элемента “Добавить курс евро” (Рис. 353):
В поле [В какой объект добавить данные] выберите объект [Курс валюты], который является объектом детали [Курс валюты] справочника [Валюты].
В поле [Какой режим добавления данных?] выберите “Добавить одну запись”.
В поле [Какие значения колонок установить?] добавьте три поля, нажав на ссылку [Добавить поле]:
Добавьте поле [Валюта], нажмите —> [Значение справочника] и выберите валюту, для которой будет добавлен курс (в данном случае это “Евро”).
Рис. 354) выберите элемент “Получить курс обмена валют с веб-сервиса Fixer” в левой части окна, и его параметр [RatesEUR] в правой части. Это и есть курс валюты, который будет записан.
Добавьте поле [Курс], нажмите —> [Параметр процесса]. В окне [Выбор параметра] (Добавьте поле [Начало]. Затем нажмите –> [Дата и время] –> [Текущие дата и время]. Таким образом запишется дата и время обновления курса валют в колонке [Начало] детали [Курс валюты] справочника [Валюты].
Установите элемент [Добавить данные] для курсов других валют аналогичным способом. Например:
Для обновления курса австралийского доллара: [Валюта] — “Австралийский доллар”, [Курс валют] — “RatesAUD”, [Начало] — [Текущие дата и время].
Для обновления курса рубля: [Валюта] — “Рубль”, [Курс валют] — “RatesRUB”, [Начало] — [Текущие дата и время].
В результате процесс будет запускаться автоматически каждый день в 01:30. Процесс будет:
-
проверять курс текущей базовой валюты,
-
вызывать веб-сервис для получения курсов валют относительно базовой валюты,
-
записывать обновленные курсы для выбранных валют (в данном случае для евро, австралийского доллара и рубля) на детали [Курс валюты] в справочнике [Валюты] (Рис. 355).
Если вызов веб-сервиса заканчивается ошибкой, процесс остановится.
Смотрите также
•Элемент процесса [Читать данные]