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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.03.2024, 15:46   #15  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,882 / 3148 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от ax_mct Посмотреть сообщение
В AX2012 это должно работать только если элемент с индексом 0 явно назван None.
То есть Mandatory=Yes AND 0 = None
Какая гадостная штука.
Поотваливались проверки на обязательность при переходе на Ax2012

Дописали свою проверку Best practice
\Classes\SysBPCheckTableField\checkEnumFieldMandatory_MRC

X++:
boolean checkEnumFieldMandatory_MRC()
{
    str         message;
    boolean     ret = true;
    ;

    if (!sysDictTable || !sysDictField)
    {
        return ret;
    }

    if (sysDictField.baseType() != Types::Enum)
    {
        return ret;
    }

    if (!sysDictField.mandatory())
    {
        return ret;
    }

    if (!sysDictEnum)
    {
        return ret;
    }

    if (!sysDictEnum.value2Symbol(0))
    {
        return ret;
    }

    if (sysDictEnum.value2Symbol(0) == "None")
    {
        return ret;
    }

    ret = false;
    message = strFmt("Свойство \"Mandatory\" не будет работать, так как дефолтное значение енума \"%1\" равно \"%2\". " +
        "Чтобы работало переименуйте на \"%1::None\". Это появилось с 2012-й версии. См. " +
        "https://dynamicsaxhints.blogspot.com/2016/05/mandatory-table-field-based-on-enum.html" + "\n" +
        "https://learn.microsoft.com/en-us/dynamicsax-2012/developer/best-practices-for-base-enums" + "\n" +
        "https://dax.axforum.info/forums/showthread.php?p=394676#post394676" + "\n",
        sysDictEnum.name(),
        sysDictEnum.value2SymbolWithEnumName_MRC(0)
        );
    sysBPCheck.addError(#BPErrorMandatoryEnumValue_MRC /* 12502 */, 0, 0, message, "Mandatory", sysDictField.path());

    return ret;
}
Теги
ax2012, dax2012, enum, mandatory

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxhints: How to add enum filter with All element Blog bot DAX Blogs 0 19.07.2016 20:11
dynamicsaxhints: How to make enum a mandatory field on a table Blog bot DAX Blogs 0 04.05.2016 06:17
DeniZone: Assigning enum value to variable from enum name Blog bot DAX Blogs 0 17.04.2015 23:11
Как получить из элемента enum-а код типа (enum-а)? Romb DAX: База знаний и проекты 12 27.06.2013 16:17
saveenr: More AX SSRS Screencasts and Instructions on Getting an AX Enum into a Report Blog bot DAX Blogs 0 09.12.2010 02:13

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:23.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.