Procedimientos almacenados en componentes de destino
En este ejemplo explicamos cómo llamar a un procedimiento almacenado que toma parámetros de entrada y actualiza una base de datos. Al llamar al procedimiento con este método se pueden habilitar las transacciones y revertir la acción en caso de error, así como añadir una instrucción SQL personalizada antes de llamar al procedimiento. En este ejemplo se asume que el procedimiento actúa como un componente de destino en MapForce y que no nos interesan los resultados que este devuelve. Para aprender cómo pasar parámetros y también datos de asignación devueltos a un procedimiento almacenado, consulte el apartado Procedimientos almacenados con parámetros de entrada y salida.
Primero vamos a crear el procedimiento almacenado de ejemplo en la base de datos "AdventureWorks". Para ello, ejecute el siguiente script en la BD. Puede hacerlo desde una ventana de consultas de la aplicación de Microsoft SQL Server Management Studio o directamente desde la pestaña Consulta de la BD de MapForce (consulte Examinar y consultar bases de datos). En ambos casos, asegúrese de que su cuenta de usuario de la base de datos tiene permisos para crear procedimientos almacenados.
CREATE PROCEDURE Production.uspAddProductModel |
El procedimiento almacenado anterior toma dos parámetros (@ModelName, @Inst) como entrada e inserta los valores correspondientes en la tabla ProductModel de la BD AdventureWorks junto con otros datos generados por la base de datos.
Los siguientes pasos explican cómo crear una asignación que consuma fatos devueltos por este procedimiento.
1.Conéctese a la BD "AdventureWorks" desde MapForce y añada el procedimiento almacenado a la asignación como se describe en el apartado Agregar procedimientos almacenados a la asignación. Asegúrese de que su cuenta de usuario de la base de datos tiene permisos para ver y ejecutar procedimientos almacenados.
2.Haga clic en el botón para mostrar el menú contextual (), junto al procedimiento almacenado, y seleccione Mostrar nodos como destino. El procedimiento almacenado ahora aparece como componente de destino en la asignación, donde encontramos los parámetros de entrada se encuentran a la izquierda.
3.Vuelva a hacer clic en el botón para mostrar el menú contextual () y seleccione Configuración del procedimiento. Este paso opcional permite ejecutar el procedimiento almacenado dentro de una transacción que se puede revertir en caso de error. También puede añadir una instrucción SQL personalizada que se ejecute antes de llamar al procedimiento.
4.Marque la casilla Usar transacciones.
Nota: | en este ejemplo hemos deshabilitado el seguimiento de BD a nivel de los componentes de la BD y no se ha indicado que se inicie ningún seguimiento. Sin embargo, puede habilitar el seguimiento de BD para procedimientos almacenados si lo necesita. Para más información consulte Seguimiento de BD y registro de errores. |
5.Añada el componente de origen que proporciona los datos que se deben insertar en la BD. En este ejemplo los datos de origen vienen dados por constantes; sin embargo, cualquier otro componente de origen compatible con MapForce podría servir como datos de entrada. Para más información sobre constantes consulte el apartado Agregar una constante a una asignación de datos.
Esta asignación actualiza una base de datos, por lo que no existe una vista previa de sus resultados, como ocurre con otras asignaciones. Al hacer clic en el botón Resultados, en la pestaña correspondiente aparecerá una especie de SQL con pistas sobre cómo se modificará la BD. Si habilita las transacciones, estas ocurrirán como describen los comentarios de la pestaña Resultados.
Esa especie de SQL que aparece en el panel Resultados no muestra los comandos reales de las transacciones, sino solo pistas (como comentarios). Los comandos SQL de verdad se envían a la API de BD subyacente. |
Puede ejecutar la asignación en la BD de dos maneras:
•En el menú Resultados, haga clic en Ejecutar script SQL.
•Haga clic en el botón de la barra de herramientas Ejecutar script SQL .
Procedimientos almacenados y entradas duplicadas
Si necesita asignar datos de distintos orígenes desde la asignación a un mismo procedimiento almacenado puede duplicar ese procedimiento almacenado para que acepte varios orígenes. Para ello, haga clic con el botón derecho en el elemento del procedimiento almacenado del componente y seleccione Agregar un duplicado de entrada en el menú contextual (véase también Duplicar entradas). Cuando ejecute la asignación, esta llamará a esos procedimientos almacenados una vez por cada duplicado de entrada.
Observe que el comando Agregar un duplicado de entrada está deshabilitado para los parámetros de procedimientos almacenados porque cada parámetro es un valor atómico (y también podría ser "nullable").