Ver Mensaje Individual
  #1  
Viejo 15/06/11, 11:48:21
Avatar de playa82
playa82 playa82 is offline
Member
 
Fecha de Ingreso: abr 2007
Mensajes: 34
Talking Actualizar valores de TC de infotipo 0008

Hola, tengo un problema con la actualización de los importes que aparecen en el table control del infotipo 0008:

En la user exit de PA (tb lo he probado en la badi de PA), recupero sus valores mediante la función 'BAPI_BASICPAY_GETDETAIL' y en base al grado de ocupación del empleado, quiero modificar sus importes.
Por debuguer he modificado los importes y los estoy intentando mostrar de nuevo en el TC usando field-symbols y el método pnnnn_to_prelp, ¡pero no hay manera!

Pongo mi código:
CALL FUNCTION 'BAPI_BASICPAY_GETDETAIL'
EXPORTING
employeenumber = le_0008-pernr
subtype = le_0008-subty
objectid = le_0008-objps
lockindicator = le_0008-sprps
validitybegin = le_0008-begda
validityend = le_0008-endda
recordnumber = le_0008-seqnr
TABLES
wagetypes = gt_q0008.
IF sy-subrc EQ 0.

LOOP AT gt_q0008 INTO ge_q0008.

* Actualizar su importe en función del grado de ocupación
ld_100 = ( ge_q0008-amount * 100 ) / le_0008-bsgrd.
ge_q0008-amount = ( ld_100 * pe_0008-bsgrd ) / 100.

* ACTUALIZAR PANTALLA
ld_tabix = sy-tabix.
* Con esto estaría informando los campos de pantalla --> pero no funciona
CONCATENATE '(MP000800)P0008-BET' ld_tabix INTO ld_campo.
ASSIGN (ld_campo) TO <fs_salary>.
<fs_salary> = ge_q0008-amount.

* Con esto la estructura ge_0008 que luego paso de nuevo a pantalla mediante un método.
CONCATENATE 'PE_0008-BET' ld_tabix INTO ld_0008.
ASSIGN (ld_0008) TO <fs_0008>.
<fs_0008> = ge_q0008-amount.

ENDLOOP.
UNASSIGN <fs_salary>. UNASSIGN <fs_0008>.

* Devolver información actualizada
CALL METHOD cl_hr_pnnnn_type_cast=>pnnnn_to_prelp
EXPORTING
pnnnn = pe_0008
IMPORTING
prelp = innnn.

Un saludo y gracias!!!
Responder Con Cita