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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.12.2020, 13:03   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Logger Посмотреть сообщение
Странно почему программисты в этой схеме не сделали так
...
3. Генерируем в буфере мастер-справочника RecId, (можно например для этого сделать метод на Common)
Почему не сделали?
Именно так и сделали.

Цитата:
systemSequence и обслуживающий его ужас в виде "appl.sysRecIdSequence()"

... на программистском уровне пришлось вводить методы suspendRecIds/removeRecIdSuspension
а suspendRecIds похоже останавливает выделение recId во всех потоках
ну и далее, что я писал.
https://coub.com/view/9qsst

добавлено:
Причем ладно с логикой и высокими материями типа рекурсии или с исключениями...
Но даже метод isSuspendedRecId() не реализовали. Суки.
Вот какой-то "архитектор" это ж утверждал.
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 09.12.2020 в 13:10.
Старый 09.12.2020, 13:19   #2  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,914 / 5737 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от mazzy Посмотреть сообщение
добавлено:
Причем ладно с логикой и высокими материями типа рекурсии или с исключениями...
Но даже метод isSuspendedRecId() не реализовали. Суки.
Вот какой-то "архитектор" это ж утверждал.
Мне кажется что эти методы остались еще со времен Axapta 2.x и их просто не перепроектировали в связи с переходом на суррогатные ключи. Просто конечные разработчики, которые, например, логику разноски закупок и заказов писали, вынуждены были от безысходности этот механизм использовать.
Старый 09.12.2020, 13:23   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от fed Посмотреть сообщение
Мне кажется что эти методы остались еще со времен Axapta 2.x
ах, если бы ты был прав.

добавлено:
а может быть и suspendRecIds не делает stop-world?
может кто знает точно как оно работает?
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 09.12.2020 в 13:26.
Старый 09.12.2020, 13:44   #4  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,914 / 5737 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от mazzy Посмотреть сообщение
ах, если бы ты был прав.

добавлено:
а может быть и suspendRecIds не делает stop-world?
может кто знает точно как оно работает?
По крайней мере в Axapta 3.0 этот код нашелся. Более древней аксапты под рукой не было
на всякий случай спрошу - а ты под "потоком" thread в C/C#-смысле подразумеваешь, или аксаптовскую сессию ?
Миниатюры
Нажмите на изображение для увеличения
Название: Axapta3Import.jpg
Просмотров: 95
Размер:	167.8 Кб
ID:	13003  
Старый 09.12.2020, 14:05   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от fed Посмотреть сообщение
По крайней мере в Axapta 3.0 этот код нашелся. Более древней аксапты под рукой не было


Цитата:
Сообщение от fed Посмотреть сообщение
на всякий случай спрошу - а ты под "потоком" thread в C/C#-смысле подразумеваешь, или аксаптовскую сессию ?
в рамках аксапты прежде всего имею в виду пакетный сервер,
на котором в несколько потоков могут выполняться задания.

но ты, конечно, прав, стоит учитывать и просто аксаптовские сессии.
в частности, входящие вызовы аксаптовских веб-сервисов.
обращения через COM, ну и обычные клиенты конечно.

в общем, любое выполнение аксаптовского кода (X++ или CIL)
__________________
полезное на axForum, github, vk, coub.
Старый 09.12.2020, 14:26   #6  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,914 / 5737 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от mazzy Посмотреть сообщение
в рамках аксапты прежде всего имею в виду пакетный сервер,
на котором в несколько потоков могут выполняться задания.

но ты, конечно, прав, стоит учитывать и просто аксаптовские сессии.
в частности, входящие вызовы аксаптовских веб-сервисов.
обращения через COM, ну и обычные клиенты конечно.

в общем, любое выполнение аксаптовского кода (X++ или CIL)
Осторожно предположу что заморозка генерации RecId работает в рамках сессии. Так что если ты несколько Threads() породишь (кажется в DAX2012R3 это уже было легальным), то все они будут одну сессию использовать. Ну а если batch parallelism, то каждый батч будет в своей сесии выполняться.
Старый 09.12.2020, 16:31   #7  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1635 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от mazzy Посмотреть сообщение
Вот какой-то "архитектор" это ж утверждал.
Так а ты думаешь что есть какой-то архитектор языка? ну т.е. может быть он и был, но сейчас что-то я не слышал о такой должности, есть Joris de Gruyter, который такими вопросами особо не интересуется, может быть только исключительно с точки зрения поддержки
Старый 09.12.2020, 16:57   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от trud Посмотреть сообщение
Так а ты думаешь что есть какой-то архитектор языка? ну т.е. может быть он и был, но сейчас что-то я не слышал о такой должности, есть Joris de Gruyter, который такими вопросами особо не интересуется, может быть только исключительно с точки зрения поддержки
не, не думаю, что есть "архитектор языка".
но у каждой конкретной фичи ответственный за нее архитектор есть.

как подсказал fed, класс systemSequence существовал еще в ax3.0
как было тогда - не знаю.

но вижу, что обвязка "appl.sysRecIdSequence()" появилась в ax2012.
вот у нее архитектор был.

Был в Майкрософте человек, который принял решение
* вместо того, чтобы добавить в ядро, в класс systemSequence метод isSuspendedRecId,
* добавить класс-wrapper с Set, а всех программистов заставить соблюдать паттерн "appl.sysRecIdSequence()" (иначе класс-wrapper будет работать неправильно)
__________________
полезное на axForum, github, vk, coub.
Старый 09.12.2020, 17:54   #9  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,996 / 3293 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от mazzy Посмотреть сообщение
Почему не сделали?
Именно так и сделали.
Не. Я по другое.
Я вот подумал, а что мешало сделать kernel метод на буфере - выделить RecId и заполнить им поле common.RecId и взвести флажок чтобы на вставке оно не перезатиралось.

Самое простое и удобное решение. И никаких огородов городить не надо с SystemSequence
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
stoneridgesoftware: Daylight Savings Time Adjustment Not Available for Batch Jobs in Dynamics 365 Finance and Operations Blog bot DAX Blogs 0 07.03.2019 03:29
D365FO - Ошибка Keyword not supported: 'pwd=@cgo' в AdminUserProvisioning MarinaAX DAX: Администрирование 4 16.11.2018 01:43
dynamicsaxse: November 2018 Release – Dynamics AX2012 R3 update Blog bot DAX Blogs 0 15.11.2018 09:11
Быстродействие метда TaxParameters::find Ace of Database DAX: Программирование 7 01.06.2017 11:46
axaptapedia: Current Time Blog bot DAX Blogs 1 29.11.2010 22:11
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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