SAP HCM ABAP REPORTES

From SapWiki
Revision as of 17:55, 20 June 2026 by WikiSysop (talk | contribs) (→‎SUBMIT driver de nómina (HCLCALC0))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Programa ejemplo

REPORT  YHCM_EX001.
* usar base de datos PNP

TABLES: pernr.

INFOTYPES: 0001,0002,0007,2001,0082.

INITIALIZATION.
*only select employees who have not left the company when the 
*report selection screen is displayed.

  rp-sel-ein-aus-init.

  RP-SET-DATA-INTERVAL 0001 SY-DATUM SY-DATUM.
*  rp-set-data-interval 'ALL' low-date pn-endda.

START-OF-SELECTION.

GET pernr.
  rp-provide-from-last p0001 space pn-begda pn-endda.
  rp-provide-from-last p0002 space pn-begda pn-endda.
  rp-provide-from-last p0007 space pn-begda pn-endda.

  perform process.

END-OF-SELECTION.
  perform display_alv.

Report Programming in HR

SUBMIT driver de nómina (HCLCALC0)

REPORT YHR_PR_HCLCALC0.
INCLUDE lhrplto1.
INCLUDE lhrplto3.

TYPES: BEGIN OF gty_msg,
         lfdnum      TYPE i,
         tlevel      TYPE seu_level,
         message     TYPE plog_cross,
         text1       TYPE plog_txt,
         tlength1    TYPE plog_len,
         tintensiv1  TYPE seu_intens,
         text2       TYPE plog_txt,
         tlength2    TYPE plog_len,
         tintensiv2  TYPE seu_intens,
         text3       TYPE plog_txt,
         tlength3    TYPE plog_len,
         tintensiv3  TYPE seu_intens,
         text4       TYPE plog_txt,
         tlength4    TYPE plog_len,
         tintensiv4  TYPE seu_intens,
         empty_lines TYPE emptylines,
       END OF gty_msg.

TYPES: BEGIN OF gty_t100_msg,
         lfdnum TYPE i,
         msgid  TYPE symsgid,
         msgty  TYPE symsgty,
         msgno  TYPE symsgno,
         msgv1  TYPE symsgv,
         msgv2  TYPE symsgv,
         msgv3  TYPE symsgv,
         msgv4  TYPE symsgv,
       END OF gty_t100_msg.

TYPES: BEGIN OF gty_class_msg,
         lfdnum    TYPE i,
         class     TYPE seoclsname,
         parameter TYPE swconttab,
       END OF gty_class_msg.

* definition of log_basic
TYPES: BEGIN OF gty_thrpl_log_basic_aper.
    INCLUDE       TYPE  pc2aper AS aper.
TYPES: srtza         TYPE srtza,
       in_recall     TYPE  pay_recall_payroll,            "XYAn1166656
       no_of_recalls TYPE  i,                             "XYAn1387664
       END OF gty_thrpl_log_basic_aper.

*--------------------------------------------------------------------*
TYPES:  BEGIN OF gty_log_basic.
    INCLUDE STRUCTURE h_log_basic_key.
TYPES: selection_table TYPE TABLE OF plg99_d_selection_table WITH NON-UNIQUE DEFAULT KEY,
       as              TYPE TABLE OF plg99_d_as WITH NON-UNIQUE DEFAULT KEY,
       aper_tab        TYPE STANDARD TABLE OF gty_thrpl_log_basic_aper
                            WITH DEFAULT KEY,
       END OF gty_log_basic.

DATA ls_log_basic TYPE gty_log_basic.

TYPES: BEGIN OF gty_msgtab,
         procl           TYPE thrpl_log_ref_key-procl,
         nopernr         TYPE c,
         pernr           TYPE pcce_pernr,
         pos             TYPE c,
         aper_numb       TYPE thrpl_log_ref_key-aper_numb,
         loopcount       TYPE i,
         vblock          TYPE c LENGTH 4,
         daypr_calls     TYPE thrpl_log_ref_key-daypr_calls,
         daypr_aper_numb TYPE thrpl_log_ref_key-daypr_aper_numb,
         msg             TYPE TABLE OF gty_msg WITH NON-UNIQUE DEFAULT KEY,  "tt_msg,
         t100_pointer    TYPE TABLE OF gty_t100_msg  WITH NON-UNIQUE DEFAULT KEY,  ""tt_t100_msg,
         class_exp       TYPE TABLE OF gty_class_msg WITH NON-UNIQUE DEFAULT KEY,
       END OF gty_msgtab.

DATA: lt_msgtab TYPE TABLE OF gty_msgtab.

* reference-table for payroll-log
TYPES: BEGIN OF gty_log_ref.
    INCLUDE TYPE thrpl_log_ref_key AS key.
TYPES: asfunc TYPE TABLE OF d_asfunc WITH NON-UNIQUE DEFAULT KEY,
       END OF gty_log_ref.

DATA lt_log_ref TYPE TABLE OF gty_log_ref.
*--------------------------------------------------------------------*
DATA: lt_rspar  TYPE TABLE OF rsparams.
DATA ls_rspar LIKE LINE OF lt_rspar.

DATA: BEGIN OF lv_payr_log_mem_key,
        uname TYPE syuname,
        datum TYPE sydatum,
      END OF lv_payr_log_mem_key.
DATA lv_plgmemky(40).

FIELD-SYMBOLS: <msgtab>       TYPE any.
FIELD-SYMBOLS: <log_basic>    TYPE any.
FIELD-SYMBOLS: <log_ref>      TYPE any.

PARAMETERS p_sels AS CHECKBOX.
PARAMETERS p_called AS CHECKBOX.

START-OF-SELECTION.

  lv_plgmemky = sy-uname.
  lv_plgmemky+12 = sy-datlo.

  lt_rspar = VALUE #(
                   ( selname = 'PRT_PROT' kind = 'P' low  = 'X' )  "Visualizar log
                   ( selname = 'PNPTIMR9'  kind = 'P' low  = 'X' ) "registro actual
                   ( selname = 'PNPTIMRA' kind = 'P' low  = '' ) "otro registro
                   ( selname = 'PNPXABKR' kind = 'P' low  = 'A1' ) "Agrupador de Proceso
                   ( selname = 'SCHEMA ' kind = 'P' low  = 'ZCL0' ) "Esquema de nómina
                   ( selname = 'TST_ON' kind = 'P' low  = 'X' )   "Proceso de test
                   ( selname = 'RADI_EDT' kind = 'P' low  = 'X' )
                   ( selname = 'EDT_VARI' kind = 'P' low  = 'RECIBO' )
                   ( selname = 'PNPPERNR' kind = 'S' sign = 'I' option = 'EQ' low  = '10003536' ) 
                   ( selname = 'PNPABKRS' kind = 'S' sign = 'I' option = 'EQ' low  = 'A1' )


     ).

  ls_rspar-selname = 'ECALLED'.
  ls_rspar-kind = 'P'.
  ls_rspar-low = p_called.
  APPEND ls_rspar TO lt_rspar.

  ls_rspar-selname = 'PLGMEMKY'.
  ls_rspar-kind = 'P'.
  ls_rspar-low = lv_plgmemky.
  APPEND ls_rspar TO lt_rspar.

  IF p_sels = 'X'.
    SUBMIT HCLCALC0
   VIA SELECTION-SCREEN
   WITH SELECTION-TABLE lt_rspar
 EXPORTING LIST TO MEMORY
                      AND RETURN.
  ELSE.
    SUBMIT HCLCALC0
     WITH SELECTION-TABLE lt_rspar
EXPORTING LIST TO MEMORY
*                       TO SAP-SPOOL IMMEDIATELY ' '
*                                 KEEP IN SPOOL 'X'
*                                 WITHOUT SPOOL DYNPRO
                      AND RETURN.
  ENDIF.

  TYPES : BEGIN OF ltyp_lista_asci,
            texto(500) TYPE c,
          END OF ltyp_lista_asci.

  DATA list_tab TYPE TABLE OF abaplist.
  DATA lt_lista_asci TYPE TABLE OF ltyp_lista_asci.
  DATA ls_lista_asci TYPE ltyp_lista_asci.

  CALL FUNCTION 'LIST_FROM_MEMORY'
    TABLES
      listobject = list_tab
    EXCEPTIONS
      not_found  = 1
      OTHERS     = 2.

  CALL FUNCTION 'LIST_TO_ASCI'
    EXPORTING
      with_line_break    = 'X'
    TABLES
      listasci           = lt_lista_asci
      listobject         = list_tab
    EXCEPTIONS
      empty_list         = 1
      list_index_invalid = 2
      OTHERS             = 3.

  IF sy-subrc = 0.
    CALL FUNCTION 'WRITE_LIST'
      TABLES
        listobject = list_tab.
  ENDIF.

  lv_payr_log_mem_key-uname = sy-uname.
  lv_payr_log_mem_key-datum = sy-datum.
  CALL FUNCTION 'HR_PL_IMPORT_LOG_FROM_MEMORY'
    EXPORTING
      mem_key = lv_payr_log_mem_key.
*   "Dirty"-Assign globale Variablen (FuGr HR Payrollprotokollierung)
  ASSIGN ('(SAPLHRPL)MSGTAB[]') TO <msgtab>.
  lt_msgtab[] = <msgtab>.

  ASSIGN ('(SAPLHRPL)LOG_BASIC') TO <log_basic>.
  MOVE <log_basic> TO ls_log_basic.

  ASSIGN ('(SAPLHRPL)LOG_REF[]') TO <log_ref>.

  lt_log_ref[] = <log_ref>.