AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: База знаний и проекты
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.10.2005, 16:19   #1  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2480 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от 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).
Старый 20.05.2009, 17:52   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,971 / 3267 (116) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 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. Очень аккуратно надо менять, проверяя нет ли ссылок.
Старый 21.05.2009, 08:38   #3  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Моё мнение, всё это какое-то шаманство.
Я обычно делаю перенос без Id-ков они сами создаются системой.
dev->test->work. Ну и пусть они отличаються.
Может я на dev 10 раз создавал и 10 раз удалял один и тот же объект.
Главное я знаю на рабочей они правильные.
Раз в какой-то период(месяц, две недели) надо просто попросить админа выровнять прилаги в обратном порядке. work->test->dev.
И Id-ки станут везде хорошие. Заодно мож где-то мусор залежался, смоет.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Теги
axapta, id объекта, sqldictionary, как правильно, синхронизация

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Изменение группы полей (Field Group) на таблице Lucky13 DAX: Программирование 11 04.03.2009 17:51
Массовое изменение полей nmariya DAX: Функционал 15 26.09.2008 17:52
Изменение ID-ов полей таблицы somebody DAX: Программирование 5 02.02.2004 19:57
Изменение полей ModifiedTime etc. lexa DAX: Программирование 2 01.02.2004 22:56
Изменение названий полей картотеки номенклатуры? Sirius DAX: Функционал 4 12.01.2004 18:43
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:25.