AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search Mark Forums Read

 
 
Thread Tools Search this Thread Display Modes
Old 07.07.2004, 15:29   #1  
maxsmirnov is offline
maxsmirnov
экс-модератор
 
268 / 25 (1) +++
Join Date: 08.07.2003
Location: Москва
? Глюк в резервировании?
очевидно глюкавый код:

SalesLine.reserveQty()
PHP Code:
InventQty   reserveQty()
{
    
InventQty   qty;
    ;

    if (! 
this.reservation)
        
qty   0;

    if (
this.remainInventPhysical 0)
        
qty   0;

    
qty   = -this.remainInventPhysical;

    return 
qty;

наткнулся на него при раскапывании причины того, почему у меня при создании заказов по контракту все позиции автоматически резервируются, несмотря на то что в параметрах расчетов с клиентами стоит резервирование "вручную"

ps: ax3 cis sp3 hf1
Old 07.07.2004, 17:58   #2  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 868 (32) +++++++
Join Date: 15.01.2002
Location: Москва
Blog Entries: 7
Точно такой же код в 2.5 (без SP)
Сомневаюсь, что это глюк, скорее всего, так и было задумано.
Это метод, который возвращает количество, которое теоретически может быть зарезервировано по данной строке заказа.
Надо смотреть как используется данное число дальше.
Old 07.07.2004, 18:16   #3  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
Re: Глюк в резервировании?
Quote:
Изначально опубликовано maxsmirnov
очевидно глюкавый код:
....
наткнулся на него при раскапывании причины того, почему у меня при создании заказов по контракту все позиции автоматически резервируются, несмотря на то что в параметрах расчетов с клиентами стоит резервирование "вручную"

ps: ax3 cis sp3 hf1
А почему ты считаешь, что код глюкавый?
параметры клиента вообще говоря не при чем.

позиция резервируется, когда в СТРОКЕ написано авторезервирование
в строку этот параметр передается из заголовка

но при копировании из контракта авторезервирвание в строки заказа должно передаваться из строк контракта.
В строки контракта они должны были педаться из заголовка контракта.

вопрос: что стоит в строках контракта? что стоит в заголовке контракта?
вопрос: кто-нибудь правит заголовки или строки контракта или заказа? а программно?
Old 07.07.2004, 18:24   #4  
maxsmirnov is offline
maxsmirnov
экс-модератор
 
268 / 25 (1) +++
Join Date: 08.07.2003
Location: Москва
извиняюсь, не совсем ясно изложил свои соображения
тот-же код, но с комментариями:

PHP Code:
InventQty   reserveQty()
{
    
InventQty   qty;
    ;

    if (! 
this.reservation//если стоит резервирование вручную
        
qty   0//тогда ноль, но это значение не возвращается никогда!

    
if (this.remainInventPhysical 0)
        
qty   0;

    
qty   = -this.remainInventPhysical//потому что здесь оно переписывается

    
return qty;

Old 07.07.2004, 18:36   #5  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
опа. действительно прикольно.
Old 07.07.2004, 18:38   #6  
maxsmirnov is offline
maxsmirnov
экс-модератор
 
268 / 25 (1) +++
Join Date: 08.07.2003
Location: Москва
Re: Re: Глюк в резервировании?
в строках и контракта, и заказа на отпуск стоит "вручную"
все делается не программно

меня смущает отсутствие return в двух местах.
т.е. не смущает, я, когда постил сообщение, скорее не задавал вопрос, а ставил общественность в известность о глюке.

теперь я уже не уверен
а именно - смущает то, что такой глюк прожил аж со времен 2.5 без СП
Old 07.07.2004, 18:45   #7  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
Re: Re: Re: Глюк в резервировании?
Quote:
Изначально опубликовано maxsmirnov
меня смущает отсутствие return в двух местах.
Да, я сразу и не понял.

Теперь смотри что происходит:
метод SalesLine.ReserveQty() вызывается только из одного места - из InventUpd_Estimated.updateReservation()
А там уже есть проверки.
Поэтому код в ReserveQty неправильный, но сейчас эта неправильность латентна и никак не проявляется.
Old 07.07.2004, 19:07   #8  
maxsmirnov is offline
maxsmirnov
экс-модератор
 
268 / 25 (1) +++
Join Date: 08.07.2003
Location: Москва
InventUpd_Estimated.updateReservation() - на это там проверок нет.

т.е. глюк налицо - при создании заказа на отгрузку по контракту, в котором в строках и в шапке стоит резервирование "вручную", создается заказ со строками, в которых указано резервирование "вручную", тем не менее, происходит резервирование номенклатуры в кол-ве указанном remainInventPhysical строки.
(в параметрах модуля тоже стоит "вручную")

глюк лечится добавлением return-ов в SalesLine.ReserveQty()
Old 08.07.2004, 00:01   #9  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
спасибо.
Old 08.07.2004, 09:17   #10  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 868 (32) +++++++
Join Date: 15.01.2002
Location: Москва
Blog Entries: 7
Действительно, кривой код, спасибо.

Quote:
Изначально опубликовано maxsmirnov
InventUpd_Estimated.updateReservation() - на это там проверок нет.
Проверка есть - movement.mustBeAutoReserved()

Quote:
а именно - смущает то, что такой глюк прожил аж со времен 2.5 без СП
К сожалению, это не единичный случай

Quote:
глюк лечится добавлением return-ов в SalesLine.ReserveQty()
Это понятно, но ведь теперь неплохо бы проверить все места в системе, откуда этот метод вызывается.
Old 08.07.2004, 15:53   #11  
maxsmirnov is offline
maxsmirnov
экс-модератор
 
268 / 25 (1) +++
Join Date: 08.07.2003
Location: Москва
SalesLine.reserveQty() вызывается только из одного места (см. выше)
я тут еще вот какую прелесть нашел:
smmQuotationLine.reserveQty()
PHP Code:
public InventQty  reserveQty()
{
    
InventQty   qty;
    ;

    if (!
this.reservation)
    {
        
qty 0;
    }

    if (
this.remainInventPhysical 0)
    {
        
qty 0;
    }

    
qty     = -this.remainInventPhysical;

    return 
qty;

было-бы одинаково с точностью до символа - я бы подумал что код скопирован из SalesLine...
загадки во тьме
Old 08.07.2004, 17:59   #12  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 868 (32) +++++++
Join Date: 15.01.2002
Location: Москва
Blog Entries: 7
Quote:
Изначально опубликовано maxsmirnov
SalesLine.reserveQty() вызывается только из одного места (см. выше)
И это место дорого стоит InventUpd_Estimated популярный классик

Quote:
я тут еще вот какую прелесть нашел:
smmQuotationLine.reserveQty()
Вот видишь, традиция у них такая .. Best Practice
Old 06.06.2008, 13:33   #13  
miklenew is offline
miklenew
Участник
miklenew's Avatar
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 438 (18) +++++++
Join Date: 10.07.2006
Location: г. Ликино-Дулёво
Интересно, а данный код в Ax 4.0 или Ax 5.0 исправили.
Может кто-нибудь у кого стоит посмотрит.
Old 06.06.2008, 14:11   #14  
Sada is offline
Sada
Программатор
Sada's Avatar
 
1,450 / 153 (8) ++++++
Join Date: 29.03.2005
Location: Толи Барнаул, толи Москва
В 4 исправлено
X++:
InventQty   reserveQty()
{

    if (! this.Reservation)
        return 0;

    if (this.RemainInventPhysical < 0)
        return 0;

    return -this.RemainInventPhysical;

}
This post has been rated by: miklenew (1).
Old 06.06.2008, 14:15   #15  
miklenew is offline
miklenew
Участник
miklenew's Avatar
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 438 (18) +++++++
Join Date: 10.07.2006
Location: г. Ликино-Дулёво
Спасибо.
Tags
ax2009, ax3.0, ax4.0

 

Similar Threads
Thread Thread Starter Forum Replies Last Post
Глюк формы kashperuk DAX: Программирование 9 11.08.2007 15:08
Глюк автоматическое рассопопоставление Logger DAX: Функционал 4 14.07.2006 10:09
Глюк в резервировании sev DAX: Функционал 1 17.04.2006 17:24
Складские проводки , выверка , ГЛЮК.. Swetik DAX: Функционал 0 19.08.2004 12:02
При резервировании не учитывается аналитика Партия? KIV DAX: Функционал 32 06.08.2004 13:23
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 10:21.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.