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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.02.2012, 14:30   #1  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Резервация заказа на выбранном складе
Что то отказывается резервировать строку заказа с указанного склада. Казалось бы должен, но резервирует полностью игнорируя InventDim.

X++:
inventMovement  = InventMovement::construct(salesLine);

inventDim_KFG_SQUARE.InventLocationId   = 'KFG';
inventDim_KFG_SQUARE.wMSLocationId      = 'SQUARE';
inventDim_KFG_SQUARE                    = InventDim::findDim(inventDim_KFG_SQUARE);

qtyOnhand = InventOnHand::newPhysicalInvent(inventMovement, inventDim_KFG_SQUARE).availPhysical();

if (qtyOnhand)
{
    if(inventMovement)
    {
        inventDimParmFixed.initFromInventDim(inventDim_KFG_SQUARE);

        reservation = InventUpd_Reservation::newParameters( inventMovement,
                                                            inventDim_KFG_SQUARE,
                                                            inventDimParm,
                                                            InventDimFixedClass::inventDimParm2InventDimFixed(inventDimParmFixed),
                                                            -reserveNow,
                                                            true,
                                                            true);

        reservation.parmShowInfo(true);
        reservation.parmInventDimCriteria(inventDim_KFG_SQUARE);
        reservation.updateNow();
        reservation.deleteInvalidMarking(inventMovement, inventDim_KFG_SQUARE);
        
        //InventUpd_Reservation::updateReserveFromForm(salesLine, inventDim_KFG_SQUARE, inventDimParm, reserveNow);
    }
}
В дебагере все выглядит нормально и через форму все работает, но видимо в коде чего то не хватает.

DAX 4 SP2
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 10.02.2012, 15:12   #2  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
А как у вас inventDimParm инициализируеся?
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: Link (2).
Старый 10.02.2012, 15:27   #3  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от AndyD Посмотреть сообщение
А как у вас inventDimParm инициализируеся?
Спасибо, Andy, не заметил, что там флаги выставляются
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 10.02.2012, 15:33   #4  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Рабочий код. Суть джоба: резервация заказа (SalesLine) на складе 'KFG' с приоритетом в локейшене 'SQUARE'.

X++:
        if (salesLine && reserveQty)
        {
            inventMovement  = InventMovement::construct(salesLine);

            if (reserveQty)
            {
                //inventDim_KFG_SQUARE.InventSiteId       = 'KAB';
                inventDim_KFG_SQUARE.InventLocationId   = 'KFG';
                inventDim_KFG_SQUARE.wMSLocationId      = 'SQUARE';
                inventDim_KFG_SQUARE                    = InventDim::findDim(inventDim_KFG_SQUARE);

                //inventDim_KFG.InventSiteId              = 'KAB';
                inventDim_KFG.InventLocationId          = 'KFG';
                inventDim_KFG                           = InventDim::findDim(inventDim_KFG);

                inventDimParm.initFromInventDim(inventDim_KFG_SQUARE);
                qtyOnhand = InventOnHand::newParameters(salesLine.ItemId, inventDim_KFG_SQUARE, inventDimParm).availPhysical();

                if (qtyOnhand)
                {
                    reserveNow     = qtyOnhand >= reserveQty ? reserveQty : qtyOnhand;
                    reserveQty     -= reserveNow;

                    if(inventMovement)
                    {
                        InventUpd_Reservation::updateReserveFromForm(salesLine, inventDim_KFG_SQUARE, inventDimParm, reserveNow);
                    }
                }

                if (reserveQty)
                {
                    inventDimParm.initFromInventDim(inventDim_KFG);
                    qtyOnhand = InventOnHand::newParameters(salesLine.ItemId, inventDim_KFG, inventDimParm).availPhysical();
 
                    if (qtyOnhand)
                    {
                        reserveNow      = qtyOnhand >= reserveQty ? reserveQty : qtyOnhand;
                        reserveQty      -= reserveNow;
                        InventUpd_Reservation::updateReserveFromForm(salesLine, inventDim_KFG, inventDimParm, reserveNow);
                    }
                }

                if  (reserveQty)
                {
                    warning(strfmt('Qty \'%1\' not reserved for item \'%2\' Sales Order \'%3\'.', reserveQty, salesLine.itemId, salesLine.SalesId));
                }
                else
                {
                    info(strfmt('Reserved %1.', reserveStock.InventTransId));
                    reserveStock.Reserved = NoYes::Yes;
                    reserveStock.doUpdate();
                }
            }
        }
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.

Последний раз редактировалось Link; 10.02.2012 в 16:15.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Программное создание заказа на покупку niksen DAX: Программирование 14 29.07.2011 10:14
Обновление шапки заказа на продажу после перехода из пустого заказа pedrozzz DAX: Программирование 0 20.04.2011 14:48
Цены в строке заказа меняются при изменении шапки заказа s.alex DAX: Функционал 8 14.04.2009 11:27
О возможности резервирования товара, которого нет на складе Ena DAX: Функционал 14 14.04.2006 18:08
Цена на дату создания заказа/закупки George Nordic DAX: Функционал 2 29.06.2005 15:56

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

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

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