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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.07.2004, 15:29   #1  
maxsmirnov is offline
maxsmirnov
экс-модератор
 
268 / 25 (1) +++
Регистрация: 08.07.2003
Адрес: Москва
? Глюк в резервировании?
очевидно глюкавый код:

SalesLine.reserveQty()
PHP код:
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
Старый 07.07.2004, 17:58   #2  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Точно такой же код в 2.5 (без SP)
Сомневаюсь, что это глюк, скорее всего, так и было задумано.
Это метод, который возвращает количество, которое теоретически может быть зарезервировано по данной строке заказа.
Надо смотреть как используется данное число дальше.
Старый 07.07.2004, 18:16   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Re: Глюк в резервировании?
Цитата:
Изначально опубликовано maxsmirnov
очевидно глюкавый код:
....
наткнулся на него при раскапывании причины того, почему у меня при создании заказов по контракту все позиции автоматически резервируются, несмотря на то что в параметрах расчетов с клиентами стоит резервирование "вручную"

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

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

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

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

PHP код:
InventQty   reserveQty()
{
    
InventQty   qty;
    ;

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

    
if (this.remainInventPhysical 0)
        
qty   0;

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

    
return qty;

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

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

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

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

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

глюк лечится добавлением return-ов в SalesLine.ReserveQty()
Старый 08.07.2004, 00:01   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
спасибо.
Старый 08.07.2004, 09:17   #10  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Действительно, кривой код, спасибо.

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

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

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

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

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

    
qty     = -this.remainInventPhysical;

    return 
qty;

было-бы одинаково с точностью до символа - я бы подумал что код скопирован из SalesLine...
загадки во тьме
Старый 08.07.2004, 17:59   #12  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Цитата:
Изначально опубликовано maxsmirnov
SalesLine.reserveQty() вызывается только из одного места (см. выше)
И это место дорого стоит InventUpd_Estimated популярный классик

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

    if (! this.Reservation)
        return 0;

    if (this.RemainInventPhysical < 0)
        return 0;

    return -this.RemainInventPhysical;

}
За это сообщение автора поблагодарили: miklenew (1).
Старый 06.06.2008, 14:15   #15  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Спасибо.
Теги
ax2009, ax3.0, ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Глюк формы 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

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

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

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