Continuamos repasando los conceptos básicos de ABAP, el lenguaje de programación de SAP. En este post vamos a hablar de las subrutinas.
Las subrutinas son conjuntos de instrucciones que pueden ser llamadas desde el programa en diversas ocasiones.
Para definirlas se utilizan las palabras clave FORM y ENDFORM que se especifican al inicio y final de las instrucciones que forman la subrutina. Para llamarla se utiliza la sentencia PERFORM.
Ejemplo: PERFORM ejemplo. Llama a la subrutina.
.......
FORM ejemplo. Definición de la subrutina.
-----
ENDFORM.
El programa principal y la subrutina se pueden comunicar mediante parámetros pasados por valor o referencia, siendo recomendable especificar el tipo de dato al definirlo.
Pase de parámetros por referencia
PERFORM <nombre> USING parametro1 parametro2.
.....
FORM <nombre> USING parametro1 parametro2.
----
ENDFORM.
Los parámetros que son pasados a la subrutina en la llamada (FORMALES), se actualizan con los parámetros (ACTUALES) definidos en la subrutina.
Ejemplo: DATA: d_numero1 TYPE i VALUE 1,
d_numero2 TYPE i VALUE 2.
PERFORM sumar USING d_numero1 d_numero2.
….
FORM sumar USING l_numero1 type i
l_numero2 type i.
l_numero1 = l_numero1 + l_numero2.
ENDFORM.
Ahora: d_numero1 = 3 y d_numero2 = 2.
Pase de parámetros por referencia
PERFORM <nombre> USING parametro1 parametro2.
.....
FORM <nombre> USING VALUE (parametro1) VALUE(parametro2).
----
ENDFORM.
Los parámetros que son pasados a la subrutina no se actualizan con el valor de los parámetros definidos en la subrutina.
Ejemplo: DATA: d_numero1 TYPE i VALUE 1,
d_numero2 TYPE i VALUE 2.
PERFORM sumar USING d_numero1 d_numero2.
….
FORM sumar USING l_numero1 type i
Value( l_numero2) type i.
l_numero2 = 3.
l_numero1 = l_numero1 + l_numero2.
ENDFORM.
Ahora: d_numero1 = 4 y d_numero2 = 2.
Utilizando STRUCTURE se puede pasar como parámetro una estructura y hace referencia a sus campos en la subrutina.
Ejemplo: DATA: BEGIN OF r_provincias,
Codigo LIKE lfa1-lifnr,
Nombre LIKE lfa1-name1,
END OF r_provincias.
PERFORM informar USING r_provincias.
FORM informar USING rs_provincias STRUCTURE r_provincias.
rs_provincias-nombre = ‘JOSE’.
ENDFORM.
También se puede pasar como parámetro una tabla interna. Para hacer referencia se utiliza TABLES:
Ejemplo: DATA d_contador TYPE i VALUE 1.
DATA: BEGIN OF i_provincias OCCURS 0,
Codigo LIKE lfa1-lifnr,
Nombre LIKE lfa1-name1,
END OF i_provincias.
PERFORM informar TABLES i_provincias
USING d_contador.
FORM informar TABLES is_provincias STRUCTURE i_provincias
USING VALUE(l_contador).
is_provincias-codigo = d_contador.
is_provincias-nombre = ‘JOSE’.
APPEND is_provincias.
ENDFORM.
Se inserta el registro en la tabla interna i_provincias.
Un lugar para compartir conocimiento con todas las personas interesadas en el universo SAP
Suscribirse a:
Enviar comentarios (Atom)
Integración SAP
Cuando hablamos de SAP como sistema integrado que cubre toda la casuística de nuestro negocio estamos siendo bastante osados. Casi cualquier...
-
En este post un ejemplo de creación de un ALV con objetos en SAP. Para crear un ALV OO tenemos que crearnos una nueva DYNPRO y dentro de ...
-
En este post vamos a hablar de una utilidad vital dentro de SAP y de cualquier sistema informatico que se precio, LOS MENSAJES. En SAP los...
No hay comentarios:
Publicar un comentario