Показать сообщение отдельно
Старый 31.05.2017, 20:02   #65  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
например, вот такой проектик.
Хороший проектик. Тут вопрос такой. В том что ты сделал: если задать сочетание Vend и MST это правильно что он молча это понимает и не ругается? Если допустимо, чтобы он ругался на такое сочетание. То для расширения черех SysExt надо пометить атрибутом новый класс. Типа

X++:
[CustVendSettlerKey(Module::Cust, #MSTKEY)]

clas MyNewSettler ...
Для того, чтобы сделать расширяемым надо сделать атрибут

X++:
class CustVendSettlerKeyAttribute extends SysAttribute implements SysExtensionIAttribute
{
    Module module;
    str mode;

    public void new(Module _module, str  _mode = '')
    {
        module = _module;
        mode = _mode;
    }

    public str parmCacheKey()
    {
        return [
        classStr(CustVendSettlerKeyAttribute), module, mode]
        ;

 
    }


    public boolean useSingleton()
    {
        return false;
    }
Снести все фабричные методы заменив на вызов фреймворка

X++:
SysExtensionAppClassFactory::getClassFromSysAttribute(classStr( ), new CustVendSettlerKeyAttribute(_module, _mode));
Можно завтра в обед попробовать вместе это сделать
За это сообщение автора поблагодарили: mazzy (2).