Базовая информация о ПО Беижсофт.
* Приведенная информация сложна для незнакомых с программированием, особенно вторая часть.
Программирование информационных моделей сохраняемых в базу данных.
Это такие модели как Накладная, Контрагент...
Здесь для краткости используется термин "ИС модель"
Есть два типа ИС моделей: обмениваемые (синхронизируемые) между базами данных и нет.
Обмениваемые между базами данных ИС модели
Обмениваемые модели могут быть созданы в разных базах данных и затем синхронизированы с использованием их явного или неявного кода (идентификатора). Есть два типа обмениваемых ИС моделей:
модели с глобальным кодом
модели с автоматически генерируемым кодом и неявный кодом рождения, то есть они имеют идентификатор состоящий из автоматического кода в текущей базе, код базы рождения и код в базе рождения для импортной модели, это более быстрая и кросс-платформенная альтернатива широко используемую ГУИД идентификатору
Пример первого типа это контрагент в качестве кода которого используется ИНН. Одинаковые модели первого типа могут быть созданы и использованы в разных базах в одно время, не нужно ждать обмена с главной базы чтобы работать. Пример моделей второго типа - Накладная или ее строка. Разные накладные могут быть созданы в разных периферийных базах, затем импортированы в центральную без коллизий.
Пример моделей первого типа из базовой библиотеки 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), т.е. это одновременно и иностранные ключи, и используются в связке как первичный ключ.
Беижсофт-Веб интерфейс автоматически генерирует формы для заполнения таких сложных моделей. Смотрите ЕИС Веб-Магазин для примера: "Цена Товара", "Товар в Каталоге"...