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

Продукты
Все продукты

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

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

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

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

Рис. 1 — Процесс “Обновить курсы валют”
scr_process_creation_designer_web_service_process_diagram.png
  1. Пользовательский параметр бизнес процесса: “Базовая валюта”, который содержит текущее значение системной настройки Базовая валюта.

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

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

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

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

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

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

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

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

Для настройки процесса:

  1. Используйте пользовательский параметр, чтобы передать бизнес-процессу текущее значение системной настройки “Базовая валюта”.
    1. Нажмите icn_process_properties.png, перейдите на вкладку Параметры и нажмите кнопку Добавить параметр. Выберите тип параметра “Справочник” (Рис. 2).
      Рис. 2 — Добавление пользовательского параметра процесса типа “Справочник”
      scr_process_creation_designer_add_lookup_parameter.png
    2. Заполните свойства параметра (Рис. 3):

      Рис. 3 — Передача значения пользовательского параметра процесса в системную настройку
      scr_process_creation_designer_add_sys_setting_parameter_value.png
      • Заполните поля Название и Код.

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

      • В поле Значение нажмите btn_process_element_settings_lookup00008.png —> Системная настройка и выберите системную настройку Базовая валюта.

  2. Настройте свойства элемента “Запускать ежедневно”:
    Рис. 4 — Элемент таймера по событию “Запускать ежедневно”
    scr_process_creation_designer_web_service_start_timer_event.png
    1. В поле Периодичность запуска процесса выберите “День”.

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

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

  3. Настройте свойства элемента “Читать базовую валюту” (Рис. 5):
    Рис. 5 — Свойства элемента “Читать базовую валюту”
    scr_process_creation_designer_web_service_read_data.png
    1. В поле Какой режим чтения данных использовать? укажите “Читать первую запись из выборки”.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    1. В поле Условие перехода нажмите кнопку btn_process_element_settings_lookup00010.png.
    2. В открывшемся окне Формула на вкладке Элементы процесса выберите элемент “Получить курс обмена валют с веб-сервиса Fixer”.
    3. В правой части окна двойным нажатием выберите параметр Выполнено.
    4. Добавьте к переменной параметра текст “==true”, чтобы конечная формула имела следующий вид: #Получить курс обмена валют с веб-сервиса Fixer.Выполнено#==true
  6. Добавьте исходящий условный поток к сигналу Останов. Установите условие для перехода по этому потоку — только в случае, если исходящий параметр Выполнено элемента “Получить курс обмена валют с веб-сервиса Fixer” имеет значение “false”. Таким образом, если вызов веб-сервиса заканчивается ошибкой, процесс остановится (Рис. 6).

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

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

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

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

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

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