Документация по настройке процессов
PDF
Примеры использования бизнес-процессов
Это документация Creatio версии 7.12.0. Мы рекомендуем использовать новую версию документации.

Как использовать интеграцию с веб-сервисами для обновления курсов валют в справочнике [Валюты]

В bpm’online используется специальный элемент процесса для вызова веб-сервисов и обработки полученных данных.

Пример

Создайте бизнес процесс, который автоматически получит последние актуальные курсы обмена валют при помощи веб-сервиса http://api.fixer.io/ и обновит курсы на детали [Курс валюты] справочника [Валюты].

Важно

Детальные инструкции по настройке интеграции с веб-сервисом “http://fixer.io/” приведены в документации Fixer. Подробнее >>>

Общая схема бизнес-процесса (Рис. 333):

Рис. 333 — Процесс “Обновить курсы валют”

scr_process_creation_designer_web_service_process_diagram.png 

1.Пользовательский параметр бизнес процесса: “Базовая валюта”, который содержит текущее значение системной настройки [Базовая валюта]. Подробнее –›>>

2.Начальное событие [Стартовый таймер]: “Запускать ежедневно” — процесс запускается ежедневно в определенное время. Подробнее –›>>

3.Действие системы [Читать данные]: “Читать базовую валюту” — процесс получает название текущей базовой валюты. Подробнее –›>>

4.Действие системы [Вызвать веб-сервис]Получить курс обмена валют с веб-сервиса Fixer” — процесс вызывает метод “latest” для получения курсов обмена по отношению к текущей базовой валюте. Элемент содержит два исходящих условных потока:

a.“Выполнено”: процесс продолжает обновлять валюты, если был получен ответ от веб-сервиса.

b.“Ошибка”: процесс завершится, если в результате вызова веб-сервиса произошла ошибка или был превышен срок ожидания.

5.Системные действия [Добавить данные]: добавить запись на деталь [Курс валюты] для необходимых валют. Например, “Добавить курс евро”— процесс добавит запись на деталь [Курс валюты] для валюты “евро”. В добавленной записи поле [Курс] будет содержать курс обмена валюты, полученный от веб-сервиса.

6.Логическое И: этот логический оператор обеспечит завершение процесса только после обновления всех курсов валют.

Базовая валюта bpm’online указывается в системной настройке [Базовая валюта]. Используйте пользовательский параметр, чтобы передать бизнес-процессу текущее значение системной настройки “Базовая валюта”:

1.Нажмите icn_process_properties.png, перейдите на вкладку [Параметры] и нажмите кнопку [Добавить параметр]. Выберите тип параметра “Справочник” (Рис. 334).

Рис. 334 — Добавление пользовательского параметра процесса типа “Справочник”

scr_process_creation_designer_add_lookup_parameter.png 

2.Заполните свойства параметра (Рис. 335):

Рис. 335 — Передача значения пользовательского параметра процесса в системную настройку

scr_process_creation_designer_add_sys_setting_parameter_value.png 

a.Заполните поля [Название] и [Код].

b.В поле [Справочник] выберите справочник “Валюта”.

c.В поле [Значение] нажмите btn_process_element_settings_lookup00025.png –> [Системная настройка] и выберите системную настройку [Базовая валюта].

Свойства элемента “Запускать ежедневно” (Рис. 336):

Рис. 336 — Элемент таймера по событию “Запускать ежедневно”

scr_process_creation_designer_web_service_start_timer_event.png 

1.В поле [Периодичность запуска процесса] выберите “День”.

2.В блоке полей [Запускать каждые] укажите “1 день в 1:30”.

3.Выберите свой часовой пояс и настройте другие свойства при необходимости.

Свойства элемента “Читать базовую валюту” (Рис. 337):

Рис. 337 — Свойства элемента “Читать базовую валюту”

scr_process_creation_designer_web_service_read_data.png 

1.В поле [Какой режим чтения данных использовать?] укажите “Читать первую запись из выборки”.

2.В поле [Из какого объекта читать данные?] укажите “Валюта”.

3.В области [Как отфильтровать записи?] установите следующий фильтр: “Id = Базовая валюта”. В данном случае “Базовая валюта” — это название пользовательского параметра процесса, который вы добавили ранее.

На заметку

Чтобы установить фильтр: нажмите [Добавить условие], выберите колонку [Id]; нажмите [<?>] и выберите команду [Сравнить с параметром]; в окне [Выбор параметра] нажмите вкладку [Параметры процесса] и выберите параметр “Базовая валюта”, который вы добавили ранее.

4.В поле [Значение каких колонок вычитать?] выберите “Только выбранных колонок”.

5.Нажмите [Добавить колонку] и выберите колонку [Краткое название], чтобы процесс вычитал краткое название базовой валюты (USD, EUR, и т.д.) из справочника.

Свойства элемента “Получить курс обмена валют с веб-сервиса Fixer” (Рис. 338):

Рис. 338 — Свойства элемента “Получить курс обмена валют с веб-сервиса Fixer”:

scr_process_creation_designer_web_service_element_properties.png 

Важно

Перед тем, как использовать элемент [Вызвать веб-сервис], убедитесь, что вы установили интеграцию с необходимым веб-сервисом, используя раздел [Веб-сервисы] в рабочем месте [Студия]. Инструкции по настройке интеграции с веб-сервисом “http://fixer.io/” описаны в отдельной статье. Подробнее >>>

1.В поле [Какой сервис вызывать?] выберите “Курсы обмена валют (Fixer)”.

2.В поле [Какой метод вызывать?] выберите метод “Получить курсы обмена”.

На заметку

Веб-сервис “http://fixer.io/” не требует аутентификации, поэтому вы можете использовать только один элемент [Вызвать веб-сервис], чтобы получить ответ в течение требуемого периода. Если веб-сервис требует аутентификации, то помимо методов запроса на получение требуемых данных, вам нужно настроить методы аутентификации. На схеме процесса вам потребуется добавить как минимум два элемента [Вызвать веб-сервис]: первый элемент вызовет метод аутентификации, а второй элемент [Вызвать веб-сервис] вызовет необходимый функциональный метод, передавая cookie аутентификации, Id сессии и т.д. в качестве параметра запроса.

3.Заполните значения параметров вызова:

a.Укажите значение параметра [Базовая валюта], передав его из параметра [Краткое название] элемента “Читать базовую валюту”. Для этого нажмите btn_process_element_settings_lookup00026.png —> [Параметр процесса] и выберите элемент [Читать базовую валюту] и его параметр [Краткое название].

b.Укажите значение для параметра [Endpoint]. Для данного процесса достаточно использовать endpoint “latest”. Введите значение “latest” вручную.

4.Добавьте исходящий поток к логическому оператору [Логическое “И”]. Установите условие для перехода по этому потоку — только в случае, если исходящий параметр [Выполнено] элемента “Получить курс обмена валют с веб-сервиса Fixer” имеет значение “true”:

a.В поле [Условие перехода] нажмите кнопку btn_process_element_settings_lookup00027.png.

b.В открывшемся окне [Формула] на вкладке [Элементы процесса] выберите элемент “Получить курс обмена валют с веб-сервиса Fixer”.

c.В правой части окна двойным нажатием выберите параметр [Выполнено].

d.Добавьте к переменной параметра текст “==true”, чтобы конечная формула имела следующий вид: [#Получить курс обмена валют с веб-сервиса Fixer.Выполнено#]==true

5.Добавьте исходящий условный поток к сигналу [Останов]. Установите условие для перехода по этому потоку — только в случае, если исходящий параметр [Выполнено] элемента “Получить курс обмена валют с веб-сервиса Fixer” имеет значение “false”. Таким образом, если вызов веб-сервиса заканчивается ошибкой, процесс остановится.

Добавьте элемент [Добавить данные] для каждого курса, который нужно обновить. Например, для обновления курса евро настройте следующие свойства элемента “Добавить курс евро” (Рис. 339):

Рис. 339 — Свойства элемента “Добавить курс евро”

scr_process_creation_designer_web_service_add_data.png 

1.В поле [В какой объект добавить данные] выберите объект [Курс валюты], который является объектом детали [Курс валюты] справочника [Валюты].

2.В поле [Какой режим добавления данных?] выберите “Добавить одну запись”.

3.В поле [Какие значения колонок установить?] добавьте три поля, нажав на ссылку [Добавить поле]:

a.Добавьте поле [Валюта], нажмите btn_process_element_settings_lookup00028.png —> [Значение справочника] и выберите валюту, для которой будет добавлен курс (в данном случае это “Евро”).

b.Добавьте поле [Курс], нажмите btn_process_element_settings_lookup00029.png —> [Параметр процесса]. В окне [Выбор параметра] (Рис. 340) выберите элемент “Получить курс обмена валют с веб-сервиса Fixer” в левой части окна, и его параметр [RatesEUR] в правой части. Это и есть курс валюты, который будет записан.

c.Добавьте поле [Начало]. Затем нажмите btn_process_element_settings_lookup00030.png –> [Дата и время] –> [Текущие дата и время]. Таким образом запишется дата и время обновления курса валют в колонке [Начало] детали [Курс валюты] справочника [Валюты].

Рис. 340 — Передача исходящих параметров элемента процесса [Вызвать веб-сервис]

scr_process_creation_designer_web_service_select_rate.png 

4.Установите элемент [Добавить данные] для курсов других валют аналогичным способом. Например:

a.Для обновления курса австралийского доллара: [Валюта] — “Австралийский доллар”, [Курс валют] — “RatesAUD”, [Начало] — [Текущие дата и время].

b.Для обновления курса рубля: [Валюта] — “Рубль”, [Курс валют] — “RatesRUB”, [Начало] — [Текущие дата и время].

В результате процесс будет запускаться автоматически каждый день в 01:30. Процесс будет:

  • проверять курс текущей базовой валюты,

  • вызывать веб-сервис для получения курсов валют относительно базовой валюты,

  • записывать обновленные курсы для выбранных валют (в данном случае для евро, австралийского доллара и рубля) на детали [Курс валюты] в справочнике [Валюты] (Рис. 341).

Если вызов веб-сервиса заканчивается ошибкой, процесс остановится.

Рис. 341— Обновленные курсы валют на детали [Курс Валюты] в справочнике [Валюты]

scr_process_creation_designer_web_services_result.png 

Смотрите также

Событие [Стартовый таймер]

Элемент процесса [Читать данные]

Элемент процесса [Вызвать веб-сервис]

Элемент процесса [Добавить данные]

Был ли данный материал полезен?

Как можно улучшить эту статью?