!--a11y-->
Informe modelo 
INFORME RPTTMWBS.
DATA: RGDIR LIKE PC261 OCCURS 0 WITH HEADER LINE.
DATA: EVPDIR LIKE RGDIR OCCURS 0 WITH HEADER LINE.
DATA: PREVIOUS_RESULTS LIKE RGDIR OCCURS 0 WITH HEADER LINE.
DATA: CALCD TYPE C.
DATA: IN_ENTRY LIKE PC261.
DATA: OUT_ENTRY LIKE PC261.
INCLUDE RPCCCD09.
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
PERSNR = '00021218'
TABLES IN_RGDIR = RGDIR
EXCEPTIONS
NO_RECORD_FOUND = 1
OTHERS = 2.
* Read RGDIR
CALL FUNCTION 'CD_EVALUATION_PERIODS'
EXPORTING
BONUS_DATE = '00000000'
INPER_MODIF = '02'
INPER = '199603'
PAY_TYPE = CD_C-REGULAR
PAY_IDENT = ' '
TABLES
RGDIR = RGDIR
EVPDIR = EVPDIR
* IABKRS =
EXCEPTIONS
NO_RECORD_FOUND = 1
OTHERS = 2.
* resultado:
* 00006
* 00007
* 00008
* Leer resultados del cálculo de la nómina regular de enero
* Resultados A (resultado original más cálculos retroactivos)
* y resultados P
LOOP AT EVPDIR WHERE SRTZA = CD_C-ACTUAL.
* Sólo resultados actuales(00007 y 00008)
CALL FUNCTION 'CD_RETROCALC_PERIOD'
EXPORTING
ENTRY = EVPDIR
IMPORTING
CALCD = CALCD
EXCEPTIONS
OTHERS = 1.
* Determinar si resultado original
CHECK CALCD = ' '.
* Procesamiento especial: sólo el período original
* Marzo se procesa (seqnr 00008).
IN_ENTRY = EVPDIR.
CALL FUNCTION 'CD_READ_PREVIOUS_ORIGINAL'
EXPORTING
IN_RECORD = IN_ENTRY
IMPORTING
OUT_RECORD = OUT_ENTRY
TABLES
RGDIR = RGDIR
EXCEPTIONS
OTHERS = 1.
* out_entry contiene ahora los resultados anteriores
* Entrada 00008 ----> Salida 00006
ENDLOOP.
LOOP AT EVPDIR WHERE SRTZA = CD_C-ACTUAL.
IN_ENTRY = EVPDIR.
CALL FUNCTION 'CD_READ_PREVIOUS'
EXPORTING
IN_RECORD = IN_ENTRY
TABLES
RGDIR = RGDIR
OUT_RGDIR = PREVIOUS_RESULTS
EXCEPTIONS
NO_RECORD_FOUND = 1
OTHERS = 2.
* Entrada 00007 ---> 00006
* Entrada 00008 ---> no se encuentra registro
* La estructura de salida es una tabla, ya que puede haber varios resultados anteriores: por ejemplo, si se modifica
* la persona jurídica y se borra retroactivamente
ENDLOOP.