|
![]() |
#1 |
Участник
|
Цитата:
Именно так и сделали. Цитата:
systemSequence и обслуживающий его ужас в виде "appl.sysRecIdSequence()"
... на программистском уровне пришлось вводить методы suspendRecIds/removeRecIdSuspension ![]() ну и далее, что я писал. https://coub.com/view/9qsst добавлено: Причем ладно с логикой и высокими материями типа рекурсии или с исключениями... Но даже метод isSuspendedRecId() не реализовали. Суки. Вот какой-то "архитектор" это ж утверждал. Последний раз редактировалось mazzy; 09.12.2020 в 13:10. |
|
![]() |
#2 |
Moderator
|
Мне кажется что эти методы остались еще со времен Axapta 2.x и их просто не перепроектировали в связи с переходом на суррогатные ключи. Просто конечные разработчики, которые, например, логику разноски закупок и заказов писали, вынуждены были от безысходности этот механизм использовать.
|
|
![]() |
#3 |
Участник
|
ах, если бы ты был прав.
добавлено: а может быть и suspendRecIds не делает stop-world? может кто знает точно как оно работает? Последний раз редактировалось mazzy; 09.12.2020 в 13:26. |
|
![]() |
#4 |
Moderator
|
Цитата:
![]() на всякий случай спрошу - а ты под "потоком" thread в C/C#-смысле подразумеваешь, или аксаптовскую сессию ? |
|
![]() |
#5 |
Участник
|
Цитата:
![]() Цитата:
на котором в несколько потоков могут выполняться задания. но ты, конечно, прав, стоит учитывать и просто аксаптовские сессии. в частности, входящие вызовы аксаптовских веб-сервисов. обращения через COM, ну и обычные клиенты конечно. в общем, любое выполнение аксаптовского кода (X++ или CIL) |
|
![]() |
#6 |
Moderator
|
Цитата:
Сообщение от mazzy
![]() в рамках аксапты прежде всего имею в виду пакетный сервер,
на котором в несколько потоков могут выполняться задания. но ты, конечно, прав, стоит учитывать и просто аксаптовские сессии. в частности, входящие вызовы аксаптовских веб-сервисов. обращения через COM, ну и обычные клиенты конечно. в общем, любое выполнение аксаптовского кода (X++ или CIL) |
|
![]() |
#7 |
Участник
|
Так а ты думаешь что есть какой-то архитектор языка? ну т.е. может быть он и был, но сейчас что-то я не слышал о такой должности, есть Joris de Gruyter, который такими вопросами особо не интересуется, может быть только исключительно с точки зрения поддержки
|
|
![]() |
#8 |
Участник
|
Цитата:
но у каждой конкретной фичи ответственный за нее архитектор есть. как подсказал fed, класс systemSequence существовал еще в ax3.0 как было тогда - не знаю. но вижу, что обвязка "appl.sysRecIdSequence()" появилась в ax2012. вот у нее архитектор был. Был в Майкрософте человек, который принял решение * вместо того, чтобы добавить в ядро, в класс systemSequence метод isSuspendedRecId, * добавить класс-wrapper с Set, а всех программистов заставить соблюдать паттерн "appl.sysRecIdSequence()" (иначе класс-wrapper будет работать неправильно) |
|
![]() |
#9 |
Участник
|
Не. Я по другое.
Я вот подумал, а что мешало сделать kernel метод на буфере - выделить RecId и заполнить им поле common.RecId и взвести флажок чтобы на вставке оно не перезатиралось. Самое простое и удобное решение. И никаких огородов городить не надо с SystemSequence |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|