Altova MapForce 2024 Professional Edition

Procedimientos almacenados en componentes de destino

Inicio Anterior Inicio Siguiente

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
  @ModelName nvarchar(50)
  ,@Inst xml
AS
BEGIN
INSERT INTO [Production].[ProductModel]
          ([Name]          
          ,[Instructions]
          ,[rowguid]
          ,[ModifiedDate])
    VALUES
          (@ModelName          
          ,@Inst
          ,NEWID()
          ,GETDATE())
END

 

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 Mostrar el menú contextual mf_ic_storedproc_menu 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.

mf_sp_15

3.Vuelva a hacer clic en el botón Mostrar el menú contextual mf_ic_storedproc_menu 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.

mf_sp_16
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.

 

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.

mf_sp_17

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.

mf_sp_18

Esa especie de SQL que aparece en el panel Resultados no muestra los comandos reales de las transacciones, sino sólo 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 mf_ic_run-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").

 

Seguimiento a nivel de procedimiento almacenado

Para habilitar el seguimiento a nivel de procedimiento almacenado:

 

1.Asegúrese de que el nivel de seguimiento a nivel de los componentes de DB es Siempre o Error (véase más arriba).

2.Si se trata de un procedimiento almacenado, haga clic en el botón Mostrar menú contextual mf_ic_storedproc_menu y luego seleccione Configuración del procedimiento en el menú contextual.

3.Seleccione el nivel de seguimiento. La opción Usar configuración del componente hereda la misma configuración que se definió a nivel del componente. La opción Limitar a los errores restringe el seguimiento a los errores solamente. Siempre deshabilitado significa que no se hará ningún seguimiento para esa tabla o ese procedimiento almacenado.

 

© 2018-2024 Altova GmbH