28.01.2009, 04:10 | #1 |
Участник
|
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 |
Участник
|
ну... это не supress, это cut
чтобы выполнить именно supress, нужно перевести инфолог в режим запрета вывода сообщений. в параметрах пользователя есть соответствующий переключатель. Уровень детализации = Все - выводится все Уровень детализации = Ошибки / Предупреждения - не выводятся сообщения со статусом 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); // вернуть настройку обратно. // ПОМНИТЕ и не оставляйте настройки измененными // без ведома пользователя } |
|
28.01.2009, 09:09 | #3 |
Administrator
|
Цитата:
X++: info("@SYS5815"); X++: info(strfmt("@SYS95692", journalTableData.journalTable().JournalId)); А если еще впихнуть сюда какой-нибудь SysInfoAction - то вообще будет конфетка. Пользователь получит мини-отчет о том, что сделала система (это важно, если сразу разносится несколько журналов) с возможностью перехода к соответствующему журналу (кстати, для корректного перехода к журналу тоже нужно сделать одну маленькую правку - а то фильтр Все/Открыто/Разнесено сбивает весь переход, но это уже отдельный вопрос).
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 28.01.2009 в 09:12. |
|
28.01.2009, 16:40 | #4 |
Участник
|
Не спорю.
добавлю тлоько: а если пользователь не хочет получать такие мини-отчеты, то он может переключить галочку в параметрах. а вот программист обязан знать об этой галочке и учитывать, что пользователь может отключить. |
|
28.01.2009, 16:49 | #5 |
Участник
|
|
|
28.01.2009, 16:55 | #6 |
Участник
|
Цитата:
а пользователь все равно все это может отключить. но в большинстве случаев пользователю имеет смысл оставить только предупреждения и ошибки. |
|
28.01.2009, 17:05 | #7 |
Member
|
Цитата:
Сообщение от mazzy
...
настоятельно рекомендую устанавливать обычным пользователям уровень детализации = Ошибки / Предупреждения ... В инфолог часто выводится информация о номере созданного при копировании журнала, имени созданного файла, о причине, по которой что-то не выполнено, если это не ошибка, и много другой, IMHO, полезной информации. Можно поискать "info(" и "info (" в АОТ. IMHO, отключение данного вида обратной связи пользователя с системой в рабочем (не тестовом) режиме никто не предполагал.
__________________
С уважением, glibs® |
|
28.01.2009, 17:45 | #8 |
Участник
|
Цитата:
Цитата:
Много другой, полезной и ВАЖНОЙ информации - варнинг. А люди все в info лепят. Насчет поискать - тоже полезный совет. только лучше пользоваться перекрестными ссылками |
|
|
|