|
14.01.2019, 10:04 | #1 |
Участник
|
Цитата:
Сообщение от gl00mie
Для USR-разработчиков, по-моему, SysOperation предпочтительнее, потому что позволяет более четко отделить сервис от контракта и UI для интерактивного ввода параметров, что способствует повторному использованию сервисных операций в тех местах, которые изначально не предполагались.
Это на мой взгляд фундаментальный баг, о котором многие забывают(или не знают) Например первая ссылка по запросу Post purchase order through code Ax2012 выдает следующий фрагмент кода(что отлично работало в 2009, когда класс был наследником от RunBase), который может прекратить работать в любом момент - из за того что юзер под которым это запускается может разнести PO из интерфейса со спец. параметрами(типа проверки кредитного лимита) X++: static void postPurchaseOrder(Args _args) { PurchTable purchTable = PurchTable::find(); PurchFormLetter purchFormLetter; purchFormLetter = PurchFormLetter::construct(DocumentStatus::PurchaseOrder); purchFormLetter.update(purchTable, , systemDateGet(), PurchUpdate::All); } |
|
14.01.2019, 12:04 | #2 |
Участник
|
Цитата:
Контракт распаковывает контроллер. Который это делает в методе unpack. Контракт - это такой же класс как и все, просто размеченный атрибутами. |
|
14.01.2019, 13:36 | #3 |
Участник
|
Цитата:
Хотя может это и кривизна конкретной реализации PurchFormLetter, но недавно мы много дней потеряли на поиски этой баги, когда у некоторых пользователей подставлялись старые значения при запуске разноски из кода Я что-то подумал что это баг всего фрамеворка, но возможно стоит еще поизучать вопрос Последний раз редактировалось trud; 14.01.2019 в 13:39. |
|
|
За это сообщение автора поблагодарили: gl00mie (5). |
Теги |
runbase, sysoperation framework |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|