Crear funciones definidas por el usuario
En esta sección explicamos cómo crear, importar, editar, copiar, pegar y eliminar funciones definidas por el usuario.
Crear una función definida por el usuario
Aquí explicamos cómo crear una función definida por el usuario desde cero y a partir de componentes que ya existen. El requisito mínimo es un componente de salida al que haya datos conectados. En cuanto a los parámetros de entrada, una función puede no tener ninguno o tener uno o más. Los parámetros de entrada o de salida pueden ser de tipo simple (como una cadena de texto o un número entero) o de tipo complejo (una estructura). Para más información sobre parámetros simples y complejos, consulte el apartado Parámetros en funciones definidas por el usuario.
Crear una función definida por el usuario desde cero
Para crear una función definida por el usuario desde cero siga estos pasos:
1.Seleccione Función | Crear una función definida por el usuario. También puede hacer clic en el botón de la barra de herramientas.
2.Introduzca la información requerida en los campos correspondientes del cuadro de diálogo Crear una función definida por el usuario (tabla siguiente).
A continuación mostramos las opción disponibles.
•Nombre de la función: Campo obligatorio. Introduzca un nombre para la función definida por el usuario que quiere crear. Caracteres válidos: caracteres alfanuméricos (a-z, A-Z, 09), barra baja ( _ ), guion ( - ) y dos puntos ( : ).
•Nombre de la biblioteca: Campo obligatorio. Introduzca el nombre de la biblioteca a la que debe pertenecer la función (en la ventana Bibliotecas). Si no indica ninguna biblioteca, la función aparecerá en una biblioteca predeterminada llamada user.
•Sintaxis: Campo opcional. Introduzca en formato texto una breve descripción de la sintaxis de la función (por ejemplo, los parámetros que se esperan). Este texto se mostrará junto a la función en la ventana Bibliotecas y no afecta a la implementación de la función.
•Detalle: Campo opcional. Introduzca en formato texto una descripción libre de la función. Este texto se mostrará cuando pase el cursor sobre la función en la ventana Bibliotecas o en otros contextos.
•Uso inline: Marque esta casilla si quiere crear la función como inline. Para más información, consulte el apartado Funciones definidas por el usuario inline y regulares.
3.Haga clic en Aceptar. La función aparecerá automáticamente en la biblioteca que haya indicado antes. Ahora también puede crear la nueva función en la ventana de asignaciones (esta es una asignación independiente a la que se hace referencia como la asignación de la función). Como toda función necesita un componente de salida, la asignación de la función incluye uno por defecto.
4.Agregue a la asignación de la función todos los componentes requeridos en la definición de la función como haría para cualquier asignación estándar.
Para usar la función definida por el usuario en una asignación arrástrela desde la ventana Bibliotecas hasta el área principal de asignación. Consulte también Llamar e importar funciones definidas por el usuario más abajo.
Crear una función definida por el usuario a partir de componentes ya existentes
Para crear una función definida por el usuario a partir de componentes ya existentes siga estos pasos:
1.Seleccione varios componentes de la asignación dibujando un rectángulo con el cursor. También puede seleccionar varios componentes haciendo clic en cada uno de ellos mientras mantiene pulsada la tecla Ctrl.
2.Seleccione Función | Crear una función definida por el usuario a partir de la selección. También puede hacer clic en el botón de la barra de herramientas.
3.Siga los pasos 2-4 que hemos descrito en Crear una función definida por el usuario desde cero.
Funciones definidas por el usuario inline y regulares
Existen dos tipos de funciones definidas por el usuario: inline y de tipo estándar. Puede indicar si una función debe ser inline o de tipo estándar al crearla. Las funciones inline y de tipo estándar se comportan de forma diferente a la hora de generar código, en cuanto a recursividad y al tener varios parámetros de salida. En la tabla siguiente puede ver las diferencias principales entre estos dos tipos de funciones.
Funciones inline (borde discontinuo) | Funciones regulares (borde sólido) |
---|---|
El código de la función definida por el usuario se inserta en todos los lugares en los que se llama a la función, lo que aumenta considerablemente el tamaño del código.
| El código de la función definida por el usuario se genera una vez y sus componentes de entrada se le pasan como valores de parámetros. Si se llama varias veces a la función, esta se evalúa cada vez con los valores de parámetro |
Las funciones inline pueden tener varios componentes de salida y por tanto devolver varios valores. | Las funciones de tipo estándar solo pueden tener un componente de salida. Para que devuelvan varios valores puede declarar que la salida es de tipo complejo (por ejemplo, estructura XML), lo que permitiría pasar varios valores al usuario.
|
No se puede llamar a las funciones inline de forma recursiva. | Se puede llamar de forma recursiva a las funciones de tipo estándar.
|
Las funciones inline no permiten establecer un contexto de prioridad en un parámetro. | Las funciones estándar permiten establecer un contexto de prioridad en un parámetro.
|
Las funciones definidas por el usuario inline afectan y se ven afectadas por el contexto de la asignación de datos que llama a la función definida por el usuario.
| Las funciones definidas por el usuario normales tienen su propio contexto local. |
Nota: | cambiar el tipo de una función definida por el usuario de inline a estándar y viceversa puede afectar el contexto de la asignación, lo que a su vez puede afectar al resultado de la asignación. |
Importar y llamar a funciones definidas por el usuario
Una vez haya creado una función definida por el usuario puede llamarla desde la asignación en que la creó o desde cualquier otra.
Llamar a una función definida por el usuario desde la misma asignación
Para llamar a una función definida por el usuario desde la misma asignación siga estos pasos:
1.Busque la función en la ventana Bibliotecas, bajo la biblioteca que indicó al crear la función. Para ello comience a escribir su nombre en la ventana Bibliotecas.
2.Arrastre la función desde la ventana Bibliotecas hasta la asignación principal Ahora puede conectarla a todos los parámetros necesarios.
Importar una función definida por el usuario desde otra asignación
Para importar una función definida por el usuario desde otra asignación siga estos pasos:
1.Haga clic en el botón Agregar o quitar bibliotecas, en la parte inferior de la ventana Bibliotecas. Se abre la ventana Gestionar bibliotecas.
2.Para importar funciones como biblioteca local (dentro del archivo de asignación actual solamente), haga clic en Agregar bajo el nombre de la asignación activa. Para importar funciones como biblioteca global (a nivel de programa), haga clic en Agregar, junto a Bibliotecas globales importadas. Cuando se importa una biblioteca de forma local, puede hacer que la ruta de acceso al archivo de la biblioteca sea relativa al archivo de asignación. Con las bibliotecas globales la ruta siempre es absoluta.
3.Navegue hasta el archivo .mdf que contiene la función definida por el usuario y haga clic en Abrir. Un mensaje le informará de que se añadió una biblioteca nueva a la que puede acceder desde la ventana Bibliotecas.
Ahora puede arrastrar cualquiera de las funciones importadas en la asignación actual desde la ventana Bibliotecas hasta la asignación para usarlas. Para más información consulte Gestionar bibliotecas de funciones.
Asignaciones y credenciales (Enterprise Edition)
Si el archivo .mdf que se importa contiene credenciales, estas aparecen como importadas (con un fondo amarillo) en el Gestor de credenciales. Por defecto, las credenciales importadas no se guardan en la asignación, pero si quiere hacerlo basta con crear una copia local y guardar esas credenciales en la asignación principal. Consulte Credenciales en funciones definidas por el usuario.
Editar funciones definidas por el usuario
Para edita una función definida por el usuario siga estos pasos:
1.Abra la asignación que contiene la función definida por el usuario.
2.Haga doble clic en la barra del título de la función definida por el usuario en la asignación. La ventana Asignación cambia para mostrar el contenido de la función, en el que puede añadir, editar o eliminar componentes como desee.
3.Para cambiar las propiedades de la función (como el nombre o la descripción), haga clic con el botón derecho en un punto vacío de la asignación y seleccione Configurar asignación en el menú contextual. Otra opción es hacer clic en el botón de la barra de herramientas .
También puede editar una función haciendo doble clic en su nombre en la ventana Bibliotecas. Sin embargo, solo se pueden abrir de esta forma las funciones que estén en el documento activo en ese momento. Si hace doble clic en una función definida por el usuario que se creó en otra asignación, se abrirá esa asignación en una ventana nueva. Si edita o elimina una función definida por el usuario que se ha importado a varias asignaciones, todas esas asignaciones se verán afectadas por el cambio.
Para volver a la asignación principal haga clic en el botón , que está en la esquina superior izquierda de la ventana de la asignación.
Además, se conserva un historial mientras navega por las pestañas de MapForce, incluidas las funciones definidas por el usuario. Para volver a pestañas visitadas con anterioridad, haga clic en los botones de la barra de herramientas y . Los atajos de teclado correspondientes para estas acciones son respectivamente Alt+flecha izquierda y Alt+flecha derecha.
Copiar y pegar funciones definidas por el usuario
Para copiar una función definida por el usuario en otra asignación siga estos pasos:
1.Abra la ventana Gestionar bibliotecas.
2.Haga clic con el botón derecho en un área vacía de la ventana Bibliotecas y seleccione la opción Mostrar todos los documentos abiertos.
3.Abra las asignaciones de origen y de destino. Asegúrese de que ambas están guardadas en disco. De lo contrario las rutas de acceso no se pueden resolver correctamente. Consulte también Rutas relativas y las acciones cortar y pegar.
4.En la asignación de origen de la ventana Gestionar bibliotecas haga clic con el botón derecho en la función definida por el usuario en cuestión y seleccione Copiar en el menú contextual (imagen siguiente) o pulse Ctrl+C. Deje abierta la ventana Gestionar bibliotecas.
5.Cambie la asignación de destino (la ventana Gestionar bibliotecas cambiará a su vez), haga clic con el botón derecho en Funciones definidas por el usuario y seleccione Pegar en el menú contextual.
Eliminar funciones definidas por el usuario
Para eliminar una función definida por el usuario siga estos pasos:
1.En la asignación haga doble clic en la barra del título de la función en cuestión.
2.Haga clic en el botón , en la parte superior derecha de la ventana Asignación.
3.Si la función se usa en la asignación abierta actualmente, MapForce le preguntará si quiere reemplazar todas las instancias con componentes internos. Haga clic en Sí si quiere eliminar la función y reemplazar todas las instancias en que se llama a la función con componentes de la función. De esta forma la asignación sigue siendo válida aunque se haya eliminado la función. Sin embargo, si usa la función eliminada en una asignación externa, no será válida. Haga clic en No si quiere borrar la función y todos sus componentes de forma permanente. En este caso todas las asignaciones en las que se use esa función dejarán de ser válidas.