Dynamics 365. Документооборот. Архитектура системы

Документооборот и его инфраструктура

Документооборот это важная часть современной системы. Инфраструктура документооборота Dynamics 365 состоит из двух подсистем, которые располагаются на сервере объектов приложения (AOS):

  • документооборот “Х++ runtime”
  • документооборот “managed runtime“.

Документооборот Х++ runtime

Компонент документооборот Х++ runtime включает в себя следующие элементы:

  • Программный интерфейс приложения (API) среды выполнения
  • Пакетные задания обмена сообщениями
  • Очередь сообщений

Пакетные задания обмена сообщениями или API могуть вызывать код приложения, если это необходимо. При этом код Х++ должен быть скомпилирован в промежуточный язык (CIL).

Документооборот “managed runtime“

Документооборот “managed runtime“ состоит из расширений Windows Workflow Foundation и Finance and Operations apps.

Логически, инфраструктура является расширением и прозрачная для пользователей. Документооборот использует пакетный обработку на AOS и библиотеки .Net Interop, чтобы интегрировать обе подсистемы и выполнить передачу сообщений из одной подсистемы в другую. Код Х++, который запускается пакетной обработкой, поэтому должен быть в CIL, в тоже время сама пакетная обработка выполняется в .Net common language runtime (CLR).

На схеме ниже изображается верхний уровень архитектуры инфраструктуры документооборота.

Workflow infrastructure

Пользователи могут использовать формы и элементы управления документооборота в бизнес-процессах.

Пример отправки отчета

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

Шаг

Среда выполнения

Действие

1

Документооборот “Х++ runtime”

Пользователь отправляет отчет о расходах по нажатию кнопки “Отправить” на одном из элементов управления документооборота. В результате код Х++ инициализирует класс документооборота, через вызов API среды выполнения. API ставит сообщение в очередб сообщений. Пакетное задание обмена сообщениями читает сообщение и отправляет запрос на активацию подсистемы документооборот “managed runtime“.

Важно обратить внимание на то, что процесс обработки очереди сообщений проиисходит 1 раз/минуту.

2

Документооборот “managed runtime“

.NET Interop от кода Х+ получает сообщение и запускает новый экземпляр расширения Windows Workflow Foundation. Этот экземпляр выполняет обратный вызов подсистемы документооборот “Х++ runtime” через API .NET Interop к CIL Х++ и отправляет сообщение о том, что процесс документооборота запущен.

После отправки сообщения, подсистема документооборот “managed runtime“ сохраняет простаивающий экземпляр в базу данных и удаляет его из памяти. Когда подсистема документооборот “managed runtime“ получает другие сообщения из подсистемы документооборот “Х++ runtime” для данного экземпляра, она восстанавливает из базы данных и продолжает его работу.

Каждый экземпляр документооборота уникальный. Если два пользователя отправляют свои отчеты о расходах на утверждения, то и запустяться два экземпляра.

3

Документооборот “Х++ runtime”

Пакетная обработка обмена сообщениями читает сообщение о начале работы экземпляра документооборота из очереди сообщений и вызывает обработчик приложения, который обрабатывает собатия о начале работы документооборота. Пакетное задание отправляет подтверждающее сообщение о том, что событие было обработано.

4

Обе подсистемы

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

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

microsoft.com

 

 

 

Comments

So empty here ... leave a comment!

Добавить комментарий

Sidebar