report zini_001.
PARAMETERS: p_min type i DEFAULT 10.
DATA: worker_list_disp TYPE ssi_worker_list_disp.
TYPES: BEGIN OF worker_info_disp_alv.
INCLUDE STRUCTURE ssi_worker_info_disp.
TYPES: line_col(3),
field_col TYPE slis_t_specialcol_alv.
TYPES: END OF worker_info_disp_alv.
TYPES: worker_info_disp_alv_tab TYPE worker_info_disp_alv OCCURS 1.
data: list_alv TYPE worker_info_disp_alv_tab.
types: begin of ty_data,
GTWP type SEQG3-GTWP,
* GARG type SEQG3-GARG,
GUNAME type SEQG3-GUNAME ,
GTCODE type SEQG3-GTCODE,
GTHOST type SEQG3-GTHOST,
GTDATE type SEQG3-GTDATE,
GTTIME type SEQG3-GTTIME,
WP_PROGRAm type SSI_WORKER_INFO-WP_PROGRAm,
MAIN_PROGRAM type SSI_WORKER_INFO-MAIN_PROGRAM,
ACTION_INFO type SSI_WORKER_INFO-ACTION_INFO,
APPLICATION type SSI_WORKER_INFO-APPLICATION ,
APPLICATION_INFO type SSI_WORKER_INFO-APPLICATION_INFO,
end of ty_data.
data: m_data type STANDARD TABLE OF ty_Data,
n_data like LINE OF m_data.
end-of-SELECTION.
data: t_data type STANDARD TABLE OF SEQG3.
CALL FUNCTION 'ENQUEUE_READ'
EXPORTING
GCLIENT = SY-MANDT
* GNAME = ' '
* GARG = ' '
* GUNAME = SY-UNAME
* LOCAL = ' '
* FAST = ' '
* GARGNOWC = ' '
* IMPORTING
* NUMBER =
* SUBRC =
TABLES
enq = t_data
EXCEPTIONS
COMMUNICATION_FAILURE = 1
SYSTEM_FAILURE = 2
OTHERS = 3
.
IF sy-subrc eq 0.
data(server_info) = NEW cl_server_info( ).
data(worker_list) = server_info->get_worker_list( with_application_info = 1
with_cpu = 1 "with_cpu
only_active_worker = 0 ).
* data(worker_list_disp) =
* worker_list_handler=>conv_list_for_display( EXPORTING worker_list = worker_list
* restricted_view = 0 ).
*
* PERFORM copy_disp_to_alv in PROGRAM RSMON000_ALV_NEW USING worker_list_disp CHANGING list_alv.
*wp_index
data(l_uzeit) = CONV SYUZEIT( sy-uzeit - ( p_min * 60 ) ).
delete t_data where GTTIME > l_uzeit.
loop at t_Data into data(l_data).
loop at worker_list into data(l_list) where wp_index = l_data-GTWP.
clear n_data.
MOVE-CORRESPONDING l_data to n_data.
MOVE-CORRESPONDING l_list to n_data.
append n_data to m_data.
endloop.
endloop.
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = data(g_alv)
CHANGING
t_table = m_data ).
CATCH cx_salv_msg.
EXIT. "#EC NO_HANDLER
ENDTRY.
data(g_functions) = g_alv->get_functions( ).
data(g_columns) = g_alv->get_columns( ).
g_functions->set_all( abap_true ).
g_columns->set_optimize( abap_true ).
g_alv->display( ).
ENDIF.