MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #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
  #2  
Viejo 15/06/11, 16:09:32
Avatar de stormshadow
stormshadow stormshadow is offline
Senior Member
 
Fecha de Ingreso: jun 2008
Mensajes: 117
mmm y para que asignas primero unos valores a <fs_salary> y luego lo igualas con otro valor? lo mismo haces con <fs_0008> :S y aparte los valores de tú field symbol no se los mandas a tú método verdad? le mandas otra tabla, ya te aseguraste que tenga valores???
__________________
"Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein
Responder Con Cita
  #3  
Viejo 16/06/11, 06:32:12
Avatar de playa82
playa82 playa82 is offline
Member
 
Fecha de Ingreso: abr 2007
Mensajes: 34
Es que se puede decir que he hecho dos cosas juntas, dos ideas que he leido por internet y como ninguna me ha funcionado por separado, pues he hecho las dos juntas al final y tampoco, jeje.
- El primer field-symbol <fs_salary> lo uso para rellenar supuestamente el table control en pantalla, es decir, relleno los campos (MP000800)P0008-BETXX, que se supone que son las columnas de importe del table control --> no funciona
- El segundo field-symbol <fs_0008> lo uso para rellenar la estructura PE_0008 de tipo P0008 que leo de pantalla y modifico (con el field-symbol modifico los campos PE_0008-BETXX) para luego devolverla de nuevo a la pantalla con el método pnnnn_to_prelp.
Recupero bien toda la información y todas las estructuras están bien rellenas, vamos, q lo tengo superprobado, pero no sé pq la pantalla no se actualiza.
__________________
Yo misma
Responder Con Cita
  #4  
Viejo 16/06/11, 08:25:06
Avatar de playa82
playa82 playa82 is offline
Member
 
Fecha de Ingreso: abr 2007
Mensajes: 34
Thumbs up

CONSEGUIDO!!!

He visto que en el PBO del infotipo 0008 se maneja la tabla TBLGART y como es accesible desde mi código, apuntándola con un field-symbol puedo modificar su contenido!

FIELD-SYMBOLS:
<fs_tabla> TYPE table.

* Apuntar al TC del infotipo 0008
ld_nomtabla = '(MP000800)TBLGART[]'.
ASSIGN (ld_nomtabla) TO <fs_tabla>.

Gracias!
__________________
Yo misma
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 20:52:05.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web