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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.05.2008, 15:16   #1  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Код новой фин. аналитики DAX 4.0
MS DAX 4.0 SP2.
При использовании мастера по созданию новых аналитик по умолчанию код аналитики (enumValue) предлагается 100. Т.е. есть три стандартных 0, 1 и 2, а новые - допустим 100, 101.

Нашли такой кусок кода:

X++:
class InventJournalProforma_BomReq_RU
 public List createXML
if (dim != inventJournalTrans.Dimension[analysisCode+1])
т.е. идет выборка из Dimension по порядковому номеру аналитики, в нашем случае для аналитики с кодом 100 - данная конструкция некорректна.

Хочется понять, в чем ошибка - неверно созданы аналитики, нужно было делать коды 4, 5 и т.д. или данный кусок кода ошибочен и, по-хорошему, следует поискать такие же конструкции в соседних классах и исправить?
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: aidsua (1).
Старый 06.05.2008, 16:01   #2  
AlGol is offline
AlGol
Участник
 
277 / 93 (4) ++++
Регистрация: 24.12.2001
Адрес: Тверь.
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
MS DAX 4.0 SP2.

X++:
if (dim != inventJournalTrans.Dimension[analysisCode+1])
Такой код не годится. Должно быть:
X++:
if (dim != inventJournalTrans.Dimension[Dimensions::code2ArrayIdx(analysisCode)])
К сожалению, попадаются такие места. Приходится вычищать.

Последний раз редактировалось AlGol; 06.05.2008 в 16:05.
Старый 07.05.2008, 13:17   #3  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
А про интеркомпани в этом мастере вообще забыли. Не модифицируется EDT DimensionExtCodeId. Да и в самом классе TradeInterCompanyConv аналитики получают путем _sysDimension+1.

Последний раз редактировалось Raven Melancholic; 07.05.2008 в 13:20.
Старый 08.05.2008, 14:09   #4  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от AlGol Посмотреть сообщение
К сожалению, попадаются такие места. Приходится вычищать.
К слову, расскажите, где они вам попадались? Я вот начал смотреть по 3.0 SP5, там код, вольно преобразующий значения енума SysDimension в индекс массива и обратно, нашелся в следующих методах классов:
Код:
InventJournalData_BOMReq_Proforma_RU.initInventTableSection()
InventJournalData_BOMReq_Report_RU.initInventTableSection()
InventJournalProforma_BomReq_RU.createXML()
InventJournalReport_BomReq_RU.saveReport()
LedgerBalanceSheetCol_Bud.buildQuery()
LedgerBalanceSheetCol_Bud.sumUpTrans()
LedgerBalanceSheetCol_Cov.buildQuery()
LedgerBalanceSheetCol_Cov.sumUpTrans()
LedgerBalanceSheetCol_CurMST.buildQuery()
LedgerBalanceSheetCol_CurMST.sumUpTrans()
LedgerBalanceSheetCol_CurQty.addMiscRange()
LedgerBalanceSheetCol_CurQty.sumUpTrans()
LedgerBalanceSheetCol_CurType.addMiscRange()
LedgerBalanceSheetCol_CurType.sumUpTrans()
RCashTransType.dimAnalysisNum()
RCashTransType.dimDepartmentDesc()
RCashTransType.dimDepartmentNum()
RCashTransType.dimPurposeNum()
RCashTransType.grd_vAT0Amount()
RTax25DebtCreditAmortisation.init()
RTax25DebtDebitAmortisation.init()
RTax25ExchAdjDimension.getDimension()
RTax25ExchAdjDimension.new()
RTax25LedgerRange.createTmpAccountListTable()
RTax25LedgerRun.new()
RTax25RegCalc_DebtDebitReservation.init()
RTax25RegCalc_Deferrals.calc()
RTSLDimensionConvert.convertTrans()
Сравнивал с приложением 4-ки: классы LedgerBalanceSheetCol* подправили (видимо, когда проводили ревизию sys-слоя), а вот остальное, похоже, ни в SP1, ни в SP2 исправлено не было.

Последний раз редактировалось gl00mie; 08.05.2008 в 14:17. Причина: очепятка
За это сообщение автора поблагодарили: Ivanhoe (1).
Старый 13.05.2008, 15:23   #5  
AlGol is offline
AlGol
Участник
 
277 / 93 (4) ++++
Регистрация: 24.12.2001
Адрес: Тверь.
Цитата:
Сообщение от gl00mie Посмотреть сообщение
К слову, расскажите, где они вам попадались?
Сорри, не фиксировал специально. Хотя надо было
Теги
ошибка, ax4.0, финансовая аналитика

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Обязательность заполнения фин.аналитики в 4.0 Atar DAX: Функционал 4 13.12.2007 19:10
Учёт остатков в разрезе фин. аналитики miklenew DAX: Программирование 11 06.11.2007 20:01
Допустимо ли так использовать фин. аналитики kosenkov DAX: Функционал 5 26.02.2006 18:17
Код аналитики 'Номер партии' отмечен в складских проводках со значением Antidot DAX: Программирование 9 29.07.2005 10:57
Автоподстановка номенклатуры при создании новой аналитики JohNick DAX: Функционал 0 02.06.2004 13:49

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

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

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