22.12.2004, 19:26 | #1 |
Ехидна
|
Перебор всех таблиц, имеющих поле определенного типа
Буду весьма благодарен за советы, а также за ссылки на советы на этом форуме или любом другом ресурсе, о том как решить следующую задачу:
Нужно организовать перебор всех таблиц в АОТ, имеющих поле определенного расширенного типа. Для таблиц с таким полем, нужно перебирать все записи, имеющие определенное значение, и изменять это значение на другое. Аксапта 3.0 SP2, если это имеет значение. Еще раз заранее спасибо за советы.
__________________
Strictly IMHO and nothing personal. Сугубо мое персональное мнение, безотносительно к личности оппонента. |
|
22.12.2004, 20:43 | #2 |
Модератор
|
Что касается поиска - несколько способов было здесь
Список полей таблиц на базе конкретного EDT изменить можно например так: PHP код:
|
|
22.12.2004, 21:19 | #3 |
Ехидна
|
Vadik, спасибо большое!!!!
__________________
Strictly IMHO and nothing personal. Сугубо мое персональное мнение, безотносительно к личности оппонента. |
|
22.12.2004, 21:44 | #4 |
Участник
|
Re: Перебор всех таблиц, имеющих поле определенного типа
Цитата:
Изначально опубликовано AKIS-Falcon
Нужно организовать перебор всех таблиц в АОТ, имеющих поле определенного расширенного типа. http://axapta.mazzy.ru/hints/xref/#040 Стоит встать в АОТ на EDT и спросить чем этот EDT используется. Отфильтровать записи, которые содержат \Data Dictionary\Tables\ |
|
22.12.2004, 23:19 | #5 |
Ехидна
|
Вот мой вариант того, что в результате получилось - фактически скрестил два Вадиковских куска кода, спасибо ему кстати еще раз
PHP код:
1. Как видно, тип у меня текстовый, так что никаких доппроверок не делаю 2. Не стал заморачиваться с длинным наследованием типа "внук-правнук" и пр. Ограничился только прямым 3. Немного поменял сам код, изменяющий значения полей - update record_setting почему-то не пошло... Вот.
__________________
Strictly IMHO and nothing personal. Сугубо мое персональное мнение, безотносительно к личности оппонента. |
|
23.12.2004, 00:05 | #6 |
Ехидна
|
Добавлю, что такие массовые обновления вообще-то надо вести очень осторожно. К примеру, может оказаться, что новое значение делает запись в таблице неуникальной по первичному ключу -> она не может быть сохранена -> выполнение всей процедуры прерывается. Т.е. неплохо бы обрабатывать такие ситуации по try.. catch. Насколько я понимаю, могут также быть затруднения и похуже...
__________________
Strictly IMHO and nothing personal. Сугубо мое персональное мнение, безотносительно к личности оппонента. |
|
23.12.2004, 12:06 | #7 |
Модератор
|
На всякий случай напомню о функции RemanePrimaryKey.
С Уважением, Георгий. |
|
23.12.2004, 21:43 | #8 |
Ехидна
|
Спасибо за напоминание
Было дело, пользовался ею - когда план счетов меняли.
__________________
Strictly IMHO and nothing personal. Сугубо мое персональное мнение, безотносительно к личности оппонента. |
|
11.02.2005, 17:07 | #9 |
Участник
|
Цитата:
Изначально опубликовано George Nordic
На всякий случай напомню о функции RemanePrimaryKey. я сделал немного по другому: на форме Dimensions метод источника Dimensions PHP код:
PHP код:
wb |
|