11.05.2010, 11:44 | #1 |
Участник
|
Id полей при переходе на AX 2009
Переходим с AX 4 на AX 2009, в 4 была своя табличка, в которой ID полей не последовательны, т.к. удалялись поля. Перенес табличку в приложение 2009. В 2009 ID стали по-порядку. При синхронизации аксапта выдает ошибку преобразования данных одного поля в другое (естественно потому что тип данных различен). То есть, насколько я понял, синхронизирует не по имени поля а по ID. А с этим ID в старой аксапте было другое поле.
Как можно избежать этого? |
|
11.05.2010, 11:54 | #2 |
Участник
|
переносить c сохранением ID
|
|
11.05.2010, 12:02 | #3 |
Участник
|
Вы имеете ввиду "Импортировать со значениями кодов" ?
При импорте стояла эта галочка. Сейчас еще раз попробовал таблицу импортнуть, но все так же осталось. Смотрю в xpo файле блокнотом, айдишники как в старой аксапте, все нормально. Гружу в 2009 с этим параметром и всеравно последовательность выстраивается. Последний раз редактировалось propeller; 11.05.2010 в 12:10. |
|
11.05.2010, 12:11 | #4 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: propeller (1). |
11.05.2010, 14:53 | #5 |
Administrator
|
Да не нужно никакого сохранения ID - просто нужно чтобы в табличке SQLDictionary стояли бы те же ID, что и в АОТе.
Для этого: 1. Импортните все XPO такими как они есть 2. Узнайте ID вашей таблички (табличек) 3. Удалите из таблички SQLDictionary записи : DELETE FROM SQLDICTIONARY WHERE TABLEID = Ваш_ID 4. Зайдите в \Администрирование\Периодические операции\Администрирование SQL 5. Выберите ваши таблицы и нажмите меню Проверка-Проверка/Синхронизация. 6. В открывшемся окне нажмите кнопку "Экспорт в DDL". Укажите путь к текстовому файлу, в который будут сохранены команды Transact-SQL 7. Откройте файлик блокнотом и скопируйте из него в SQL Management Studio только те строчки, которые относятся к табличке SQLDictionary. Это строчки вида INSERT INTO "DBO".SQLDICTIONARY .... (строчку DELETE FROM "DBO".SQLDICTIONARY ... мы уже выполнили на 3-м шаге) 8. Выполните скрипт.
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 11.05.2010 в 14:58. |
|
|
За это сообщение автора поблагодарили: Logger (3), S.Kuskov (1). |
11.05.2010, 15:23 | #6 |
Участник
|
|
|
11.05.2010, 16:05 | #7 |
Administrator
|
Согласен, что конечно поставить галку проще. Но у галки есть особенность, про которую нужно помнить. А именно то, что на каком-то этапе может возникнуть конфликт id-шников (конечно это может проявиться только при подкладывании слоев). Мелочь конечно... Но на мой (личный правда) взгляд - лучше сразу (в момент перехода на версию) БД подвести под приложение.
С другой стороны, если ID таблиц / полей хранятся в БД - то однозначно их лучше не менять - есть риск получить рассогласование с данными. В общем - есть 2 рецепта - галка и приведенный мной алгоритм. Так что - есть выбор - кому что по вкусу
__________________
Возможно сделать все. Вопрос времени |
|
|
За это сообщение автора поблагодарили: propeller (1). |
12.05.2010, 10:31 | #8 |
Участник
|
|
|
12.05.2010, 10:45 | #9 |
Administrator
|
Если выполнять команду из SQL Management Studio - то именно TABLEID. Синтаксис приведен именно в формате Transact-SQL
__________________
Возможно сделать все. Вопрос времени |
|
13.05.2010, 10:40 | #10 |
Участник
|
еще вопрос
Еще вопросик сюда же кину:
Завершили весь список обновления, все прошло успешно. Но, в некоторых табличках, которые создавали сами, нет данных причем в компании DAT все нормально. Зашел в бд на sql -server данные в табличках есть для всех компаний, dataareaId заполнено нормально. Но аксапта показывает что пусто. В чем может быть дело? в какую сторону думать? Спасибо |
|
13.05.2010, 12:29 | #11 |
Administrator
|
а с виртуальными компаниями игр не было? Типа того, что табличка, входящая в виртуальную компанию вдруг резко перестала в нее входить или наоборот "случайно" вошла ("потерялась" табличная коллекция в настройке виртуальной компании)
__________________
Возможно сделать все. Вопрос времени |
|
13.05.2010, 17:10 | #12 |
Участник
|
Цитата:
Теперь еще ошибка при открытии договоров "Невозможно выбрать запись в Договоры (RContractTable). Группа договоров: , . База данных SQL обнаружила ошибку." В бд данные в этой таблице по компаниям есть. В чем может быть причина ошибки? |
|
13.05.2010, 17:33 | #13 |
Участник
|
обычно в Event log или в соседнем сообщении infolog или в логе АОСа написано, в чем причина ошибки
|
|
13.05.2010, 17:51 | #14 |
Участник
|
Цитата:
Пока сделал так: удалил из SQLDictionary 2 строчки с этими полями, и прогнал синхронизацию/проверку по этой табличке - поля создались. Последний раз редактировалось propeller; 13.05.2010 в 17:58. |
|
13.05.2010, 18:58 | #15 |
Administrator
|
И это правильно
__________________
Возможно сделать все. Вопрос времени |
|
Теги |
как правильно, приложение |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|