Difference between revisions of "SAP HCM ABAP REPORTES"

From SapWiki
 
(2 intermediate revisions by the same user not shown)
Line 29: Line 29:
  
 
==[https://help.sap.com/docs/ERP_HCM_SPV/b52ef0936e7c43c7ba12ce64ee6c32db/53b5e05320a7424de10000000a174cb4.html?version=600_HRSP_N8 Report Programming in HR]==
 
==[https://help.sap.com/docs/ERP_HCM_SPV/b52ef0936e7c43c7ba12ce64ee6c32db/53b5e05320a7424de10000000a174cb4.html?version=600_HRSP_N8 Report Programming in HR]==
 +
 +
==SUBMIT driver de nómina (HCLCALC0)==
 +
<nowiki>
 +
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>.</nowiki>
 +
 +
[[Category:Chile]]

Latest revision as of 17:55, 20 June 2026

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>.