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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.03.2016, 13:14   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
? AIF vendTable.validateField() бага или фича ?
Привет.
Обнаружил в
\Data Dictionary\Tables\VendTable\Methods\validateField
странный код

X++:
boolean validateField(fieldId p1)
{
...
    boolean     ret;
    ;
    //AIFFault Mesgs
    switch (p1)
    {
        case fieldnum(VendTable, InvoiceAccount):
            if (this.InvoiceAccount && !VendTable::find(this.InvoiceAccount))
            {
                ret =  AifFault::checkFailedLogFault(strfmt("@SYS120870", fieldid2name(tablenum(VendTable), p1), this.InvoiceAccount), #InvalidInvoiceAccount);
            }
        break;
...
    }
//AIF Fault Mesgs end here
...
    ret = super(p1);

    if (ret)
    {
        switch (p1)
        {
...
            case fieldnum(VendTable, CreditMax) :
                if (this.CreditMax < 0)
                {
                    ret = checkFailed("@SYS69970");
                }
...
        }
    }
    return ret;
код процитирован для ax2009, но в 2012-й аналогично.

1. ret в начале метода никак не инциализируется, т.е. имеет значение false
2. Затем идет куча проверок для AIF с присвоением в ret значения false в случае ошибки.
3. Затем идет вызов super() c перетиранием значения ret (!) т.е. игнорируются найденные на шаге 2 некорректности в заполнении полей (хотя какие они найденные, когда ret инициализровался как false).
4. Затем обычные проверки значений полей.

Вопрос, что это такое ?
Это досадная опечатка в коде, приведшая к тому что не работает целый кусок по валидации значений (только пишет сообщения в инфолог и в AIF)
или так и было задумано (валидация в принципе на super() должна была отработать, но она только в инфолог сообщения шлет, а в AIF - нет. т.е. возможно этот код просто досылал интересующие автора сообщения в AIF) ?

Последний раз редактировалось Logger; 29.03.2016 в 13:31.
За это сообщение автора поблагодарили: S.Kuskov (2).
Теги
aif, validatefield, vendtable

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
LookUp в SysQueryForm по TableRelations бага или фича Dreadlock DAX: Программирование 1 01.03.2012 12:10
daxdilip: How to: Configure Dynamics AX AIF Services to listen for SSL Requests (https) Blog bot DAX Blogs 0 23.01.2011 10:12
отключен RAsset = бага+фича Wamr DAX: Программирование 0 04.08.2009 22:46
update_recordset. Бага или фича? Lucky13 DAX: Программирование 7 08.04.2009 17:33
Бага или фича в модуле Расчеты с персоналом? katja DAX: Функционал 3 13.09.2004 18:10

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

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

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