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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.05.2006, 15:55   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Logger
Если у вас не используется IMTS и сводное планирование (либо если вы реально им не пользуетесь) то рекомендую
исправить метод forcedCreateInventSumLog() класса InventUpdateTTSControl
таким образом :

PHP код:
boolean forcedCreateInventSumLog()
{
//    return (isConfigurationKeyEnabled(configurationkeynum(req)));
    
return false;

Не правьте код.
Если эти модуль сводное планирование не используется - просто выключите лицензию.
Когда будет использоваться - включите лицензию.

Это надежный и не зависящий от программистов способ.

TTS-таблицы, насколько я помню, используются только в сводном планировании при расчете динамического сводного плана.

IMTS, насколько я помню, поддерживает работу TTS таблиц только в том случае, если включен модуль сводного планирования. Если модуль Сводное планирование выключен, то IMTS отлично обходится и без этих таблиц.

Посмотрите в перекрестные ссылки, чтобы убедится достоверно.

Не программируйте.
__________________
полезное на axForum, github, vk, coub.
Старый 26.05.2006, 18:00   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,973 / 3268 (116) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от mazzy
IMTS, насколько я помню, поддерживает работу TTS таблиц только в том случае, если включен модуль сводного планирования. Если модуль Сводное планирование выключен, то IMTS отлично обходится и без этих таблиц.
не совсем так...

см. метод insertInventSumLogTTS() класса InventUpdateTTSControl

сначала идут проверки

PHP код:
    mustUseTTSSystem this.mustUseTTSSystem();

    if (!
mustUseTTSSystem && !this.forcedCreateInventSumLog())
        return;

    if (
mustUseTTSSystem && (!this.dBConnectionUpd() || !TTSLevel_Upd || !appl.ttsLevel()))
        throw 
error(strfmt("@SYS69842",funcname()));

    if (
mustUseTTSSystem)
        
inventSumLogTTS.setConnection(this.dBConnectionUpd()); 
а потом идет код по вставке записей.

В общем видно что при включенной IMTS и при работе не из формы - записи отлично вставляются (даже при выключенном сводном планировании). Если бы не так, то при откате транзакции аксапта не смогла бы корректно восстановить значения остатков в InventSum, так как каждая строка обрабатывается при этом в отдельной транзакции.

P.S.
см. также
PHP код:
// класс InventUpdateTTSControl
/*
Used all over to detect whether TTSSystem is active.
If method setTTSMode has not been called before first call to this method, it will default to
"Standard" which means that TTSSystem is not active. Generally method setTTSMode is called when
instantiating class hierarchy InventUpdate
*/
public boolean mustUseTTSSystem()
{
    if (
TTSMode == InventUpdateTTSMode::UnDecided && appl.ttsLevel())
        
TTSMode InventUpdateTTSMode::Standard;

    if (!
InventUpdateTTSControl::tTSSystemEnabled())
        return 
false;

    return 
TTSMode == InventUpdateTTSMode::TTSsystem true false;

PHP код:
// класс InventUpdate
void new(InventMovement _inventMovement)
{

    
movement        _inventMovement;
    if (! 
movement.transId())
        throw 
error("@SYS17272");

    
appl.inventUpdateTTSControl().setTTSMode (movement.mustUseInventUpdateTTSSystem());


PHP код:
// класс InventMovement
boolean mustUseInventUpdateTTSSystem()
{
    
boolean useTTSSystem;
    ;
    
useTTSSystem this.buffer().isFormDataSource() ? false true;
    return 
useTTSSystem;


Последний раз редактировалось Logger; 26.05.2006 в 18:05.
За это сообщение автора поблагодарили: mazzy (15).
Старый 26.05.2006, 18:13   #3  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от Logger

В общем видно что при включенной IMTS и при работе не из формы - записи отлично вставляются (даже при выключенном сводном планировании). Если бы не так, то при откате транзакции аксапта не смогла бы корректно восстановить значения остатков в InventSum, так как каждая строка обрабатывается при этом в отдельной транзакции.
Действительно, если бы акзапта умела корректно восстанавливать остатки при включенном IMTS ...

Вся эта хрень не плодилась бы напрасно ))
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 26.05.2006, 18:15   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Logger
не совсем так...
см. метод insertInventSumLogTTS() класса InventUpdateTTSControl

...

а потом идет код по вставке записей.

В общем видно что при включенной IMTS и при работе не из формы - записи отлично вставляются (даже при выключенном сводном планировании)....
Спасибо.
1. Приятно общаться с человеком, который знает и умеет обосновать.
2. Да, я действительно написал небрежно и неправильно
Неправильно:
Цитата:
IMTS, насколько я помню, поддерживает работу TTS таблиц только в том случае, если включен модуль сводного планирования. Если модуль Сводное планирование выключен, то IMTS отлично обходится и без этих таблиц.
Правильно:
Цитата:
IMTS, насколько я помню, оставляет записи в TTS таблицах только в том случае, если включен модуль сводного планирования. Если модуль Сводное планирование выключен, то IMTS удаляет записи в этих таблицах.
См.
\Classes\InventUpdateTTSCleanup\commitTransaction
\Classes\InventUpdateTTSCleanup\rollBackTransaction

X++:
        if (appl.inventUpdateTTSControl().forcedCreateInventSumLog())
        {
            update_recordset inventSumLogTTS setting isCommitted = 1
                where inventSumLogTTS.TTSId == TTSId && inventSumLogTTS.IsCommitted == 0;
        }
        else
        {
            delete_from inventSumLogTTS
                where inventSumLogTTS.TTSId == TTSId && inventSumLogTTS.IsCommitted == 0;
        }
X++:
boolean forcedCreateInventSumLog()
{
    return (isConfigurationKeyEnabled(configurationkeynum(req)));
}

Предлагаю сосредоточиться таки на проблеме автора
Цитата:
Сообщение от sergeypp
База растет с угрожающей скоростью (слежу по размерам архивов бакапов)
Простое решение - отключите модуль Сводное планирование, если оно у вас не используется. Режим работы с IMTS не влияет на решение этой проблемы.
__________________
полезное на axForum, github, vk, coub.
Старый 26.05.2006, 18:38   #5  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,973 / 3268 (116) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Talking
Действительно удаляются.
Это радует.
Теги
производительность, складские проводки

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Denis Fedotenko: Новые поля в складских проводках Blog bot DAX: База знаний и проекты 10 24.05.2007 11:57
Сводное планирование - изменения&изменения мин. Alexm DAX: Прочие вопросы 1 05.04.2005 10:43
Глюк : не сохраняются изменения в коде Logger DAX: Администрирование 2 31.01.2005 12:02
Очистка складских журналов dyatlowsky DAX: Функционал 0 26.03.2004 17:55
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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