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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.01.2019, 17:53   #1  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,038 / 1629 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Обычно там делают заполнение параметров от query или наоборот - query от параметров. query кстати в датаконтракт не входит, т.е. ее дополнительно нужно будет передавать.
ну т.е. о чем я и писал, когда имел ввиду развитие framework - существует множество подобных мелочей, которые никто особо не правит и которые сводят все преимущества впустую. т.е. кода у вас получится в итоге больше, с еще большим дублированием чем RunBase
Старый 14.01.2019, 19:32   #2  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от trud Посмотреть сообщение
query кстати в датаконтракт не входит, т.е. ее дополнительно нужно будет передавать.
Это как? Если в класс/контракт добавить Query parmXXX() или в метод добавить параметр Query xxx оно будет частью контракта?

Вы какую ситуацию имеете ввиду?
Старый 15.01.2019, 01:27   #3  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от belugin Посмотреть сообщение
Я думаю, вот эта фраза относилась к тому, что может просто взять, заполнить контракт самостоятельно и запустить операцию. В случае runBase для этого, надо, чтобы сначала автор кода специально придумал и выставил наружу API
Именно так.
Цитата:
Сообщение от trud Посмотреть сообщение
ну да, в контроллере. Для PurchFormLetter это происходит неявно, в методе construct. причем в методе getDataContractObject
Хотя может это и кривизна конкретной реализации PurchFormLetter, но недавно мы много дней потеряли на поиски этой баги, когда у некоторых пользователей подставлялись старые значения при запуске разноски из кода
Мда, занятно... для прошлых версий, когда создавались наследники RunBase, было хорошим тоном делать для них статический construct(), где после new() еще вызывать getLast(). Смысл был в том, чтобы в стороннем коде можно было дернуть construct(), получить экземпляр класса и при необходимости спокойной выполнять дополнительную инициализацию его через parm-методы, не боясь, что внутри prompt() он все ваши труды перезатрет из SysLastValue. Возможно, разработчики PurchFormLetter в 12-ке решили пойти схожим путем - хотели, как лучше...
Цитата:
Сообщение от trud Посмотреть сообщение
Обычно там делают заполнение параметров от query или наоборот - query от параметров. query кстати в датаконтракт не входит, т.е. ее дополнительно нужно будет передавать.
Я, может, как-то не так готовлю SysOperation framework, но при необходимости я не гнушаюсь добавлять в DataContract параметры типа Query. Да, при этом нужно делать дополнительную валидацию контракта на предмет передачи "кривого" Query, в котором отсутствуют ожидаемые DataSource'ы. Да, при этом нужно делать некий метод, создающий "Query по умолчанию" - либо в контракте, либо в сервисе. Да, такой вариант в AX 2012 не подходит для сервисов, вызываемых через AIF по http, потому что там DataContract должен быть вообще без малейшей бизнес-логики и ссылок на посторонние типы и классы (хотя это - скорее "особенности" публикации AIF'ом сервисов на IIS). Но в целом, если нужно создать сервис, принимающий на вход Query и запускаемый пользователем интерактивно, а не извне через http, по-моему, Query вполне себе может быть частью контракта. Или речь про какие-то стандартные контракты, а не "вообще"?..
Старый 15.01.2019, 02:30   #4  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,038 / 1629 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Я, может, как-то не так готовлю SysOperation framework, но при необходимости я не гнушаюсь добавлять в DataContract параметры типа Query. Или речь про какие-то стандартные контракты, а не "вообще"?..
Ну мы обсуждаем операции, для которых есть диалог пользователя(обычный режим запуска), плюс возможность эту же операцию запустить из кода. Разве если вы добавите в DataContract parmQuery, этот Query появится в диалоге в интерактивном режиме запуска?
Старый 15.01.2019, 09:08   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от trud Посмотреть сообщение
Ну мы обсуждаем операции, для которых есть диалог пользователя(обычный режим запуска), плюс возможность эту же операцию запустить из кода. Разве если вы добавите в DataContract parmQuery, этот Query появится в диалоге в интерактивном режиме запуска?
Да.
Старый 15.01.2019, 10:37   #6  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,160 / 1289 (47) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от belugin Посмотреть сообщение
Да.
А это появилось в 365?
В DAX2012 такое не встречалось (правда не сильно искал), в ней, как правило, дополнительный атрибут AifQueryTypeAttribute используется. Ну и для SRS отчетов свой механизм с запихиванием Query в Map и публикациейDataMember с типом Map.
Старый 15.01.2019, 10:59   #7  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
А это появилось в 365?
В DAX2012 такое не встречалось (правда не сильно искал), в ней, как правило, дополнительный атрибут AifQueryTypeAttribute используется. Ну и для SRS отчетов свой механизм с запихиванием Query в Map и публикациейDataMember с типом Map.
Про SSRS я мало что знаю. Насколько, я помню, это появилось в 2012.
Теги
runbase, sysoperation framework

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
stoneridgesoftware: Batch Processing in Dynamics AX 2012 Using SysOperation Framework Blog bot DAX Blogs 0 28.03.2017 00:11
emeadaxsupport: Update to AX 2012 Framework Component Documentation: SysOperation Framework Blog bot DAX Blogs 0 09.06.2012 00:11
daxmusings: From RunBase to SysOperation : Business Operation Framework (Cont'd) Blog bot DAX Blogs 0 19.08.2011 16:11
daxmusings: From RunBase to SysOperation : Business Operation Framework Blog bot DAX Blogs 4 17.08.2011 16:01
Inside Dynamics AX 4.0: RunBase Framework Extension Part IV Blog bot DAX Blogs 0 02.10.2007 04:49

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:16.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.