Использование CustomNumerator

StatusIDPriorityType
Closed34678MajorQuestion
ProfileReply
Maytoni ITClient

Добрый день

Есть два вопроса, если есть ответ на первый то второй уже не нужен:

1) Так получилось что мне нужно импортировать (создать в коде) объекты с уже прописанными значениями в поле Code, они разбросаны хаотично, но для следующих создаваемых уже в интерфейсе объектов нужно продолжать нумерацию в этом поле согласно правилам. Т.е. я создаю объект при импорте с кодом 003 и значит в интерфейсе первые два новых объекта должны получить коды 001 и 002 соответственно, а вот следующий должен получить 004 так как 003 уже был создан при импорте. Если просто, можно как-то пропускать уже существующие значения? Сейчас нумератор назначает код 003 несмотря на то что такой уже есть. Делать поле уникальным или еще как его ограничивать не получится, так как это иерархическая структура с несквозной нумерацией.

2) У вас есть механизм CustomNumerator, но как я понял по исходникам Xafari он отключен. Есть альтернативный вариант перехватить номерацию и поправить (для реализации задачи из пункта 1) или больше такие сценарии не поддерживаются. Какие есть варианты?

Attached files:

Replies

UserDescriptionPosted On
MariyaVoytovichAgent

Добрый день!

Есть два способа решения этой проблемы:

1. С помощью таблицы удаленных нумераторов.
Нумераторы предоставляют возможность хранить индексы удаленных нумераторов, а потом использовать их для нумерации новых объектов. Подробнее можно прочитать в статье Business Numerators. Deleted Numbers
Для хранения этих данных используется следующие сущности: 1. Для Xpo - MissingNumber; 2. Для DC - NumeratorMissingNumber или IDCMissingNumber.

Тогда Вам потребуется:
1. Для целевого класса (который используется для импорта) наследовать интерфейс IDeletedNumbersSupport
2. Включить функцию использования удаленных нумераторов (В редакторе модели для нужного нумератора в свойстве UseDeletedNumbers установить All).
3. Заполнить таблицу базы данных неиспользованными нумераторами.

2. Написать свой кастомный нумератор.
Пример реализации пользовательского нумератора (UserNumerator) можно посмотреть в демо примере BusinessNumerators

С уважением,
Войтович Мария

× This ticket is closed.

Write US