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 09/10/08, 11:32:06
Bego86 Bego86 is offline
Junior Member
 
Fecha de Ingreso: ene 2008
Mensajes: 27
¿Cómo pasar una tabla en un perform? Me da error

Mi form es el siguiente

PERFORM p_actualizar_clase using d_clase tabla.

FORM p_actualizar_clase using d_clase tabla.
.......
.......
ENDFORM.

El error que me da es el siguiente:
"TABLA" is neither specified under "TABLES"nor defined as an internal table.

La tabla esta declarada vale?
Supongo que falta algo al pasar la tabla pero no lo se.

Espero que podais ayudarme.
Gracias
Responder Con Cita
  #2  
Viejo 09/10/08, 12:03:36
goyleo goyleo is offline
Senior Member
 
Fecha de Ingreso: sep 2007
Mensajes: 102
Este tipo de declaracion utilizo para pasar tablas por parametros espero te sirva.


TYPES: BEGIN OF ty_equnr,
equnr TYPE equi-equnr,
END OF ty_equnr.

TYPES: tty_equnr TYPE STANDARD TABLE OF ty_equnr.

DATA gt_equnr TYPE tty_equnr.

PERFORM obtener_equipos USING gt_equnr[]

FORM obtener_equipos USING p_gt_equnr TYPE tty_equnr.
....
....
ENDFORM.
Responder Con Cita
  #3  
Viejo 09/10/08, 14:44:45
acha3318 acha3318 is offline
Senior Member
 
Fecha de Ingreso: abr 2008
Localización: Cali - Colombia
Mensajes: 182
Saludos BEGO86,

Bueno primero que todo los llamados a subrutinas "PERFORM" tienen 3 formas para ser usados por el programador de acuerdo a sus necesidades y son:

1- TABLES
2- USING
3- CHANGING

TABLES: Cuando invocas el parametro TABLES le estas diciendo al PERFORM que en ese parametro vas a enviar o pasar una estructura o tabla interna o la vas a recibir ENTRADA/SALIDA.

USING: Cuando invocas el parametro USING, le vas a decir al PERFORM que vas a pasar parametros, para ser tratados dentro del FORM.

CHANGING: Cuando usas este parametro le vas a decir a PERFORM, que de acuerdo a los datos que le has pasado a traves de TABLES y USING vas a realizar un proceso y el resultado de ese proceso lo vas a devolver en los parametros que tu coloques en la sentencia "CHANGING", te aclaro que si tu resultado es la salida de otra tabla interna lo puedes hacer en la definición de TABLES.

Para no alargarme te mando una muestra de ejemplo:

1- En el TOP declaro mi tabla interna
DATA: BEGIN OF it_zproce OCCURS 0.
INCLUDE STRUCTURE zproce.
DATA: END OF it_zproce.


* Hago un llamado para Obtener el tipo de proceso,
la idea es que la tabla interna it_zproce, entra vacia y cuando
sale del PERFORM sale llena por que en el parametro USING tengo un
parametro "entrada" que es una estructura, y este contiene la llave
para hacer un select a la tabla de procesos.

Entonces:
TABLES it_zproce: Tabla interna que entra vacia y sale llena.
USING entrada: Es una estructura que contiene los datos para leer la tabla
zproce, y llenar la tabla interna it_zproce.
CHANGING codigo_error
texto_error
status_bloqueo
w_result:
Como puedes ver son parametros de retorno que me informan
como le fué al proceso dentro del FORM.

PERFORM obtener_tipo_proceso TABLES it_zproce
USING entrada
CHANGING codigo_error
texto_error
status_bloqueo
w_result.

Asi debe quedar el form por dentro:

FORM obtener_tipo_proceso TABLES p_it_zproce STRUCTURE it_zproce
USING p_entrada LIKE zparam_mf
CHANGING p_codigo_error
p_texto_error
p_status_bloqueo
p_result.

........ Codigo del proceso etc etc etc.
...
...
ENDFORM.

Espero haberte ayudado...

Suerte ACHA
Responder Con Cita
  #4  
Viejo 09/10/08, 15:33:31
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
Hola ... si quieres pasar una tabla en un perform pero que sea una tabla interna con campos que tu has creado en tu programa (mas del 80% d casos son ese) puedes hacerlo asi:


Espero te ayude, un saludo !!
__________________
David Carballido Córdova
Responder Con Cita
  #5  
Viejo 09/10/08, 15:35:52
Bmamba Bmamba is offline
Member
 
Fecha de Ingreso: jun 2008
Mensajes: 91
types: begin of ty_tabla
...
end of ty_tabla.

data: it_tabla type standard table of ty_tabla,
wa_tabla type ty_tabla.

....
perform chequeos tables it_tabla.
....
form chequeos tables pt_tabla structure wa_tabla.

Eso no falla.
Y ya luego si quieres añadir más parámetros con USING recuerda que TABLES va siempre antes.

Saludos
Responder Con Cita
  #6  
Viejo 09/10/08, 15:47:00
Bego86 Bego86 is offline
Junior Member
 
Fecha de Ingreso: ene 2008
Mensajes: 27
EEEyyy gracias a todossssss que de respuestassss.

GRACIASSSs
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:01:20.


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