PDA

Ver la Versión Completa : Actualizacion de Infotipos


isratol
05/03/08, 17:31:39
Buen dia,

Sabran que otra opcion tengo para actualizar un Infotipo Z?
Estoy usando el FM "HR_INFOTYPE_OPERATION" pero no funciona cuando le envio el infotipo 9020... pero cuando le mando el infotipo 0002 funciona perfectamente...

que otra forma hay para actualizar un infotipo Z?... hay alguna otra funcion? y como se usa?

Saludos...

Floren
06/03/08, 09:58:25
Hola isratol

Una solución es utilizar la macro RP-UPDATE.

Tengo un post en mi blog sobre ésto, espero pueda ayudarte:
http://blogdefloren.wordpress.com/2008/03/06/modificacion-de-infotipos-mediante-macro/

Un saludo

Mar_83
06/03/08, 11:05:24
Hola Isratol!
te paso este ejemplo a ver si te puede ayudar.

RP-UPDATE datos_antiguos datos_nuevos.
Un ejemplo sería:
REPORT ZPRUEBA .
TABLES: PERNR.
* Definimos una tabla interna llamada OLD/NEW con la misma estructura
* que 0001.
INFOTYPES: 0001 NAME OLD,
0001 NAME NEW.

START-OF-SELECTION.

GET PERNR.
* Cuando se efectura el GET las tablas internas OLD y NEW están llenas
* con el resultado de la búsqueda
PROVIDE * FROM OLD BETWEEN PNPBEGDA AND PNPENDDA.
WRITE:/, OLD-PERNR, 'OLD-PERSK':, OLD-PERSK.
* Ponemos el nuevo valor a la tabla NEW
NEW-PERSK = '22'.
WRITE:/ 'NEW-PERSK':, NEW-PERSK.
* Modificamos la tabla interna, no insertamos porque ya esta llena
MODIFY NEW INDEX SY-TABIX.
ENDPROVIDE.
* Llamamos a la macroinstrucción RP-UPDATE pasando la tablas interna
* con los viejos y nuevos datos.
RP-UPDATE OLD NEW.

isratol
06/03/08, 14:11:42
Ese macro no me es muy util, ya que yo estoy haciendo la actualizacion desde un Modulo de funcion, y esa macro segun me dijeron, debe ser utilizada en un programa y no en un FM...

Saben por que razon la funcion HR_INFOTYPE_OPERATION no funciona con infotipos Z???
Gracias por sus respuestas, ojala m puedan ayudar..

Saludos.

Floren
06/03/08, 15:41:11
Otra opción es hacer un call transaction a la PA30.

¿Lo has probado?

javibest
10/03/08, 11:28:03
La FM hr_infotype_operation no es mas que un call transaction a la PA30 o Pa40. Solo tienes que llamar a la funcion, y cambiar la forma de no visible a Visible o a modo errores, y veras donde te falla tu funcion. hr_infotype_operation no funciona para todos los infotypos. De hecho, para algunos infotypes , hay bapis concretas para crear/actualizar.

Saludos

playa82
16/11/09, 11:11:21
A mi esa función solo me ha dado la lata si es llamada desde badis o user exits, al usarla en FM o reports no.

No se, ¿has bloqueado (HR_EMPLOYEE_ENQUEUE)y desbloqueado (HR_EMPLOYEE_DEQUEUE) previamente al empleado?