Skip to content

Документооборот

Apostol Developer edited this page Sep 25, 2021 · 16 revisions

Документооборот - это последовательность совершаемых над объектом действий, приводящих к возникновению события (каскада событий), способных повлиять на состояние объекта.

  • Последовательность переходов из одного состояния объекта в другое называется «жизненным циклом».
Напоминаем, что согласно архитектуре единицей хранения данных в системе является не запись в таблице, а объект. Понятие таблица заменено на сущность.

Сущность

  • Характеризует физический или логический смысл объекта.

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

В платформе определены следующие сущности:

  • object Объект;
  • document Документ;
  • reference Справочник;
  • address Адрес;
  • client Клиент;
  • device Устройство;
  • job Задание;
  • message Сообщение;
  • agent Агент;
  • calendar Календарь;
  • category Категория;
  • currency Валюта;
  • measure Мера;
  • model Модель;
  • program Программа;
  • project Проект;
  • property Свойство;
  • scheduler Планировщик;
  • vendor Производитель;
  • version Версия;

Класс

  • Это условное разделение объекта по тем или иным признакам в рамках заданной сущности.

  • Класс объекта характеризует сам объект и в отличие от сущности может быть создан пользователем системы самостоятельно.

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

  • Класс объекта может быть абстрактным. Создать объект с абстрактным классом невозможно.

Дерево классов

  • object Объект (абстрактный);
    • document Документ (абстрактный);
      • address Адрес;
      • client Клиент;
      • device Устройство;
      • job Задание;
      • message Сообщение (абстрактный);
        • inbox Входящее;
        • outbox Исходящее;
    • reference Справочник (абстрактный);
      • agent Агент;
      • calendar Календарь;
      • category Категория;
      • currency Валюта;
      • measure Мера;
      • model Модель;
      • program Программа;
      • project Проект;
      • property Свойство;
      • scheduler Планировщик;
      • vendor Производитель;
      • version Версия;

Состояние

  • Каждый объект в системе находиться в том или ином состоянии.

  • Состояние объекта привязывается к классу объекта.

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

Тип состояния объекта

В системе есть четыре типа состояния объекта:

  • created Создан;
  • enabled Включен;
  • disabled Отключен;
  • deleted Удалён.

Состояние объекта

  • Это промежуточное звено в цепи документооборота системы.

Каждому из типов состояния должно соответствовать как минимум одно состояние объекта из чего следует, что каждый объект может находиться как минимум в четырех состояниях. Типы состояний объекта недоступны для изменения пользователю системы, но на базе этих типов пользователь может создать сколько угодно собственных состояний объекта. Первоначальное состояние любого нового объекта в системе это – «Создан». Для каждого состояния объекта задается определенный список действий. Переход из одного состояния объекта в другое происходить только при совершении над ним определенного действия.

Действие

  • Действие, совершаемое над объектом также, как и состояния объекта задается для каждого класса объекта и формируется из заданного разработчиком системы списка.

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

Метод (динамический)

  • Это визуальная часть в цепи документооборота системы.

Метод создается и вызывается как с учётом состояния так и без учёта состояния объекта. Так как возможность вызова метода меняется в зависимости от состояния объекта метод приобретает динамический характер. Более подробно на странице Динамический метод.

Методы отображаются в интерфейсе пользователя в виде кнопок и элементов меню.

Событие

  • Это реакция на совершаемое над объектом действие вызванное при помощи метода.

К каждому событию объекта привязывается написанные на языке PL/pgSQL функции. При возникновении события ядро системы начинает поочередно выполнять код в привязанных к событию функциях (вызывается каскад событий). Выполняемый код может быть абсолютно любым, и иметь разную смысловую нагрузку будь то проверка объекта на переход из одного состояния в другое или информирование пользователя о неправильно заполненных полях.

Событие - это ключевой элемент так как именно в функциях привязанных к событиям находится код отвечающий за бизнес логику проекта построенного на базе системы Апостол.

Clone this wiki locally