Funciones definidas por el usuario 

Objetivo

Las funciones permiten utilizar los propios módulos de funciones para verificar valores y deducir valores de característica.

En una función, se hace referencia a un módulo de funciones ABAP. El módulo de funciones permite copiar las características y los valores de característica como entradas de tabla. En un módulo de funciones, se puede acceder a todas las opciones habituales para un tratamiento posterior.

Cuando se llama un módulo de funciones definido por el usuario, la configuración de variantes de SAP pierde el control de las posibles situaciones de error: la persona que programa el módulo de funciones puede utilizar todos los elementos lingüísticos ABAP, pero tiene toda la responsabilidad del código.

Por ejemplo, se recomienda crear módulos de funciones para:

Se puede utilizar una función para concatenar valores relativos a una característica con el fin de formar un string de texto. El valor de la característica ID_puerta se puede definir como un string formado a partir de la concatenación de los valores de las características Material_puerta, Ancho_puerta y Altura_puerta.

En un módulo de funciones, se puede definir que se encadenen los valores de las características Material_puerta, Ancho_puerta y Altura_puerta para formar el valor de la característica ID_puerta. Para ello, defina un módulo de funciones con la siguiente llamada:

‘concatenate Material_puerta Ancho_puerta Altura_puerta en ID_puerta’

A continuación, cree la función y defina este módulo de funciones en la función. Incluya las características Material_puerta, Ancho_puerta, Altura_puerta e ID_puerta en la función y defina las alternativas de evaluación. En este caso, se debe definir ID_puerta como campo de datos, ya que se tienen que deducir los valores de esta característica.

Integración

Las funciones se pueden utilizar en condiciones de selección, condiciones previas, acciones, procedimientos y restricciones.

Características

Existen dos pasos para crear funciones:

  1. Definir un módulo de funciones para procesar características que se trasladan a través de una interfase.
  2. Crear una función, registrando el módulo de funciones y las características. Si la función es para deducir valores, definir alternativas de evaluación.
  3. Las características de la función pueden ser las mismas que las de la clase si tienen un solo valor. Si las características de la clase tienen varios valores, deben crearse características de un valor expresamente para la función.

  4. Registre la función en la relación de objetos. Se comparan las características de la función con las de la clase de variante.

FUNCTION <nombre función>

(<característica de función> = <característica de clase>,

<característica de función> = <característica de clase>)

Llamada en una condición previa o de selección

Todas las características registradas se interpretan como parámetros de entrada del módulo de funciones. El módulo de funciones sólo sirve para determinar un resultado afirmativo o negativo para dichos parámetros de entrada. Si no se cumple la condición, el módulo de funciones deberá señalarlo mediante la excepción predefinida FAIL. En este contexto no se podrán deducir valores.

Llamada en una acción o un procedimiento

En una acción o un procedimiento, se puede utilizar una llamada de función para deducir valores. En la alternativa de evaluación, especifique las características que son parámetros para import y las que son parámetros para export del módulo de funciones. Los parámetros de salida (valores de retorno) se deben referir a características de la clase de uno o varios valores. Si uno de los parámetros de entrada no tiene ningún valor asignado en la configuración, no se llama la función.

Las llamadas de función en las acciones y los procedimientos leen únicamente la primera alternativa de evaluación, al igual que las llamadas de tabla.

Llamada de función en restricciones

Se puede utilizar una llamada de función en la parte de condición de una restricción (test para la excepción FAIL) y en la parte de restricciones (test y deducción).

Limitaciones