Текущее время: Вт, июл 22 2025, 10:04

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Application Logs
СообщениеДобавлено: Ср, окт 31 2012, 16:32 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, ноя 07 2011, 11:46
Сообщения: 83
Добрый день, коллеги!
В целях самообучения и обучения молодого поколения мне нужно будет прочитать лекцию по Application Logs. Весь интернет мной перелопачен + немного собственной практики. Но есть к Вам 2 вопроса:
1) не могли бы Вы мне подробно объяснить, для чего нужен подобъект, зачем и как его использовать?
2) полезные и нужные вещи,фитчи, которые обходит основная теория или которые в ней упоминаются довольно редко. Может быть что-нибудь из личного опыта.

Заранее спасибо всем откликнувшимся.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Application Logs
СообщениеДобавлено: Чт, ноя 01 2012, 00:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Hanna_89 написал(а):
1) не могли бы Вы мне подробно объяснить, для чего нужен подобъект, зачем и как его использовать?

Подобъект нужен для разделения объекта на более мелкие составляющие.
К примеру у нас на проекте объект - это функциональная область (MM, SD, FI, etc.), а подобъект - разработка, для которой создается лог.
В результате:
а)возможен анализ сообщений специалистом по направлению
б)возможен анализ сообщений для конкретной разработки.
в)так как возможность чтения лога контролируется с помощью полномочий, можно разделить роли пользователей как по объекту, так и по подобъекту: например в случае а) в роли сотрудника поддержки будут полномочия на объект целиком, в случае б) - только на сообщения для конкретного подобъекта
Hanna_89 написал(а):
2) полезные и нужные вещи,фитчи, которые обходит основная теория или которые в ней упоминаются довольно редко. Может быть что-нибудь из личного опыта.

-Для возможности нормально использовать журнал приложений лучше обернуть вызовы стандартных функций в свой класс с более простыми методами. (спасибо Сергей Королев за наглядную демонстрацию)
-Необходимо обязательно пользоваться параметрами "Журнал приложений: дата истечения срока хранения" и "Журнал прил.: журнал сохраняется до истечения срока хранения" при создании журнала приложений и запланировать регулярную очистку лога (транзакция SLG2) - в принципе и в документации об этом сказано, но очистку лучше запланировать во всех системах сразу.
-Как показала практика, лишние "навороты" (например CALLBACK-процедуры) редко используются, поэтому увлекаться ими не стоит.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Application Logs
СообщениеДобавлено: Чт, ноя 01 2012, 08:16 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 18 2008, 10:40
Сообщения: 342
Откуда: Пермь
Пол: Мужской
Выводить сообщения на экран без сохранения удобно через CL_RSDME_ERROR=>DISPLAY_LOG (обертка для Application Log). На вход подается таблица BAPIRET2_T


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Application Logs
СообщениеДобавлено: Чт, ноя 01 2012, 12:43 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
Удав написал(а):
Для возможности нормально использовать журнал приложений лучше обернуть вызовы стандартных функций в свой класс с более простыми методами.
Это так, но не стоит забывать о том, что система "напичкана" уже готовыми решениями на все случаи жизни. Например, для простейшего вывода иерархического лога, можно воспользоваться классом CL_FPP_BAL. Пример использования:

Code:
DATA:
  lr_log              TYPE REF TO cl_fpp_bal,
  ls_balmsg           TYPE bal_s_msg.

*инициализация
TRY.
    CREATE OBJECT lr_log
      EXPORTING
        i_detlevel_active = 'X'.
  CATCH cx_fpp_bal_exc .
ENDTRY.

*добавление сообщений
ls_balmsg-detlevel = '1'.
ls_balmsg-msgty = 'I'.
ls_balmsg-msgid = '00'.
ls_balmsg-msgno = '001'.
ls_balmsg-msgv1 = 'Сообщение первого уровня'.
TRY.
    CALL METHOD lr_log->set_message( is_balmsg = ls_balmsg ).
  CATCH cx_fpp_bal_exc .
ENDTRY.

ls_balmsg-detlevel = '2'.
ls_balmsg-msgty = 'I'.
ls_balmsg-msgid = '00'.
ls_balmsg-msgno = '001'.
ls_balmsg-msgv1 = 'Сообщение второго уровня'.
TRY.
    CALL METHOD lr_log->set_message( is_balmsg = ls_balmsg ).
  CATCH cx_fpp_bal_exc .
ENDTRY.

*отображение
IF NOT lr_log->md_has_messages IS INITIAL.
  TRY.
      CALL METHOD lr_log->display( i_grid = 'X' ).
    CATCH cx_fpp_bal_exc .
  ENDTRY.
ENDIF.

Удобно действие добавления сообщения завернуть в макрос, тогда будет примерно так:
Code:
DATA:
.......
  lv_dummy            TYPE dummy.

DEFINE mk_message_catch.
  clear ls_balmsg.
  move-corresponding sy to ls_balmsg .
  ls_balmsg-detlevel = &1.
  try.
      call method lr_log->set_message( is_balmsg = ls_balmsg ).
    catch cx_fpp_bal_exc .
  endtry.
END-OF-DEFINITION.

*инициализация
.......

*добавление сообщений
MESSAGE I001(00) WITH 'Сообщение первого уровня' INTO lv_dummy.
mk_message_catch '1'.

MESSAGE I001(00) WITH 'Сообщение второго уровня' INTO lv_dummy.
mk_message_catch '2'.

*отображение
.......


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Application Logs
СообщениеДобавлено: Чт, ноя 01 2012, 12:53 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
А вот пример с другим классом - ещё проще (правда, иерархию не поддерживает)
Code:
DATA:
  lr_log          TYPE REF TO cl_umb_ofl_message,
  lv_dummy        TYPE dummy.

lr_log = cl_umb_ofl_message=>get_instance( ).

MESSAGE i001(00) WITH 'сообщение' INTO lv_dummy.
lr_log->append_message( ).

lr_log->show_message( ).


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Application Logs
СообщениеДобавлено: Чт, ноя 01 2012, 13:05 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
И ещё, очень мощная штука в логе - контекст: с помощью него можно вывести в строку с сообщениями произвольный набор полей, как это например, сделано в демонстрационной программе SBAL_CALLBACK... таким образом, в некоторых случаях, для построения пользовательского интерфейса приложения можно обойтись исключительно средствами BAL Log.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Application Logs
СообщениеДобавлено: Чт, ноя 01 2012, 14:28 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Бородин Игорь написал(а):
Это так, но не стоит забывать о том, что система "напичкана" уже готовыми решениями на все случаи жизни.

В какой версии "напичкана"? :wink:

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB