Как использовать интеграцию с веб-сервисами для обновления курсов валют в справочнике [Валюты]
В bpm’online используется специальный элемент процесса для вызова веб-сервисов и обработки полученных данных.
Пример
Создайте бизнес процесс, который автоматически получит последние актуальные курсы обмена валют при помощи веб-сервиса http://api.fixer.io/ и обновит курсы на детали [Курс валюты] справочника [Валюты].
Важно
Детальные инструкции по настройке интеграции с веб-сервисом “http://fixer.io/” приведены в документации Fixer. Подробнее >>>
Общая схема бизнес-процесса (Рис. 333):
1.Пользовательский параметр бизнес процесса: “Базовая валюта”, который содержит текущее значение системной настройки [Базовая валюта]. Подробнее –›>>
2.Начальное событие [Стартовый таймер]: “Запускать ежедневно” — процесс запускается ежедневно в определенное время. Подробнее –›>>
3.Действие системы [Читать данные]: “Читать базовую валюту” — процесс получает название текущей базовой валюты. Подробнее –›>>
4.Действие системы [Вызвать веб-сервис] “Получить курс обмена валют с веб-сервиса Fixer” — процесс вызывает метод “latest” для получения курсов обмена по отношению к текущей базовой валюте. Элемент содержит два исходящих условных потока:
a.“Выполнено”: процесс продолжает обновлять валюты, если был получен ответ от веб-сервиса.
b.“Ошибка”: процесс завершится, если в результате вызова веб-сервиса произошла ошибка или был превышен срок ожидания.
5.Системные действия [Добавить данные]: добавить запись на деталь [Курс валюты] для необходимых валют. Например, “Добавить курс евро”— процесс добавит запись на деталь [Курс валюты] для валюты “евро”. В добавленной записи поле [Курс] будет содержать курс обмена валюты, полученный от веб-сервиса.
6.Логическое И: этот логический оператор обеспечит завершение процесса только после обновления всех курсов валют.
Базовая валюта bpm’online указывается в системной настройке [Базовая валюта]. Используйте пользовательский параметр, чтобы передать бизнес-процессу текущее значение системной настройки “Базовая валюта”:
1.Нажмите , перейдите на вкладку [Параметры] и нажмите кнопку [Добавить параметр]. Выберите тип параметра “Справочник” (Рис. 334).
2.Заполните свойства параметра (Рис. 335):
a.Заполните поля [Название] и [Код].
b.В поле [Справочник] выберите справочник “Валюта”.
c.В поле [Значение] нажмите –> [Системная настройка] и выберите системную настройку [Базовая валюта].
Свойства элемента “Запускать ежедневно” (Рис. 336):
1.В поле [Периодичность запуска процесса] выберите “День”.
2.В блоке полей [Запускать каждые] укажите “1 день в 1:30”.
3.Выберите свой часовой пояс и настройте другие свойства при необходимости.
Свойства элемента “Читать базовую валюту” (Рис. 337):
1.В поле [Какой режим чтения данных использовать?] укажите “Читать первую запись из выборки”.
2.В поле [Из какого объекта читать данные?] укажите “Валюта”.
3.В области [Как отфильтровать записи?] установите следующий фильтр: “Id = Базовая валюта”. В данном случае “Базовая валюта” — это название пользовательского параметра процесса, который вы добавили ранее.
На заметку
Чтобы установить фильтр: нажмите [Добавить условие], выберите колонку [Id]; нажмите [<?>] и выберите команду [Сравнить с параметром]; в окне [Выбор параметра] нажмите вкладку [Параметры процесса] и выберите параметр “Базовая валюта”, который вы добавили ранее.
4.В поле [Значение каких колонок вычитать?] выберите “Только выбранных колонок”.
5.Нажмите [Добавить колонку] и выберите колонку [Краткое название], чтобы процесс вычитал краткое название базовой валюты (USD, EUR, и т.д.) из справочника.
Свойства элемента “Получить курс обмена валют с веб-сервиса Fixer” (Рис. 338):
Важно
Перед тем, как использовать элемент [Вызвать веб-сервис], убедитесь, что вы установили интеграцию с необходимым веб-сервисом, используя раздел [Веб-сервисы] в рабочем месте [Студия]. Инструкции по настройке интеграции с веб-сервисом “http://fixer.io/” описаны в отдельной статье. Подробнее >>>
1.В поле [Какой сервис вызывать?] выберите “Курсы обмена валют (Fixer)”.
2.В поле [Какой метод вызывать?] выберите метод “Получить курсы обмена”.
На заметку
Веб-сервис “http://fixer.io/” не требует аутентификации, поэтому вы можете использовать только один элемент [Вызвать веб-сервис], чтобы получить ответ в течение требуемого периода. Если веб-сервис требует аутентификации, то помимо методов запроса на получение требуемых данных, вам нужно настроить методы аутентификации. На схеме процесса вам потребуется добавить как минимум два элемента [Вызвать веб-сервис]: первый элемент вызовет метод аутентификации, а второй элемент [Вызвать веб-сервис] вызовет необходимый функциональный метод, передавая cookie аутентификации, Id сессии и т.д. в качестве параметра запроса.
3.Заполните значения параметров вызова:
a.Укажите значение параметра [Базовая валюта], передав его из параметра [Краткое название] элемента “Читать базовую валюту”. Для этого нажмите —> [Параметр процесса] и выберите элемент [Читать базовую валюту] и его параметр [Краткое название].
b.Укажите значение для параметра [Endpoint]. Для данного процесса достаточно использовать endpoint “latest”. Введите значение “latest” вручную.
4.Добавьте исходящий поток к логическому оператору [Логическое “И”]. Установите условие для перехода по этому потоку — только в случае, если исходящий параметр [Выполнено] элемента “Получить курс обмена валют с веб-сервиса Fixer” имеет значение “true”:
a.В поле [Условие перехода] нажмите кнопку .
b.В открывшемся окне [Формула] на вкладке [Элементы процесса] выберите элемент “Получить курс обмена валют с веб-сервиса Fixer”.
c.В правой части окна двойным нажатием выберите параметр [Выполнено].
d.Добавьте к переменной параметра текст “==true”, чтобы конечная формула имела следующий вид: [#Получить курс обмена валют с веб-сервиса Fixer.Выполнено#]==true
5.Добавьте исходящий условный поток к сигналу [Останов]. Установите условие для перехода по этому потоку — только в случае, если исходящий параметр [Выполнено] элемента “Получить курс обмена валют с веб-сервиса Fixer” имеет значение “false”. Таким образом, если вызов веб-сервиса заканчивается ошибкой, процесс остановится.
Добавьте элемент [Добавить данные] для каждого курса, который нужно обновить. Например, для обновления курса евро настройте следующие свойства элемента “Добавить курс евро” (Рис. 339):
1.В поле [В какой объект добавить данные] выберите объект [Курс валюты], который является объектом детали [Курс валюты] справочника [Валюты].
2.В поле [Какой режим добавления данных?] выберите “Добавить одну запись”.
3.В поле [Какие значения колонок установить?] добавьте три поля, нажав на ссылку [Добавить поле]:
a.Добавьте поле [Валюта], нажмите —> [Значение справочника] и выберите валюту, для которой будет добавлен курс (в данном случае это “Евро”).
b.Добавьте поле [Курс], нажмите —> [Параметр процесса]. В окне [Выбор параметра] (Рис. 340) выберите элемент “Получить курс обмена валют с веб-сервиса Fixer” в левой части окна, и его параметр [RatesEUR] в правой части. Это и есть курс валюты, который будет записан.
c.Добавьте поле [Начало]. Затем нажмите –> [Дата и время] –> [Текущие дата и время]. Таким образом запишется дата и время обновления курса валют в колонке [Начало] детали [Курс валюты] справочника [Валюты].
4.Установите элемент [Добавить данные] для курсов других валют аналогичным способом. Например:
a.Для обновления курса австралийского доллара: [Валюта] — “Австралийский доллар”, [Курс валют] — “RatesAUD”, [Начало] — [Текущие дата и время].
b.Для обновления курса рубля: [Валюта] — “Рубль”, [Курс валют] — “RatesRUB”, [Начало] — [Текущие дата и время].
В результате процесс будет запускаться автоматически каждый день в 01:30. Процесс будет:
-
проверять курс текущей базовой валюты,
-
вызывать веб-сервис для получения курсов валют относительно базовой валюты,
-
записывать обновленные курсы для выбранных валют (в данном случае для евро, австралийского доллара и рубля) на детали [Курс валюты] в справочнике [Валюты] (Рис. 341).
Если вызов веб-сервиса заканчивается ошибкой, процесс остановится.
Смотрите также
•Элемент процесса [Читать данные]