AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Old 14.12.2006, 14:39   #1  
madm is offline
madm
Участник
 
43 / 12 (1) ++
Join Date: 21.11.2006
Добрый день. Пытаюсь построить куб по вот этой статье:
http://axapta.mazzy.ru/lib/olap/

При попытке запустить обработку экземпляра куба вываливается ошибка:
"Ошибка времени выполнения. : Поле с идентификатором (FieldID) '0' в таблице 'CustInvoiceJour' не обнаружено.
Не получилось выполнить запрос Доходы по клиентам>tst"

ошибка происходит в методе createAmounts класса OLAPCreateAmount в строке:
Code:
		// find the date
		transDAte = factTableRecord.(cubeTable.TransDateFieldId);
Подскажите пожалуйста в чем дело и как же мне построить куб...


З.Ы. Axapta 3.0. SP3, SQL Server 2000 + Analysis Service SP4, все на одном компе, двухуровневая конфигурация.
Old 14.12.2006, 14:59   #2  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
Quote:
Originally Posted by madm View Post
При попытке запустить обработку экземпляра куба вываливается ошибка:
"Ошибка времени выполнения. : Поле с идентификатором (FieldID) '0' в таблице 'CustInvoiceJour' не обнаружено.
1. А Создание экземляра прошло успешно?
2. Как создан куб? Вы его импортировали из db-каталога или создали руками?

Если из db-каталога, то в нем использовались поля, которые позже были удалены.
Если отключен конфигурационный ключ SysDeletedObject30, то удаленные поля действительно отсутствуют на SQL-сервере.

В общем, проверьте определение куба.
__________________
полезное на axForum, github, vk, coub.
Old 14.12.2006, 15:43   #4  
madm is offline
madm
Участник
 
43 / 12 (1) ++
Join Date: 21.11.2006
Cпасибо помогло! Надо было мне внимательнее читать статью

Mazzy - пользуясь случаем Вам спасибо за статьи, очень помогают в изучении Аксапты!
Old 14.12.2006, 15:47   #5  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
Quote:
Originally Posted by madm View Post
пользуясь случаем Вам спасибо за статьи, очень помогают в изучении Аксапты!
Переадресую это спасибо автору статьи Vadik.
Пользуясь случаем также хочу сказать: Спасибо, Вадим.
__________________
полезное на axForum, github, vk, coub.
Old 14.12.2006, 17:04   #6  
Vadik is offline
Vadik
Модератор
Vadik's Avatar
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Join Date: 18.11.2002
Location: гражданин Москвы
а я что.. пользуйтесь на здоровье
__________________
-ТСЯ или -ТЬСЯ ?
Old 14.12.2006, 18:05   #7  
madm is offline
madm
Участник
 
43 / 12 (1) ++
Join Date: 21.11.2006
Quote:
Originally Posted by Vadik View Post
а я что.. пользуйтесь на здоровье
Спасибо!
Old 15.12.2006, 16:49   #8  
madm is offline
madm
Участник
 
43 / 12 (1) ++
Join Date: 21.11.2006
А может еще подскажете...
Создал куб. Работает Но захотелось мне добавить в него еще мер.
У куба в поле запрос стоит созданный мной query у которого есть датасорс CustInvoiceJour у которого в свою очередь подчиненный датасорс CustInvoiceTrans. Relation по InvoiceId. Пытаюсь добавить новую меру, но в выпадающем списке полей из CustInvoiceTrans нет... Только из CustInvoiceJour. Это нормально или я что-то не то сделал? Вообще реально мне добавить меры из подчиненных таблиц?


И еще вопрос: можно ли добавлять в качестве мер методы, а не поля как DataMethod у Grid?
Old 15.12.2006, 17:41   #9  
Vadik is offline
Vadik
Модератор
Vadik's Avatar
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Join Date: 18.11.2002
Location: гражданин Москвы
Quote:
Originally Posted by madm View Post
Вообще реально мне добавить меры из подчиненных таблиц?
нет, таблица фактов одна

Quote:
можно ли добавлять в качестве мер методы, а не поля как DataMethod у Grid?
можно - см.
\Classes\OLAPCreateAmount\isSpecialCalcField()
\Classes\OLAPCreateAmount\fieldMethodName()
__________________
-ТСЯ или -ТЬСЯ ?
Old 21.12.2006, 11:09   #10  
madm is offline
madm
Участник
 
43 / 12 (1) ++
Join Date: 21.11.2006
Quote:
можно - см.
\Classes\OLAPCreateAmount\isSpecialCalcField()
\Classes\OLAPCreateAmount\fieldMethodName()
А не могли бы Вы пояснить поподробнее? Сам что-то не могу разобраться... Я всего месяц как Аксапту увидел
Old 21.01.2007, 13:23   #11  
DmitrySt_imported is offline
DmitrySt_imported
Участник
 
4 / 10 (1) +
Join Date: 25.11.2004
Вставлю свои 5 копеек насчет того, почему в качестве мер нельзя использовать поля из связанных таблиц: мне кажется, ответ заключается в том, как Аксапта обрабатывает конверсию из валюты в базовую валюту для отображения в кубе.

Аксапта пересчитывает все значения AmountCur в AmountMst в том самом классе OLAPCreateAmount, и сохраняет их в огромной таблице OLAPAmount - по одной записи в OLAPAmount для каждой записи из таблицы фактов, и затем подсовывает ОЛАПу не значения из таблицы фактов, а что-то вроде MyFact INNER JOIN OLAPAmount ON MyFact.RecId = OLAPAmount.RelRecId (достаточно посмотреть на SQL сервере любую из автоматически созданных таким образом View типа OLAP<company><cubeId>_)

Таким образом, видимо присутствует неявное ограничение на то, что Recid может быть только из верхней таблицы...

Кстати, если создать Query для куба не на основе таблицы, а на основе View, и если в этом View будут использованы агрегированные поля и, т.о., View будет построено с использованием GROUP BY, то поле RecId в нем будет создано кернелом как RECID AS (1010), т.е. конверсия Amounts в кубе построенном таким образом работать не будет (из-за того, что выборка фактов для OLAP будет реализована как MyFact INNER JOIN OLAPAmount ON MyFact.RecId (т.е. 1010 для любой записи из View) = OLAPAmount.RelRecId).

Это в некоторой мере лечится только доработкой классов OLAPCreaetAmount & OLAPCreateSchema так, чтобы в них, при распознавании таблицы фактов как View, они бы брали не поле Recid, а некое иное поле (у меня -recId_View), которое я должен буду создавать в моем View уникальным (например, как Max(RecId) из записей подвергнутых группировке).
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 04:34.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.