Hoy quiero explicar como hago para pasarle un rango a una función. La verdad es que no he creado muchas funciones, porque no soy nada ordenado. Una caracteristica muy mala en un programador, claro está a mi parecer. Por lo que me gustaría si alguién sabe otra forma más comoda de hacerlo lo comente. Sin más rodeos vamos a empezar a describir el proceso.
Como todos sabemos las funciones constan de varias pestañas a través de las cuales les podemos comunicar datos.
Import - Son los parámetros de entrada a la función. Se pueden pasar valores individuales creando el campo referenciandolo a un tipo, o como un campo de una tabla o simplemente indicadole de que tipo es.
Export - Son básicamente igual que los parámetros de entrada, con la única diferencia que son parámetros de salida. Es decir el resultado que nos va a devolver la función.
Modif - Son parametros de entrada/salida es decir que les pasamos un valor y nos devuelve otro.
Y por último Tablas - Son tablas internas que les pasamos a la función, y que son tanto de entrada como de salida. Pues bien este tipo de parámetros son los que vamos a aprovechar para poder pasarle rangos a la función. Ya que un rango no es más que una tabla interna con una determinada estructura.
Pues bien solamente tenemos que buscar una estructura que corresponda al rango que queremos crear. Ejemplo si queremos crear un rango del tipo de centro. Nos vamos a la transacción SE11, pinchamos en tipos de datos y escribimos werks* y le damos al matchcode. Al leer todas las opciones posibles encontraremos una que es werks_rang rangos para werks. Y utilizamos este tipo de dato para crear nuestra tabla de entrada.
Por ultimo solamente tenemos que definirnos un rango igual en el include top del grupo de funciones y asignar el uno al otro.
Bueno como siempre espero vuestras sugerencias, y otras formas de hacer esto.
Compartelo