Skip to content

Latest commit

 

History

History
44 lines (31 loc) · 2.72 KB

Engines.md

File metadata and controls

44 lines (31 loc) · 2.72 KB

Engines (Движки)

Движок - понятие внутри системы iikoWeb, обозначающее одно законченное действие на конкретном этапе процесса. Движки могут быть взаимозаменяемы или последовательны, в зависимости от архитектуры приложения.

Проблематика

При выполнении обмена между внешней системой и iiko возможны бизнес сценарии, когда за 1 итерацию при одних и тех же параметрах подключения и сопоставления необходимо выгрузить несколько файлов или отправить во внешнюю систему несколько отчетов. В данном случае ломается система выгрузить данные -> преобразовать -> загрузить данные, так как данное действие необходимо выполнять несколько раз.

Для этого есть механизм группировки действий (движок).

Пример конфигурирования

# Пример объявления сервиса
exchange.acme.engine:
    class: iikoExchangeBundle\Engine\ExchangeEngine
    arguments: [ 'ENGINE_CODE' ]
    calls:
        - [ setRequests, [ [ '@exchange.acme.request.sales' ] ] ]
        - [ setFormatter, [ '@exchange.acme.formatter.sales' ] ]
        - [ setTransformer, [ '@exchange.acme.transformer' ] ]

В движок подключаются

  • запросы
  • форматер
  • трансформер

Подробнее про каждый подключаемый модуль можно найти на главной странице документации.

При такой архитектуре, появляется возможность выгрузить N файлов, например, и попросить пользователя только 1 раз заполнить данные для подключения, сопоставления и другие общие настройки.

Так же настройки могут быть и уникальными для каждого движка.

Пример работы

Как конкретно работает механизм обмена и как взаимодействуют движки на примере кода можно посмотреть в ExchangeManager::runExchange

plot