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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.11.2014, 20:59   #1  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Выбор столбцов при импорте\экспорте Excel add-in
Добрый вечер, уважаемые коллеги.
Вопрос состоит в следующем:
Имею dax 2012 r3, excel 2013 с установленным Excel add-in for Dynamics Ax.

Какую группу полей этот аддон берёт, когда добавляешь таблицу (Add Data - Add Tables) ?
Хочу в этот список включить некоторые поля дополнительно, которые есть в узле Fields, но их нет в списке полей в экселе.
Все Fields Groups пересмотрел -ничего не подходит.
Гуглил , никаких мануалов по данной теме не нашёл. Не понятно вообще, по какому принципу он берёт поля для отображения
Буду признателен, если Вы подскажете, куда смотреть нужно.
За это сообщение автора поблагодарили: Aquarius (1).
Старый 09.11.2014, 09:59   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,308 / 3540 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Инкрементный / полный CIL давно создавали? Нонче это надо делать так же часто, как компиляцию кода
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: Aquarius (1).
Старый 09.11.2014, 23:59   #4  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Инкрементный / полный CIL давно создавали? Нонче это надо делать так же часто, как компиляцию кода
2 раза в день делаю, иногда чаще, когда произвожу изменения в таблицах.


S.Kuskov, спасибо за ссылку, судя по всему, там ответ. Вот только где этот путь искать-то ?)
Цитата:
Сообщение от ice Посмотреть сообщение
Возможно потребуется обновить соответствующую службу документов (панель/сервис/AIF/обновить службу документов) и после сделать CIL
Старый 10.11.2014, 00:31   #5  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,308 / 3540 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от user_ax Посмотреть сообщение
Вот только где этот путь искать-то ?)
Честно скажу, на новой таблице я и так и сяк пробовал - пришел к выводу - что запуск полного CIL вполне себя оправдывает, если Вы в Excel добавляете именно таблицу.

В Excel можно выбрать таблицу или источник данных. Если источник данных Query из АОТа или пользовательский запрос (по сути - тот же Query) - то такой источник предоставляет данные только на чтение.
Однако, если источник - это веб служба (листочек с карандашиком в Excel), то данный источник может данные писать в AX (само собой - должны быть определены соответствующие методы изменения данных - create, update и т.д.). В этом случае именно эту веб-службу Вы и должны обновить из АХ (чтобы в Ax-классах создались соответствующие parm-методы, плюс был бы обновлен соответствующий Axd-класс).
__________________
Возможно сделать все. Вопрос времени
Старый 10.11.2014, 13:12   #6  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Честно скажу, на новой таблице я и так и сяк пробовал - пришел к выводу - что запуск полного CIL вполне себя оправдывает, если Вы в Excel добавляете именно таблицу.

В Excel можно выбрать таблицу или источник данных. Если источник данных Query из АОТа или пользовательский запрос (по сути - тот же Query) - то такой источник предоставляет данные только на чтение.
Однако, если источник - это веб служба (листочек с карандашиком в Excel), то данный источник может данные писать в AX (само собой - должны быть определены соответствующие методы изменения данных - create, update и т.д.). В этом случае именно эту веб-службу Вы и должны обновить из АХ (чтобы в Ax-классах создались соответствующие parm-методы, плюс был бы обновлен соответствующий Axd-класс).
Dynamicx Ax tab - Add Data - Add Tables - выбираю таблицу. Таблица созданная, не стандартная.

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

Может всё-таки нужно пнуть этот AIF? Это из-под Аксы делается?

Последний раз редактировалось user_ax; 10.11.2014 в 13:17.
Старый 10.11.2014, 13:31   #7  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,308 / 3540 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от user_ax Посмотреть сообщение
Может всё-таки нужно пнуть этот AIF? Это из-под Аксы делается?
Нажмите на изображение для увеличения
Название: Снимок.PNG
Просмотров: 461
Размер:	71.7 Кб
ID:	9035
__________________
Возможно сделать все. Вопрос времени
Старый 10.11.2014, 14:13   #8  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Выбрал все галки, нажал окей, выдало ворнинг :

Цитата:
The service class name is not specified.
Старый 10.11.2014, 14:22   #9  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,308 / 3540 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Я про это и писал, что если у Вас источник данных веб-служба, то Вы заведомо знаете, какую службу выбирать. По приведенной выше ссылке также отсылка идет в эту форму с указанием, что надо выбрать соответствующую службу.
Именно поэтому логичным достаточным действием будет генерация полного CIL-а. Ну и вроде как у меня на новой таблице так и получилось
__________________
Возможно сделать все. Вопрос времени
Старый 10.11.2014, 14:36   #10  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Я про это и писал, что если у Вас источник данных веб-служба, то Вы заведомо знаете, какую службу выбирать. По приведенной выше ссылке также отсылка идет в эту форму с указанием, что надо выбрать соответствующую службу.
Именно поэтому логичным достаточным действием будет генерация полного CIL-а. Ну и вроде как у меня на новой таблице так и получилось
А как узнать, какая веб-служба используется?
+ как я понимаю, для новых таблиц нужно и такие классы создавать, только вот такой класс нужен ли?

Ещё интересная проблема в том, что на 2-х таблицах добавлен релейшен по новому полю на таблицу ProjTable, и на одной таблице в списке полей есть несколько полей вида Project.ProjectId ... а на другой нет. Собственно, поэтому и пытаюсь решить эту проблему.
Старый 10.11.2014, 15:01   #11  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Ещё бы хотелось понять , почему релейшн на таблице Items(строки) видел в экселе, а на таблице Table (шапка) - нет.

Хотел выбрать любой из классов НЕстрандартных, мне выдаёт ворнинг:

Цитата:
Class SubmittalImportExcel is not a valid document service class.

Последний раз редактировалось user_ax; 10.11.2014 в 15:04.
Старый 11.11.2014, 07:42   #12  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,437 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от user_ax Посмотреть сообщение
... is not a valid document service class
На просторах интернета пишут http://daxdude.blogspot.ru/2010/12/u...-new-data.html
Цитата:
The class name will end with '…Service'. Any other class will give an error saying that the class is not a valid service class

P.S.: AIF Class Naming Conventions

Последний раз редактировалось S.Kuskov; 11.11.2014 в 07:47.
Старый 11.11.2014, 12:52   #13  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
На просторах интернета пишут http://daxdude.blogspot.ru/2010/12/u...-new-data.html



P.S.: AIF Class Naming Conventions

Интересная ссылка на блог, благодарю!
Попробую по аналогии с SalesSalesOrderService классом создать для своей таблицы и его выбрать в кач-ве источника Update Document Service. Посмотрим, получиться или нет.
Старый 11.11.2014, 16:35   #14  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,308 / 3540 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
На просторах интернета пишут
Цитата:
The class name will end with '…Service'. Any other class will give an error saying that the class is not a valid service class
Ну... на заборах тоже пишут... А если в код заглянуть, то мы увидим, что ищутся наследники класса AifDocumentService, за исключением класса AifGenericDocumentService (он исключается из рассмотрения)

В системе существует 3 типа служб (тренинг по AIF):
Document Services - это классы-наследники AifDocumentService. Это службы, обеспечивающие экспорт / импорт данных по целому документу (заказ на продажу, заказ на возврат, заказ на покупку и т.д.). Эти классы используют Axd-классы (одна служба - один Axd-Класс) для хранения логики экспорта / импорта данных.

Custom Services - это классы, которые мы сами можем опубликовать, как службы в узле Services в АОТ. Document Services - это по сути частный случай Custom Services, только с определенными правилами (т.е. определенными методами, принципами программирования и т.д.). Как создать такие классы (Custom Services) я писал здесь: AX 2012 Создание сервиса по шагам

System Services - это служба с названием MetaDataService, при помощи которой можно получить данные об АОТ (т.е. это аналог Dict*-классов в Х++).

В форме обновления нигде нет упоминания о том, что названия классов должны заканчиваться на "Service"
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 11.11.2014 в 17:42.
За это сообщение автора поблагодарили: S.Kuskov (2).
Старый 11.11.2014, 16:52   #15  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
sukhanchik, спасибо за подробный ответ!!

А как тогда объяснить такое поведение:
Есть 2 таблицы : родитель(табл1), ребёнок(табл2).
Таблица ребёнок связана с таблицей родителем по refrecid(так исторически сложилось).

В табл1 есть связь с ProjTable по table1.projtableRef == ProjTable.recid
И в табл2 есть такая же связь.

Если добавить в Эксель табл2 - видим там следующую группу полей:


Вот я и хочу добавить такую же группу в табл1, это всё что мне нужно

Свойства таблиц почти идентичны..Собственно, поэтому и мучаюсь.
Старый 11.11.2014, 17:41   #16  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,308 / 3540 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Итак, давайте "сверим часы". А точнее наши понимания чего не работает.
Я создаю таблицу MyTableTable с полями
projtableRef, которое связано с ProjTable.RecId
и каким-нибудь полем Name.
Я создаю таблицу MyTableTrans с полями
refRecId, которое связано с MyTableTable.RecId
и каким-нибудь полем Name.

Что теперь я должен сделать в Excel ? Добавить туда просто вторую табличку? А какие релейшны будут в АОТе? Даст ли мне система добавить "строки без шапок"? Это тоже зависит от релейшна.

Я хочу смоделировать Вашу ситуацию и хочу понять, что мне для этого нужно сделать.
__________________
Возможно сделать все. Вопрос времени
Старый 12.11.2014, 00:13   #17  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от sukhanchik Посмотреть сообщение


Что теперь я должен сделать в Excel ? Добавить туда просто вторую табличку? А какие релейшны будут в АОТе?

Я хочу смоделировать Вашу ситуацию и хочу понять, что мне для этого нужно сделать.
Про таблички - верно, да!

Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Что теперь я должен сделать в Excel ?
Добавить MyTableTable в эксель через Add Tables и чтобы в списке полей было поле Projtableref хотя бы или же чтобы было так, как на скриншоте снизу, тобиж, как я понимаю - поля беруться по релейшену.

Добавлять вторую табличку не нужно, данные берутся только из MyTableTable.
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Даст ли мне система добавить "строки без шапок"? Это тоже зависит от релейшна.
Строки без шапки не даст добавить, а шапку без строк - даст.
Старый 12.11.2014, 01:13   #18  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,308 / 3540 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Ок, начинаю по порядку.
1. Создал проект с табличками. EDT не создавал, все откомпилировал и создал инкрементный CIL
Название: SNAG_Program-0000.png
Просмотров: 1359

Размер: 34.7 Кб
2. Открыл Excel и добавил табличку в Excel
Название: SNAG_Program-0001.png
Просмотров: 1284

Размер: 12.1 Кб
3. Открылся список полей
Нажмите на изображение для увеличения
Название: SNAG_Program-0002.png
Просмотров: 519
Размер:	66.0 Кб
ID:	9038
4. Закрыл список полей, через кнопку AddRow добавил строки. Поле RecId заполнил хоть чем-то - главное, чтобы были уникальные значения (АХ все равно их перетрет)
Нажмите на изображение для увеличения
Название: SNAG_Program-0003.png
Просмотров: 205
Размер:	34.5 Кб
ID:	9039
5. Нажал кнопку Publish All.
Нажмите на изображение для увеличения
Название: SNAG_Program-0004.png
Просмотров: 249
Размер:	37.0 Кб
ID:	9040
6. Пошел в АХ, убедился что действительно Excel не врет
Название: SNAG_Program-0005.png
Просмотров: 1367

Размер: 10.0 Кб
7. Пошел снова в проект, добавил поле Description. CIL не создавал
Название: SNAG_Program-0006.png
Просмотров: 1328

Размер: 34.9 Кб
8. Открыл Excel. Как и следовало ожидать - Excel о новом поле не узнал
Нажмите на изображение для увеличения
Название: SNAG_Program-0007.png
Просмотров: 265
Размер:	57.2 Кб
ID:	9043
9. Сделал инкрементный CIL. Открыл снова Excel (Excel нужно переоткрывать, иначе он ругается, если чего-то там изменилось, а их светлость не переоткрыли). Ожидаемо увидел новое поле
Нажмите на изображение для увеличения
Название: SNAG_Program-0008.png
Просмотров: 188
Размер:	60.1 Кб
ID:	9044
10. В Excel на лист добавил новое поле, нажал Refresh, чтобы получить данные. Через AddRow добавил новую запись и заодно заполнил новое поле. Нажал Publish All
Нажмите на изображение для увеличения
Название: SNAG_Program-0009.png
Просмотров: 311
Размер:	41.8 Кб
ID:	9045
Оппа.... Бага! (Эх... не заснял на скриншот). Отработал Update по существующим записям по новому полю, отработал Insert по новой записи, но в новой записи поле Description не заполнилось. Ну ладно... мы ж упрямые.
11. Заполнил у новой записи поле Description в Excel, нажал Publish All. Все отработало.
Нажмите на изображение для увеличения
Название: SNAG_Program-0010.png
Просмотров: 242
Размер:	41.5 Кб
ID:	9046
12. Пошел в АХ, убедился, что Excel не врет
Название: SNAG_Program-0011.png
Просмотров: 1362

Размер: 11.6 Кб

А вот когда я удалил табличку из АОТ, то инкрементный CIL мне уже не помог - Excel ее не вычеркнул из своего списка таблиц. Пришлось создавать полный CIL, только тогда табличка "вычеркнулась".

Ну и XPO прилагаю
SharedProject_MyProjectTable.xpo

AX 2012 R3 (виртуалка от МС) Ядро и приложение 6.3.164.0
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 12.11.2014 в 01:19.
За это сообщение автора поблагодарили: DmitryK (1).
Старый 12.11.2014, 13:28   #19  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
sukhanchik, спасибо Вам большое за проделанный эксперимент.
Мои таблицы уже созданы, пересоздать их я не могу , увы.

А по поводу релейшенов интересно.. У вас в mytableTrans нет релейшена на ProjTable, а он должен быть(по ТЗ).
У меня и на tablttable и на tabletrans есть релейшен к ProjTable.
Может быть из-за этого?
Если убрать релейшн в строках, то эта группа полей появится в шапке.. хм.

После просмотра Ваших скриншотов подумал, что у нас энва глючная, однако версии совпадают с Вашей :
Ядро и приложение 6.3.164.0

Попробую сделать импорт Вашего проекта и провести полный сил.


Ещё я грешил и грешу на свойства таблиц, их индексы. Влияют ли они? У Вас ведь нет индексов, а какие свойства таблиц ??

Последний раз редактировалось user_ax; 12.11.2014 в 13:50.
Старый 12.11.2014, 14:23   #20  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,308 / 3540 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от user_ax Посмотреть сообщение
sukhanchik, спасибо Вам большое за проделанный эксперимент.
Мои таблицы уже созданы, пересоздать их я не могу , увы.

А по поводу релейшенов интересно.. У вас в mytableTrans нет релейшена на ProjTable, а он должен быть(по ТЗ).
У меня и на tablttable и на tabletrans есть релейшен к ProjTable.
Может быть из-за этого?
Если убрать релейшн в строках, то эта группа полей появится в шапке.. хм.

После просмотра Ваших скриншотов подумал, что у нас энва глючная, однако версии совпадают с Вашей :
Ядро и приложение 6.3.164.0

Попробую сделать импорт Вашего проекта и провести полный сил.


Ещё я грешил и грешу на свойства таблиц, их индексы. Влияют ли они? У Вас ведь нет индексов, а какие свойства таблиц ??
Все в XPO есть - все свойства. Я ничего не устанавливал свыше. Попробуйте, поиграйтесь. Может в конечном счете придете к работоспособному варианту.
__________________
Возможно сделать все. Вопрос времени
Теги
addin, excel, fields, поля

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
atinkerersnotebook: Using the Dynamics AX Excel Add-In Blog bot DAX Blogs 1 25.09.2013 07:11
atinkerersnotebook: Walkthrough & Tutorial Summary Blog bot DAX Blogs 1 09.09.2013 09:11
emeadaxsupport: How to copy a budget to a new budget in AX 2012 using Excel Add-in Blog bot DAX Blogs 0 27.11.2012 15:11
emeadaxsupport: Importing a Budget via the Excel Add-in Blog bot DAX Blogs 0 10.09.2012 23:15
dynamics-ax: Microsoft Dynamics AX 2012 Excel Add-in Blog bot DAX Blogs 0 08.06.2011 08:12

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

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

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