|
![]() |
#1 |
Участник
|
Прошу прощения, уточню.
Вызов функции tableId2Name() на сервере возвращает для системных таблиц пустое значение.
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#2 |
Участник
|
Вопрос
Цитата:
X++: [B]server[/B] static void test() { Dictionary dictionary = new Dictionary(); Counter tableCnt = dictionary.tableCnt(); TableId tableId; DictTable dictTable; Counter i; Counter systemCnt; ; for (i=1; i <= tableCnt; i++) { tableId = dictionary.tableCnt2Id(i); dictTable = new DictTable(tableId); if (dictTable.name() != tableId2Name(tableId)) { info(strFmt("%1 %2", dictTable.name(), tableId2Name(tableId))); } } info(strFmt("done")); } |
|
![]() |
#3 |
Участник
|
Цитата:
Запихнул код в статический метод класса - выполняется гарантированно на сервере - результат тот же. X++: server static void Job482serv(Args _args =null) { str s; ; info("server :"); s = tableId2Name(tableNum(dataarea)); info(s); s = New dictTable(tableNum(dataarea)).name(); info( s ); s = strFMT("isSystemTable() = %1", New dictTable(tableNum(dataarea)).isSystemTable() ); info(s); } AndyD, попробуйте перестартовать аос. Замечено что иногда внутри аоса что-то кривится и функции tableName2Id(), fieldname2Id() перестают работать - выдают 0. По этой же причине при включенном логировании изменений в таблицах, после этой кривоты лезет ошибка тут (для приложения SP5 ) \Classes\Application\addLogFields что очень неприятно. Лечится перестартом аоса. Из-за чего возникает такая кривизна в аосе - непонятно. Есть подозрение что использование функции "Обновить АОТ" в комбинации со всевозможным сбросами кеша и вызовами \System Documentation\Classes\xSession\removeAOC (это мы так кеш аоса обновляли при обновлении без перестарта) повышает вероятность такой фигни. По крайней мере когда мы отказались от такого сброса кеша - глюк не повторялся. Последний раз редактировалось Logger; 08.04.2009 в 10:49. Причина: опечатки |
|
|
За это сообщение автора поблагодарили: AndyD (10). |
![]() |
#4 |
Участник
|
Цитата:
Сообщение от Logger
![]() Лечится перестартом аоса.
Из-за чего возникает такая кривизна в аосе - непонятно. Есть подозрение что использование функции "Обновить АОТ" в комбинации со всевозможным сбросами кеша и вызовами \System Documentation\Classes\xSession\removeAOC (это мы так кеш аоса обновляли при обновлении без перестарта) повышает вероятность такой фигни. По крайней мере когда мы отказались от такого сброса кеша - глюк не повторялся. После рестарта заработало, хотя оптимизма не прибавило ![]()
__________________
Axapta v.3.0 sp5 kr2 |
|