SAP HCM ABAP REPORTES
From SapWiki
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' ) "Procesdo 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>.