19.03.2003, 07:43 | #1 |
Участник
|
Файлы DAT и DEF
Встал вопрос о импорте данных в Axapta.
Посмотрел я на DAT и DEF файлы может грузить из текста. т.е. можно взять бд из левой ИС и сгенерить такие файлы и потом импортировать в Ахарта. Файл DAT почти все понятно кроме третьего поля - там какое-то большое число - обязательно ли оно в файле для импорта и если обязательно то как его генерить? Файл DEF: "EXPFORMAT VER. 2.5 SP4 RU","Comma" - все понятно "TABLEDEF",175,"InventTable" - тоже все понятно "RECORDDEF",175,77,"ItemGroupId",1,"ItemId",2,"ItemName",.... - не понятно поле 3 и циферки 1,2,3,4,5... после 82 пошли 16000, 160001 - это почему так? надо ли их каким -то особым образом генерить? "RECORDCOUNT",175,60 - тоже все понятно "RECORDIDMIN",36920499 - это видимо связано с третьим полем из DEF "RECORDIDMAX",73943864 - нужно ли их заполнать или можно пропустить или можно "от фонаря" значения поставить? "RECORDCOMPANY","ren" - все понятно И еще вопрос - если я хочу заполнять лишь 10 полей из 80 могу ли я так сгенерить эти файлы чтобы не писать лишнее ? Заранее спасибо. |
|
19.03.2003, 08:55 | #2 |
Moderator
|
Цитата:
т.е. можно взять бд из левой ИС и сгенерить такие файлы и потом импортировать в Ахарта.
Причин много. Вот одна из них: Цитата:
"RECORDIDMIN",36920499 - это видимо связано с третьим полем из DEF
"RECORDIDMAX",73943864 - нужно ли их заполнать или можно пропустить или можно "от фонаря" значения поставить? 1. RECORDIDMINб RECORDIDMAX 2. Текущего счетчика recID в базе в которую мы закачиваем данные 3. Наличия таблиц, общих для двух компаний 4. Наличия таблиц, у которых для связки используется recId 5. Наличия еще нескольких экзотических моментов. В общем там много чего понакручено - в свое время, когда я с этим разбирался я даже сделал вывод, что механизм импорта/экспорта данных самое сложное что я видел в Аксапте Если интересуют подробности смотри класс SysDataImport. Например метод con2, который вызывает методы con2* , которые в свою очередь получают данные из def файла. Рекомендую также посмотреть методы importData, importDef и главное importBuffer. |
|
19.03.2003, 09:03 | #3 |
Moderator
|
Да и вообще, зачем генерить файл такой сложной структуры, всего лишь для того, чтобы закачать данные. Осмелюсь привести несколько альтернативных вариантов достижения того же результата:
1. Перегнать данные из вашей системы в текстовый файл (с данными, разделенными запятой) и закачать в Аксапту. 2. То же самое, но с Excel вместо текстового файла. 3. Если Ваше приложение можно использловать как COM сервер, то используя Аксапту, как COM клиент можно забрать у Вашей системы необходимые данные. 4. Если у Вас закуплен COM коннектор и Ваша программа поддреживает COM, то можно используя Аксапту, как COM сервер, а Вашу программу как COM клиент перекачать все необходимые данные. 5. Используя ADOConnection или ODBCConnection можно обращаться к данным в любой базе данных, для которой есть ODBC драйвера (то етсь практически ко всем). 6. Использовать возможности XML. 7. Зная сколько строк Вы хотите импортировать, можно зарезервировать данное количество RecId у Аксапты и пользуясь любым языком (например SQL ) можно быстро закачать очень большой объем данных, не забывая подставлять recId из зарезервированного диапазона. |
|
19.03.2003, 09:07 | #4 |
----------------
|
Цитата:
циферки 1,2,3,4,5... после 82 пошли 16000, 160001 - это почему так? надо ли их каким -то особым образом генерить?
|
|
19.03.2003, 10:20 | #5 |
Участник
|
1. Перегнать данные из вашей системы в текстовый файл (с данными, разделенными запятой) и закачать в Аксапту.
Насколько я понял - это надо уже на X++ написать прогу, которая окроет этот текстовый файл и сделает INSERTы в таблицу... А RecID Axapta сама уже создаст... или нет? 2. То же самое, но с Excel вместо текстового файла. - еще не пробовал (к сожалению) Видимо Exel таблица должна быть определнным образом построена... Был бы экспорт в Exсel было бы понятно какая таблица должна быть... |
|
19.03.2003, 10:55 | #6 |
Moderator
|
1. Администрирование->База данных->Экспорт/Импорт
В частности "Мастер Шаблонов Excel" 2. Читать руководство администратора. |
|
19.03.2003, 11:01 | #7 |
Участник
|
1 . Администрирование->База данных->Экспорт/Импорт
В частности "Мастер Шаблонов Excel" Мастер отрабатывает с ошибкой, хотя создает пустую таблицу Excel c именем таблицы Axapta |
|
19.03.2003, 11:10 | #8 |
Administrator
|
Цитата:
Изначально опубликовано renat
Мастер отрабатывает с ошибкой, хотя создает пустую таблицу Excel c именем таблицы Axapta В целом, могу сказать, что с мастером проблем у меня не возникало. Про импорт из текстового файла читайте здесь: http://www.mazzy.ru/axapta/hints/import/index.html (спасибо Сергею Мазуркину, за то что ткнул меня в это носом )
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
19.03.2003, 11:15 | #9 |
Участник
|
Ошибка
Функция 'value возвратила код ошибки 80020005 (0xDISP_E_TYPEMISMATCH), что означает: Один или большее количество аргументов не мог быть преобразовано. |
|
19.03.2003, 11:27 | #10 |
Administrator
|
Для какой таблицы AXAPTA вы создаете шаблон?
На самом деле мастер очень простой. Он всего лишь создает в книге Excel несколько листов с именами полей таблиц.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
19.03.2003, 11:35 | #11 |
Участник
|
Да создаются пустые листы
а названия полей в которые данные ложить? |
|
19.03.2003, 12:00 | #12 |
Moderator
|
На каждом листе должно быть по одной строке, в которой прописаны названия полей.
|
|
19.03.2003, 12:06 | #13 |
Участник
|
а у меня пустые листы !!! почему нет строки с названиями полей |
|
19.03.2003, 12:12 | #14 |
Moderator
|
Попробуй переустановить Excel. Если не поможет, поработай с отладчиком и попытайся локализовать причину ошибки
И вообще, так только у тебя или на всех машинах в сети ? |
|
19.03.2003, 12:14 | #15 |
Moderator
|
У нас была та же ерунда. Пишет в файл поля, пока не встретится поле типа Integer без EDT на нем. Выдавала не помню какую ошибку, что-то про типы данных, и на этом процесс создания полей заканчивался. Вылечилось правкой метода generateWorkSheet() класса SysExcelImport (неохота было долго разбираться, просто закомментировали там ветвь case, где вызывается глобальный метод isTypeTime(), который и порождал ошибку, вроде все работает ).
__________________
Андрей. |
|
19.03.2003, 12:17 | #16 |
Administrator
|
Таблица?
Какая версия Excel?
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
19.03.2003, 12:20 | #17 |
Administrator
|
Цитата:
Изначально опубликовано Dron AKA andy
У нас была та же ерунда. Настаиваю на том, что сначала надо выяснить, для какой таблицы создается шаблон. Пока повторить ошибку не удалось.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
19.03.2003, 13:07 | #18 |
Участник
|
ошибка идет для любой таблице... в частночти для Address, ZipCodes
может MSOffice надо особый у меня XP... |
|
19.03.2003, 13:28 | #19 |
Moderator
|
Может и фиг с ним, с Excel ?
Я же еще кучу способов привел Из текстового файла качается на порядок быстрее, чем из Excel. COM - все таки штука не бустрая. |
|
19.03.2003, 13:48 | #20 |
----------------
|
У меня аналогичная ситуация с данным мастером.
Ошибка возникает в методе generateWorkSheet(...) класса SysExcelImport на строках с кодом curCell.value(...) Для исправления можно использовать метод, предложенный Андре (в другом обсуждении) - заменить код на curCell.value2(...) |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Метки и Меточные файлы | 1 | |||
Народ, плиз, нужны файлы демо-базы на Ax 3.0. | 4 | |||
Формат файла Экспорта Импорта dat | 33 | |||
Компания DAT | 9 | |||
*.aoc файлы | 15 |
|