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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.11.2021, 02:59   #1  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
D365: как пронести буфер salesTable или отдельное поле через exception
D365fo, 10.0.20 и выше.
Во время разноски накладной пользовательские поля статусов таблицы salestable обновляются. Если после этого происходит exception (например, фискальный период не открыт), значения, естественно, затираются.

Хотелось бы услышать рекомендации как правильно пронести нужные значения через try/catch в FormLetterService.runSinglethread() чтобы обновленные значения все-таки сохранились после отката.
Старый 25.11.2021, 08:34   #2  
online
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Состояние возвращается, потому что откатывается транзакция.Технически вы можете перед откатом транзакции создать отдельное подключение к базе данных и через него сохранить нужные данные (лучше в отдельную таблицу).
Старый 25.11.2021, 09:57   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,940 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
В предыдущих версиях аксапты runas открывал отдельную сесси в аксапте и как следствие, отдельное соединение к бд. Возможно что в 365й также. Тогда возможно проще было бы запускать обновляющий код через runas. Но все равно надо аккуратно с блокировками быть. Можно заблокировать себя и повиснуть.
Старый 25.11.2021, 11:19   #4  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Обычно попытки обновить SalesTable в отдельной сессии при разноске инвойса приводят к дедлокам, так как технически, мы пытаемся обновить ту же запись, что сейчас откатывается, и хорошо если все индексы на SalesTable родные и нет кастомных и никто не добавил кластерный индекс.

Мы пытались пару лет назад сделать аналогичное в AX2012 и подобная логика приводила к краху АОСа.

Поэтому вопрос был как "пронести". Идея была сохранить где-нибудь в SalesParmtable, буфер которой можно достать из FormLetterService, но возможно есть лучшие идеи...
Старый 29.11.2021, 15:25   #5  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от alicedr Посмотреть сообщение
D365fo, 10.0.20 и выше.
Во время разноски накладной пользовательские поля статусов таблицы salestable обновляются. Если после этого происходит exception (например, фискальный период не открыт), значения, естественно, затираются.

Хотелось бы услышать рекомендации как правильно пронести нужные значения через try/catch в FormLetterService.runSinglethread() чтобы обновленные значения все-таки сохранились после отката.
Может быть эти пользовательские поля не на том месте? То есть может быть их не должно быть на salestable?
Может быть они не должны присваиваится в этом процессе?

Технически то все можно. Но разве не режет глаз что то не так изначально?
Явно же кривой дизайн всего.

Или это тот вариант когда аутсорс и без вариантов надо делать что просят?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Sumit Potbhare: Retail Warehousing | Wrap up | Approach to D365 for Commerce with Adv WH Mgmt Blog bot DAX Blogs 0 28.04.2021 13:12
Sumit Potbhare: Classic Ways to Save labor in Retail | Approach to D365 for Commerce with Adv WH Mgmt Blog bot DAX Blogs 0 22.03.2021 03:57
patrickmouwen: D365 Retail APIs Part II: How to know exactly what happens inside D365 Retail Blog bot DAX Blogs 0 14.12.2019 01:17
Поле CreatedDate в SalesTable PlasticinE DAX: Программирование 16 19.10.2004 14:11

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

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

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