AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.01.2012, 03:14   #1  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
674 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
AX2012: импорт в inventTable из Excel
вот такая задача.

мне нужно сделать загрузку из эксельного файла в ах2012 в таблицу MyTable, которую я сам добавил и связал с inventTable по itemId

EcoResProduct.RecId == InventTable.Product
InventTable.ItemId == MyTable.ItemId (1:1 relation like that in ItemGroup for example)
BOMVersion.ItemId == MyTable.ItemId
BOM.ItemId == MyTable.ItemId

MyTable содержит информацию о пищевой ценности товаров, поскольку там очень много полей, то решено её хранить в виде отдельной таблицы, а не добавлять поля в InventTable

теперь проблемный момент.
как известно, в новой версии можно изменять код товара, и мы собираемся этим пользоваться. идея заключается в том, что itemId будет меняться, а ключом для внешней базы, из которой мы собираемся загружать допинфу в мою таблицу, является InventTable.Product

проще говоря, в загружаемом эксель файле есть поле product, которое является ключом во внешней базе и через которое, по идее, можно найти запись в моей таблице, но нет поля ItemId, которое является ключевым и требуется для создания (обновления) записи в моей таблице при загрузке из экселя.

например, для загрузки самой таблицы InventTable из экселя, требуется два заполненных ключевых поля: ItemId и Product.

менять ключевое поле в моей таблице я не могу, потому что по нему идёт привязка к версиям БОМ и строкам БОМ. а вот как извернуться при импорте так, чтобы находить нужную запись или создавать её -- это и есть вопрос.

то есть, при загрузке строки из экселя берём код Product, находим в InventTable нужный товар, и если он существует, создаём запись в моей таблице с данными из файла и кодом товара из InventTable:

MyTable.ItemId = InventTable::findByProduct().ItemId
MyTable.Field1 = Excel.Field1
...
MyTable.Insert() / update()

как говорится, помогите!

мерси!
__________________
Felix nihil admirari
Старый 15.01.2012, 12:14   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
а закладка "Конвертация" в настройках групп определений вам не поможет?
Пример использования:
Импорт из Excel и номерные серии
Импорт остатков

Последний раз редактировалось S.Kuskov; 15.01.2012 в 12:17.
Старый 15.01.2012, 19:10   #3  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
674 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
а закладка "Конвертация" в настройках групп определений вам не поможет?
Пример использования:
Импорт из Excel и номерные серии
Импорт остатков
да, в предыдущих версиях всё было просто и прекрасно, но в 2012 больше нет таких закладок. впрочем, как и групп типа эксель -- мир сдвинулся.
__________________
Felix nihil admirari
За это сообщение автора поблагодарили: S.Kuskov (2).
Старый 15.01.2012, 22:31   #4  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
А подпилить временно сам импорт? Не смотрел как в 2012, в 2009 там вызывался doInsert(). Вы можете подпилить его, поставив условие, и вызывать нужный вам метод. Примерно такой механизм предлагался майкрософтом в 2009-й для импорта адресов.
Старый 15.01.2012, 22:35   #5  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
674 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от greench Посмотреть сообщение
А подпилить временно сам импорт? Не смотрел как в 2012, в 2009 там вызывался doInsert(). Вы можете подпилить его, поставив условие, и вызывать нужный вам метод. Примерно такой механизм предлагался майкрософтом в 2009-й для импорта адресов.
именно что подпилить! но где??
__________________
Felix nihil admirari
Старый 15.01.2012, 23:01   #6  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Вы используете новый экселевский Addin для импорта?
Старый 15.01.2012, 23:05   #7  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
674 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от greench Посмотреть сообщение
Вы используете новый экселевский Addin для импорта?
да! прошу прощенья, что не указал изначально.
__________________
Felix nihil admirari
Старый 16.01.2012, 12:05   #8  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Импорт остатков
чем вам не гож такой вариант?
__________________
С уважением,
Вячеслав
Старый 16.01.2012, 12:54   #9  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Цитата:
Сообщение от pitersky Посмотреть сообщение
Импорт остатков
чем вам не гож такой вариант?
Наверное ищется самый простой и универсальный путь.
Старый 16.01.2012, 13:40   #10  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
wojzeh, а в 2012-й осталась проблема при работе с COM объектами ?
При экспорте и импорте также валится ?
Старый 16.01.2012, 18:00   #11  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
674 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от Logger Посмотреть сообщение
wojzeh, а в 2012-й осталась проблема при работе с COM объектами ?
При экспорте и импорте также валится ?
какая проблема? в предыдущих версиях я загружал без проблем из экселя или текста, а для сложных случаев писал код в закладках для конверсии данных и обработки.

с экспортом вообще проблем не бывало -- Ctrl-E (теперь почему-то стало Ctrl-T)
__________________
Felix nihil admirari
Старый 16.01.2012, 18:01   #12  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
674 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от pitersky Посмотреть сообщение
Импорт остатков
чем вам не гож такой вариант?
да, такой вариант тоже нравится, но в дальнейшем предполагается частое обновление некоторых записей из стороннего веб-приложения, и я собирался сделать соответствующий веб-сервис. подозреваю, что обе этих вещи должны быть реализованы через один и тот же класс.
__________________
Felix nihil admirari
Старый 18.01.2012, 10:52   #13  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Цитата:
Сообщение от wojzeh Посмотреть сообщение
да, такой вариант тоже нравится, но в дальнейшем предполагается частое обновление некоторых записей из стороннего веб-приложения, и я собирался сделать соответствующий веб-сервис. подозреваю, что обе этих вещи должны быть реализованы через один и тот же класс.
В блоге коллеги описан механизм импорта с помощью Excel http://ax2012exceldataimport.blogspot.com/

Вот в AIF сервисе в инсерте можете и запилить нужную вам логику.
За это сообщение автора поблагодарили: wojzeh (1).
Старый 18.01.2012, 17:10   #14  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
674 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от greench Посмотреть сообщение
В блоге коллеги описан механизм импорта с помощью Excel http://ax2012exceldataimport.blogspot.com/

Вот в AIF сервисе в инсерте можете и запилить нужную вам логику.
то что я и искал! спасибо большое! коллега крут и сделал полезное дело!
__________________
Felix nihil admirari
Теги
ax2012, ecoresproduct, excel, import, inventtable, relation, table

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX2012: импорт из Excel wojzeh DAX: Администрирование 6 10.09.2013 17:09
Передача переменного числа параметров в метод lemchey_white DAX: Программирование 16 14.12.2009 21:21
Как обойти ограничение на количество полей сортировки в DS отчета? Dronas DAX: Программирование 11 30.07.2009 10:19
Проблем импорт из Excel dreshkov DAX: Функционал 1 20.08.2003 16:34
OLAP: Импорт в Excel Hamster DAX: Функционал 2 23.06.2003 07:51

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:37.