|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от Dron AKA andy
Экспериментирую повторно. То слетают, то не слетают. Попробуйте использовать несколько полей разных типов и менять id в произвольном порядке.
X++: static void Job37(Args _args) { UtilIdElements ue_Table; UtilIdElements ue_Fields; SQLDictionary SQLDict; ; select firstonly ue_Table where ue_Table.recordType == UtilElementType::Table && ue_Table.name == "Table13"; ttsbegin; if (ue_Table) while select forupdate ue_Fields order by id desc where ue_Fields.recordType == UtilElementType::TableField && ue_Fields.ParentId == ue_Table.id { select forupdate firstonly SQLDict where SQLDict.TabId == ue_Table.id && SQLDict.FieldId == ue_Fields.id; ue_Fields.id += 13; ue_Fields.update(); if (SQLDict) { SQLDict.FieldId = ue_Fields.id; SQLDict.Update(); } } ttscommit; }
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: Logger (2). |
![]() |
#2 |
Участник
|
Цитата:
Сообщение от AndyD
![]() Вот тестовый джоб
X++: static void Job37(Args _args) { UtilIdElements ue_Table; UtilIdElements ue_Fields; SQLDictionary SQLDict; ; select firstonly ue_Table where ue_Table.recordType == UtilElementType::Table && ue_Table.name == "Table13"; ttsbegin; if (ue_Table) while select forupdate ue_Fields order by id desc where ue_Fields.recordType == UtilElementType::TableField && ue_Fields.ParentId == ue_Table.id { select forupdate firstonly SQLDict where SQLDict.TabId == ue_Table.id && SQLDict.FieldId == ue_Fields.id; ue_Fields.id += 13; ue_Fields.update(); if (SQLDict) { SQLDict.FieldId = ue_Fields.id; SQLDict.Update(); } } ttscommit; } Слетает куча мест в приложении, которая ссылается на поле. Формы, мапы (sic!), EDT. Очень аккуратно надо менять, проверяя нет ли ссылок. |
|
![]() |
#3 |
Участник
|
Моё мнение, всё это какое-то шаманство.
Я обычно делаю перенос без Id-ков они сами создаются системой. dev->test->work. Ну и пусть они отличаються. Может я на dev 10 раз создавал и 10 раз удалял один и тот же объект. Главное я знаю на рабочей они правильные. Раз в какой-то период(месяц, две недели) надо просто попросить админа выровнять прилаги в обратном порядке. work->test->dev. И Id-ки станут везде хорошие. Заодно мож где-то мусор залежался, смоет.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
Теги |
axapta, id объекта, sqldictionary, как правильно, синхронизация |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|