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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.07.2007, 12:01   #1  
Artem Mikhailov is offline
Artem Mikhailov
Участник
 
19 / 11 (1) +
Регистрация: 22.10.2005
Закрытие склада - ошибка "Значение 1 не найдено в map"
День добрый,

Процесс закрытия склада в это месяце стал обрываться в середине работы. Выдает исключение вида "Значение 1 не найдено в map".

Закрытие стандартное, ничего не меняли.

Понятно, что надо трассировать и лазать по стеку, но, может быть, кто нибудь уже сталкивался с подобной ситуацией и подскажет что делать?

AX 3.0 CIS SP4 СУБД MS SQL

Артем
Старый 11.07.2007, 12:16   #2  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
В складских проводках есть ссылка на несуществующий лот.

X++:
// поиск складских проводок с кривыми ссылками на другие складские проводки
static void Edd_CheckInventTransId(Args _args)
{
    InventTrans     InventTrans;
    InventTrans     InventTrans2;
    ;
    InventTrans.selectLocked(true);
    InventTrans2.selectLocked(true);

    while select InventTrans
        where InventTrans.ValueOpen           == InventTransOpen::Yes
           && InventTrans.InventTransIdReturn != ""
    notexists join InventTrans2
        where InventTrans2.InventTransId      == InventTrans.InventTransIdReturn
    {
        info(strfmt("InventTransIdReturn    %1", InventTrans.RecId));
    }

    while select InventTrans
        where InventTrans.ValueOpen           == InventTransOpen::Yes
           && InventTrans.InventTransIdFather != ""
    notexists join InventTrans2
        where InventTrans2.InventTransId      == InventTrans.InventTransIdFather
    {
        info(strfmt("InventTransIdFather    %1", InventTrans.RecId));
    }

    while select InventTrans
        where InventTrans.ValueOpen           == InventTransOpen::Yes
           && InventTrans.TransChildRefId     != ""
    notexists join InventTrans2
        where InventTrans2.InventTransId      == InventTrans.TransChildRefId
    {
        info(strfmt("TransChildRefId    %1", InventTrans.RecId));
    }

    while select InventTrans
        where InventTrans.ValueOpen           == InventTransOpen::Yes
           && InventTrans.InventRefTransId    != ""
           && InventTrans.StatusIssue         <= StatusIssue::Deducted
           && InventTrans.StatusReceipt       <= StatusReceipt::Received
    notexists join InventTrans2
        where InventTrans2.InventTransId      == InventTrans.InventRefTransId
    {
        info(strfmt("InventRefTransId    %1", InventTrans.RecId));
    }
}
Старый 06.02.2009, 18:37   #3  
Михаил Петрович is offline
Михаил Петрович
Участник
 
20 / 10 (1) +
Регистрация: 21.03.2007
Возникла такая же ошибка...
Но только во время когда нажимается помощь в расчете... при этом axapta где нажимается помощь продолжает процедуру закрытия склада, а в другой axapta появляется сообщение об этой ошибке...
Что можно сделать (поиск выдал, что есть одна InventTransIdReturn с несуществующим лотом)?.. :-(
Старый 06.02.2009, 23:28   #4  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Накатите Inventory Closing Rollup 2 ( Обновление процедуры закрытия склада в АХ 3.0 ).
Или в InventCostItemDim.run()

X++:
                mapLoopTrans    = new map(types::INTEGER,types::RECORD);
                mapLoopDim      = new map(types::INTEGER,types::RECORD);

                // edd Значение 1 не найдено в map -->
                loopX   = 0;
                // edd Значение 1 не найдено в map <--

                queryRun = inventCostHelp.initQueryRunTrans(this.inventTable(inventCostList.ItemId));
                while (queryRun.next())

Последний раз редактировалось raz; 06.02.2009 в 23:35.
За это сообщение автора поблагодарили: Михаил Петрович (1), Sergey Petrov (1).
Старый 07.02.2009, 03:57   #5  
Михаил Петрович is offline
Михаил Петрович
Участник
 
20 / 10 (1) +
Регистрация: 21.03.2007
Только одно маленькое уточнение... Сейчас у нас так:

X++:
    mapLoopTrans    = new map(types::INTEGER,types::RECORD);
                mapLoopDim      = new map(types::INTEGER,types::RECORD);

                queryRun = inventCostHelp.initQueryRunTrans(this.inventTable(inventCostList.ItemId));
                while (queryRun.next())
                {
                    loopX++;
                    mapLoopTrans.insert(loopX,queryRun.get(tableNum(InventTrans)));
                    mapLoopDim.insert(loopX,queryRun.get(tableNum(InventDim)));
                }

                loopMax = loopX;
                loopX   = 0;
                while (loopX < loopMax)
                {
                    loopX++;

                    this.updateItemDim(mapLoopTrans.lookup(loopX),mapLoopDim.lookup(loopX));
                }
То есть loopX = 0 необходимо поднять наверх или необходимо добавить еще один loopX = 0?
Старый 07.02.2009, 13:27   #6  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
X++:
                mapLoopTrans    = new map(types::INTEGER,types::RECORD);
                mapLoopDim      = new map(types::INTEGER,types::RECORD);

                // edd Значение 1 не найдено в map -->
                loopX   = 0;
                // edd Значение 1 не найдено в map <--

                queryRun = inventCostHelp.initQueryRunTrans(this.inventTable(inventCostList.ItemId));
                while (queryRun.next())
                {
                    loopX++;
                    mapLoopTrans.insert(loopX,queryRun.get(tableNum(InventTrans)));
                    mapLoopDim.insert(loopX,queryRun.get(tableNum(InventDim)));
                }

                loopMax = loopX;
                loopX   = 0;
                while (loopX < loopMax)
                {
                    loopX++;

                    this.updateItemDim(mapLoopTrans.lookup(loopX),mapLoopDim.lookup(loopX));
                }
Теги
закрытие склада, ошибка, ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Denis Fedotenko: Себестоимость и закрытие склада Blog bot DAX: База знаний и проекты 44 29.03.2010 14:54
Номенклатура с типом "Услуга" и закрытие склада Apriori DAX: Функционал 11 07.02.2008 11:38
Ошибка "Значение <3> не найдено в MAP". Lysov DAX: Программирование 3 20.02.2007 18:24
Закрытие склада. Параметр "Спецификация" DenWolf DAX: Функционал 0 05.06.2006 14:46
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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