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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.01.2009, 04:10   #1  
Blog bot is offline
Blog bot
Участник
 
25,643 / 848 (80) +++++++
Регистрация: 28.10.2006
gatesasbait: How to temporarily suppress infolog messages in Dynamics Ax (deux)
Источник: http://gatesasbait.spaces.live.com/B...B9F5!298.entry
==============

 
Good afternoon,
 
My previous post on the topic was flawed. Here's a better solution when you want a section of code not to report to the infolog, but still want previous messages to be shown at the end of execution.
 
public static void suppressInfolog(Args _args)
{
    int i;
    ;
 
    info("A");
    i = infolog.line();
 
    info("B"); //Section of code that will not get reported to the infolog
 
    if (infolog.line() > i)
        infolog.cut(i+1, infolog.line());
    info("C");
}
 
Only "A" and "C" will be displayed, "B" will have been suppressed.
 
Keywords: X++, infolog, xinfo




Источник: http://gatesasbait.spaces.live.com/B...B9F5!298.entry
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
Старый 28.01.2009, 05:48   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
ну... это не supress, это cut

чтобы выполнить именно supress, нужно перевести инфолог в режим запрета вывода сообщений. в параметрах пользователя есть соответствующий переключатель.

Название: 1.png
Просмотров: 824

Размер: 4.0 Кб

Уровень детализации = Все - выводится все
Уровень детализации = Ошибки / Предупреждения - не выводятся сообщения со статусом info, выводятся только error и warning
Уровень детализации = Ошибки - выводятся только error
Уровень детализации = Нет - ничего не выводится.

Кстати, настоятельно рекомендую устанавливать обычным пользователям уровень детализации = Ошибки / Предупреждения. В этом случае они не будут мучаться с тупыми инфосообщениями типа "Журнал разнесен".

И еще кстати, настоятельно рекомендую помнить о этой возможности всем программистами и не вываливать все сообщения в режиме info - пользователь может и не увидеть ваших "суперважных" сообщений

Как переключить уровень детализации в коде:
X++:
public static void suppressInfolog(Args _args)
{
    SysInfologLevel level = infolog.infologLevel(); // запомнить текущий уровень детализации
    ;
    infolog.setInfoLogLevel(SysInfologLevel::Warning); // вывод только warning и error
    
    info("A");
    warning("B");
    error("C");
    
    infolog.setInfoLogLevel(level); // вернуть настройку обратно.
                                    // ПОМНИТЕ и не оставляйте настройки измененными
                                    // без ведома пользователя
}
Этот job покажет сообщения B и C, но сообщение A будет подавлено (не появится).
__________________
полезное на axForum, github, vk, coub.
Старый 28.01.2009, 09:09   #3  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,325 / 3548 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
В этом случае они не будут мучаться с тупыми инфосообщениями типа "Журнал разнесен".
Нуу.. в данном конкретно случае позвольте не согласиться. Сообщение - конечно тупое - тут не поспоришь. Однако - тут лучше залезть в метод infoResult какого-нибудь класса типа \Classes\JournalCheckPost\ и/или \Classes\JournalCheckPostLedger и вместо этого тупого сообщения
X++:
            info("@SYS5815");
написать
X++:
            info(strfmt("@SYS95692", journalTableData.journalTable().JournalId));
Получим сообщение типа "Журнал ХХХХ разнесен".

А если еще впихнуть сюда какой-нибудь SysInfoAction - то вообще будет конфетка. Пользователь получит мини-отчет о том, что сделала система (это важно, если сразу разносится несколько журналов) с возможностью перехода к соответствующему журналу (кстати, для корректного перехода к журналу тоже нужно сделать одну маленькую правку - а то фильтр Все/Открыто/Разнесено сбивает весь переход, но это уже отдельный вопрос).
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 28.01.2009 в 09:12.
Старый 28.01.2009, 16:40   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Пользователь получит мини-отчет о том, что сделала система
Не спорю.
добавлю тлоько: а если пользователь не хочет получать такие мини-отчеты, то он может переключить галочку в параметрах.

а вот программист обязан знать об этой галочке и учитывать, что пользователь может отключить.
__________________
полезное на axForum, github, vk, coub.
Старый 28.01.2009, 16:49   #5  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
;)
Цитата:
Сообщение от mazzy Посмотреть сообщение
а вот программист обязан знать об этой галочке и учитывать, что пользователь может отключить.
Консультант, который ставит задачу программисту и пишет в постановке: "если что, вывести сообщение такое-то",
Старый 28.01.2009, 16:55   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Lemming Посмотреть сообщение
Консультант, который ставит задачу программисту и пишет в постановке: "если что, вывести сообщение такое-то",
хорошо. консультант тоже должен знать и писать в поставновке вывести инфо, вывести варнинг или вывести ошибку

а пользователь все равно все это может отключить.
но в большинстве случаев пользователю имеет смысл оставить только предупреждения и ошибки.
__________________
полезное на axForum, github, vk, coub.
Старый 28.01.2009, 17:05   #7  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от mazzy
...
настоятельно рекомендую устанавливать обычным пользователям уровень детализации = Ошибки / Предупреждения
...
Я бы остерегся давать такие рекомендации в столь настоятельной форме.

В инфолог часто выводится информация о номере созданного при копировании журнала, имени созданного файла, о причине, по которой что-то не выполнено, если это не ошибка, и много другой, IMHO, полезной информации.

Можно поискать "info(" и "info (" в АОТ.

IMHO, отключение данного вида обратной связи пользователя с системой в рабочем (не тестовом) режиме никто не предполагал.
__________________
С уважением,
glibs®
Старый 28.01.2009, 17:45   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от glibs Посмотреть сообщение
В инфолог часто выводится информация о ... о причине, по которой что-то не выполнено, если это не ошибка, и много другой, IMHO, полезной информации.

Можно поискать "info(" и "info (" в АОТ.
Вот-вот. Я об этом и говорил

Цитата:
Сообщение от mazzy Посмотреть сообщение
И еще кстати, настоятельно рекомендую помнить о этой возможности всем программистами и не вываливать все сообщения в режиме info - пользователь может и не увидеть ваших "суперважных" сообщений
Информация о причине невыполнения - варнинг.
Много другой, полезной и ВАЖНОЙ информации - варнинг.
А люди все в info лепят.

Насчет поискать - тоже полезный совет.
только лучше пользоваться перекрестными ссылками
__________________
полезное на axForum, github, vk, coub.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dynamics AX: Managing Your Supply Chain Using Microsoft Dynamics AX 2009 - Book Review Blog bot DAX Blogs 0 31.03.2009 23:06
gatesasbait: Dynamics Ax 2009 SSRS report deployment under Server 2008 (deux) Blog bot DAX Blogs 0 11.02.2009 23:05
gatesasbait: How to temporarily suppress infolog messages in Dynamics Ax Blog bot DAX Blogs 0 10.12.2008 00:06
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
Inside Dynamics AX 4.0: Usage Scenarios Blog bot DAX Blogs 0 04.10.2007 05:15
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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