Ver Mensaje Individual
  #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