Показать сообщение отдельно
Старый 01.01.2017, 03:26   #6  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Попкорн кончился
В принципе с правильной моделью overlaying должен быть возможен.

Но если очень хочется то есть такие танцы
https://ievgensaxblog.wordpress.com/...ut-overlaying/
Даже можно ловить исключение в catch().
Но чем мыть руки после этого всего - я не знаю
С Новым счастьем !
А если подумать то тема интересная.
Цитата:
pre-event handler с нужным setReturnValue(), однако в этом случае мне нужно предотвратить запуск оригинального метода construct().
Вариант с pre-event handler уже не выглядит для меня идиотским в контексте AX7
Пропустить запуск оригинального метода из pre-event handler - невозможно насколько я понимаю систему. Выбрасывать же свое исключение - нет смысла.

Я бы изучил в контексте расширений AX7 можно ли расширить (в смысле override) ::construct() и если нет, то можно ли расширить (в смысле override) тот метод где вызывается данный ::construct(). Раз надо избегать оверлееринг то в принципе средства то предоставлены интересные.

Вот это заслуживает внимания:

Static constructors are the parameter-less static methods that are named typenew. Static constructors can be defined on extension classes. It’s guaranteed that the runtime system will call the constructor before the first reference to the extension type. You can’t assume any particular order of invocation for static construction among a set of extensions.

X++:
[ExtensionOf(classStr(MyClass))]
final class MyClass_Extension
{
    public int state;
    public static int staticState;
    static void TypeNew()
    {
        staticState = 77;
    }
}
https://ax.help.dynamics.com/en/wiki/class-extensions/

А вообще тема скорости разработки и ее оценки в свете необходимости расширять и уделять внимание пакетам/моделям - заслуживает отдельной темы. Так как количество барабанов для шаманских плясок утроилось как минимум.

Последний раз редактировалось ax_mct; 01.01.2017 в 04:03. Причина: (в смысле override)