Бизнес-операции

Бизнес-операция – специальный программный модуль, декларирующий метод обработки данных.

Решаемые задачи

Бизнес-операции предназначены для преобразования одних данных (входов) в другие (выходы). Одни бизнес-операции могут выполнять сложные расчеты с последующим изменением состояния бизнес - объектов, т.е. могут изменять данные системы. Другие же работают только «на чтение», т.е. получают параметры в качестве входных данных и на основании данных системы возвращают результат. Примерами бизнес-операций являются:

  • процедура расчета зарплаты;
  • формирование накладной на основании ДО;
  • получение прайс-листа;
  • процедура MRP и пр.

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

­Типы бизнес-операций

Бизнес-операция представляет собой класс, содержащий декларацию своих параметров. Фреймворк предоставляет API для доступа к метаинформации о самих бизнес-операциях и API для их выполнения.

Есть возможность создавать управляемые бизнес-операции с использованием ManagedOperation. Предусмотрена возможность отката операции.

Бизнес операции могут выполняться как независимо (выполняются без контекста, например, пакетное формирование расходных ордеров, проверка корректности БД), так и в контексте определенного объекта (например «пересчет сумм документа», выполняется для экземпляра накладной).

Контекстные бизнес операции могут быть:

  • одиночные – применяются к одному экземпляру сущности;
  • списковые – применяются к списку экземпляров сущностей.
Параметры бизнес-операций

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

Win application

Win application

Web application

Web application

Запуск бизнес-операций на выполнение

Бизнес-операция может быть вызвана как в прикладном коде непосредственно, так и из пользовательского интерфейса (из списка Actions или из общего списка бизнес-операций).

При активизации View для какого-либо бизнес-объекта его контекстные бизнес-операции доступны через Actions:

Win application

Win application

Web application

Web application

Простые (не контекстные) бизнес операции отображаются в отдельном ListView «Бизнес-операции»:

Win application

Win application

Web application

Web application

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

После запуска асинхронного метода выполнения приложение продолжит работу в прежнем режиме.

Synchronous BO

Asynchronous BO

В случае синхронного выполнения бизнес-операции генерируется View с отображением процесса выполнения операции:

Win application

Win application

Web application

Web application

Реализации бизнес-операций

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

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

Реализация бизнес-операции может поддерживать возможность отката.