Hola Golfo81,
Haber si puedo ayudarte con el
CALL FUNCTION
Variante 1
CALL FUNCTION func.
Additions
1. ... EXPORTING p1 = f1 ... pn = fn
2. ... IMPORTING p1 = f1 ... pn = fn
3. ... TABLES p1 = itab1 ... pn = itabn
4. ... CHANGING p1 = f1 ... pn = fn
5. ... EXCEPTIONS except1 = rc1 ... exceptn = rcn
Efectos
Llama a la función func donde "func" puede ser un literal o una variable.
Para editar funciones usa el siguiente menú sap -> ABAP/4 Workbench -> Function Library .
El comando EXIT provoca la salida de la función a menos que se encuentre dentro de un bucle o de una subrutina.
Note
Puedes usar los comandos de edición " SHOW FUNCTION func " y " SHOW FUNCTION * " para obtener más información sobre la función func o sobre cualquier otra función.
Addition 1
... EXPORTING p1 = f1 ... pn = fn
Effect
EXPORTING pasa campos, cadenas o tablas internas a la función. Estos parámetros (p1 ... pn ) que se pasan a la función mediante el CALL deben también estar definidos en la propia función como parámetros de entrada "import".
Addition 2
... IMPORTING p1 = f1 ... pn = fn
Effect
IMPORTING : Son los valores que la función nos devuelve después de su tratamiento y deben de estar declarados en la propia función como parámetros de salida "export".
Addition 3
... TABLES p1 = itab1 ... pn = itabn
Effect
TABLES pasa Tablas internas por referencia. Los parámetros p1 ... pn deben ser declarados como tablas en la llamada a la función y en la propia función. Los valores de estas tablas pueden ser modificados durante la ejecución de la función de devueltos por esta con otros valores.
Addition 4
... CHANGING p1 = f1 ... pn = fn
Effect
CHANGING pasa campos, cadenas o tablas internas a la función y son devueltos los valores cambiados. Los parámetros p1 ... pn deben declararse como CHANGING parámetros en la función.
Addition 5
... EXCEPTIONS except1 = rc1 ... exceptn = rcn
Effect
EXCEPTIONS lista los errores para ser controlados por la llamada a la función. Al final de la lista de errores, puedes usar la palabra OTHERS para referirse al resto de errores que no han sido controlados.
Estos errores son devueltos por la función mediante los comandos RAISE y MESSAGE ... RAISING.
Ejemplo
DATA: FIELD(30) VALUE 'Example: This is a field.',
head(30).
CALL FUNCTION 'STRING_SPLIT'
EXPORTING
DELIMITER = ':'
STRING = FIELD
IMPORTING HEAD = HEAD
TAIL = FIELD
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
CASE SY-SUBRC.
WHEN 1. ...
WHEN 2. ....
ENDCASE.
...
DATA: BEGIN OF TAB1 OCCURS 10, X, END OF TAB1,
BEGIN OF TAB2 OCCURS 20, Y, END OF TAB2.
CALL FUNCTION 'ITAB_COPY'
TABLES TAB_IN = TAB1
TAB_OUT = TAB2.
En el primer caso se llama a la función 'STRING_SPLIT' pasándole los siguientes parámetros
DELIMITER = ':'
STRING = FIELD
IMPORTING HEAD = HEAD
TAIL = FIELD
Con estos valores la función realizará las pertinentes operaciones sin devolvernos ningún valor (importing).
No se si lo has entendido bien. si tienes más dudas pregunta.
Un saludo
.