27.11.2006, 14:07 | #1 |
Участник
|
импорт при несовпадающих tableid
Кто-нибудь сталкивался с проблемой не работающего экспорта через группы определений при несовпадающих tableid исходной и конечной таблицы. Есть две Аксапты - в одной таблица изначально определена на cus слое и имеет tableid 30018 , в другой - на usr слое и имеет recid 50135. При этом стандартный экспорт через группы определений не работает , так как не совпадают ни tableid ни reid у двух таблиц с полностью идентичным словарем
Есть какой - нибудь workaround для этой проблемы ? |
|
27.11.2006, 14:14 | #2 |
Злыдни
|
Выгрузить данные из приложения, в которое нужно произвести закачку.
Сохранить def файл. Выгрузить данные из другого приложения. Заменить def файл. Закачать. По идее, если нет различия в структуре, должно пройти
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
27.11.2006, 17:38 | #3 |
Участник
|
Спасибо . Только видимо не для данного случая . По крайней мере во время импорта опять была ругань . Хотя идея очень красивая
|
|
27.11.2006, 17:41 | #4 |
Злыдни
|
Сравните структуры и порядок полей в двух def файлах. Ошибка, скорее всего там. Если не поможет используйте импорт через csv.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
27.11.2006, 17:56 | #5 |
Участник
|
А разве при импорте через csv не такой же принцип импорта - импорт идет по recid ? Насколько я понял имеется в виду что при экспорте надо указать тип файла csv формат . Однако при этом Axa опять создает def и dat файлы - чем ситуация отличается - честно говоря , не понимаю . Точнее даже , я не совсем понимаю почему называется импорт в csv - ведь файл в формате csv не создается ?
|
|
27.11.2006, 18:01 | #6 |
Злыдни
|
Выгрузить данные в csv (txt файл с определенным разделителем) достаточно легко. При импорте можно будет управлять порядком данных (столбцов), а вот id полей уже никакого влияния не окажут
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
27.11.2006, 18:15 | #7 |
Участник
|
А как именно ? Если просто указать csv файл в меню Параметры экспорта то мы имеем на выходе два файла - dat и def (см предыдущий пост) Какой из них считается csv ??
|
|
27.11.2006, 21:05 | #8 |
Участник
|
Скорее всего имелся в виду импорт из текстового файла
http://axapta.mazzy.ru/lib/import/ |
|
27.11.2006, 21:26 | #9 |
Member
|
1. Создал табличку. Имя (метку в названии) ей указать забыл.
2. Экспортировал в .xpo 3. Ввел три строчки. 4. Экспортировал табличку в .dat 5. Удалил табличку. 6. Импортировал .xpo 7. Убедился, что изменился ID таблички. 8. Импортировал данные. Хм... Пишет, что импортировало 0 записей. 9. Убедился, что в табличке три записи. В общем-то, даже и не сомневался, что оно работает. Как воспроизвести вашу проблему? И при чем здесь RecId, если речь идет об идентификаторах таблиц и полей, а также о переносе кода между слоями?
__________________
С уважением, glibs® |
|
28.11.2006, 09:52 | #10 |
Злыдни
|
Скорее всего не совпадает структура данных. В этом случае единственный доступный способ - закачка не из двоичного файла.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
28.11.2006, 15:18 | #11 |
Участник
|
ругается, потому что tableid записывается в данные при экспорте, не только в деф-файл, причем в каждую строку данных
делайте экспорт с типом csv, в текстовом редакторе в дат и деф-файлах массово заменяйте один tableid на другой |
|
28.11.2006, 15:56 | #12 |
Злыдни
|
Откуда такие сведения? Разбор метода record2con в SysDataExport не выявил высказанного
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
28.11.2006, 16:10 | #13 |
Member
|
Цитата:
Сообщение от Artem Mikhailov
...
ругается, потому что tableid записывается в данные при экспорте, не только в деф-файл, причем в каждую строку данных ...
__________________
С уважением, glibs® |
|
28.11.2006, 17:43 | #14 |
NavAx
|
Может у таблицы выключен параметр saveDataPerCompany и система считает ее системной... тогда надо галочку пометить (импортировать системные).
|
|
28.11.2006, 19:13 | #15 |
Участник
|
покажите первую строку дефа
для EXPFORMAT VER. 3.0 CIS SP2 это так для более поздних я думаю эта нелепость с совпадением тейблайди устранена |
|
28.11.2006, 19:20 | #16 |
Участник
|
|
|
29.11.2006, 08:33 | #17 |
Злыдни
|
А вот Вы о чем. Никогда не использовал стандартную выгрузку в csv для импорта, только двоичный формат. Я говорил о группе определений для экспорта/импорта с типом "Произвольный". Для таких типов доступен только импорт, но можно подключать обработки и указывать набор и порядок полей.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
29.11.2006, 11:24 | #18 |
Участник
|
Насколько я понял , обсуждение пошло по двум параллельным направлениям Glibbs сомневается в существовании проблемы , Артем в ее существовании не сомневается и пытается дать совет.
Предлагаю сперва определиться с тем что проблема все таки есть Мощный алгоритм , по всей видимости , все таки не отслеживает изменения id шников полей . В принципе мне это кажется логичным - любой алгоритм должен использовать минимальный набор данных и работать быстро .Поэтому стандартный алгоритм отталкивается от id шников и предполагает что id таблицы и полей при импорте не меняются 2 raz : SaveDataPerCompany у таблицы включен Алгоритмы связанные с заменами , подменами и переименованиями id -шников очень интересны , но у меня например возникали ошибки и результат был нулевой Потом ручное переименование 10 полей |
|
29.11.2006, 11:40 | #19 |
Участник
|
(продолжение) это одно , а если полей 50 ?? Это может привести к трудно уловимым ошибкам при экпорте
Хотелось бы все таки поставить оптимистичную точку в этом обсуждении . Я воспользовался стандартной функциональностью SQL server а - создал DTS package в Data Transformation Services\Local Packages создал там необходимое количество task ов для импорта - и вперед При это столкнулся с двумя проблемами 1) Была ругань на consistency поля recVersion - убрал соотвествующую трансформацию на закладке transformations 2) В исходной базе компания была wrk , в конечной - dat - соотвественно поменял dataareaid уже в Аксапте при помощи UserConnection UserConnection connection = new UserConnection(); Statement statement; ; ttsbegin; statement = connection.createStatement(); statement.executeUpdate("Update " + <название таблицы> + " SET " + chooseTable.text() + ".DataAreaId = '" + <название компании>+ "'"); statement.close(); ttscommit; element.close(); Вот пожалуй и все . Не могу сказать что все прямо совсем оптимально (например компанию скорее всего можно было поправить еще при импорте в SQL) , но по крайней мере это работает и проблем вроде нет Всем большое спасибо за помощь ! |
|
29.11.2006, 12:48 | #20 |
Member
|
Цитата:
Сообщение от Asterisk
...
Предлагаю сперва определиться с тем что проблема все таки есть Мощный алгоритм , по всей видимости , все таки не отслеживает изменения id шников полей . В принципе мне это кажется логичным - любой алгоритм должен использовать минимальный набор данных и работать быстро .Поэтому стандартный алгоритм отталкивается от id шников и предполагает что id таблицы и полей при импорте не меняются ... Я снова поставил эксперимент. 1. Экспортировал данные из описанной выше таблицы в двоичный формат .dat. 2. Экспортировал данные из описанной выше таблицы в двоичный формат .csv. 3. Экспортировал таблицу со значениями идентификаторов. 4. Удалил таблицу. 5. Открыл .xpo файл и поменял илентификаторы таблицы и полей на левые. 6. Импортировал таблицу. 7. Убедился в том, что идентификаторы в таблице (для таблицы и для поля) именно такие, как я из ввел в .xpo файле. 8. Импортировал данные из .dat файла. Ошибок при импорте не было. Данные присутствуют. 9. Удалил данные из таблицы. 10. Импортировал данные из .csv файла. Ошибок при импорте не было. Данные присутствуют. Существует практический способ воспроизведения вашей проблемы? Аксапта 3.0 ЕЕ сп5 без ядерных ролапов. Эта хрень работает. Ею можно пользоваться для выгрузки-загрузки данных. Конечно, можно придумать и другие способы импорта данных, если именно это является вашей целью...
__________________
С уважением, glibs® |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Стандартный импорт данных. Обновление | 0 | |||
Что лучше select RecId или select TableId | 9 | |||
Стандартный импорт данных... | 0 | |||
Экспорт/импорт таблиц | 15 | |||
Импорт данных из ODBC источника | 4 |
|