AX отчет: отключен на одну ошибку с подключенными источниками данных - PullRequest
1 голос
/ 21 сентября 2010

Мы хотим создать отчет в Microsoft Dynamics AX 2009, чтобы показать всех сотрудников, которые работали над производственным заказом.

В источники данных для этого отчета мы перетаскиваем
ProdTable(pt), который внутренне соединяется через ProdID и DataAreaID с
ProdJournalRoute (pjr), который внутренне соединяется с помощью EmplID и DataAreaID с
EmplTable (et), где мы ищем имя сотрудника черезname() method.

Этот отчет дает несколько забавных выводов:

pjr.TransDate pjr.EmplID   et.EmplID    et.name()
2010-07-20    05820
2010-07-20    05820        05820        Doe, John
2010-07-20    05820        05820        Doe, John
2010-07-21    00341        05820        Doe, John
2010-07-21    00007        00341        Snow, Jon
...           ...          ...          ...

(Columns and rows snipped)

Видите?Где-то в соединении между ProdJournalRoute и EmplTable EmplID получает смещение на одну строку.

Теперь я, конечно, мог бы просто скопировать метод name() из EmplTable в таблицу ProdJournalRoute иОтключить EmplTable присоединение в целом, но я боюсь, что это только откладывает проблему: что я могу сделать, чтобы мое присоединение заработало?Должен ли я использовать ручной запрос и использовать его в качестве источника данных для отчета?

( PS: , возможно, кто-то с необходимыми правами пользователя может очистить все эти
[[[microsoft] dynamics] AX] метки? Спасибо!)

Ответы [ 3 ]

0 голосов
/ 22 сентября 2010

Все заработало.

Я немного неохотно признаю, что решение было простым: когда из подсказок я перестраивал все с нуля, я добавлял все свои поля ProdJournalRoute иEmplTable полей для EmplTable _Дизайн вместо ProdJournalRoute _Так как я делал это в первый раз, и в этом вся разница.

Iдо сих пор не совсем понятно, как и где отчет связывает отображаемые данные.Я бы подумал, что запрос должен быть выполнен целиком, объединяя все задействованные таблицы, так что вы просто не можете получить такого рода несоответствие данных между таблицами, но это так: источник данных <DS>обновляется только в <DS> _Body дизайна.При использовании этого источника данных в теле проекта источника данных, который далее объединен, запрос дает странные результаты: либо он неинициализирован, либо показывает старые данные, полученные из соединения с предыдущей записью.

Спасибоеще раз за ваши мысли, мистер Кьельдсен.

0 голосов
/ 23 сентября 2010

Мне кажется, что таблицы на самом деле не объединены в запросе, но уровень абстракции, создающий базовые запросы, запускает сначала один выбор для самой внешней таблицы, а затем выполняет запрос для "соединенных" таблиц.Это может объяснить, почему в первой строке нет данных из EmplTable.Я предполагаю, что запрос к EmplTable не вернул данные достаточно быстро для платформы.Взгляните на свойство FirstFast источника данных, а также на то, что он делает на MSDN: http://msdn.microsoft.com/en-us/library/aa842737(AX.10).aspx

Хотя я могу ошибаться.Единственный способ узнать это - попробовать запустить SQL в базе данных.

0 голосов
/ 22 сентября 2010

Проверьте соотношение между таблицами ProdJournalRoute и EmplTable.

Установите ProdJournalRoute.relations на Да или добавьте отношения вручную.

...