PDA

Ver la Versión Completa : Actualizar cluster RE en SAPHR


ajoliverar
29/05/08, 16:15:19
Buenas, estoy intentando montar un report que modifique la información del registro de nómina, para ello utilizo las macro instrucciones que salen en el manual de programacion HR que está colgado por internet y en mundosap tambien.

Todo parece que funciona bien, ya que no ocurre ningún error durante la ejecución del programa, pero no guarda nada en la base de datos.

Sabeis si me estoy dejando algo, o si es posible la modificación?

Gracias.

El codigo es el siguiente:

*&---------------------------------------------------------------------*
*& Report ZHR_TEST_TONI_MOD_PAYROLL_V3
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT zhr_test_toni_mod_payroll_v3.

TABLES: pcl1, "Tabla de datos
pcl2, "Tabla de resultados
pernr.

INCLUDE rpppxd00. "Definición del buffer

DATA: BEGIN OF COMMON PART buffer.
INCLUDE rpppxd10. "Definición del buffer
DATA: END OF COMMON PART buffer.

INCLUDE rpppxm00. "Instrucciones para el buffer


INCLUDE rpc2cd00. "Datos específocos: Cluster Directory
INCLUDE rpc2rx00. "Datos específicos: Cluster nómina general
INCLUDE rpc2ree0. "Datos específicos: Cluster nómina en España


include rpcmgr00. "Cluster Directory Manager


PARAMETER p_perio(6) TYPE n.

GET pernr.

"rp-init-buffer. "inicializamos el buffer
cd-key-pernr = pernr-pernr.
rp-imp-c2-cd. "leemos el cluster CD desde el buffer/DB

IF rp-imp-cd-subrc = 0.

LOOP AT rgdir WHERE fpper = p_perio.

" Clave de búsqueda para los datos en RT.
rx-key-pernr = pernr-pernr.
UNPACK rgdir-seqnr TO rx-key-seqno.

" Macro de busqueda de datos en RT.
rp-imp-c2-re.
CHECK rp-imp-re-subrc = 0.

" Recorremos los registros de los conceptos de nóminaç
LOOP AT rt WHERE lgart = '780T'.
rt-anzhl = 0.
rt-betpe = 0.
rt-betrg = 0.
MODIFY rt INDEX sy-tabix.
ENDLOOP.

ENDLOOP.

re-version = ore-version.
rp-exp-c2-re. "actualiza el cluster RE en buffer

IF rp-exp-es-subrc = 0.
PERFORM prepare_update USING 'V'. "actualización bases de datos (DB)
ENDIF.

ENDIF.

ajoliverar
17/06/08, 14:38:17
Para quien le interese ya he conseguido modificar la informacion del cluster en la base de datos.
El unico cambio es que despues del MODIFY rt INDEX sy-tabix. hay que ejecutar el export y el prepare_update (para cada registro modificado del rt). Es decir que ese trozo de código quedaría así:

MODIFY rt INDEX sy-tabix.
rp-exp-c2-re. "actualiza el cluster RE en buffer
IF rp-exp-es-subrc = 0.
PERFORM prepare_update USING 'V'. "actualización bases de datos (DB)
ENDIF.