Базовая информация о ПО Беижсофт.

* Приведенная информация сложна для незнакомых с программированием, особенно вторая часть.

Программирование информационных моделей сохраняемых в базу данных.

  • Это такие модели как Накладная, Контрагент...

  • Здесь для краткости используется термин "ИС модель"

Есть два типа ИС моделей: обмениваемые (синхронизируемые) между базами данных и нет.

Обмениваемые между базами данных ИС модели

Обмениваемые модели могут быть созданы в разных базах данных и затем синхронизированы с использованием их явного или неявного кода (идентификатора). Есть два типа обмениваемых ИС моделей:

  • модели с глобальным кодом

  • модели с автоматически генерируемым кодом и неявный кодом рождения, то есть они имеют идентификатор состоящий из автоматического кода в текущей базе, код базы рождения и код в базе рождения для импортной модели, это более быстрая и кросс-платформенная альтернатива широко используемую ГУИД идентификатору

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

Пример моделей первого типа из базовой библиотеки beige-blc.jar:

  • org.beigesoft.mdlp.Lng - Языки, в качестве кода используется глобальный строковый код, например "en" or "ru"

  • org.beigesoft.mdlp.CsvMth - CSV метод, Код длинное целое

  • org.beigesoft.mdlp.CsvCl - строка CSV метода, Код длинное целое

Любой документ и номенклатура в beige-acc.jar это модели второго типа. Если нужно иметь одинаковую номенклатуру в разных базах, то необходимо ждать импорта из главной "родительской" базы.

Необмениваемые между базами данных ИС модели.

Такие модели не нуждаются в импорте. В любом случае они создаются только в одной базе данных. Данные модели имеют простой автоматически генерируемый код. Пример таких моделей - корзина и ее строки в базе ВЕБ-магазина.

Базовые Беижсофт ОРМ ИС модели.

Любая ИС модель должна иметь идентификатор (код/primary key), версию для экспорта, импорта и блокировки при редактировании. Также имеют поле "isNew" - "новая" для принятия решения создавать в базе данных новую запись или изменить существующую. Базовые модели имеют все эти свойства (поля).

Чтобы сделать вашу модель рабочей для Беижсофт ОРМ, вы должны сделать её потомком базовой ИС модели. В Джава это делается словами "extend" или "implement":

  • org.beigesoft.mdl.IHasId - базовый интерфейс

  • org.beigesoft.mdl.AIdStr - абстрактная модель с кодом строкового типа String

  • org.beigesoft.mdl.AIdLn - абстрактная модель с неавтоматическим кодом числового типа Long

  • org.beigesoft.mdl.AIdLnNm - абстрактная модель с неавтоматическим кодом числового типа Long и с полем Nme (Имя)

  • org.beigesoft.mdl.AOrId - абстрактная модель с автоматическим кодом и неявный кодом рождения (обмениваемая между БД)

  • org.beigesoft.mdl.AOrIdNm - абстрактная модель с автоматическим кодом и неявный кодом рождения (обмениваемая между БД)

  • org.beigesoft.mdl.AIdLna - абстрактная модель с автоматическим кодом (необмениваемая между БД)

  • ...

Владеемые списки (например строки накладной) должны реализовывать/расширять (implement/extend):

  • org.beigesoft.mdl.IOwned - базовый интерфейс

  • org.beigesoft.mdlp.IOwnedi - интерфейс с неавтоматическим кодом числового типа Long

  • org.beigesoft.mdlp.IOwnedOr - интерфейс с автоматическим кодом и неявный кодом рождения (обмениваемая между БД)

  • org.beigesoft.mdlp.IOwneda - интерфейс с автоматическим кодом (необмениваемая между БД)

Модели со сложным идентификатором (primary key).

Беижсофт ОРМ поддерживает идентификаторы любой сложности. Например модели из Беижсофт ИСП beige-acc.jar:

  • org.beigesoft.ws.mdlp.Deliv - Доставка, код типа перечисление (enumeration)

  • org.beigesoft.ws.mdlp.Cart - Корзина имеет идентификатор типа Покупатель (другая ИС модель) (Buyer)

  • org.beigesoft.acc.mdlp.WrhItm - номенклатура на складе с тройным идентификатором - Номенклатура (Itm), ЕдиницаИзмерения (Uom), Место в складе (WrhPl), т.е. это одновременно и иностранные ключи, и используются в связке как первичный ключ.

Беижсофт-Веб интерфейс автоматически генерирует формы для заполнения таких сложных моделей. Смотрите ЕИС Веб-Магазин для примера: "Цена Товара", "Товар в Каталоге"...