Subrutina externa

Buenas.

Estoy siguiendo con el aprendizaje de ABAP y en este momento me he topado con que desde un programa cualquiera, he llamado a una subrutina que se encuentra en otro programa y a las variables globales que se encuentran dentro de un INCLUDE.
Como se ve en el código que hay a continuación se llama al include “ZABAP_INCLUDE”, que contiene las variables globales.
Posteriormente, se llama a la subrutina, que se encuentra dentro de otro programa “ZABAP_EJERCICIOS”.

El problema que tengo es que cuando le paso un número por parámetro, configurado en el INCLUDE, cuando accede a la subrutina me inicializa todos los valores a 0.
Cómo habría que hacer esta llamada?
Habría que introducir despues de la llamada “USING”?

INCLUDE ZABAP_INCLUDE.

gv_vuel = 1.
MOVE gp_num TO gv_num.

PERFORM bucle(ZABAP_EJERCICIOS).
1 me gusta

Hola,

Creo que acá tenés dos opciones.

La primera es la que estás comentando, el using, pero eso implicaría modificar el perform del programa original, ya que la cantidad de parámetros que usamos al llamar al perform y al crear el form debe ser la misma.

O sea, si dice PERFORM extraer_datos USING gv_test, del otro lado debe decir FORM extraer_datos USING p_test TYPE c (por ejemplo).

la otra, es modificar el valor de la variables del otro programa antes del perform usando field-symbols, te dejo un link para que veas como funciona, es el modo 2.

h_tps://blogs.sap.com/2015/09/16/leer-datos-de-otro-programa-abap/

Espero que te sirva!
Sebastián

1 me gusta

Perdonad la tardanza.

Muchas gracias @sconoredhot . Voy a probar a ver si doy con la clave y te cuento.

1 me gusta

Este tema se cerró automáticamente 91 días después del último post. No se permiten nuevas respuestas.