Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ALV table for BAL message details #57

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions src/example/zalog_example_bal_logger.prog.abap
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,22 @@ go_logger->warning( `Warning` ) ##NO_TEXT.
go_logger->error( `Error` ) ##NO_TEXT.
go_logger->debug( `Debug` ) ##NO_TEXT.

DATA gt_table TYPE STANDARD TABLE OF bal_s_ex06.

gt_table = VALUE #( ( id = '00000002' txt_id = 'Chris Smith' )
( id = '00000013' txt_id = 'Paula Quick' )
( id = '00000002' txt_id = 'Tim Meyer' ) ) ##NO_TEXT.

" If you use a object for the logger and therefore save the log to the database,
" please do not use the callback parameters.
" The logger itself will handle the display of the data table
go_logger->prepare_table( it_table = gt_table
iv_table_struc_type_name = 'BAL_S_EX06'
iv_callback_form = 'LOG_CALLBACK'
iv_callback_program = sy-repid ).

go_logger->info( 'Info with attached table!' ) ##NO_TEXT.

MESSAGE e000(zalog) WITH 'Message class error' INTO DATA(gv_dummy) ##NEEDED ##NO_TEXT.
go_logger->entry_msg( ).

Expand All @@ -15,3 +31,9 @@ go_logger->prepare_context( VALUE #( tabname = 'T000'
go_logger->info( `Info with context` ) ##NO_TEXT.

go_logger->show_log_entries( ).

FORM log_callback
TABLES
it_params STRUCTURE spar ##CALLED.
go_logger->log_callback_alv( it_params[] ).
ENDFORM.
3 changes: 3 additions & 0 deletions src/zalog.fugr.lzalogtop.abap
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
FUNCTION-POOL ZALOG. "MESSAGE-ID ..

* INCLUDE LZALOGD... " Local class definition
17 changes: 17 additions & 0 deletions src/zalog.fugr.lzalogtop.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<PROGDIR>
<NAME>LZALOGTOP</NAME>
<DBAPL>S</DBAPL>
<DBNA>D$</DBNA>
<SUBC>I</SUBC>
<APPL>S</APPL>
<FIXPT>X</FIXPT>
<LDBNAME>D$S</LDBNAME>
<UCCHECK>X</UCCHECK>
</PROGDIR>
</asx:values>
</asx:abap>
</abapGit>
15 changes: 15 additions & 0 deletions src/zalog.fugr.saplzalog.abap
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
*******************************************************************
* System-defined Include-files. *
*******************************************************************
INCLUDE LZALOGTOP. " Global Declarations
INCLUDE LZALOGUXX. " Function Modules

*******************************************************************
* User-defined Include-files (if necessary). *
*******************************************************************
* INCLUDE LZALOGF... " Subroutines
* INCLUDE LZALOGO... " PBO-Modules
* INCLUDE LZALOGI... " PAI-Modules
* INCLUDE LZALOGE... " Events
* INCLUDE LZALOGP... " Local class implement.
* INCLUDE LZALOGT99. " ABAP Unit tests
18 changes: 18 additions & 0 deletions src/zalog.fugr.saplzalog.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<PROGDIR>
<NAME>SAPLZALOG</NAME>
<DBAPL>S</DBAPL>
<DBNA>D$</DBNA>
<SUBC>F</SUBC>
<APPL>S</APPL>
<RLOAD>D</RLOAD>
<FIXPT>X</FIXPT>
<LDBNAME>D$S</LDBNAME>
<UCCHECK>X</UCCHECK>
</PROGDIR>
</asx:values>
</asx:abap>
</abapGit>
28 changes: 28 additions & 0 deletions src/zalog.fugr.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_FUGR" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<INCLUDES>
<SOBJ_NAME>LZALOGTOP</SOBJ_NAME>
<SOBJ_NAME>SAPLZALOG</SOBJ_NAME>
</INCLUDES>
<FUNCTIONS>
<item>
<FUNCNAME>ZALOG_MSG_CALLBACK</FUNCNAME>
<TABLES>
<RSTBL>
<PARAMETER>I_T_PARAMS</PARAMETER>
<TYP>SPAR</TYP>
</RSTBL>
</TABLES>
<DOCUMENTATION>
<RSFDO>
<PARAMETER>I_T_PARAMS</PARAMETER>
<KIND>P</KIND>
</RSFDO>
</DOCUMENTATION>
</item>
</FUNCTIONS>
</asx:values>
</asx:abap>
</abapGit>
35 changes: 35 additions & 0 deletions src/zalog.fugr.zalog_msg_callback.abap
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
FUNCTION zalog_msg_callback.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" TABLES
*" I_T_PARAMS STRUCTURE SPAR
*"----------------------------------------------------------------------
DATA(lv_lognumber) = i_t_params[ param = '%LOGNUMBER' ]-value.
IF lv_lognumber(1) = '$'.
" This is not possible because message details table is not exported if log is not saved to database
RETURN.
ENDIF.

DATA(lv_msgnr) = CONV balmnr( i_t_params[ param = 'MSGNR' ]-value ).

DATA lt_table_types TYPE string_table.
LOOP AT i_t_params REFERENCE INTO DATA(lr_param) WHERE param CP 'TS_*'.
APPEND lr_param->*-value TO lt_table_types.
ENDLOOP.

zcl_alog_bal_logger=>get_msg_details_abap_descr( EXPORTING it_table_struc_type_names = lt_table_types
IMPORTING eo_table_def = DATA(lo_table_def) ).
FIELD-SYMBOLS <lt_msg_details> TYPE ANY TABLE.
DATA lt_msg_details TYPE REF TO data.
CREATE DATA lt_msg_details TYPE HANDLE lo_table_def.
ASSIGN lt_msg_details->* TO <lt_msg_details>.

IMPORT mt_msg_details TO <lt_msg_details> FROM DATABASE bal_indx(al) ID lv_lognumber.
IF sy-subrc <> 0.
CLEAR <lt_msg_details>.
RETURN.
ENDIF.

zcl_alog_bal_logger=>show_message_alv( iv_msgnr = lv_msgnr
it_message_details = <lt_msg_details> ).
ENDFUNCTION.
Loading