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 17/09/10, 17:30:31
Christian Salgado Christian Salgado is offline
Junior Member
 
Fecha de Ingreso: ene 2009
Mensajes: 21
Question Ayuda... Sobre Field Siymbol

Buenos dias Foro, estoy tratando de mejorar los tiempos de respuesta de algunos procesos que tengo y estoy intentando trabajar con FIELD-SYMBOL, estoy haciendo lo siguiente:
CREATE DATA REF_ITAB TYPE STANDARD TABLE OF BKPF WITH NON-UNIQUE DEFAULT KEY.
ASSIGN REF_ITAB->* TO <FS_ITAB>.
SELECT * FROM BKPF
INTO TABLE <FS_ITAB>
WHERE BUKRS IN P_BUKRS AND
BLART IN ('01','07','08') AND
BLDAT IN P_BLDAT AND
TCODE = 'MIRO'.

CREATE DATA REF_WA LIKE LINE OF <FS_ITAB>.
ASSIGN REF_WA->* TO <FS_WA>.
Cuando yo declaro el <FS_ITAB> de la siguiente manera: FIELD-SYMBOLS: <FS_ITAB> TYPE ANY TABLE… no hay ningún problema, pero el tema es que yo quiero que este <FS_ITAB> tenga la misma estructura que este temporal:
DATA: BEGIN OF TI_BKPF OCCURS 0,
BUKRS LIKE BKPF-BUKRS, " Soceidad
BELNR LIKE BKPF-BELNR, " Número de un documento contable
GJAHR LIKE BKPF-GJAHR, " Ejercicio
BLDAT LIKE BKPF-BLDAT, " Fecha de documento en documento
BUDAT LIKE BKPF-BUDAT, " Fecha de contabilización en el documento
BLART LIKE BKPF-BLART, " Clase de documento
AUGBL LIKE BSEG-AUGBL, " Compensacion
XBLNR LIKE BKPF-XBLNR, " Número de documento de referencia
AWKEY LIKE BKPF-AWKEY, " Clave de referencia
CPUDT LIKE BKPF-CPUDT, " Día del registro
END OF TI_BKPF.
Necesito que tenga la misma estructura ya que luego hare otro select a la BSEG donde me permita actualizar el campo AUGBL. Lo estoy haciendo asi:
LOOP AT <FS_ITAB> INTO <FS_WA>.
SELECT SINGLE AUGBL
INTO <FS_WA>-AUGBL
FROM BSEG
WHERE BUKRS = <FS_WA>-BUKRS AND
BELNR = <FS_WA>-BELNR AND
GJAHR = <FS_WA>-GJAHR.
Pero me sale que el campo AUGBL no existe…como podría hacerlo por favor. Muchas gracias
Responder Con Cita
  #2  
Viejo 17/09/10, 20:58:02
mystic_soul mystic_soul is offline
Member
 
Fecha de Ingreso: sep 2007
Mensajes: 76
Trabajar con field symbols es parte de la programacion dinamica, y no creo que te vaya a ayudar a bajar los tiempos de respuesta. Es mas, creo que te daria el mismo resultado que trabajando sin field symbols.
Yo me enfocaría mas por otro lado.. Por ejemplo, en el codigo que pusiste, veo que haces un select a la bseg dentro de un loop, y esto te demandaria mucho mas tiempo, porque estas accediendo muchas veces a la tabla.. En vez de eso, pondria..

select augbl
from bseg
into table t_bseg
for all entries in <fs_itab>
where bukrs eq <fs_itab>-bukrs and
belnr eq <fs_itab>-belnr and
gjahr eq <fs_itab>-gjahr.

Y dentro de la tabla t_bseg te traes el campo augbl..

Espero que te ayude!
Saludos!
Responder Con Cita
  #3  
Viejo 17/09/10, 21:27:54
Christian Salgado Christian Salgado is offline
Junior Member
 
Fecha de Ingreso: ene 2009
Mensajes: 21
Gracias!!!

Muchas gracias!!!!!!
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 04:56:12.


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