SAP Application log


SAP Application log

Hata veya olağandışı birşeyler olana kadar çoğu developer atladığı ama yeri geldiğinde hayat kurtaran loglama ile SAP kendi Application Logları tuttuğu bir yapı bulunmakta.

Kullanımı oldukça basit ve entegrasyonu çok hızlı bir yapı.

SLG0 işlem kodu üzerinden log objesi oluşturuyoruz.



Loglamak istediğimiz noktada,
“Create log

DATAgv_log_handle TYPE balloghndl.   "Application Log: Log Handle
DATAls_log        TYPE bal_s_log.    "Log header data 

* define some header data of this log
ls_log
-extnumber  'Application Log Demo'.
ls_log
-object     'ZSAPUI5'.
ls_log
-subobject  ''.
ls_log
-aldate     sy-datum.
ls_log
-altime     sy-uzeit.
ls_log
-aluser     sy-uname.
ls_log
-alprog     sy-repid

   CALL FUNCTION 'BAL_LOG_CREATE'
      
EXPORTING
        i_s_log                 
ls_log
      
IMPORTING
        e_log_handle            
gv_log_handle
      
EXCEPTIONS
        log_header_inconsistent 
1
        
OTHERS                  2.

    
IF sy-subrc <> 0.
      
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    
ENDIF.

    
DATAl_s_msg TYPE bal_s_msg.
* define data of message for Application Log
    l_s_msg
-msgty     sy-msgty.
    l_s_msg
-msgid     sy-msgid.
    l_s_msg
-msgno     sy-msgno.
    l_s_msg
-msgv1     sy-msgv1.
    l_s_msg
-msgv2     sy-msgv2.
    l_s_msg
-msgv3     sy-msgv3.
    l_s_msg
-msgv4     sy-msgv4.
*add message
    
CALL FUNCTION 'BAL_LOG_MSG_ADD'
      
EXPORTING
        i_log_handle     
gv_log_handle
        i_s_msg          
l_s_msg
      
EXCEPTIONS
        log_not_found    
1
        msg_inconsistent 
2
        log_is_full      
3
        
OTHERS           4.

    
IF sy-subrc <> 0.
      
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    
ENDIF.


*save db
    
CALL FUNCTION 'BAL_DB_SAVE'
      
EXPORTING
        i_save_all       
'X'
      
EXCEPTIONS
        log_not_found    
1
        save_not_allowed 
2
        numbering_error  
3
        
OTHERS           4.

    
IF sy-subrc <> 0.
      
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
         
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    
ENDIF.

Logları SLG1 işlem kodu üzerinden analizleyebilirsiniz.








SAP Application log’da ayrıca,

Loglar search edebilmek için,

DATAgr_object     TYPE bal_s_obj.
DATAgr_extnumber  TYPE bal_s_extn.
DATAgs_log_filter TYPE bal_s_lfil.
DATAgt_log_header TYPE balhdr_t.

* create a filter with all relevant criteria:
gr_object
-sign   'I'.
gr_object
-option 'EQ'.
gr_object
-low    'ZTEST'.
APPEND gr_object TO gs_log_filter-object.

gr_extnumber
-sign   'I'.
gr_extnumber
-option 'EQ'.
gr_extnumber
-low    'Application Log Demo'.
APPEND gr_extnumber TO gs_log_filter-extnumber.

* search on DB for these logs
CALL FUNCTION 'BAL_DB_SEARCH'
  
EXPORTING
    i_s_log_filter 
gs_log_filter
  
IMPORTING
    e_t_log_header 
gt_log_header
  
EXCEPTIONS
    LOG_NOT_FOUND      
1
    NO_FILTER_CRITERIA 
2.

IF sy-subrc <> 0.
    
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

  

Logları okumak için,

DATAP_NUMBER_OF_LOGS LIKE SY-TABIX.
* Log header data
DATABEGIN OF P_HEADER_DATA_TAB OCCURS 0.
INCLUDE STRUCTURE BALHDR.
DATAEND OF P_HEADER_DATA_TAB.
* Log parameters
DATABEGIN OF P_HEADER_PARA_TAB OCCURS 0.
INCLUDE STRUCTURE BALHDRP.
DATAEND OF P_HEADER_PARA_TAB.
* Log messages
DATABEGIN OF P_MESSAGE_TAB OCCURS 0.
INCLUDE STRUCTURE BALM.
DATAEND OF P_MESSAGE_TAB.
* Message parameters
DATABEGIN OF P_MESSAGE_PARA_TAB OCCURS 0.
INCLUDE STRUCTURE BALMP.
DATAEND OF P_MESSAGE_PARA_TAB.

CALL FUNCTION 'APPL_LOG_READ_DB'
  
EXPORTING
    OBJECT          
'ZTEST'
    SUBOBJECT       
'ZTEST01'
    EXTERNAL_NUMBER 
'Application Log Demo'
  
IMPORTING
    NUMBER_OF_LOGS  
P_NUMBER_OF_LOGS
  
TABLES
    HEADER_DATA        
P_HEADER_DATA_TAB
    HEADER_PARAMETERS  
P_HEADER_PARA_TAB
    MESSAGES           
P_MESSAGE_TAB
    MESSAGE_PARAMETERS 
P_MESSAGE_PARA_TAB.

Hiç yorum yok:

Yorum Gönder