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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.07.2014, 14:02   #1  
Harry is offline
Harry
Участник
 
94 / 10 (1) +
Регистрация: 01.10.2007
Финансовые аналитики
Добрый день.
В АХ 2009 хочу наложить фильтр по финансовой аналитики например "Подразделение", но при построении расширенного запроса перечень аналитик пуст (сами аналитики заполнены).


При детальном рассмотрении выяснил что на лукап накладывается вот такой вот фильтр:


В чем может быть причина такого поведения системы?
Миниатюры
Нажмите на изображение для увеличения
Название: Analitycs.jpg
Просмотров: 802
Размер:	49.3 Кб
ID:	8924   Нажмите на изображение для увеличения
Название: Analitycs_2.jpg
Просмотров: 878
Размер:	96.8 Кб
ID:	8925  

Старый 17.07.2014, 14:16   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Возможно ли что по этому полю уже программно задан фильтр?

Стандартные советы: сделать сброс данных, почистить кеш
Старый 17.07.2014, 14:20   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Вообще-то, судя по картинке, либо поврежден собственно EDT Dimensions (не корректные значения в Relations), либо поврежден Base Enum SysDimensions.

__ILLEGAL_VALUE__ - это указание значения, которого нет в перечислении. А вот откуда взято значение - из кривого Relations в EDT или из кривого Base Enum и надо выяснить

PS: А у Вас случайно на таблице CustTable явно не прописан какой-либо Relation к полю Dimension?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...

Последний раз редактировалось Владимир Максимов; 17.07.2014 в 14:22.
Старый 17.07.2014, 18:55   #4  
R.Safianov is offline
R.Safianov
Участник
Аватар для R.Safianov
MCBMSS
Columbus IT
Лучший по профессии 2014
 
110 / 118 (4) +++++
Регистрация: 25.06.2008
Цитата:
Сообщение от Harry Посмотреть сообщение
Добрый день.
Возьмите запись в справочнике Клиенты.
Встаньте на поле аналитики и правой кнопкой отберите все. Допустим по выбранному значению.
Дальше вызовите форму расширенной фильтрации и посмотрите каким образом система связывает таблицы и накладывает фильтр.
Дальше по аналогии настройте свой фильтр.

То, что вы выбираете поле Подразделение - еще не значит, что вы фильтруетесь по аналитике.
Старый 18.07.2014, 13:38   #5  
Sergikrus is offline
Sergikrus
Участник
 
82 / 15 (1) ++
Регистрация: 26.09.2008
Адрес: Tyumen
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Вообще-то, судя по картинке, либо поврежден собственно EDT Dimensions (не корректные значения в Relations), либо поврежден Base Enum SysDimensions.

__ILLEGAL_VALUE__ - это указание значения, которого нет в перечислении. А вот откуда взято значение - из кривого Relations в EDT или из кривого Base Enum и надо выяснить

PS: А у Вас случайно на таблице CustTable явно не прописан какой-либо Relation к полю Dimension?
Добавили новую аналитику.
Все делали как написано здесь:
http://msdn.microsoft.com/en-us/libr...(v=ax.50).aspx
и
http://sumitsaxfactor.wordpress.com/...ial-dimension/

Ничего лишнего от себя не добавили
Старый 18.07.2014, 15:28   #6  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Sergikrus Посмотреть сообщение
Добавили новую аналитику.
Все делали как написано здесь:
http://msdn.microsoft.com/en-us/libr...(v=ax.50).aspx
и
http://sumitsaxfactor.wordpress.com/...ial-dimension/

Ничего лишнего от себя не добавили
Собственно, не имеет значения, что делали раньше. Вам надо посмотреть, что есть сейчас.

1. Проверьте таблицу клиентов (CustTable) на наличие полей с Label = "Подразделение" (возможно, Вы просто не по тому полю фильтр настраиваете)

2. Проверьте в таблице клиентов CustTable факт наличия узлов Relations в который явно указаны ссылки на поле CustTable.Dimension - быть не должно

3. Посмотрите, на основе какого EDT создано поле CustTable.Dimension.

4. Если поле CustTable.Dimension создано на основе Extended Data Types с именем Dimensions, то открываете этот самый Dimensions и смотрите, что у него указано в узлах Relations. Особое внимание обращаете на числовые константы в этих узлах

5. Открываете Base Enum с именем SysDimensions и проверяете какое числовое значение присвоено всем его элементам. Соответствуют ли эти числа тем значениям, которые указаны в узлах Relations для Extended Data Types с именем Dimensions

Наиболее вероятная причина ошибки - не соответствие числовых значений в Base Enum и констант, указанных в Relations на Extended Data Types
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: Logger (3).
Старый 18.07.2014, 15:53   #7  
Sergikrus is offline
Sergikrus
Участник
 
82 / 15 (1) ++
Регистрация: 26.09.2008
Адрес: Tyumen
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
1. Проверьте таблицу клиентов (CustTable) на наличие полей с Label = "Подразделение" (возможно, Вы просто не по тому полю фильтр настраиваете)
Поле одно, это точно фин. аналитика, выше на скриншотах показано, что на лукап накладывается фильтр с некорректным значением, если фильтр снять, то отображаются все фин. аналитики.

Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
2. Проверьте в таблице клиентов CustTable факт наличия узлов Relations в который явно указаны ссылки на поле CustTable.Dimension - быть не должно
Проверили, Relations в который явно указаны ссылки на поле CustTable.Dimension нет.

Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
3. Посмотрите, на основе какого EDT создано поле CustTable.Dimension.
На основе Dimension

Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
4. Если поле CustTable.Dimension создано на основе Extended Data Types с именем Dimensions, то открываете этот самый Dimensions и смотрите, что у него указано в узлах Relations. Особое внимание обращаете на числовые константы в этих узлах
Проверили, все числовые константы верны

Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
5. Открываете Base Enum с именем SysDimensions и проверяете какое числовое значение присвоено всем его элементам. Соответствуют ли эти числа тем значениям, которые указаны в узлах Relations для Extended Data Types с именем Dimensions
Проверили, все числовые константы соответствуют именам.
Старый 18.07.2014, 15:56   #8  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Проблема воспроизводится для какого-то одного пользователя или для всех? Кеш чистили? В смысле, как SysLastValue, так и файлы AUC.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 18.07.2014, 16:23   #9  
Harry is offline
Harry
Участник
 
94 / 10 (1) +
Регистрация: 01.10.2007
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Проблема воспроизводится для какого-то одного пользователя или для всех? Кеш чистили? В смысле, как SysLastValue, так и файлы AUC.
Проблема воспроизводится для всех пользователей, и на всех сущностях где используется финансовая аналитика. Кеш чистили (применяли оба варианта).
Старый 18.07.2014, 16:33   #10  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Покажите скриншоты с развернутым узлом
\Data Dictionary\Extended Data Types\Dimension\Array Elements\Подразделение\Relations
и с открытым окном свойств на элементе
\Data Dictionary\Base Enums\SysDimension\Department
Старый 18.07.2014, 16:39   #11  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Harry Посмотреть сообщение
Проблема воспроизводится для всех пользователей, и на всех сущностях где используется финансовая аналитика. Кеш чистили (применяли оба варианта).
А на самой форме "Сведения о клиенте" на закладке "Аналитика" в поле "Подразделение" при раскрытии выпадающего списка все в порядке?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 18.07.2014, 16:39   #12  
Sergikrus is offline
Sergikrus
Участник
 
82 / 15 (1) ++
Регистрация: 26.09.2008
Адрес: Tyumen
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Покажите скриншоты с развернутым узлом
\Data Dictionary\Extended Data Types\Dimension\Array Elements\Подразделение\Relations
и с открытым окном свойств на элементе
\Data Dictionary\Base Enums\SysDimension\Department
Нажмите на изображение для увеличения
Название: dim.png
Просмотров: 228
Размер:	33.4 Кб
ID:	8926

Department = 0
Center = 1
Purpose = 2
Posting_type = 100
TNXContract = 101
Старый 18.07.2014, 16:40   #13  
Sergikrus is offline
Sergikrus
Участник
 
82 / 15 (1) ++
Регистрация: 26.09.2008
Адрес: Tyumen
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
А на самой форме "Сведения о клиенте" на закладке "Аналитика" в поле "Подразделение" при раскрытии выпадающего списка все в порядке?
Да, лукап показывает то что нужно
Старый 18.07.2014, 17:13   #14  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Sergikrus Посмотреть сообщение
Да, лукап показывает то что нужно
А лукап стандартный? Что записано в свойстве FormRef таблицы Dimensions и на какую форму ссылается \Menu Items\Display\Dimensions?

Не уверен что поможет или хоть как-то повлияет, но попробуйте ещё перекрестные ссылки обновить
X++:
xRefTableRelation::updateTableId(TableNum(Dimension));

Последний раз редактировалось S.Kuskov; 18.07.2014 в 17:18.
Старый 19.07.2014, 13:34   #15  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Если лукап не переопределяли, то смотрите в сторону формы DimensionsLookup

Есть ли на ней модификации?
В методе run(), что прилетает в переменную sysDimension?
И что возвращает queryValue(sysDimension) в методе ExecuteQuery() датасорса DimensionsAll?
Можно в инфологе так же вывести возвращаемое значение queryValue(sysDimension:: Department)

А так же - какое значение имеет свойство Label элемента Department енума SysDimension (выше просили показать скриншот на этом элементе)
__________________
Axapta v.3.0 sp5 kr2
Старый 21.07.2014, 15:24   #16  
Sergikrus is offline
Sergikrus
Участник
 
82 / 15 (1) ++
Регистрация: 26.09.2008
Адрес: Tyumen
Цитата:
Сообщение от AndyD Посмотреть сообщение
Если лукап не переопределяли, то смотрите в сторону формы DimensionsLookup

Есть ли на ней модификации?
В методе run(), что прилетает в переменную sysDimension?
Нет, ничего из этого не переопределено, вообще DimensionsLookup, таблица Dimensions, её форма находятся на gls слое

Цитата:
Сообщение от AndyD Посмотреть сообщение
А так же - какое значение имеет свойство Label элемента Department енума SysDimension (выше просили показать скриншот на этом элементе)
Название: elem.png
Просмотров: 1964

Размер: 2.7 Кб

Цитата:
Сообщение от AndyD Посмотреть сообщение
И что возвращает queryValue(sysDimension) в методе ExecuteQuery() датасорса DimensionsAll?

Можно в инфологе так же вывести возвращаемое значение queryValue(sysDimension:: Department)
А тут да, почему то в queryValue() приходит пусто!

Пока не пойму почему.
Старый 22.07.2014, 11:10   #17  
Sergikrus is offline
Sergikrus
Участник
 
82 / 15 (1) ++
Регистрация: 26.09.2008
Адрес: Tyumen
Цитата:
Сообщение от AndyD Посмотреть сообщение
И что возвращает queryValue(sysDimension) в методе ExecuteQuery() датасорса DimensionsAll?
Можно в инфологе так же вывести возвращаемое значение queryValue(sysDimension:: Department)
SELECT FIRSTFAST Num, Description FROM Dimensions WHERE ((DimensionCode = 255))
Теперь осталось разобраться откуда 255 прилетело
Старый 22.07.2014, 11:26   #18  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
255 - это __ILLEGAL_VALUE__
Это уже следствие

Надо разбираться, почему queryValue(sysDimension:: Department) возвращает пусто (а пусто ли?).
Смотрите под отладчиком, что в этом методе происходит.
Проверьте метку или значение, которое прописано в Label SysDimension:: Department. Можно, на всякий случай, пересохранить это значение
__________________
Axapta v.3.0 sp5 kr2
Старый 22.07.2014, 11:59   #19  
Sergikrus is offline
Sergikrus
Участник
 
82 / 15 (1) ++
Регистрация: 26.09.2008
Адрес: Tyumen
Цитата:
Сообщение от AndyD Посмотреть сообщение
255 - это __ILLEGAL_VALUE__
Это уже следствие

Надо разбираться, почему queryValue(sysDimension:: Department) возвращает пусто (а пусто ли?).
Смотрите под отладчиком, что в этом методе происходит.
Проверьте метку или значение, которое прописано в Label SysDimension:: Department. Можно, на всякий случай, пересохранить это значение
Немного не так.
Метод выглядит executeQuery вот так:
public void executeQuery()
{
;
queryDimensionTypeAllRange.value(queryValue(sysDimension));

super();
}

инициализация sysDimension происходит в run и в getLookupType при условии что, element.args().dataset() будет равен Dimensions, LedgerControlDimension, TmpSysQuery
X++:
public void run()
{
    boolean             filterLookup;
    ;

    callerControl   = SysTableLookup::getCallerStringControl(element.args());
    callerFieldId   = callerControl.dataField();

    sysDimension    = Dimensions::arrayIdx2Code(fieldExt2Idx(callerFieldId));
    callerFieldId   = fieldExt2Id(callerFieldId);
    if (!callerFieldId)
    {
        sysDimension = Dimensions::arrayIdx2Code(callerControl.arrayIndex());
    }
.....

В нашем случае мы запускаем расширенный фильтр на любой форме, где есть фин. аналитика по клавише CTRL + F3:

Нажмите на изображение для увеличения
Название: 4.png
Просмотров: 570
Размер:	11.0 Кб
ID:	8930

И ни одно из условий не выполняется. видимо значение по умолчания для enum, если он не инициализирован 255, я так это понимаю.

Но как то чудно это, функциональность эта на gls слое, неужели у всех так работает?

Значение присваивается только в run().
info(enum2str(sysDimension)); показывает "Пусто"

Последний раз редактировалось Sergikrus; 22.07.2014 в 12:10. Причина: проверил
Старый 22.07.2014, 12:53   #20  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Поставьте точку останова и посмотрите правильный ли RelationName определяет метод \Classes\SysLookup\lookupTableRelation?
Теги
dimension, аналитика, фильтр

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX2012 - Финансовые аналитики в строках общего журнала ГК immerge DAX: Функционал 4 21.06.2014 00:35
Финансовые аналитики smailik DAX: Программирование 2 11.04.2012 11:13
Платежи и финансовые аналитики Andrux DAX: Функционал 8 22.11.2011 17:59
Финансовые аналитики jiller DAX: Программирование 18 14.07.2011 14:33
финансовые аналитики в диалог longson DAX: Программирование 6 02.07.2008 03:23

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

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

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