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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.09.2019, 20:50   #1  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
AX2012 CU13 MCRHoldCodeTrans добавлен в отдельной транзакции
добрый вечер!
какая-то странная проблема, наверное связанная с областью видимости транзакций, но...
AX2012 CU13
Надо при выполнеии определенных условий во время разноски накладной поставить ордер на Hold (добавить в MCRHoldCodeTrans). Потом по сюжету идет throw error.

После этого идет откат транзакции, и добавленный обычным способом холд откатывается.

Чтобы холд остался, добавляю его в MCRHoldCodeTrans в отдельной транзакцией. Добавляется и виден в форме по книпке "functions/order holds" после отката, но кнопки на форме не блокируются. F5 не помогает.

Если к имеющемуся в форме я добавляю еще один такой же вручную, кнопки блокируются. Удаляю только что добавленный - кнопки все равно блокируются, то есть первый холд начинает работать.

Подскажите в чем проблема и почему первый холд не работает поначалу, хотя виден, потому что временное (надеюсь!) помутнение рассудка не позволяет увидеть решение.
Добавляю так:
X++:
static void holdSalesOrder(SalesId _salesId, MCRHoldCode _holdCode)
{
    MCRHoldCodeTrans holdtrans;
    UserConnection   connection ;

    select firstonly RecId from holdtrans
        where holdtrans.InventRefId      == _salesId
            && holdtrans.mcrCleared      == NoYes::No
            && holdtrans.mcrHoldCode == _holdCode;

    if(!holdtrans.RecId)
    {
        connection = new UserConnection();
        holdtrans.setConnection(connection);
        connection.ttsbegin();
        
        holdtrans.InventRefId = _salesId;
        holdtrans.mcrHoldCode = _holdCode;

        if (holdtrans.validateWrite())
        {
            holdtrans.insert();
        }
        connection.ttscommit();
        connection.finalize();

    }
}
Старый 20.09.2019, 23:08   #2  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
дело, похоже, в MCRHoldCodeTrans.insert(), который паровозом выполняет
X++:
salesTable.mcrOrderStopped = NoYes::Yes;
Холд остается, а данные в salesTable откатываются - отсюда и эффект.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxse: November 2018 Release – Dynamics AX2012 R3 update Blog bot DAX Blogs 0 15.11.2018 09:11
AX 2012 R3 CU11 upgrade to CU13 January 2018 Release problem oip DAX: Администрирование 3 22.02.2018 20:19
stephenmann: Technical History of Dynamics AX - From Axapta 3.0 to AX2012 Blog bot DAX Blogs 5 03.03.2017 10:22
dynamicsax-fico: Invoice search AX2012 vs. AX7 (Part 2) Blog bot DAX Blogs 0 01.04.2016 10:11

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

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

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