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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.09.2005, 18:57   #1  
Deep Dreamer is offline
Deep Dreamer
Участник
 
76 / 24 (1) +++
Регистрация: 05.03.2004
Адрес: Москва
Временные таблицы должны быть вложенными (inner)...
Коллеги!

Столкнулся со следующей ошибкой, когда пытался на стандартной форме "Проводки по документу" нажать кнопку "Исходный документ":

Невозможно выбрать запись в 'Журнал отчетов по складским журналам' ('InventJournalReportTable_RU')
Временные таблицы должны быть вложенными (inner), когда вы объединяете их оператором join с постоянными таблицами.
(C) \Classes\Originaldocuments\findFromLedgerTrans - line 330
(C) \Classes\Originaldocuments\findRelations - line 6
(C) \Forms\Originaldocuments\Data Sources\TmpLedgerBase\Methods\linkActive - line 13


Ошибка возникает только в тонкой 3-звенке. В 2-звенке всё работает.

Сюда не отсылайте... Смотрел... Но проблема в том, что у нас ни одной доработки - всё стандартный функционал...

Всё это происходит в абсолютно чистом приложении Axapta 3.0 SP4 HF1 HF2.
Стоит Oracle 9.2.0.6.

Сначала подумал, что были какие-то изменения в классе OriginalDocuments в SP4, действительно были. Пробовал на SP4 вернуть старый вариант класса из SP3. Не помогло. После трассировки нашёл место "вылета" :

PHP код:
        while select inventJournalReportTable
                exists join InventJournalTable
                    where InventJournalTable
.JournalId == inventJournalReportTable.JournalId
                exists join InventJournalTrans
                    where inventJournalTrans
.JournalId == InventJournalTable.JournalId &&
                          
inventJournalTrans.Voucher   == ledgerTrans_Caller.voucher   &&
                          
inventJournalTrans.TransDate == ledgerTrans_Caller.transDate 
После некоторых безрезультатных хождений с бубном попробовал это же приложение натравить на базу в MS SQL... И о чудо! Всё работает. Стало быть виноват Oracle???

Возникает вопрос: как быть и что делать?
Старый 07.09.2005, 13:36   #2  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Точно такая же ошибка была у меня на MS SQL. Правда в моей модификации. Думаю, что это клиент SP4 "виноват". Контролирует он теперь вложенность временных таблиц. В целом, конечно, это контроль правильный. А что делать? Так поменять запрос, чтобы временная таблица вложенной стала. А так как это код русского MBS, написать им письмо с приветом.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 07.09.2005, 14:37   #3  
sassas
Гость
 
n/a
попробуйте разместить обе (все) таблицы на 1 стороне. На сервере.

PS сходил по ссылке... наверное, Вы уже попробовали frown
Старый 07.09.2005, 14:41   #4  
Deep Dreamer is offline
Deep Dreamer
Участник
 
76 / 24 (1) +++
Регистрация: 05.03.2004
Адрес: Москва
Дык в том то и проблема, что у нас нет пока доработок - всё девственный стандартный функционал...
Старый 07.09.2005, 14:48   #5  
sassas
Гость
 
n/a
ну и что? глюки есть, были и будут.
Старый 07.09.2005, 17:40   #6  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
"глюки есть, были и будут..."

ОсобливО в российском функционале "Их там ТЫСЯЧИ"
__________________
Best Regards,
Roman
Старый 08.09.2005, 08:58   #7  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Можно глупый вопрос?

В выше приведенном запросе нет временных таблиц. По крайней мере в моей версии. Может что-то поменяли в SP4?
__________________
Axapta v.3.0 sp5 kr2
Старый 08.09.2005, 15:32   #8  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Честно говоря, не могу проверить, так как нет у меня русской версии под рукой. Но вряд ли. Согласно сообщению, inventJournalReportTable должна быть временной.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 08.09.2005, 15:39   #9  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Если судить по исходному коду этого метода, то переменная таблицы только объявляется, а затем используется в запросе. Т.е. инициализации для временной таблицы, если бы это было так, нет.

Может быть какой-нибудь глюк интерпретатора? А может ли быть так, что таблицы нет на сервере и интерпретатор считает, что она временная (в порядке бреда)?

Кстати, у себя специально проверял этот запрос - он целиком отрабатывается на сервере
__________________
Axapta v.3.0 sp5 kr2
Старый 08.09.2005, 15:45   #10  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Видимо, что-то где-то действительно сглюкнуло. Может синхронизацию надо было сделать? Тем более, что при переносе на MSSQL все заработало.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 08.09.2005, 15:56   #11  
Deep Dreamer is offline
Deep Dreamer
Участник
 
76 / 24 (1) +++
Регистрация: 05.03.2004
Адрес: Москва
В общем действительно временных таблиц там нет.
Там ещё очень странная вещь... Дело в том, что на InventJournalReportTable_RU стоит SecurityKey = InventJournals и ConfigurationKey = CSECIS. В нашем приложении нет модуля управления запасами, вот и получается, что права на SecurityKey = InventJournals у нас в принципе не могут быть назначены. Поэтому эта таблица у нас не может быть использована... И этот стандартный функционал класса OriginalDocuments пытается обратиться к таблице, на которой у нас нет и не может быть никаких прав!

Поскольку раскопки ничего не дали, я решил проблему банально: дописал примитивный if:
PHP код:
            if (hasSecuritykeyAccess(securityKeyNum(InventJournals),AccessType::View)) 
В нашем случае это спасло... Но вопрос всё равно остаётся открытым...
Старый 08.09.2005, 16:01   #12  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Предположу, что Аксапта использует временные таблицы, для того, чтобы обработать ситуацию, когда постоянной таблицы нет в БД из-за того, что к ней нет доступа. Насколько это правильно - вопрос. Наверное, все-таки ядро не должно так обрабатывать подобные запросы.

CSECIS - это, наверное, CountryConfigurationKey? Потому что к складу он, вообще-то, отношения не имеет. ConfigurationKey у этой таблицы, наверное, другой?
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 08.09.2005, 16:09   #13  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
К таблице как раз таки привязан CSECIS, так что она должна быть (таблица), если включения локальная функциональность страны. Может какая-то проблема с синхронизацией?
__________________
Axapta v.3.0 sp5 kr2
Старый 08.09.2005, 16:12   #14  
Deep Dreamer is offline
Deep Dreamer
Участник
 
76 / 24 (1) +++
Регистрация: 05.03.2004
Адрес: Москва
Вложения
Тип файла: img79549-1 (50.2 Кб, 699 просмотров)
Старый 08.09.2005, 16:23   #15  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Мда. Действительно. У таблиц CountryConfigurationKey нет. Только у MenuItem'ов. Прошу прощения.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Временные таблицы в отчете Прокопьева DAX: Программирование 25 02.10.2006 14:54
Не страшно ли временные таблицы временно сделать постоянными? Gustav DAX: Программирование 11 09.02.2006 11:04
Временные таблицы в отчетах konfet DAX: Программирование 5 19.01.2005 11:32
Временные таблицы vasiliy DAX: Программирование 6 09.11.2004 11:04
Временные таблицы в запросе Dron AKA andy DAX: Программирование 4 06.09.2002 12:14
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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