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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.04.2008, 09:26   #1  
Perc is offline
Perc
Участник
 
194 / 57 (2) ++++
Регистрация: 05.03.2005
Где ходит renamePrimaryKey()?
Как создать достоверный список таблиц и полей которое обойдет операция переименования кода через паспорт записи? renamePrimaryKey() я так понимаю..
Старый 10.04.2008, 09:50   #2  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Насколько я понял никак. RenamePrimaryKey() вызовится один раз, у той таблице для которой запустили переименование. Дальше все делается в системных методах.
См. метод SysRecordInfo.renamePrimaryKey().

А зачем Вам такое понадобилось?
Старый 10.04.2008, 10:06   #3  
Perc is offline
Perc
Участник
 
194 / 57 (2) ++++
Регистрация: 05.03.2005
нашел на форуме интуитивно навеяный rINTу джоб
Замена inventDimId во всех таблицах.
Но сдается мне здесь не будет точного соответсвия renamePrimaryKey().
Цитата:
Сообщение от Lucky13 Посмотреть сообщение
А зачем Вам такое понадобилось?
Есть желание перекодировать большое число записей справочника. База уже большая и движений много. Перекодировка через паспорт записи подходит, но работает медленно и блокирует работу пользователей.
Появилась идея собрать список таблиц обновляемых и полей. Нагенерировать скриптов на sql и отработать все махом. Ну или попытаться оптимизировать переименование для большого списка записей на X++.
Соответсвенно возник вопрос, а как в общем случае определить и пройти по тем же таблицам и полям, что и renamePrimaryKey().//
Старый 10.04.2008, 10:17   #4  
otkudao
Гость
 
n/a
перекрестные ссылки по полю таблицы и ЕDT.
Старый 10.04.2008, 11:33   #5  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
нашел на форуме интуитивно навеяный rINTу джоб
Замена inventDimId во всех таблицах.
Но сдается мне здесь не будет точного соответствия renamePrimaryKey().
В указанном джобе идёт "отсмотр" только по одному EDT переименовываемого ключа и его наследникам. А, насколько я понимаю, renamePrimaryKey учитывает ещё и связи на таблицах и типах. Т.е. на это поле могут ссылатся и поля с другим ЕДТ. Типа какого-нибудь ТрансРефАйДи и т.п.
Так что, думаю, ответ: "Да, не будет."
__________________
Zhirenkov Vitaly
Старый 10.04.2008, 11:53   #6  
Perc is offline
Perc
Участник
 
194 / 57 (2) ++++
Регистрация: 05.03.2005
Цитата:
Сообщение от otkudao Посмотреть сообщение
перекрестные ссылки по полю таблицы и ЕDT.
Да, ну прежде их надо посчитать по всему дереву, что процесс совсем не быстрый Ну и потом заняться анализом списка ссылок. Случай что нинаесть самый общий )Пойдет.
Просто верилось, что есть какой-то волшебный класс который позволит сделать джоб из трех слов и аля.. получить что хотелось.
Старый 10.04.2008, 11:58   #7  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Можно еще вот этот проектик посмотреть/подкорректировать
Переименование поля
Старый 10.04.2008, 12:08   #8  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Цитата:
Сообщение от Perc Посмотреть сообщение
Да, ну прежде их надо посчитать по всему дереву, что процесс совсем не быстрый
Насоклько я понимаю, используются перекрестные ссылки т.н. Модели данных, а она перестраивается быстро, примерно минуту.
__________________
Андрей.
Старый 10.04.2008, 12:15   #9  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от Dron AKA andy Посмотреть сообщение
Насоклько я понимаю, используются перекрестные ссылки т.н. Модели данных, а она перестраивается быстро, примерно минуту.
Не. В этом случае можно будет только иерархию типов посмотреть. А этого мало в данном случае. Придется все перекрестные ссылки строить (можно конечно их в фильтре ограничить только по ЕDT)
Старый 10.04.2008, 12:34   #10  
otkudao
Гость
 
n/a
Цитата:
Да, ну прежде их надо посчитать по всему дереву, что процесс совсем не быстрый
на самом деле час- полтора. Быстрее, чем вы на форуме выясняете...
Старый 10.04.2008, 14:00   #11  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Не. В этом случае можно будет только иерархию типов посмотреть. А этого мало в данном случае. Придется все перекрестные ссылки строить (можно конечно их в фильтре ограничить только по ЕDT)
Иерархия типов - то отдельная галочка
А Модель данных позволяет в запросе по Ctrl+F3 таблицы добавлять 1:n или n:1. Мож все же это оно?
__________________
Андрей.
Старый 10.04.2008, 14:44   #12  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Упс. Лапухнулся. Да - модель данных - это для отображения связей между таблицами в форме запросов. Sorry for the confusion
Старый 10.04.2008, 15:49   #13  
Sergey_P is offline
Sergey_P
Участник
Сотрудники компании GMCS
 
10 / 11 (1) +
Регистрация: 30.08.2006
Пройти по всем таблицам строя для них релайшен и проверя что он ссылается на нужное поле нужной таблицы. (пробовал работает)
А самый простой метод: включить SQL trace и выполнить renamePrimaryKey на нужной таблице, в журнале будут Update для всех таблиц (с учетом кода компании, если есть виртуальные компании) про которые Аксапта считает что там есть ссылки на это поле.
Старый 11.04.2008, 09:48   #14  
Perc is offline
Perc
Участник
 
194 / 57 (2) ++++
Регистрация: 05.03.2005
Цитата:
Сообщение от Sergey_P Посмотреть сообщение
А самый простой метод: включить SQL trace и выполнить renamePrimaryKey на нужной таблице, в журнале будут Update для всех таблиц (с учетом кода компании, если есть виртуальные компании) про которые Аксапта считает что там есть ссылки на это поле.
Отлично! Как сам сразу не догадался.. Так и сделал, включил мониторинг запросов SQL. Получил в инфологе список почти готовых апдейтов. Таблицу перекода к апдейту прикрулил и можно запускать.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Где перекрыт метод в классе miklenew DAX: База знаний и проекты 5 29.05.2008 11:07
Подскажите где создается в Аксапте ReportTemplate? Hidden DAX: Функционал 1 30.06.2005 16:02
Где что хранится? Kengo DAX: Программирование 10 11.11.2004 13:05
Где отчёт?... 2b4fITin DAX: Программирование 1 18.09.2003 20:46
3.0: где активировать цены по скл. аналитикам ? Zabr DAX: Функционал 5 20.06.2003 11:12

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

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

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