Бизнес Компоненты

Бизнес модель

Статусы объектов

Статус объекта отражает его текущее состояние по степени готовности к его использованию. Доступны следующие статусы:

  • Черновик (Draft) – объект находится в состоянии редактирования.
  • Опубликован (Published) – объект отредактирован и может быть использован.
  • Архив (Archive) – устаревший объект.

При отображении объектов со статусами возможности ListView расширяются несколькими Actions:

  • Show draft - включить/выключить отображение черновиков
  • Show archive - включить/выключить отображение устаревших объектов
  • Status – выбор другого статуса

Статус объекта можно изменить также в DetailView.

Статусы объектов использованы для активных блокировок и реализованы для персистентных объектов (Xpo) и domain components (DC).1-15

Групповое редактирование

В приложениях, разработанных с использованием платформы Xafari, имеется возможность обеспечить групповую обработку объектов на ListView. Такая функциональность востребована в случаях, когда свойство нескольких объектов должно содержать одинаковое значение. Пользователь может выделить эти объекты и одновременно редактировать это свойство для всей группы. Обработка общих значений проводится в специальном редакторе, размещенном на плавающей панели (dock panel).1-16

Нумераторы

Сервис нумераторов предназначен для проведения автоматического заполнения полей персистентных объектов с использованием порядковой нумерации.

При автоматическом заполнении полей сервис нумераторов предоставляет следующие возможности:

  • установка начального значения индекса (StartValue) и шага (Step)
  • установка шаблона номера (Template)
  • сквозная нумерация (ThroughNumeration): cквозная нумерация применяется для последовательного нумерования объектов различных типов. Например, все исходящие документы (накладные, платежки и пр.) должны использовать одну цепочку номеров
  • использование удаленных номеров (UseDeleteNumbers): использование удаленных номеров предполагает, что все номера нумератора будут использованы. Если какой-то объект удаляется, то его номер не пропадает, а используется при очередном обращении к сервису нумераторов
  • поддержана пакетная обработка документов

Нумераторы реализованы для персистентных объектов (Xpo) и domain components (DC).1-17

Категории

Категории используются для внешней классификации по ссылкам, имеющимся у объектов. Категории (внешние классификации) реализованы как плавающие панели, содержащие список объектов, по которым производится классификация данных текущего ListView.

Настройка и подключение категорий для ListView производится в модели приложения (ApplicationModel). Также имеется возможность описать подключение категории прямо в коде.

Категории могут быть использованы на платформах Web, Win, Mvc.1-18

Управляемые операции

Модуль Xafari.ManagedOperations реализует функциональность управляемых операций. Под управляемыми операциями понимается исполнение некоторого прикладного метода с возможностью его приостановки, продолжения и прерывания. Во время исполнения осуществляется логирование и мониторинг процесса.

Управляемые операции поддерживают несколько вариантов использования:

  • Операции могут быть синхронные или асинхронные
  • Операции могут быть локальные или глобальные
  • Операции могут иметь вложенные операции
  • Несколько способов визуализации хода выполнения синхронной операции
    • Проценты
    • Бесконечный цикл
    • Этапы
  • Подключаемая плавающая панель администрирования операций

Управляемые операции могут быть использованы на платформах Web, Win, Mvc.1-19-1024x628

Динамические реквизиты

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

В отличии от стандартного решения Custom Property динамические реквизиты существуют только для экземпляра объекта. Поэтому два объекта одного типа могут иметь различные динамические реквизиты.

Для работы с динамическими реквизитами рекомендуется использовать специальные редакторы, такие как VerticalGridPropertyEditor и другие.

Динамические реквизиты реализованы для персистентных объектов (Xpo) и domain components (DC).

Настройки приложения

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

Настройки приложения позволяют следующее:

    • Можно спроектировать и описать иерархию настроек и групп любой сложности.
      Описание структуры настроек производится на C# стандартным способом расширения модели приложения (ApplicationModel).
    • Каждый модуль может содержать собственные настройки, которые будут добавлены в общую систему при подключении данного модуля.
    • Можно определить несколько слоев значений настроек, при этом значения последующего слоя перекрывают значения предыдущего слоя. По такому же принципу работают слои в Модели приложения (ApplicationModel) XAF.
      Явно выделен слой системных настроек, дополнительно может быть определен слой пользовательских настроек.
    • Управление доступом к настройкам регулируется системой безопасности.
    • Возможна конвертация настроек при смене версии приложения.
    • Удобный способ работы с настройками в коде.

1-20
1-21

Настройки приложения могут быть использованы на платформах Web, Win, Mvc.

Версионность данных

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

Под версионностью бизнес-объекта подразумевается его способность привязать свое состояние к временным отсечкам, а также обеспечение возможности получить доступ к состоянию объекта (его версии) для указанной временной точки (момента времени).

Похожая задача решается системами контроля версий, такими как SVN, TFS и пр.

Поддержка версионности для бизнес-объектов основана на следующих концепциях:

      • Поддержка версий может быть использована только для бизнес-объектов, реализованных с помощью технологии Domain Components.
      • Для хранения версий бизнес-объектов используется сам Domain Component этого бизнес-объекта.
      • Для версионных бизнес-объектов существует поле VersionId, содержащее одинаковое значение для всех версий одного бизнес-объекта.
      • Для ссылок на версионные бизнес-объекты необходимо использовать VersionId и вычисляемые поля.

Для работы с версиями объекта предусмотрены несколько операций:

      • Сохранение новой версии объекта (Save as new version)
      • Получение последней версии бизнес-объекта (Get Latest Version)
      • Получение конкретной версии бизнес-объекта на заданные дату и время
      • Просмотр истории изменений объекта (Show history)
      • Установка текущей даты для работы с версиями

1-22

Рабочие места

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

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

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

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

Для создания и редактирования рабочих мест выполняется с помощью специального редактора модели - Xafari.Workplace.ModelEditor.exe1-23

Импорт/Экспорт данных

В состав Xafari входит специальное решение для импорта/экспорта данных любого XAF-приложения. Импорт или экспорт данных может потребоваться при решении задач:

  • Начальная загрузка данных
  • Интеграция со сторонними приложениями в обе стороны
  • Переход на следующую версию приложения

Задачи такого рода всегда возникают при внедрении и эксплуатации приложений у заказчика. Xafari предлагает стандартный подход для их решения.

В состав Xafari включены несколько типов источников данных (Access, XML, CSV, Excel, Галактика ERP и другие). При этому имеется возможность создавать новые источники данных.1-12