Funcion CALL FUNCTION 'CA_CU_READ_RGDIR_NEW'

Hola, si estoy utilizando la funcion CALL FUNCTION ‘CA_CU_READ_RGDIR_NEW’ y necesito obtener la informacion comprendida entre un rango de fecha por ejemplo que me traiga del 01.10.2016 al 15.10.2016 con cual campo se trabajarian esas fechas?

LOOP AT gt_rgdir INTO fs_rgdir WHERE ???
AND srtza EQ ‘A’.

Para luego buscarlo en CALL FUNCTION ‘PYXX_READ_PAYROLL_RESULT’.
Muchas Gracias

Ana

Hola,

No entiendo, es una función standar que no tiene nada para filtrar por fechas.

¿Te refieres a hacer un loop a alguna tabla interna de tu programa Z, filtrando por fechas, para ejecutar dicha funcion de a un registro? ¿Podrias explicar mejor, desde el principio que es lo que estas queriendo hacer?

Gracias!

Hola tengo este codigo:

Necesito traerme todos los codigos de empleados de acuerdo a un rango de fecha y buscarle todos sus ccnominas comprendidos en esa fecha, veo que usan la funcion CALL FUNCTION ‘CA_CU_READ_RGDIR_NEW’ y obtienen ahi unas secuencias que luego loop con la funcion CALL FUNCTION ‘PYXX_READ_PAYROLL_RESULT’ como le indico que sea del rango de fecha. Que campo debo tomar en cuenta para que me traiga solo las secuencias que necesito segun ekl rango de fecha??

LOOP AT it_rgdir INTO fs_rgdir WHERE payty = ''
                                       AND ipend GE v_begda
                                       AND ipend LE v_endda.
        APPEND fs_rgdir TO i_rgdir.
      ENDLOOP.                       " LOOP AT it_rgdir
      SORT i_rgdir BY seqnr DESCENDING.
      CLEAR: lv_unpaid,lv_paid.
      LOOP AT i_rgdir INTO fs_rgdir.
        CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
          EXPORTING
            clusterid                    = lv_relid
            employeenumber               = fs_pa0001-pernr
            sequencenumber               = fs_rgdir-seqnr
*           read_only_international      = 'X'
          CHANGING
            payroll_result               = <payresult>

buenas,
vamos por partes que el tema este de nomina es un poco lio al principio

CA_CU_READ_RGDIR_NEW es un modulo de funciones que lee el cluster completo para un empleado, te devuelve una tabla con la estructura PC261 donde entre otros campos tienes
FPPER -> Período para de la nómina
FPBEG -> Inicio del período de nómina (Período para)
FPEND -> Final del período de nómina (Período para)

de ahi seleccionas con un loop por ejemplo el registro que quieres y se lo pasas a la funcion PYXX_READ_PAYROLL_RESULT .

mira que la payresult una estructura de tipo PAYxx_RESULT, los conceptos de nomina estan en payresult-inter-rt[]

para poder comprobar lo que estas haciendo puede usar la transacción pc_payresult que te trae esos resultados para un empleado

2 Me gusta

Muchas Gracias voy a probar.

Saludos

Ana

Entonces si necesito traerme los registros comprendidos entre el 01.02.2017 y 15.02.2017 la funcion quedaria asi?

CALL FUNCTION 'CA_CU_READ_RGDIR_NEW'
      EXPORTING
           PERSNR                   = iv_pernr
      IMPORTING
           MOLGA                    = gd_molga
      TABLES
           CU_CA_RGDIR         = gt_rgdir
      EXCEPTIONS
           IMPORT_MISMATCH_ERROR_CU = 1
           IMPORT_MISMATCH_ERROR_CA = 2
           NO_READ_AUTHORITY_CA     = 3
           NO_READ_AUTHORITY_CU     = 4
           ERROR_READING_CU         = 5
           ERROR_READING_CA         = 6
           NO_RECORD_FOUND          = 7
           OTHERS                   = 8.

 IF SY-SUBRC <> 0.
   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4 INTO ld_msg.
           SY-SUBRC = 4.
           EXIT.
 ENDIF.
 LOOP AT gt_rgdir INTO fs_rgdir WHERE srtza = 'A'
                                       AND fpbeg GE '01022017'
                                       AND fpend LE  '15022017'
      APPEND fs_rgdir TO i_rgdir.
 ENDLOOP.

si, esa condicion te traerá todos los registros comprendidos entre esas fechas , para comprobarlo puedes debuguear y usar la transaccion pc_payresult

1 me gusta

Ok Muchas Gracias.Voy a verificar.

Este tema se cerró automáticamente 91 días después del último post. No se permiten nuevas respuestas.