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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.04.2010, 17:12   #1  
Alexanderis.ua is offline
Alexanderis.ua
Участник
 
53 / 40 (2) +++
Регистрация: 25.12.2008
Адрес: Киев, Украина
! Осторожно, грабли! Конфигуратор продукции
Доброго времени суток, господа.

Может уже кто-то писал, но я не нашел.

DAX 2009 EE SP1 RU3.

Баг проявился после добавления функционала разноски по профилям учета (как раз таки RU3).

В конфигураторе продукции при добавлении в дерево модели (или как его перевели "модельное дерево") узла Спецификация, вылетает ошибка в методе buildFieldsTable формы PBATreeBOM:
X++:
       fieldName           = fieldid2name(_tableId,pbaDictFieldGroup.field(counter2));
        pbaFieldIdVar       = fieldname2id(_tableId,fieldName+'Var');

        formDataObject      = _datasource.object(pbaDictFieldGroup.field(counter2));
        formDataObjectVar   = _datasource.object(pbaFieldIdVar);

        if (_table.(pbaFieldIdVar)) //  <<<<<<<< тут трассировка стека
        {
Связано это с тем, что строчка
X++:
 pbaFieldIdVar       = fieldname2id(_tableId,fieldName+'Var');
не предполагает наличия в таблице (как минимум) PBATreeInventDim полей с суффиксом _RU.
Так, поле InventProfileId_RU превращается в поле InventProfileId_RUvar в то время, как в таблице поле называется InventProfileIdVar_RU.

Пока поставил костыль:
X++:
        // SOI -->
        if (fieldName == "InventProfileId_RU")
            pbaFieldIdVar = fieldname2id(_tableId,"InventProfileIdVar_RU");
        else
        // SOI <--
            pbaFieldIdVar       = fieldname2id(_tableId,fieldName+'Var');
правильней, конечно, анализировать наличие суффикса, но было лень . Хотя опять же - понятие правильности к такому коду уже не применимо, ИМХО.

Вот такие вот пироги с котятами. Их ешь, а они мяукают.

З.Ы. В RU4 не исправлено. Неужели никто не пользуется конфигуратором? О_о
__________________
If it ain't broke, take it apart and find out why (с)
За это сообщение автора поблагодарили: Ingar (1), Poleax (1), gl00mie (3), Aleks_K (1).
Старый 21.04.2010, 09:15   #2  
AlexSD is offline
AlexSD
Microsoft Dynamics
Сотрудники Microsoft Dynamics
 
257 / 302 (11) ++++++
Регистрация: 14.10.2003
Цитата:
Сообщение от Alexanderis.ua Посмотреть сообщение
З.Ы. В RU4 не исправлено. Неужели никто не пользуется конфигуратором? О_о
Помню, что исправляли это. Но не уверен, что успели включить в RU4. Значит исправление будет в RU5, либо может подтянуться с каким-нибудь хотфиксом.
Старый 01.07.2010, 15:35   #3  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Post
Цитата:
Сообщение от Alexanderis.ua Посмотреть сообщение
В конфигураторе продукции при добавлении в дерево модели (или как его перевели "модельное дерево") узла Спецификация, вылетает ошибка в методе buildFieldsTable формы PBATreeBOM:
Исправлено в Hotfix rollup 5

X++:
void buildFieldsTable(FormDataSource _datasource, Common _table, tableId _tableId)
{
    int                     counter2;

    DictFieldGroup          pbaDictFieldGroup;
    FormDataObject          formDataObject;
    FormDataObject          formDataObjectVar;

    fieldId                 pbaFieldIdVar;
    FieldName               fieldName;
    ;
    pbaDictFieldGroup = new DictFieldGroup(_tableId,'AllFields');

    for (counter2=1;counter2<=pbaDictFieldGroup.numberOfFields();counter2++)
    {
        fieldName           = fieldid2name(_tableId,pbaDictFieldGroup.field(counter2));
        pbaFieldIdVar       = fieldname2id(_tableId,fieldName+'Var');
        // <GEEU>
        if(!pbaFieldIdVar)
        {
            fieldName = strpoke(fieldName, 'Var_RU', strscan(fieldName, '_RU', 1, strlen(fieldName)));
            pbaFieldIdVar       = fieldname2id(_tableId,fieldName);
        }
        // </GEEU>

        formDataObject      = _datasource.object(pbaDictFieldGroup.field(counter2));
        formDataObjectVar   = _datasource.object(pbaFieldIdVar);

        if (_table.(pbaFieldIdVar))
        {
            formDataObject.visible(false);
            formDataObjectVar.visible(true);
        }
        else
        {
            formDataObject.visible(true);
            formDataObjectVar.visible(false);
        }
    }
}
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.
Старый 01.07.2010, 17:43   #4  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Сообщение от Alexanderis.ua Посмотреть сообщение
Неужели никто не пользуется конфигуратором? О_о
А на кой им пользоваться?

1. Он стоит как самолет.
2. Нигде нет не просто нормального, а вообще никакого описания. Хорошо, что он практически не менялся, только ссылки появились на изображение и еще по мелочи.
3. В демо данных умудрились перевести вместе названиями перменных. В итоге - при компиляции моделей, настроенных в демо-примерах возникает ошибка.
4. Эту функциональность практически не тестируют, и поэтому он может довольно жестко стрельнуть. Например, собранная модель будет ругаться например так "initAllocationCostTrans, createMarkupTrans - Таблица не содержит это поле", ну и много чего по-мелочи. При этом я вообще не понимаю, почему данные медоты генерятся в данном классе.

С Уважением,
Георгий
Теги
ax2009, баг, конфигуратор продукции, локализация, ошибка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Модуль "Конфигуратор продукции" demID DAX: Функционал 17 15.06.2012 16:54
Конфигуратор продукции (расчет цены) cherv DAX: Функционал 11 01.10.2007 10:27
Конфигуратор продукции - номенклатура EreminIgor DAX: Функционал 0 10.11.2004 11:28
Конфигуратор продукции Dimitry DAX: Программирование 0 07.04.2003 15:27
Конфигуратор продукции Dimitry DAX: Функционал 1 13.02.2003 17:25

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

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

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