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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.04.2009, 09:05   #1  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Прошу прощения, уточню.

Вызов функции tableId2Name() на сервере возвращает для системных таблиц пустое значение.
__________________
Axapta v.3.0 sp5 kr2
Старый 08.04.2009, 10:08   #2  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
365 / 543 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Вопрос
Цитата:
Сообщение от AndyD Посмотреть сообщение
Прошу прощения, уточню.

Вызов функции tableId2Name() на сервере возвращает для системных таблиц пустое значение.
Доброго времени суток. Вызов ниже приведенного static-метода возвращает, только строку done. AX 3.0 SP 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"));
}
Старый 08.04.2009, 10:33   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,891 / 3165 (113) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от AndyD Посмотреть сообщение
Прошу прощения, уточню.

Вызов функции tableId2Name() на сервере возвращает для системных таблиц пустое значение.
У меня на сервере то же самое выдает.
Запихнул код в статический метод класса - выполняется гарантированно на сервере - результат тот же.
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);

}
У меня Ax3.0 KR3

AndyD, попробуйте перестартовать аос. Замечено что иногда внутри аоса что-то кривится и функции tableName2Id(), fieldname2Id() перестают работать - выдают 0.

По этой же причине при включенном логировании изменений в таблицах, после этой кривоты лезет ошибка тут (для приложения SP5 )
\Classes\Application\addLogFields
что очень неприятно.

Лечится перестартом аоса.
Из-за чего возникает такая кривизна в аосе - непонятно. Есть подозрение что использование функции "Обновить АОТ" в комбинации со всевозможным сбросами кеша и вызовами \System Documentation\Classes\xSession\removeAOC
(это мы так кеш аоса обновляли при обновлении без перестарта) повышает вероятность такой фигни. По крайней мере когда мы отказались от такого сброса кеша - глюк не повторялся.

Последний раз редактировалось Logger; 08.04.2009 в 10:49. Причина: опечатки
За это сообщение автора поблагодарили: AndyD (10).
Старый 08.04.2009, 10:49   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от Logger Посмотреть сообщение
Лечится перестартом аоса.
Из-за чего возникает такая кривизна в аосе - непонятно. Есть подозрение что использование функции "Обновить АОТ" в комбинации со всевозможным сбросами кеша и вызовами \System Documentation\Classes\xSession\removeAOC
(это мы так кеш аоса обновляли при обновлении без перестарта) повышает вероятность такой фигни. По крайней мере когда мы отказались от такого сброса кеша - глюк не повторялся.
Точно!

После рестарта заработало, хотя оптимизма не прибавило
__________________
Axapta v.3.0 sp5 kr2
Теги
aos, баг, законченный пример, поле, программно, тип данных

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Заумный отчет по ОС, как сделать? Бриллиантик DAX: Программирование 13 09.07.2008 16:36
Как программно отправить сообщение группе пользователей demon46 DAX: Функционал 7 01.04.2008 14:57
Фильтр по номенклатурной группе listener DAX: Функционал 1 14.01.2005 17:15
Как сделать фильтр с "ИЛИ"? MIkeFW DAX: Программирование 8 19.01.2004 15:25
Настройка форм для групп пользователей Роман Кошелев DAX: Функционал 14 05.08.2002 16:32

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

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

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