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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.07.2005, 14:25   #1  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Пересчет inventSum
День добрый!

1. Можно ли стандартным образом функционалом пересчитать inventSum (интересует поле 'В наличии') на основании проводок?

2. Чем мне аукнется если я руками изменю поле 'В наличии'?
Старый 06.07.2005, 14:44   #2  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
1. Проверка целостности данных пересчитыват InventSum
2. Лучше не изменяй А аукнется по разному смотря какую ты туда цифру поставишь
Старый 06.07.2005, 14:46   #3  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Спасибо!

Как сделать проверку целостности? Можно ли ее делать одновременно с работой пользователей??
Старый 06.07.2005, 14:48   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Главное меню \ Основное \ Периодические операции \ Проверка целостности данных компании
установите режим проверки Коррекция ошибок.

любым образом выберите модуль управление запасами
установите галочку в Номенклатура \ В наличии

Помещу пожалуй в FAQ
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: alex55 (1).
Старый 06.07.2005, 14:53   #5  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
1. Основное\Периодические операции\Проверка целостности данных компании
2. Одновременно с работой лучше не надо. Если надо починить только InventSum, да еще одновременно с пользователями то лучше сделать какой джоб, расковыряв класс InventConsistencyCheck_Onhand.

Хотя все зависит от того сколько у вас пользователей и какая нагрузка на систему
Старый 06.07.2005, 14:55   #6  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
:)
Спасибо!
Старый 06.07.2005, 14:56   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
не надо ковырять.
проверка будет перебирать складские проводки и суммировать.
при переборе складских проводок блокировка очень быстро эскалируется до таблицы.
пользователи все равно работать не смогут.

http://forum.mazzy.ru/index.php?showtopic=3419
__________________
полезное на axForum, github, vk, coub.
Старый 06.07.2005, 15:01   #8  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
2 db
2 mazzy: Запускали на живой. Пользователи живы
чтоб запускать пересчет на живой писали жоп а-ля:
PHP код:
static void InventSumRecalc(Args _args)
{
    
InventTable                 inventTable;
    
InventSumReCalcItem         inventSumReCalcItem;
    
SysOperationProgress        progress = new SysOperationProgress();
    
ALK_InventSumRecalcLogTbl   logTable;
    
int                         i;
    ;

//    select count(recId) from inventTable;
//
//    info(strfmt("Начало %1", time2str(timeNow(), 0, 0)));
//
//    progress.setTotal(inventTable.RecId);
//
//    try
//    {
//        while select ItemId from inventTable
//            order by ItemId
//        notexists join logTable
//            where logTable.Itemid == inventTable.ItemId
//        {
//            /*
//            if (i == 500)
//            {
//                i = 0;
//                info(strfmt("Завершение %1", time2str(timeNow(), 0, 0)));
//                pause;
//                info(strfmt("Начало %1", time2str(timeNow(), 0, 0)));
//            }*/
            
ttsbegin;
            
inventSumReCalcItem = new InventSumReCalcItem("SPH118448"falseCheckFix::Fix);
            
inventSumReCalcItem.updateNow();
            
ttscommit;

//            logTable.Itemid = inventTable.ItemId;
//            logTable.insert();
//
//            i++;
//            progress.incCount();
//        }
//    }
//    catch(Exception::Deadlock)
//    {
//        retry;
    
}
//} 
ЗЫ: скрипты смайлы вместо дедлоков вставить норовят Внизу конечно написано ексептион- дедлок
За это сообщение автора поблагодарили: Roman777 (2), Sergey Petrov (1), Shmel_83 (1), Deepoint (1).
Старый 06.07.2005, 15:02   #9  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Цитата:
Изначально опубликовано mazzy
не надо ковырять.
проверка будет перебирать складские проводки и суммировать.
при переборе складских проводок блокировка очень быстро эскалируется до таблицы.
пользователи все равно работать не смогут.

http://forum.mazzy.ru/index.php?showtopic=3419
Смогут, если каждую номенклатуру в отдельной транзакции. Хотя если в базе 3 номенклатуры, то не смогут - это точно. Если же номенклатур прилично, то очень даже смогут. Склад параллельно с работой пономенклатурно закрыть получается, эта задачка уж явно не тяжелее
Старый 06.07.2005, 15:04   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
как скажешь.
я в факе и написал - при низкой активности

но чаще всего пересчитаывать приходится самую популярную номенклатуру...
__________________
полезное на axForum, github, vk, coub.
Старый 06.07.2005, 15:05   #11  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
2 mazzy: не спорь с db, бесполезно..
Старый 06.07.2005, 15:20   #12  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано db
Склад параллельно с работой пономенклатурно закрыть получается, эта задачка уж явно не тяжелее
Ну ешкин-матрешкин...
Закрытие склада не перебирает все складские проводки. А только открытые.
Пересчет итого перебирает все по каждой пересчитываемой номенклатуре.

Проблема в том, что блокировка будет очень быстро эскалирована до уровня таблицы. И смотреть надо в сторону - что влияет на эскалацию.
__________________
полезное на axForum, github, vk, coub.
Старый 06.07.2005, 15:20   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано Recoilme
2 mazzy: не спорь с db, бесполезно..
Извините, закругляюсь.
__________________
полезное на axForum, github, vk, coub.
Старый 06.07.2005, 15:36   #14  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва


Короче, работает пересчет параллельно с юзерами.

Блокировка до уровня таблицы на MS SQL - только если будет мало номенклатур. Постранично заблокирует, да, таблицу целиком - это только если в сервере памяти уж совсем нет. Блокировка в любом случае только на чтение - другие не смогут только изменять страницы с этими проводками. Кто нарвется на пересчитываемую номенклатуру - подождет некоторое время, подтормозит и все

А сравнение с закрытием склада вполне резонное, так как узкое место для параллельной работы здесь не считка InventTrans, а обновление-пересоздание InventSum - будет и при пересчете InventSum и при закрытии склада
Старый 06.07.2005, 16:21   #15  
korolf76 is offline
korolf76
Участник
Ex AND Project
 
36 / 12 (1) ++
Регистрация: 26.10.2004
Адрес: Петербург
Лучше всего использовать

ttsbegin;
inventSumReCalcItem = new InventSumReCalcItem("SPH118448", false, CheckFix::Fix);
inventSumReCalcItem.updateNow();
ttscommit;

Стандртная вещь делает еще проверку целостности, что только для пересчета лишнее.
Кроме того, там в классе сидит бага SysConsistencyCheck,
которая на реальной базе с номенклатурой в десятки тысяч затянет дело на несколько часов....
За это сообщение автора поблагодарили: Sergey Petrov (1), Shmel_83 (1).
Старый 07.07.2005, 13:13   #16  
Хочулия is offline
Хочулия
Участник
 
13 / 10 (1) +
Регистрация: 09.09.2004
Адрес: Краснодар
А можно ли из InventSum удалить пустые строки - или чем аукнется тоже?
Старый 07.07.2005, 13:23   #17  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
которые Closed можно
Старый 07.07.2005, 14:05   #18  
Хочулия is offline
Хочулия
Участник
 
13 / 10 (1) +
Регистрация: 09.09.2004
Адрес: Краснодар
db
Спасибо!
Старый 07.07.2005, 14:21   #19  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Только проверьте на всякий случай не висит ли сумм в деньгах на клоузед...

2 db: кстати откуда на них могут деньги остаться и как с этим бороться ?
Старый 07.07.2005, 14:54   #20  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Цитата:
Изначально опубликовано Recoilme
Только проверьте на всякий случай не висит ли сумм в деньгах на клоузед...

2 db: кстати откуда на них могут деньги остаться и как с этим бороться ?
Посмотреть проектные модификации - гте-то что-то на_ш_кодировали
Теги
inventsum, остатки, остатки на дату

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
RecordSet у inventSum CasperSKY DAX: Программирование 3 21.03.2008 15:52
Ошибка при разноске складских движений Starling DAX: Администрирование 9 12.10.2007 14:21
Можно ли чистить InventSum? DreamCreator DAX: Программирование 19 05.12.2006 15:38
Проверка уникальности ItemDimIdx в InventSum DreamCreator DAX: Программирование 15 06.12.2005 17:23
Форма InventOnhandItem, Почему RecID у InventSum в этой форме всегда 0? Кирилл DAX: Программирование 2 25.05.2004 18:15

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

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

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