ABAP Lock PID

  1. report zini_001.
  2.  
  3.  
  4. PARAMETERS: p_min type i DEFAULT 10.
  5.  
  6. DATA: worker_list_disp TYPE ssi_worker_list_disp.
  7.  
  8. TYPES: BEGIN OF worker_info_disp_alv.
  9.          INCLUDE STRUCTURE ssi_worker_info_disp.
  10. TYPES:   line_col(3),
  11.          field_col   TYPE slis_t_specialcol_alv.
  12. TYPES: END OF worker_info_disp_alv.
  13. TYPES: worker_info_disp_alv_tab TYPE worker_info_disp_alv OCCURS 1.
  14. data: list_alv TYPE worker_info_disp_alv_tab.
  15.  
  16. types: begin of ty_data,
  17.          GTWP     type SEQG3-GTWP,
  18. *         GARG     type SEQG3-GARG,
  19.          GUNAME   type SEQG3-GUNAME ,
  20.          GTCODE   type SEQG3-GTCODE,
  21.          GTHOST   type SEQG3-GTHOST,
  22.          GTDATE   type SEQG3-GTDATE,
  23.          GTTIME   type SEQG3-GTTIME,
  24.  
  25.          WP_PROGRAm    type SSI_WORKER_INFO-WP_PROGRAm,
  26.          MAIN_PROGRAM  type SSI_WORKER_INFO-MAIN_PROGRAM,
  27.          ACTION_INFO   type SSI_WORKER_INFO-ACTION_INFO,
  28.          APPLICATION      type SSI_WORKER_INFO-APPLICATION ,
  29.          APPLICATION_INFO type SSI_WORKER_INFO-APPLICATION_INFO,
  30.        end of ty_data.
  31.  
  32. data: m_data type STANDARD TABLE OF ty_Data,
  33.       n_data like LINE OF m_data.
  34.  
  35. end-of-SELECTION.
  36.  
  37. data: t_data type STANDARD TABLE OF SEQG3.
  38. CALL FUNCTION 'ENQUEUE_READ'
  39.  EXPORTING
  40.    GCLIENT                     = SY-MANDT
  41. *   GNAME                       = ' '
  42. *   GARG                        = ' '
  43. *   GUNAME                      = SY-UNAME
  44. *   LOCAL                       = ' '
  45. *   FAST                        = ' '
  46. *   GARGNOWC                    = ' '
  47. * IMPORTING
  48. *   NUMBER                      =
  49. *   SUBRC                       =
  50.   TABLES
  51.     enq                         = t_data
  52.  EXCEPTIONS
  53.    COMMUNICATION_FAILURE       = 1
  54.    SYSTEM_FAILURE              = 2
  55.    OTHERS                      = 3
  56.           .
  57. IF sy-subrc eq 0.
  58.  
  59.   data(server_info) = NEW cl_server_info( ).
  60.  
  61.         data(worker_list) = server_info->get_worker_list( with_application_info = 1
  62.                                                   with_cpu = 1 "with_cpu
  63.                                                   only_active_worker = 0 ).
  64.  
  65. *  data(worker_list_disp) =
  66. *    worker_list_handler=>conv_list_for_display( EXPORTING worker_list = worker_list
  67. *                                                          restricted_view = 0 ).
  68. *
  69. *  PERFORM copy_disp_to_alv in PROGRAM RSMON000_ALV_NEW USING worker_list_disp CHANGING list_alv.
  70. *wp_index
  71.  
  72.  
  73.     data(l_uzeit) = CONV SYUZEIT( sy-uzeit - ( p_min * 60 ) ).
  74.     delete t_data where GTTIME > l_uzeit.
  75.  
  76.  
  77.  
  78.     loop at t_Data into data(l_data).
  79.         loop at worker_list into data(l_list) where wp_index = l_data-GTWP.
  80.              clear n_data.
  81.              MOVE-CORRESPONDING l_data to n_data.
  82.              MOVE-CORRESPONDING l_list to n_data.
  83.              append n_data to m_data.
  84.         endloop.
  85.     endloop.
  86.     TRY.
  87.         cl_salv_table=>factory(
  88.           IMPORTING
  89.             r_salv_table = data(g_alv)
  90.           CHANGING
  91.             t_table      = m_data ).
  92.       CATCH cx_salv_msg.
  93.         EXIT.                                           "#EC NO_HANDLER
  94.     ENDTRY.
  95. data(g_functions)   = g_alv->get_functions( ).
  96. data(g_columns)     = g_alv->get_columns( ).
  97.     g_functions->set_all( abap_true ).
  98.     g_columns->set_optimize( abap_true ).
  99.      g_alv->display( ).
  100. ENDIF.