Изменение ключевого атрибута типа Папка в Лоцмане

Автор KiDim, 12.01.17, 13:23:12

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

KiDim

Приветствую всех.

Появилась потребность изменить ключевой атрибут у типа папка в Лоцмане. Цель простая - папки могут быть в БД с одним именем, а именно он является ключевым. В Лоцмане ОРД эта задача решается применением атрибута GUID. В Лоцмане такого я не нашел. Может кто поделиться своим опытом и знаниями? Есть например атрибут Ключ в справочнике. Можно ли использовать его. И может быть есть описание атрибутов? В мануале по Лоцману ничего не нашел...

Заранее благодарю всех откликнувшихся.

Danila

12.01.17, 14:15:44 #1 Последнее редактирование: 12.01.17, 14:40:17 от Danila
Привет) и тебя с прошедшими)))

У нас решалась задача более общая с миграцией в другой тип+имя. Потому напишу относительно более общей задачи.

Решений через конфигуратор, наверно, не найдется.
Так как ключевая пара Ключевой атрибут + Тип не дадут создать два одинаковых объекта.
Это ограничение БД - constraint на поля таблицы stMain - stKeyAttr + inIdType.

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

Например.
1. Через прогу уровня API.
2. Через миграцию напрямую в БД.
3. Через систему Лоцман с промежуточными шагами. Например, сделать уникальные имена, добавив к ним какой-то префик/суффикс и т.д.
И после этого мигрировать штатными способами.

Но при любом из этих решений, конечно, необходимо определить для себя логику миграции.
Что делать, если объект будет с таким же именем.
Пара вариантов как минимум:
- создавать следующую версию (если объект версионный, иначе - придумывать другую логику);
- создавать версию с другим ключевым атрибутом, сформированным по вашему правилу.

Касательно вашей частной задачи с изменением только имени - наверно никак, если не сделать папку версионной и если не делать следующие версии папок.

KiDim

Тогда и с наступающими. Старый НГ на носу!!!

Геморройно как то... Неужели никак логику ОРД не повторить. Я понимаю, что ключевая пара Ключевой атрибут + Тип - это ограничение изначальное, ну так я и хочу подвесить GUID. Он же в БД у всех разный. Вот только как его вытащить перед созданием объекта, если в конфигураторе его нет... Просто создать как в ОРД думаю не получится. В ТП сказали, что прямого пути нет, но не смогли мне не специалисту втолковать почему. Может объяснит кто? :-(

Danila

Цитата: KiDim от 12.01.17, 14:50:03
Тогда и с наступающими. Старый НГ на носу!!!

Геморройно как то... Неужели никак логику ОРД не повторить. Я понимаю, что ключевая пара Ключевой атрибут + Тип - это ограничение изначальное, ну так я и хочу подвесить GUID. Он же в БД у всех разный. Вот только как его вытащить перед созданием объекта, если в конфигураторе его нет... Просто создать как в ОРД думаю не получится. В ТП сказали, что прямого пути нет, но не смогли мне не специалисту втолковать почему. Может объяснит кто? :-(

это ограничение не изначальное, а базовое.. основное.
Конфигурация ОРД как-то видимо отличается. Причем существенно.