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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.10.2017, 14:15   #1  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
На самом деле интересно, молодец Алексей. Не знал, что можно в передаваемый args пихать свои.
Это уже не так нужно с CoC, но все равно занятно.
Старый 04.10.2017, 14:36   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Не знал, что можно в передаваемый args пихать свои.
А еще caller() есть.
И в строку параметров можно положить какой-нибудь объект в сериализованном виде.
__________________
полезное на axForum, github, vk, coub.
Старый 04.10.2017, 14:52   #3  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Это уже не так нужно с CoC, но все равно занятно.
Напротив, именно при chain of command это особенно и нужно: как убрать участок кода, который вам не нужен? Вся суть extensions заключается в том, что каждое ISV только добавляет функционал, но как тогда избавиться от излишнего? Пример из практики: прямая поставка в intercompany автоматически разносит накладную в двух компаниях, но что если хотим разнести одну позже из-за условий перехода права собственности DAP?
За это сообщение автора поблагодарили: mazzy (2), wojzeh (1).
Старый 04.10.2017, 14:58   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от EVGL Посмотреть сообщение
Вся суть extensions заключается в том, что каждое ISV только добавляет функционал
Именно.

Цитата:
Сообщение от EVGL Посмотреть сообщение
но как тогда избавиться от излишнего?
выбрать другую систему.

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

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

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

повторюсь: extensions - не изобретение майкрософт. это очень старая технология. грабли хорошо известны.
__________________
полезное на axForum, github, vk, coub.
Старый 04.10.2017, 15:38   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
повторюсь: extensions - не изобретение майкрософт. это очень старая технология. грабли хорошо известны.
Уточнение: Это грабли отсутсвия возможности модифицировать код, а не наличия extensions.
За это сообщение автора поблагодарили: wojzeh (1).
Старый 04.10.2017, 16:02   #6  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от mazzy Посмотреть сообщение
выбрать другую систему.
это оффтопик и в некотором смысле троллинг. я ж не продажами занимаюсь: что клиент купил, то и ставим. тут нечего обсуждать, мне, по крайней мере.

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

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

что ещё?
__________________
Felix nihil admirari
Старый 04.10.2017, 16:08   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от wojzeh Посмотреть сообщение
это оффтопик и в некотором смысле троллинг. я ж не продажами занимаюсь: что клиент купил, то и ставим. тут нечего обсуждать, мне, по крайней мере.
оно понятно.
точно также как понимаю и покупателей систем.
вот наглядный пример, как я сам был на месте покупателя Потенциально новая версия форума. Подсмотреть, обсудить.
система экстеншенов формного движка - один из криетриев. не самый важный конечно. но ощутимый.

Цитата:
Сообщение от wojzeh Посмотреть сообщение
технически говоря, это и не технология, а подход, но давай поставим вопрос шире: какие приёмы нам доступны в новой парадигме?

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

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

здесь все-таки тема
D365: passing through public method by means of Pre- and Post-event handlers
__________________
полезное на axForum, github, vk, coub.
Старый 04.10.2017, 16:28   #8  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от mazzy Посмотреть сообщение
оно понятно.
точно также как понимаю и
опять офтоп!

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

здесь все-таки тема
D365: passing through public method by means of Pre- and Post-event handlers
во! спасибо за ссылку! хотя вы там шпарите по всем системам с обсуждением морально-этических моментов.
__________________
Felix nihil admirari
За это сообщение автора поблагодарили: mazzy (2).
Старый 04.10.2017, 17:07   #9  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
система экстеншенов формного движка - один из криетриев. не самый важный конечно. но ощутимый.
Вот кстати, он же на PHP написан. Почему бы не оверлеерить
Старый 04.10.2017, 17:12   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
Вот кстати, он же на PHP написан. Почему бы не оверлеерить
Дык, я и оверлею.
Aleksey_M не ругается вслух, конечно. А мог бы...
__________________
полезное на axForum, github, vk, coub.
Старый 04.10.2017, 15:36   #11  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от EVGL Посмотреть сообщение
Напротив, именно при chain of command это особенно и нужно: как убрать участок кода, который вам не нужен?
Воспользоваться какой-то точкой расширения для убирания функционала (не участка кода). Запросить такую точку расширения, если ее нет.

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

Последний раз редактировалось belugin; 04.10.2017 в 15:41.
Старый 04.10.2017, 16:43   #12  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от belugin Посмотреть сообщение
Продублировать то, что надо от default company (я не знаю функционала) - сделать свое поле которое ведет себя так же только в тех местах когда надо
Именно. И это может оказаться очень дорого. В моем примере с intercompany мы сначала пошли именно таким путем: сделать так, чтобы обычная цепочка стала работать как прямая поставка. И тут мы начали обрастать доработками и доработками доработок: копировать адрес доставки. Копировать условия Incoterms. Копировать имя. Модифицировать отчеты. В понедельник решили, наконец, остановиться и подумать еще раз в свете того, что все это в системе уже есть.
За это сообщение автора поблагодарили: mazzy (2).
Старый 04.10.2017, 16:51   #13  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от EVGL Посмотреть сообщение
Именно. И это может оказаться очень дорого. В моем примере с intercompany мы сначала пошли именно таким путем: сделать так, чтобы обычная цепочка стала работать как прямая поставка. И тут мы начали обрастать доработками и доработками доработок: копировать адрес доставки. Копировать условия Incoterms. Копировать имя. Модифицировать отчеты. В понедельник решили, наконец, остановиться и подумать еще раз в свете того, что все это в системе уже есть.
смахнул воображаемую слезу: спасибо, ребята! я прошёл по тому же самому пути, но только в воображаемой реальности. в реальной же реальности я решил этого не делать.

хотя вру, конечно же, уже дублировал! например, приватный метод на форме, который делает marking для строк.
__________________
Felix nihil admirari
Старый 04.10.2017, 16:21   #14  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от EVGL Посмотреть сообщение
Напротив, именно при chain of command это особенно и нужно: как убрать участок кода, который вам не нужен? Вся суть extensions заключается в том, что каждое ISV только добавляет функционал, но как тогда избавиться от излишнего? Пример из практики: прямая поставка в intercompany автоматически разносит накладную в двух компаниях, но что если хотим разнести одну позже из-за условий перехода права собственности DAP?
увидел твоё замечание в оценке только. и что произойдёт при подстановке проекта? ты увидел логическую ошибку в коде? или я что-то не понял?
спасибо
__________________
Felix nihil admirari
Старый 04.10.2017, 16:55   #15  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от EVGL Посмотреть сообщение
Вся суть extensions заключается в том, что каждое ISV только добавляет функционал
не только. например

X++:
FormControlCancelableSuperEventArgs ce = _e as FormControlCancelableSuperEventArgs;
 
    //cancel super() to prevent error.
    ce.CancelSuperCall();
__________________
Felix nihil admirari
За это сообщение автора поблагодарили: EVGL (5), ax_mct (3).
Старый 04.10.2017, 15:26   #16  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от kashperuk Посмотреть сообщение
На самом деле интересно, молодец Алексей. Не знал, что можно в передаваемый args пихать свои.
Это уже не так нужно с CoC, но все равно занятно.
что такое сос? в принципе данный подход работает со времён AX2012, но до подобных извращений (как ниже верно отмечает mazzy) пришлось опуститься именно в стеснённых условиях новой парадигмы.

как бы ты предложил решить подобную задачу?
__________________
Felix nihil admirari
За это сообщение автора поблагодарили: EVGL (10), kashperuk (5).
Теги
chain of command, extensions

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:50.