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).
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.