04.03.2024, 15:46 | #15 |
Участник
|
Цитата:
Поотваливались проверки на обязательность при переходе на 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 |
|
|