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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.09.2012, 10:13   #1  
Dark Light is offline
Dark Light
Участник
 
64 / 49 (0) +++
Регистрация: 17.02.2009
Адрес: Омск
View, Union, DateTime
Добрый день. DAX 2009, RU8.

Есть пара View, содержащие поле типа DateTime. Нужно сделать их объединение. Создаю Union-запрос с этими View. Создаю ещё один View и указываю в нем этот запрос. Создаю новое поле для этого View и выбираю в нем то самое поле типа DateTime. Синхронизирую. Падает АОС.

Если делать объединение таблиц, а не View - работает.
Если добавлять в View-объединение строковые поля - работает (Real, Int, Date и пр. не пробовал).
Во вложении небольшой пример. Для падения АОСа достаточно добавить в View CustVendTableView поле createDateTime.

У всех так? Нет мыслей как это обойти/ заставить работать?
Вложения
Тип файла: xpo SharedProject_Views.xpo (7.4 Кб, 350 просмотров)

Последний раз редактировалось Dark Light; 12.09.2012 в 10:26.
За это сообщение автора поблагодарили: Pustik (1), S.Kuskov (1).
Старый 12.09.2012, 14:05   #2  
Roman777 is offline
Roman777
NavAx
Аватар для Roman777
NavAx Club
 
320 / 64 (3) ++++
Регистрация: 10.02.2005
Адрес: г. Москва
Прошу поправить меня, если где-то запутался.
Проведя эксперимент, используя предоставленный проект с вьюхами, выяснил,
что при создании CustVendTableView, AOS падает по причине отсутствия поля CREATEDDATETIME1TZID в запросе CustVendTableViewQuery.
Как пишется в статье http://msdn.microsoft.com/en-us/libr...(v=ax.50).aspx, для каждого поля UTCdatetime аксапта создает дополнительное поле с кодом fieldTZID, которое недоступно в AOT и в коде.
Если строить запросы и вьюхи по вашей схеме используя собственное поле UTCdatetime, то проблем никаких не возникает.
Почему-то для системного поля createddatetime этого типа в таблице нет поля createddatetimeTZID (может его и не должно быть?) - отсюда и следует цепочка ошибок (поле отсутствует в запросе, а при создании вьюхи на основе этого запроса система не получает нужного поля createddatetimeTZID).
За это сообщение автора поблагодарили: Pustik (2), S.Kuskov (2), Dark Light (2).
Старый 13.09.2012, 08:16   #3  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Roman777 Посмотреть сообщение
для каждого поля UTCdatetime аксапта создает дополнительное поле с кодом fieldTZID
Для каждого несистемного - для полей createdDateTime/modifiedDateTime TZID-поле не создается.
За это сообщение автора поблагодарили: Pustik (2), Roman777 (1), Dark Light (1).
Старый 13.09.2012, 09:01   #4  
Dark Light is offline
Dark Light
Участник
 
64 / 49 (0) +++
Регистрация: 17.02.2009
Адрес: Омск
Всем спасибо - всё прояснилось. Если брать за основу текущий пример:

Поля VendTableView.createdDateTime1 и CustTableView.createdDateTime1, не смотря на то, что представляют системное поле createDateTime, сами являются пользовательскими. Поэтому должны иметь в БД соотв. TZID-поля, но не имеют.

Добавление вручную в БД во View'хи TZID-полей почему-то не решило проблему. В любом случае такой вариант я всё равно бы не выбрал, т.к.
1) Не понятно, что выводить под этим самым TZID-полем (сам выводил один и тот же TZ-код, который видел в другой таблице).
2) Всё разрушится при синхронизации и, соотв., переносе на другое приложение. Представляете, сколько незнающий человек будет искать такую ошибку, которая валит АОС при переносе?

Можно использовать следующий способ это обойти: создать недоступные для редактирования пользовательские поля CustTable.createdDateTime1 и VustTable.createdDateTime1 и заполнять из в insert'e. И использовать в View'ах именно их.

Но эти костыли я вряд ли стану использовать, а, скорее всего, создам представление вручную в БД, т.к. в самой Аксапте его использовать не планируем.

Последний раз редактировалось Dark Light; 13.09.2012 в 09:06.
Теги
datetime, union, view

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ax-erp: How to extract Date value from a DateTime field Blog bot DAX Blogs 0 11.09.2012 18:11
Aku: Dynamics AX AIF Webservices – Date, Time und Datetime Datentypen Blog bot DAX Blogs 0 22.04.2011 17:11
jinx: Dynamics AX AIF Webservices – Date, Time und Datetime Datentypen Blog bot DAX auf Deutsch 0 12.06.2010 01:05
palleagermark: Sample union query from AX 2009 Blog bot DAX Blogs 0 11.07.2008 20:05
View's - возможность добавления новых записей Андре DAX: Программирование 13 16.02.2005 12:16

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:06.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.