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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.03.2007, 19:41   #1  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
? inventUpd_reservation использование inventDim
Возник вопрос у меня (может я чего не понимаю)
есть Класс inventUpd_reservation, он делает физ.резервирование товара. В начале строится квери по InventSum в связке с InventDim, далее в цикле по квери идет работа. В фрагменте, табличным переменным присваивается значение из квери и дальше идет с ними работа:
X++:
protected void updateReserveMore()
{
..................
        while (doNext)
        {
            inventSum = queryRun.get(TableNum(InventSum));
            inventDim = queryRun.get(TableNum(InventDim));

            if (doSelect)
            select firstOnly firstfast forupdate inventTrans
                index TransIdIdx
                where inventTrans.inventTransId         == movement.transId()          &&
                      inventTrans.transChildType        == movement.transChildType()   &&
                      inventTrans.transChildRefId       == movement.transChildRefId()  &&
                      inventTrans.statusReceipt         == StatusReceipt::None         &&
                      inventTrans.statusIssue           == StatusIssue::OnOrder;

            if (! inventTrans)
                break;

            if (inventTrans.qty > aDDReserv)
                addQty   = inventTrans.qty;
            else
                addQty   = aDDReserv;

            reserveMax = -(inventSum.availReservation(loopReserveType) - tmpReserved);

            if (addQty <= reserveMax)
            {
                addQty      = reserveMax;
                doNext      = true;
                tmpReserved = 0;
            }
            else
                doNext      = false;

            if (addQty < 0)             {
                if (addQty   > inventTrans.qty) 
                    inventTrans.updateSplit(addQty);

                inventTrans.inventDimId         = InventDim::findOrCreate(inventDim).inventDimId;
                inventTrans.inventDimFixed      = inventDimFixed;

                inventDim.inventDimId           = inventTrans.inventDimId;
                movement.updateTransDimTransferReceipt(this,inventTrans,inventDim);

                movement.transIdSum().setInventTransStatus(inventTrans,StatusReceipt::None,(loopReserveType ? StatusIssue::ReservOrdered : StatusIssue::ReservPhysical));

                inventTrans.update();
                inventTrans.updateSumUp();

                aDDReserv           -= addQty;

                if (loopReserveType)
.........
собственно интересует зачем происходит такая вот работа с inventDim:
X++:
inventTrans.inventDimId         = InventDim::findOrCreate(inventDim).inventDimId;
inventTrans.inventDimFixed      = inventDimFixed;
inventDim.inventDimId           = inventTrans.inventDimId;
конкретно непонятно: зачем делать InventDim::findOrCreate, если и так известно что в inventDim находится реально существующая аналитика???? А потом еще и переприсвоение inventDimId - или я туплю или двое из ларца
__________________
--- SHiSHok
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Использование семейства InventDimCtrl_Frm_* - 2 DS InventDim на одной форме Pavlo AKA Panok DAX: База знаний и проекты 5 22.12.2008 17:15
Можно ли вообще сделать JOIN временной таблицы и InventDim??? Maxim Gorbunov DAX: Программирование 9 05.03.2005 10:39
InventDim.findOrCreateBlank - простое сложно? Pavlo AKA Panok DAX: Программирование 5 25.10.2004 16:50
Работа с InventDim... NJD DAX: Программирование 11 17.06.2004 14:42
Как правильно установить связь между двумя записями в InventDim Sirius DAX: Программирование 0 25.05.2004 16:50

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

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

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