AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX Blogs
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen Alle Foren als gelesen markieren

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 04.10.2017, 04:39   #1  
Blog bot ist offline
Blog bot
Участник
 
25.644 / 848 (80) +++++++
Registriert seit: 28.10.2006
D365: passing through public method by means of Pre- and Post-event handlers
Источник: http://alexvoy.blogspot.com/2017/10/...method-by.html
==============

Let's say we need to change the logic of a standard public method in terms of Extensions approach in D367 (AX7).

The whole idea is basically in saving values provided by XppPrePostArgs parameter in Pre-event handler method in new parameters and then restoring them in Post- one from the latter.

pre()>Save
standard method()
post()>Restore

For example, our business scenario is to allow the user to select Default company without selecting a Project while creating a new Purchase requisition. (I added a new parameter to the module)



Therefore, we have to change the logic of validateCoexistenceOfProjectAndBuyingLegalEntity method, which is called inside of PurchReqTable.validateWrite().

Standard, it does not allow to have an empty Project once Default company is chosen.


First, we create Pre- and Post-event handlers.



Then we put them into a new class and add new "by-passing" logic.


X++:
class PurchReqTableHandler
{
    #define.CompanyInfoDefaultArgName('CompanyInfoDefaultArgName')
    
    [PreHandlerFor(tableStr(PurchReqTable), tableMethodStr(PurchReqTable, validateCoexistenceOfProjectAndBuyingLegalEntity))]
    public static void PurchReqTable_Pre_validateCoexistenceOfProjectAndBuyingLegalEntity(XppPrePostArgs _args)
    {
        RefRecId        companyInfoDefault;
        PurchReqTable   purchReqTable   = _args.getThis();

        if(PurchParameters::find().PurchReqAllowCmpInfoDefWithoutProjId)
        {
            
            // if the user opted for setting Company without a project
            // we have to save it and use after this standard validation process
            if ( !purchReqTable.ProjId && purchReqTable.CompanyInfoDefault)
            {
                companyInfoDefault                  = purchReqTable.CompanyInfoDefault;
                purchReqTable.CompanyInfoDefault    = 0;
            }
            // make it zero to pass through the standard validation
            _args.setArg(#CompanyInfoDefaultArgName, companyInfoDefault);
        }
    }

   
    [PostHandlerFor(tableStr(PurchReqTable), tableMethodStr(PurchReqTable, validateCoexistenceOfProjectAndBuyingLegalEntity))]
    public static void PurchReqTable_Post_validateCoexistenceOfProjectAndBuyingLegalEntity(XppPrePostArgs _args)
    {
        boolean         ret;
        RefRecId        companyInfoDefault;
        PurchReqTable   purchReqTable   = _args.getThis();

        if(PurchParameters::find().PurchReqAllowCmpInfoDefWithoutProjId)
        {
            ret                 = _args.getReturnValue();
            companyInfoDefault  = _args.getArg(#CompanyInfoDefaultArgName);
            purchReqTable       = _args.getThis();
            // restore it
            if (ret && companyInfoDefault && !purchReqTable.CompanyInfoDefault)
            {
                purchReqTable.CompanyInfoDefault = companyInfoDefault;
            }
        }
    }

}


Источник: http://alexvoy.blogspot.com/2017/10/...method-by.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.

Geändert von mazzy (04.10.2017 um 14:18 Uhr)
This post has been rated by: Logger (1).
Alt 04.10.2017, 14:15   #2  
kashperuk ist offline
kashperuk
Участник
Benutzerbild von kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.361 / 2084 (78) +++++++++
Registriert seit: 30.05.2004
Ort: Atlanta, GA, USA
На самом деле интересно, молодец Алексей. Не знал, что можно в передаваемый args пихать свои.
Это уже не так нужно с CoC, но все равно занятно.
Alt 04.10.2017, 14:34   #3  
mazzy ist offline
mazzy
Участник
Benutzerbild von mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29.472 / 4494 (208) ++++++++++
Registriert seit: 29.11.2001
Ort: Москва
Blog-Einträge: 10
Zitat:
Zitat von Blog bot Beitrag anzeigen
For example, our business scenario is to allow the user to select Default company
...
Standard, it does not allow to have an empty Project once Default company is chosen.
Стандартный функционал не разрешает пустой проект при выбранной Default company.
Но "для примера наш бизнес сценарий должен позволить".

Что делаем?
а) разбираемся с бизнес логикой и выясняем причину явно записанного в валидаторе условия
б) сообщаем постановщику нашей задачи "для примера" о том, что в стандартной бизнес-логике есть вот такое условие валидации, чтобы он скорректировал условия задачи "для примера"
в) явно изменяем стандарный валидатор, чтобы все сразу видели что происходит (возможно даже оставляя комментарии в коде)
г) добавляем хуки, которые обманывают валидатор, передавая "глобальный" параметр и жестко завязываясь на конкретную реализацию и окружение валидатора.

Пфффф! очевидно же - пункт г)

Больше! Больше треша!

================================
Ну ведь дохренища же систем с экстеншенами/плагинами/хуками!
И для этой дохренищи уже написаны бестпрактисы и рекомендации что можно делать, а что не надо.
__________________
полезное на axForum, github, vk, coub.

Geändert von mazzy (04.10.2017 um 14:39 Uhr)
This post has been rated by: EVGL (-1), wojzeh (1).
Alt 04.10.2017, 14:36   #4  
mazzy ist offline
mazzy
Участник
Benutzerbild von mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29.472 / 4494 (208) ++++++++++
Registriert seit: 29.11.2001
Ort: Москва
Blog-Einträge: 10
Zitat:
Zitat von kashperuk Beitrag anzeigen
Не знал, что можно в передаваемый args пихать свои.
А еще caller() есть.
И в строку параметров можно положить какой-нибудь объект в сериализованном виде.
__________________
полезное на axForum, github, vk, coub.
Alt 04.10.2017, 14:52   #5  
EVGL ist offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4.445 / 3001 (0) ++++++++++
Registriert seit: 09.07.2002
Ort: Parndorf, AT
Zitat:
Zitat von kashperuk Beitrag anzeigen
Это уже не так нужно с CoC, но все равно занятно.
Напротив, именно при chain of command это особенно и нужно: как убрать участок кода, который вам не нужен? Вся суть extensions заключается в том, что каждое ISV только добавляет функционал, но как тогда избавиться от излишнего? Пример из практики: прямая поставка в intercompany автоматически разносит накладную в двух компаниях, но что если хотим разнести одну позже из-за условий перехода права собственности DAP?
This post has been rated by: mazzy (2), wojzeh (1).
Alt 04.10.2017, 14:58   #6  
mazzy ist offline
mazzy
Участник
Benutzerbild von mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29.472 / 4494 (208) ++++++++++
Registriert seit: 29.11.2001
Ort: Москва
Blog-Einträge: 10
Zitat:
Zitat von EVGL Beitrag anzeigen
Вся суть extensions заключается в том, что каждое ISV только добавляет функционал
Именно.

Zitat:
Zitat von EVGL Beitrag anzeigen
но как тогда избавиться от излишнего?
выбрать другую систему.

========================
так на рынке существует много форумных движков.
для пользователей они различаются в основном внешним видом и почти не различаются по пользовательскому функционалу.

почти все современные форумные движки предоставляют extensions в том или ином виде, под тем или иным названием.

для программистов форумные движки отличаются именно системой хуков - что и в какой момент можно перехватить, с какой детализацией и с какой степенью удобства.

повторюсь: extensions - не изобретение майкрософт. это очень старая технология. грабли хорошо известны.
__________________
полезное на axForum, github, vk, coub.
Alt 04.10.2017, 15:26   #7  
wojzeh ist offline
wojzeh
Участник
Benutzerbild von wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Registriert seit: 27.04.2006
Ort: Montreal
Zitat:
Zitat von kashperuk Beitrag anzeigen
На самом деле интересно, молодец Алексей. Не знал, что можно в передаваемый args пихать свои.
Это уже не так нужно с CoC, но все равно занятно.
что такое сос? в принципе данный подход работает со времён AX2012, но до подобных извращений (как ниже верно отмечает mazzy) пришлось опуститься именно в стеснённых условиях новой парадигмы.

как бы ты предложил решить подобную задачу?
__________________
Felix nihil admirari
This post has been rated by: EVGL (10), kashperuk (5).
Alt 04.10.2017, 15:36   #8  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
Zitat:
Zitat von EVGL Beitrag anzeigen
Напротив, именно при chain of command это особенно и нужно: как убрать участок кода, который вам не нужен?
Воспользоваться какой-то точкой расширения для убирания функционала (не участка кода). Запросить такую точку расширения, если ее нет.

Продублировать то, что надо от default company (я не знаю функционала) - сделать свое поле которое ведет себя так же только в тех местах когда надо

Geändert von belugin (04.10.2017 um 15:41 Uhr)
Alt 04.10.2017, 15:38   #9  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
Zitat:
Zitat von mazzy Beitrag anzeigen
повторюсь: extensions - не изобретение майкрософт. это очень старая технология. грабли хорошо известны.
Уточнение: Это грабли отсутсвия возможности модифицировать код, а не наличия extensions.
This post has been rated by: wojzeh (1).
Alt 04.10.2017, 15:41   #10  
wojzeh ist offline
wojzeh
Участник
Benutzerbild von wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Registriert seit: 27.04.2006
Ort: Montreal
Zitat:
Zitat von mazzy Beitrag anzeigen
Стандартный функционал не разрешает пустой проект при выбранной Default company.
Но "для примера наш бизнес сценарий должен позволить".

Что делаем?
а) разбираемся с бизнес логикой и выясняем причину явно записанного в валидаторе условия
б) сообщаем постановщику нашей задачи "для примера" о том, что в стандартной бизнес-логике есть вот такое условие валидации, чтобы он скорректировал условия задачи "для примера"
в) явно изменяем стандарный валидатор, чтобы все сразу видели что происходит (возможно даже оставляя комментарии в коде)
г) добавляем хуки, которые обманывают валидатор, передавая "глобальный" параметр и жестко завязываясь на конкретную реализацию и окружение валидатора.

Пфффф! очевидно же - пункт г)

Больше! Больше треша!

================================
Ну ведь дохренища же систем с экстеншенами/плагинами/хуками!
И для этой дохренищи уже написаны бестпрактисы и рекомендации что можно делать, а что не надо.
ха-ха! спасибо за каменты!

реальность гораздо страшнее нашего воображения! данный бизнес-сценарий - это то, над чем я конкретно сейчас работаю у реального клиента, которому нужно более гибко и мощно управляться со своим проектным производством. теперь по пунктам, которые ты совершенно обоснованно и чётко выделил.

а и б сидели на трубе, но быстро оттуда слиняли после общения с клиентом;
в - главный камень преткновения, из-за которого собственно весь сыр-бор: работаем только в парадигме расширения (в том числе и сознания, привыкшего делать простые задачи просто, а также времени разработки и бюджета, гыыы)

с твоей оценкой пункта "г" (даже с буквой, которую ты ему присвоил) я полностью согласен, так как прекрасно помню речь из "полицейской академии". но это реальное решение реальной задачи для реального бизнеса.

ты не представляешь, насколько мне это не нравится, но я ничего лучше придумать не смог. с интересом жду твоих идей.

кстати говоря, не понял я, что имел в виду под "передавая "глобальный" параметр и жестко завязываясь на конкретную реализацию и окружение валидатора". этот хук именно что должен быть привязан к одному конкретному случаю, когда он вызывается из формы создания нового запроса на покупку (эту проверку я удалил из кода для облегчения понимания подхода); параметр самый что ни на есть локальный - существует исключительно в args. но это детали, можно их и опустить, так как меня интересует вопрос в более общей постановке: how to f***** survive in extensions?

спасибо за обсуждение!
__________________
Felix nihil admirari
Alt 04.10.2017, 15:56   #11  
mazzy ist offline
mazzy
Участник
Benutzerbild von mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29.472 / 4494 (208) ++++++++++
Registriert seit: 29.11.2001
Ort: Москва
Blog-Einträge: 10
Zitat:
Zitat von belugin Beitrag anzeigen
Уточнение: Это грабли отсутсвия возможности модифицировать код, а не наличия extensions.
да.
это коррелирующие вещи. но согласен что разные.
с замечанием согласен.

Zitat:
Zitat von wojzeh Beitrag anzeigen
с твоей оценкой пункта "г" (даже с буквой, которую ты ему присвоил) я полностью согласен, так как прекрасно помню речь из "полицейской академии".
))))
да, нумерация сознательная. как и подразумеваемый пятый пункт - PROFIT!!!!

Zitat:
Zitat von wojzeh Beitrag anzeigen
ты не представляешь, насколько мне это не нравится, но я ничего лучше придумать не смог. с интересом жду твоих идей.
Ну... если бы приперло, то пришлось бы делать что-то в духе исходного поста.
но считаю это запредельным говнокодом.
и считаю, что система, которая вынуждает программировать в таком стиле, не является хорошо продуманной.
и уж точно не привел бы такой код в качестве примера

Zitat:
Zitat von wojzeh Beitrag anzeigen
кстати говоря, не понял я, что имел в виду под "передавая "глобальный" параметр и жестко завязываясь на конкретную реализацию и окружение валидатора".
вот этот ключевой момент "методики":
Zitat:
Zitat von Blog bot Beitrag anzeigen
X++:
PurchReqTable   purchReqTable   = _args.getThis();
_args.getThis() - возвращает anytype
https://msdn.microsoft.com/ru-ru/lib...s.getthis.aspx

фиг с ним, что нет каста, фиг с ним что нет проверок.
но РЕКОМЕНДОВАТЬ использовать ЭТО для ОБМАНА штатного валидатора?...

впрочем, я уже создавал отдельную ветку:
Что с логикой у людей на форуме? Вроде программисты. Вроде код и ТЗ должны читать и писать.
__________________
полезное на axForum, github, vk, coub.
Alt 04.10.2017, 16:00   #12  
ax_mct ist offline
ax_mct
Banned
 
2.548 / 1091 (0) ++++++++
Registriert seit: 10.10.2005
Ort: Westlands
По хорошему без возможности полной подмены метода ни о какой нормальности речь быть не может.
СoC и Pre/Post это все компромиссы которые делают хуже. Они полезны, но как дающие наполовину - опасны.

Geändert von ax_mct (04.10.2017 um 16:03 Uhr)
Alt 04.10.2017, 16:01   #13  
mazzy ist offline
mazzy
Участник
Benutzerbild von mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29.472 / 4494 (208) ++++++++++
Registriert seit: 29.11.2001
Ort: Москва
Blog-Einträge: 10
Zitat:
Zitat von wojzeh Beitrag anzeigen
так как меня интересует вопрос в более общей постановке: how to f***** survive in extensions?
давай плакать и страдать здесь Клуб анонимных оверлейщиков

могу сказать одно - навижиноводы давно живут в условиях закрытого кода и в условиях extensions.
правда поэтому у них система более продуманная изначально.
__________________
полезное на axForum, github, vk, coub.
Alt 04.10.2017, 16:02   #14  
wojzeh ist offline
wojzeh
Участник
Benutzerbild von wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Registriert seit: 27.04.2006
Ort: Montreal
Zitat:
Zitat von mazzy Beitrag anzeigen
выбрать другую систему.
это оффтопик и в некотором смысле троллинг. я ж не продажами занимаюсь: что клиент купил, то и ставим. тут нечего обсуждать, мне, по крайней мере.

Zitat:
Zitat von mazzy Beitrag anzeigen
повторюсь: extensions - не изобретение майкрософт. это очень старая технология. грабли хорошо известны.
технически говоря, это и не технология, а подход, но давай поставим вопрос шире: какие приёмы нам доступны в новой парадигме?

- подписка на события;
- подписка на публичные методы до и после с различными перверсиями и девиациями;
- динамическое перекрытие методов form control;

что ещё?
__________________
Felix nihil admirari
Alt 04.10.2017, 16:08   #15  
mazzy ist offline
mazzy
Участник
Benutzerbild von mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29.472 / 4494 (208) ++++++++++
Registriert seit: 29.11.2001
Ort: Москва
Blog-Einträge: 10
Zitat:
Zitat von wojzeh Beitrag anzeigen
это оффтопик и в некотором смысле троллинг. я ж не продажами занимаюсь: что клиент купил, то и ставим. тут нечего обсуждать, мне, по крайней мере.
оно понятно.
точно также как понимаю и покупателей систем.
вот наглядный пример, как я сам был на месте покупателя Потенциально новая версия форума. Подсмотреть, обсудить.
система экстеншенов формного движка - один из криетриев. не самый важный конечно. но ощутимый.

Zitat:
Zitat von wojzeh Beitrag anzeigen
технически говоря, это и не технология, а подход, но давай поставим вопрос шире: какие приёмы нам доступны в новой парадигме?

- подписка на события;
- подписка на публичные методы до и после с различными перверсиями и девиациями;
- динамическое перекрытие методов form control;

что ещё?
отлично ставишь вопрос.
только давай в другой ветке?
Как правильно вести разработку в условиях, когда часть кода закрыта от изменения - Sys-слой в аксапте, закрытые codeunit в навике, extensions в MS CRM

здесь все-таки тема
D365: passing through public method by means of Pre- and Post-event handlers
__________________
полезное на axForum, github, vk, coub.
Alt 04.10.2017, 16:14   #16  
wojzeh ist offline
wojzeh
Участник
Benutzerbild von wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Registriert seit: 27.04.2006
Ort: Montreal
Zitat:
Zitat von mazzy Beitrag anzeigen
Ну... если бы приперло, то пришлось бы делать что-то в духе исходного поста.
но считаю это запредельным говнокодом ...
и уж точно не привел бы такой код в качестве примера
у меня по программированию в универе была "четвёрка", так что сорян.
можешь вкратце набросать бриллиантово-чистый пример?

Zitat:
Zitat von mazzy Beitrag anzeigen
фиг с ним, что нет каста, фиг с ним что нет проверок.
но РЕКОМЕНДОВАТЬ использовать ЭТО для ОБМАНА штатного валидатора?...
именно в этом и задача. ещё раз: как бы ты решил эту задачу?

спасибо за ссылку. не понял, как это относится к нашему топику. впрочем, там и без меня уже каментов насыпали.

я чувствую, эмоции тебя переполняют - поверь, меня тоже. но прошу, давай отвлечёмся от критики чистого разума и морального закона внутри нас и вернёмся к нашим баранам.
__________________
Felix nihil admirari
This post has been rated by: Link (1).
Alt 04.10.2017, 16:19   #17  
wojzeh ist offline
wojzeh
Участник
Benutzerbild von wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Registriert seit: 27.04.2006
Ort: Montreal
Zitat:
Zitat von mazzy Beitrag anzeigen
давай плакать и страдать здесь Клуб анонимных оверлейщиков
очевидно, текст не передаёт тона: я не призываю к стонам, я задаюсь конкретными вопросами о том, как работать (молотить бабло) в новых условиях со связанными руками. учусь рисовать пальцами ног, а также прочими частями тела. иногда да, и этим местом тоже.

Zitat:
Zitat von mazzy Beitrag anzeigen
могу сказать одно - навижиноводы давно живут в условиях закрытого кода и в условиях extensions.
правда поэтому у них система более продуманная изначально.
да и хрен с ними. зачем нам навик в топике про аксу? перестань увиливать уже!
__________________
Felix nihil admirari
This post has been rated by: Ace of Database (2).
Alt 04.10.2017, 16:21   #18  
wojzeh ist offline
wojzeh
Участник
Benutzerbild von wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Registriert seit: 27.04.2006
Ort: Montreal
Zitat:
Zitat von EVGL Beitrag anzeigen
Напротив, именно при chain of command это особенно и нужно: как убрать участок кода, который вам не нужен? Вся суть extensions заключается в том, что каждое ISV только добавляет функционал, но как тогда избавиться от излишнего? Пример из практики: прямая поставка в intercompany автоматически разносит накладную в двух компаниях, но что если хотим разнести одну позже из-за условий перехода права собственности DAP?
увидел твоё замечание в оценке только. и что произойдёт при подстановке проекта? ты увидел логическую ошибку в коде? или я что-то не понял?
спасибо
__________________
Felix nihil admirari
Alt 04.10.2017, 16:22   #19  
mazzy ist offline
mazzy
Участник
Benutzerbild von mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29.472 / 4494 (208) ++++++++++
Registriert seit: 29.11.2001
Ort: Москва
Blog-Einträge: 10
Zitat:
Zitat von wojzeh Beitrag anzeigen
можешь вкратце набросать бриллиантово-чистый пример?
именно в этом и задача. ещё раз: как бы ты решил эту задачу?
Я не знаю как правильно решить поставленную задачу в поставленных условиях.
Я бы изо всех сил постарался изменить формулировку задачи. Я бы постарался донести последствия силового решения. Если бы мои уговоры не сработали, то практическое решение было бы похоже на то, что приведено в блоге - стиль "сломать через колено".

Но мне чертовски не нравится что система вынуждает писать именно так.

Мне чертовски не нравится, что через несколько лет придется с последствиями решений, которые были сделаны в таком стиле.

А еще больше мне не нравится, систему сейчас делают такой совершенно конкретные люди. И они это делают точно не со зла.
__________________
полезное на axForum, github, vk, coub.

Geändert von mazzy (04.10.2017 um 16:24 Uhr)
Alt 04.10.2017, 16:22   #20  
mazzy ist offline
mazzy
Участник
Benutzerbild von mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29.472 / 4494 (208) ++++++++++
Registriert seit: 29.11.2001
Ort: Москва
Blog-Einträge: 10
Zitat:
Zitat von wojzeh Beitrag anzeigen
перестань увиливать уже!
отвечаю жеж. это не чат жеж. )))
__________________
полезное на axForum, github, vk, coub.
Stichworte
chain of command, extensions

 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
sertandev: AX7 Extensibility – Part 3 : Event handlers and delegates (hooks) Blog bot DAX Blogs 0 28.08.2017 19:11
ievgensaxblog: D365O. Trick to pass a value between Pre and Post event handler using XppPrePostArgs. Blog bot DAX Blogs 0 01.07.2017 10:13
How to cancel method execution in pre-event handler alicedr DAX: Программирование 6 01.01.2017 15:33
newdynamicsax: Pre / Post handlers and kernel classes. Blog bot DAX Blogs 0 25.04.2016 15:11
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 09:07 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.