Hoy les quiero hacer una consulta para lo siguiente:
Necesito extraer datos de nomina ya calculados para un reporte; la t_code es PC_Payresult, me gustaria saber si existe una funcion para extraer cierta data de la RT = Result Table (tabla de resultados) y poder asignarlo a una tabla interna para fines de un reporte ALV.
pues te comento un poco…la tx pc_payresult, es donde estan la secuencia de nominas corridas y eso almacena por asi decir la cabecera…cada registro que ves ahi, almacena propiamente la nomina del trabajador y las demas tablas !!
Ahora bien, hay un sin fin de formas…incluso por ahi leyendo hace poco hay una forma que no entendi bien, que es cuando tiene hana como base de datos…por lo que entendi, ya eso te dan unas macros para leerlas mas facil !! ahora bien, yo siempre he trabajado con la version basica o vieja jajajaja, no se como sera ahi…y tambien por cada pais creo que cambia un poco, pero segun mi experiencia tanto en venezuela como en chile es mas o menos parecida y me ha funcionado, no recuerdo si en venezuela usaba la misma pero aca en chile me funciona bien, te dejo un pequeño ejemplo…cuando cosa me avisas
DATA: lt_rgdir TYPE TABLE OF pc261,
lv_periodo TYPE faper,
lt_pay_result TYPE paycl_result,
lt_rt TYPE TABLE OF pc207,
lv_mes TYPE i,
lv_fecha_aux TYPE sy-datum.
FIELD-SYMBOLS: <lf_rgdir> TYPE pc261.
CALL FUNCTION 'CA_CU_READ_RGDIR_NEW'
EXPORTING
persnr = u_0082-pernr
TABLES
cu_ca_rgdir = lt_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.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = u_0082-begda
days = 0
months = 1
signum = '-'
years = 0
IMPORTING
calc_date = lv_fecha_aux.
lv_periodo = lv_fecha_aux.
SORT lt_rgdir BY fpper DESCENDING.
LOOP AT lt_rgdir ASSIGNING <lf_rgdir> WHERE srtza EQ 'A' AND
fpper LE lv_periodo.
IF lv_mes LE 6.
CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
EXPORTING
employeenumber = u_0082-pernr
sequencenumber = <lf_rgdir>-seqnr
CHANGING
payroll_result = lt_pay_result
EXCEPTIONS
illegal_isocode_or_clusterid = 1
error_generating_import = 2
import_mismatch_error = 3
subpool_dir_full = 4
no_read_authority = 5
no_record_found = 6
versions_do_not_match = 7
error_reading_archive = 8
error_reading_relid = 9
OTHERS = 10.
lt_rt = lt_pay_result-inter-rt[].
ENDIF.
ENDLOOP.
Tu respuesta ha sido fenomenal, me ha ayudado mucho solo tengo una duda:
En esta funcion :
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL’
EXPORTING
date = u_0082-begda
days = 0
months = 1
signum = '-'
years = 0
IMPORTING
calc_date = lv_fecha_aux.
mi pana esa olvidala jajajajaja…eso era que necesitaba hacer un calculo de fechas, olvida eso !! si te sirvio marca como solucion…ando un poco fuulll por eso tardo en responder