10.04.2008, 09:26 | #1 |
Участник
|
Где ходит renamePrimaryKey()?
Как создать достоверный список таблиц и полей которое обойдет операция переименования кода через паспорт записи? renamePrimaryKey() я так понимаю..
|
|
10.04.2008, 09:50 | #2 |
Участник
|
Насколько я понял никак. RenamePrimaryKey() вызовится один раз, у той таблице для которой запустили переименование. Дальше все делается в системных методах.
См. метод SysRecordInfo.renamePrimaryKey(). А зачем Вам такое понадобилось? |
|
10.04.2008, 10:06 | #3 |
Участник
|
нашел на форуме интуитивно навеяный rINTу джоб
Замена inventDimId во всех таблицах. Но сдается мне здесь не будет точного соответсвия renamePrimaryKey(). Есть желание перекодировать большое число записей справочника. База уже большая и движений много. Перекодировка через паспорт записи подходит, но работает медленно и блокирует работу пользователей. Появилась идея собрать список таблиц обновляемых и полей. Нагенерировать скриптов на sql и отработать все махом. Ну или попытаться оптимизировать переименование для большого списка записей на X++. Соответсвенно возник вопрос, а как в общем случае определить и пройти по тем же таблицам и полям, что и renamePrimaryKey().// |
|
10.04.2008, 10:17 | #4 |
Гость
|
перекрестные ссылки по полю таблицы и ЕDT.
|
|
10.04.2008, 11:33 | #5 |
MCITP
|
Цитата:
нашел на форуме интуитивно навеяный rINTу джоб
Замена inventDimId во всех таблицах. Но сдается мне здесь не будет точного соответствия renamePrimaryKey(). Так что, думаю, ответ: "Да, не будет."
__________________
Zhirenkov Vitaly |
|
10.04.2008, 11:53 | #6 |
Участник
|
Да, ну прежде их надо посчитать по всему дереву, что процесс совсем не быстрый Ну и потом заняться анализом списка ссылок. Случай что нинаесть самый общий )Пойдет.
Просто верилось, что есть какой-то волшебный класс который позволит сделать джоб из трех слов и аля.. получить что хотелось. |
|
10.04.2008, 11:58 | #7 |
Участник
|
Можно еще вот этот проектик посмотреть/подкорректировать
Переименование поля |
|
10.04.2008, 12:08 | #8 |
Moderator
|
Насоклько я понимаю, используются перекрестные ссылки т.н. Модели данных, а она перестраивается быстро, примерно минуту.
__________________
Андрей. |
|
10.04.2008, 12:15 | #9 |
Участник
|
Не. В этом случае можно будет только иерархию типов посмотреть. А этого мало в данном случае. Придется все перекрестные ссылки строить (можно конечно их в фильтре ограничить только по ЕDT)
|
|
10.04.2008, 12:34 | #10 |
Гость
|
Цитата:
Да, ну прежде их надо посчитать по всему дереву, что процесс совсем не быстрый
|
|
10.04.2008, 14:00 | #11 |
Moderator
|
Цитата:
А Модель данных позволяет в запросе по Ctrl+F3 таблицы добавлять 1:n или n:1. Мож все же это оно?
__________________
Андрей. |
|
10.04.2008, 14:44 | #12 |
Участник
|
Упс. Лапухнулся. Да - модель данных - это для отображения связей между таблицами в форме запросов. Sorry for the confusion
|
|
10.04.2008, 15:49 | #13 |
Участник
|
Пройти по всем таблицам строя для них релайшен и проверя что он ссылается на нужное поле нужной таблицы. (пробовал работает)
А самый простой метод: включить SQL trace и выполнить renamePrimaryKey на нужной таблице, в журнале будут Update для всех таблиц (с учетом кода компании, если есть виртуальные компании) про которые Аксапта считает что там есть ссылки на это поле. |
|
11.04.2008, 09:48 | #14 |
Участник
|
Отлично! Как сам сразу не догадался.. Так и сделал, включил мониторинг запросов SQL. Получил в инфологе список почти готовых апдейтов. Таблицу перекода к апдейту прикрулил и можно запускать.
|
|
|
Похожие темы | ||||
Тема | Ответов | |||
Где перекрыт метод в классе | 5 | |||
Подскажите где создается в Аксапте ReportTemplate? | 1 | |||
Где что хранится? | 10 | |||
Где отчёт?... | 1 | |||
3.0: где активировать цены по скл. аналитикам ? | 5 |
|