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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.09.2012, 19:32   #1  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Закрытие и коррекция
Прошу подсказать, ввиду не столь великих знаний пока о закрытии, какими последсвиями грозит изменение порядка методов в цикле сопоставлений класса InventCostItemDim.updateItem(), а именно отработать updateModel() перед "распространением" коррекций, сделанных по приходным проводкам на сопоставленные с ними расходные проводки (updateReceiptAdjustment()). Спасибо!

Версия DAX 2009.

X++:
 // match issues and receipts per financial dimension combination
                se = setInventDim.getEnumerator();
                while (se.moveNext())
                {
                    inventDim = se.current();

                    this.initMapInventTrans();
                    this.load(inventDim);
                    this.updateReceiptAdjustment();  // перед
                    this.updateModel(inventDim);
                    // мой вариант после (вместо того, что перед)
                    //this.updateReceiptAdjustment();
                }

Последний раз редактировалось Cardagant; 12.09.2012 в 19:42.
Старый 13.09.2012, 10:48   #2  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,895 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
В общем - биться об заклад не буду, но мне кажется что у тебя после такой корректировки случаться грабли с проводками, скорректированными после даты закрытия/пересчета. То есть - функция updateReceiptAdjustment(), она не только прогоняет коррекцию с прихода на расход (которая в этой ветке вряд ли сработает), но и рассчитывает сумму более поздних коррекций. Скажем купил ты товар 25ого августа, продал 27ого, а 5 сентября начислил накладные расходы и теперь закрываешь август. Эта функция вызовет calcLaterAdjustment и положит его в mapSettleValue. А updateModel() в момент создания сопоставления, вытащит эту сумму (если она есть) и отнимет ее из inventTrans.costAmountPosted+inventTrans.CostAmountAdjustment. Я очень подозреваю, что если ты так сделаешь, то у тебя в такой ситуации августовские списания пойдут с учетом сентябрьских накладных расходов.
Просто попробуй сделать контрольный пример (с накладняком после продажи) и посмотри какая у тебя будет себестоимость расхода после закрытия августа.
За это сообщение автора поблагодарили: Bega (5).
Старый 13.09.2012, 13:24   #3  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
А с какой целью? У вас теряются какие-то коррекции? Вообще по логике метод this.updateReceiptAdjustment() вызывается вот тут после обновления по модели,
X++:
 if (!(inventCostList.NumOfIteration == 0&&selfLoopCount == 0)&&inventClosing.AdjustmentType== InventAdjustmentType::Closing)
        {
            // if this is a closing and this item has been processed before, just propagate adjustments following settlements
            this.updateReceiptAdjustment();
        }
потому что в методе InventCostItemDim.run() есть вот этот цикл:
X++:
do
           {
                selfUpdate = false;

                ttsbegin;
                this.updateItem();
                ttscommit;

                selfLoopCount++;
            }
            while (selfUpdate&&selfLoopCount<=selfLoopMax);
Старый 13.09.2012, 16:17   #4  
Andrux is offline
Andrux
Участник
Axapta Retail User
 
263 / 17 (1) ++
Регистрация: 29.05.2007
Не совсем в тему, но тоже вопрос про закрытие. После установки RU8 перестало работать закрытие и пересчет. Оказывается забыли положить табличку InventCostTmpNonFinancialTransfer, и класс InventCostNonFinancialTransferHandler не копилируется. Где ее можно взять? Может у кого есть
Старый 13.09.2012, 16:41   #5  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Andrux Посмотреть сообщение
Не совсем в тему, но тоже вопрос про закрытие. После установки RU8 перестало работать закрытие и пересчет. Оказывается забыли положить табличку InventCostTmpNonFinancialTransfer, и класс InventCostNonFinancialTransferHandler не копилируется. Где ее можно взять? Может у кого есть
оставьте этот класс в том виде, в котором он был в RU7. А таблицу не добавляйте.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 13.09.2012, 16:50   #6  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,895 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от lev Посмотреть сообщение
оставьте этот класс в том виде, в котором он был в RU7. А таблицу не добавляйте.
У меня в западно-европейской версии RU8 этот класс точно такой же как был в RU7.
Странно что там какая-то таблица появилась. Может быть - микрософт выложил обновленный RU8 никому ничего не говоря ?

Если не лень - киньтесь в меня этим классом на посмотреть - я когда-то там сильный mis-design репортил в микрософт (приводящий к блокировкам пользователей).
Старый 13.09.2012, 16:57   #7  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от fed Посмотреть сообщение
У меня в западно-европейской версии RU8 этот класс точно такой же как был в RU7.
и метод fillInventCostTmpNonFinancialTransfer() не появился?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 13.09.2012, 17:00   #8  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
Цитата:
Сообщение от lev Посмотреть сообщение
и метод fillInventCostTmpNonFinancialTransfer() не появился?
У меня в восточной версии RU8 метода fillInventCostTmpNonFinancialTransfer нет.Class_InventCostNonFinancialTransferHandler.xpo
Старый 13.09.2012, 17:07   #9  
Andrux is offline
Andrux
Участник
Axapta Retail User
 
263 / 17 (1) ++
Регистрация: 29.05.2007
Вот класс после RU8. Вообще, после RU8 и корр. счетов-фактур столько интересного ))) что у меня появился целый проект RU8_Error ))
Вложения
Тип файла: xpo Class_InventCostNonFinancialTransferHandler.xpo (19.1 Кб, 369 просмотров)
За это сообщение автора поблагодарили: Cathome (1).
Старый 13.09.2012, 17:09   #10  
Andrux is offline
Andrux
Участник
Axapta Retail User
 
263 / 17 (1) ++
Регистрация: 29.05.2007
Цитата:
Сообщение от lev Посмотреть сообщение
оставьте этот класс в том виде, в котором он был в RU7. А таблицу не добавляйте.
Пока так и сделал, чтобы закрытие работало
Старый 13.09.2012, 17:22   #11  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,895 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Ааа - в общем это они так подправили ошибку, которую я репортил. (Я в принципе про это в блоге писал). В старой версии у них там использовался неслабый такой update_recordset. А проблема оператора update состоит в том что он блокирует от записи другим процессом не только те записи, которые обновил, но и те записи которые прочитал . То есть - если план исполнения простенький, то он блокирует записи на страничке, читает, обновляет, разблокирует все кроме обновленных. А вот если план исполнения сложный, то он блокирует, читает,читает другую таблицу, джойнит, джойнит по хэшу,сортирует и тп и только потом в конце обновляет и разблокирует. В итоге update_recordset в версии из RU7 тупо блокировал всех пользователей (точнее почти всех - всех кто с inventTrans по записи может работать) одного турецкого клиента минимум минут на 5 (это если повезло и сиквел выбрал более или менее приличный план исполнения), а максимум минут на 40. В новой версии класса они сначала делают select recId в квазивременную таблицу, а потом запускают update_recordset только по тем записям которые в эту табличку попали...
Так что обновление в целом полезно, но забавно что они забыли саму табличку вложить в RU8. Возможно это на российской части partnersource выложили RU8 с включением пары позднейших хотфиксов..

Последний раз редактировалось fed; 13.09.2012 в 17:27.
За это сообщение автора поблагодарили: AlGol (1), S.Kuskov (1).
Старый 13.09.2012, 18:31   #12  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Цитата:
Сообщение от Andrux Посмотреть сообщение
Не совсем в тему, но тоже вопрос про закрытие. После установки RU8 перестало работать закрытие и пересчет. Оказывается забыли положить табличку InventCostTmpNonFinancialTransfer, и класс InventCostNonFinancialTransferHandler не копилируется. Где ее можно взять? Может у кого есть
А у нас эта табличка есть. На нескольких инсталляциях с RU8 + EE. И класс и табличка на syp слое.
__________________
Ivanhoe as is..
Старый 13.09.2012, 18:47   #13  
Andrux is offline
Andrux
Участник
Axapta Retail User
 
263 / 17 (1) ++
Регистрация: 29.05.2007
Может выложите ее? Я не первый, у кого ее нет.
Старый 17.09.2012, 17:29   #14  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Вот.
Вложения
Тип файла: xpo Table_InventCostTmpNonFinancialTransfer.xpo (5.2 Кб, 428 просмотров)
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: Ashir (1).
Старый 18.09.2012, 09:47   #15  
Ashir is offline
Ashir
Участник
 
45 / 22 (1) +++
Регистрация: 27.10.2005
Прошу прощения за офтоп, но вопрос к Ivanhoe Может у вас есть и табличка TaxRegime_MX, а то после накатываения Ру8 и нескольких обновлений на него какраз этих двух таблиц и не хватает?!
__________________
Самое полезное в жизни – это собственный опыт...

Последний раз редактировалось Ashir; 18.09.2012 в 09:49.
Старый 18.09.2012, 11:10   #16  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,895 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
В общем - выяснилось что так всех заинтересовавшие табличка и класс являются хотфиксом номер 2699890. Каким-то образом, индусы собиравшие один из билдов RU8 (вышедшего вообще-то в конце марта), ухитрились засунуть туда части более позднего, апрельского хотфикса.
Также имейте в виду, что если скачать сам хотфикс, то кроме одного измененного класса и одной новой таблицы, там, в качестве dependencies, болтается еще порядка 6 мегабайт кода, хоть как-то связанного с костингом. Устанавливайте аккуратно
За это сообщение автора поблагодарили: Ashir (1).
Старый 18.09.2012, 11:38   #17  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Уточнил - на приложении, с которого выгрузил таблицу выше установлены русские хот-фиксы по фактурам, наверное, туда попали и эти системные исправления по закрытию.

Зато сейчас под рукой другое приложение с RU8 без фиксов. Так в нем класс InventCostNonFinancialTransferHandler компилируется, в нем нет упоминаний этой таблицы.
__________________
Ivanhoe as is..
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Закрытие склада. Минимальная коррекция пропускной способности kaw DAX: Функционал 12 13.03.2012 16:18
Закрытие и коррекция склада Akri DAX: Функционал 4 29.12.2011 19:37
Странное закрытие склада и коррекция себестоимости в наличии Aquarius DAX: Функционал 11 28.05.2010 11:45
Закрытие коррекция склада stalker17 DAX: Функционал 1 17.07.2006 16:19
Закрытие и коррекция AlexUnik DAX: Функционал 20 13.09.2004 15:26

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:54.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.