AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen Alle Foren als gelesen markieren

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 11.10.2004, 12:57   #1  
Wamr ist offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1.737 / 868 (32) +++++++
Registriert seit: 15.01.2002
Ort: Москва
Blog-Einträge: 7
Аксапта 3.0 SP 3 падает
Есть такой запросик, при выполнении которого на тонком клиенте в 3х звенке Аксапта падает
PHP-Code:
    select RecId from taxOnItem
        where taxOnItem
.TaxItemGroup == 'НДС18' // Есть такой
    
join RecId from taxGroupData
        where taxGroupData
.TaxCode == taxOnItem.TaxCode
           
&& taxGroupData.TaxGroup == 'Нет Такого'
    
join RecId from taxTable
        where  taxTable
.TaxCode == taxOnItem.TaxCode
Если подставить существующие коды, то все работает.
Аксапта 3.0 sp 3.

Это проблема наша или общая? и какие методы решения существуют?
Alt 11.10.2004, 13:03   #2  
Lazy_Tiger ist offline
Lazy_Tiger
NavAx
Axapta Retail User
1C
NavAx Club
 
610 / 31 (3) +++
Registriert seit: 17.12.2001
Ort: Красноярск
судя по всему - общая.
у меня точно так же валится
__________________
И все они создания природы...
Alt 11.10.2004, 13:22   #3  
AlexUnik ist offline
AlexUnik
Участник
 
199 / 22 (1) +++
Registriert seit: 01.06.2004
Ort: Королёв
А так не валится:
X++:
select RecId from taxOnItem
        where taxOnItem.TaxItemGroup == 'НДС18' // Есть такой
    join RecId from taxGroupData
        where taxGroupData.TaxCode == taxOnItem.TaxCode
           && taxGroupData.TaxGroup == 'Нет Такого'
    join RecId from taxTable
        where  taxTable.TaxCode == taxGroupData.TaxCode;
Alt 11.10.2004, 14:17   #4  
Wamr ist offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1.737 / 868 (32) +++++++
Registriert seit: 15.01.2002
Ort: Москва
Blog-Einträge: 7
to AlexUnik: не помогло

Пока я вижу 2 решения
1. Перенести метод на сервер
2. Разбить while на 2 (исходный пример - кусок от while)
Осталось только нати все места с подобными запросами
Alt 11.10.2004, 14:38   #5  
AlexUnik ist offline
AlexUnik
Участник
 
199 / 22 (1) +++
Registriert seit: 01.06.2004
Ort: Королёв
Странно. У меня первая вариация запроса, которую Вы предложили тоже валится, но вторая проходит без проблем. (Axapta 3.0 SP3). Быть может, Вы что-то не учли? Попробуйте так:
X++:
static void JobRec(Args _args)
{

taxOnItem taxOnItem;
taxGroupData taxGroupData;
taxTable taxTable;

select RecId from taxOnItem
        where taxOnItem.TaxItemGroup == 'НДС18'
    join RecId from taxGroupData
        where taxGroupData.TaxCode == taxOnItem.TaxCode
    join RecId from taxTable
        where  taxTable.TaxCode == taxGroupData.TaxCode;
{
    info(strfmt("%1", taxOnItem.TaxCode));
}
}
Alt 11.10.2004, 15:03   #6  
Wamr ist offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1.737 / 868 (32) +++++++
Registriert seit: 15.01.2002
Ort: Москва
Blog-Einträge: 7
Учел, все что мог
PHP-Code:
static void JobRec(Args _args)
{
    
taxOnItem taxOnItem;
    
taxGroupData taxGroupData;
    
taxTable taxTable;
    ;

    while 
select RecId from taxOnItem
        where taxOnItem
.TaxItemGroup == 'НДС18'
    
join RecId from taxGroupData
        where taxGroupData
.TaxCode  == taxOnItem.TaxCode &&
              
taxGroupData.TaxGroup == ''
    
join RecId from taxTable
        where taxTable
.TaxCode == taxGroupData.TaxCode
    
{
        
info('123');
    }

Как говорится.. Мэрри Поппинс? - Досвидания
Alt 11.10.2004, 15:33   #7  
AlexUnik ist offline
AlexUnik
Участник
 
199 / 22 (1) +++
Registriert seit: 01.06.2004
Ort: Королёв
Скорее всего, ошибка возникает из-за отсутствия кода 'НДС18' в TaxItemGroup. Попробуйте составить запрос, заведомо возвращающий результаты.
Alt 11.10.2004, 16:14   #8  
George Nordic ist offline
George Nordic
Модератор
Benutzerbild von George Nordic
Злыдни
 
4.480 / 1255 (50) ++++++++
Registriert seit: 17.12.2003
Ort: Moscow
Blog-Einträge: 9
А так?

PHP-Code:
static void JobRec(Args _args)
{
    taxOnItem taxOnItem;
    taxGroupData taxGroupData;
    taxTable taxTable;
    ;

    while select RecId,TaxCode from taxOnItem
        where taxOnItem
.TaxItemGroup == 'НДС18'
    join RecId,TaxCode from taxGroupData
        where taxGroupData
.TaxCode  == taxOnItem.TaxCode &&
              taxGroupData.TaxGroup == ''
    join RecId from taxTable
        where taxTable
.TaxCode == taxGroupData.TaxCode
    
{
        info('123');
    }

Alt 12.10.2004, 16:10   #9  
Alks ist offline
Alks
Участник
 
336 / 41 (2) +++
Registriert seit: 23.07.2004
Ort: г. Новокузнецк
Кстати, видимо по теме. У меня рубит с ног Аксапту следующий, как я понимаю аналогичный, код:

PHP-Code:
        taxValue 0;
        
taxItemGroup item.salesTaxItemGroupId();
        while 
select taxOnItem where taxOnItem.TaxItemGroup == taxItemGroup
            exists join taxTable
                where taxOnItem
.TaxCode == taxTable.TaxCode
                
&& (taxTable.TaxType_RU == TaxType_RU::VAT
                
|| taxTable.TaxType_RU == TaxType_RU::VATReduced)
            
exists join taxGroupData
                where taxTable
.TaxCode == taxGroupData.TaxCode
        
{
            
taxValue += TaxData : : percenttaxOnItem.taxCodesystemdateget(), );
        } 
при этом валится Аксапта только в том случае, если в справочнике номенклатуры есть хотя бы один товар с незаполненным полем "Налоговая группа номенкл.".
Лечил соответственно тем что проставлял это поле - ТОГДА ВСЁ РАБОТАЕТ.
Alt 12.10.2004, 16:35   #10  
Wamr ist offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1.737 / 868 (32) +++++++
Registriert seit: 15.01.2002
Ort: Москва
Blog-Einträge: 7
Хорошо быть здоровым и богатым
Согласитесь, если работоспособность клиентского приложения зависит от того какие параметры попали в запрос, то надо что-то делать с этим приложением.

За все варианты спасибо, но ничего не работает.
Аксапта падала, падает и будет падать.
Alt 12.10.2004, 16:41   #11  
Владимир Максимов ist offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1.720 / 1207 (44) ++++++++
Registriert seit: 13.01.2004
Blog-Einträge: 3
Слушай, ну раз так стабильно падает именно на таком запросе, то сделай вместо одного While несколько вложенных. Ну, что-то вроде.

while select Tab1
{
while select Tab2 where tab2.id == tab1.id
{
...
}
}

Да, работать будет медленнее. Но зато падать перестанет!
Alt 12.10.2004, 16:55   #12  
Vadik ist offline
Vadik
Модератор
Benutzerbild von Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3.631 / 1853 (69) ++++++++
Registriert seit: 18.11.2002
Ort: гражданин Москвы
Re: Хорошо быть здоровым и богатым
Zitat:
Изначально опубликовано Wamr
Согласитесь, если работоспособность клиентского приложения зависит от того какие параметры попали в запрос, то надо что-то делать с этим приложением.

За все варианты спасибо, но ничего не работает.
Аксапта падала, падает и будет падать.
есть мнение, что это приколы join-а нескольких таблиц с CacheLookup=EntireTable

по крайней мере, изменил CacheLookup на FoundAndEmpty у всех трех (времени на эксперименты нет) - заработало

Спасибо, конечно, разработчикам - сэкономили один запрос к серверу БД



Wamr, у Вас есть возможность скинуть эту багу в сервисную систему или партнеру?
Alt 12.10.2004, 17:03   #13  
Wamr ist offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1.737 / 868 (32) +++++++
Registriert seit: 15.01.2002
Ort: Москва
Blog-Einträge: 7
Все эти таблицы полностью в кэше (EntireTable), если сделать первый while по объединению taxOnItem и taxGroupData, то время выполнения вообще практически не изменится. Но дело в том, что в 2.5 это был очень популярный запрос, а в 3.0 его везде вычистили, что наводит на мысль, что кто-то знал об этой фиче.

К тому же, сам факт настораживает... при каких еще запросах мы получим такой же эффект?

-----------
to Vadik
Теоретически есть (партнеру). Но как это сделать на практике не знаю (никогда не делал)
Alt 12.10.2004, 17:35   #14  
Vadik ist offline
Vadik
Модератор
Benutzerbild von Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3.631 / 1853 (69) ++++++++
Registriert seit: 18.11.2002
Ort: гражданин Москвы
Zitat:
Изначально опубликовано Wamr
Все эти таблицы полностью в кэше (EntireTable), если сделать первый while по объединению taxOnItem и taxGroupData, то время выполнения вообще практически не изменится.
Не надо while select - таблицы-то небольшие. Если понизить CacheLookup хотя бы у одной из трех, запрос просто уйдет на SQL сервер, а не будет выполняться на клиенте по непонятно какому алгоритму. И выполнится быстро, и не упадет
Stichworte
cache lookup

 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Каков процент внедрений "стандартной" поставки системы Аксапта? coolibin DAX: Прочие вопросы 17 10.02.2009 12:45
Падает..Падает..Падает..Не снег - аксапта.. Hobo DAX: Администрирование 11 23.06.2006 19:57
Запросы в Аксапта ibc DAX: Программирование 5 08.08.2005 22:47
Аксапта падает при открытии журнала табелей Grib DAX: Администрирование 10 30.03.2004 09:21
Падает акспата(клиент). bucken DAX: Функционал 14 02.10.2003 14:22
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 07:16 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.