Altova MapForce 2024 Professional Edition

Procedimientos almacenados con parámetros de entrada y salida

Inicio Anterior Inicio Siguiente

En este ejemplo explicamos cómo llamar a un procedimiento que toma parámetros de entrada y también obtiene resultados de la BD. En este caso, para llamar al procedimiento almacenado usaremos un método parecido al que usamos para llamar a un servicio web o una función, y los datos que obtenga el procedimiento se pueden asignar a cualquier otro componente de destino compatible con MapForce.

 

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.uspSearchProducts
  @SearchString nvarchar(50)
  ,@MaxPrice money
  ,@ComparePrice money OUTPUT
AS
BEGIN
  SET NOCOUNT ON      
  SELECT pr.[Name], pr.ListPrice FROM [Production].[Product] pr
  WHERE pr.[Name] like @SearchString AND  pr.ListPrice < @MaxPrice
 
  SET @ComparePrice = @MaxPrice
  RETURN @ComparePrice
END

 

El procedimiento almacenado anterior obtiene un conjunto de registros que contienen información sobre productos. Toma dos parámetros como entrada: una cadena de texto con el nombre del producto (@SearchString) y el precio máximo de ese producto (@MaxPrice). Además del conjunto de registros y del parámetro de retorno predeterminado también obtiene un parámetro de salida (@ComparePrice).

 

Para crear una asignación que consuma datos devueltos por este procedimiento siga los pasos que explicamos a continuación:

 

1.Conéctese a la BD "AdventureWorks" desde MapForce y añada el procedimiento almacenado a la asignación como se describe en 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 (mf_ic_storedproc_menu), junto al procedimiento almacenado, y seleccione Insertar llamada con parámetros. El procedimiento almacenado ahora aparece en un componente distinto de la asignación que presenta dos partes: a la izquierda aparecen los parámetros de entrada y a la derecha están los resultados y el parámetro de salida.

mf_sp_10

3.Vuelva a hacer clic en el botón para mostrar el menú contextual (mf_ic_storedproc_menu) y seleccione Editar estructuras de conjuntos de registros. Esto es necesario para suministrar a MapForce la información sobre la estructura de los registros devuelta por el procedimiento. Aparece el cuadro de diálogo "Estructuras de conjuntos de registros".

mf_sp_11

Llamar a un procedimiento almacenado en el momento de diseñar la asignación puede tener efectos secundarios (dependiendo de la implementación del procedimiento). Si no quiere ejecutar el procedimiento almacenado en el momento de diseñar la asignación, entonces no haga clic en Ejecutar, como se describe en los siguientes pasos. En vez de eso, defina el conjunto de registros esperado en el cuadro de diálogo "Estructuras de conjuntos de registros" añadiendo manualmente conjuntos de registros y sus columnas asociadas. Use los botones Agregar conjunto de registros y Agregar columna del cuadro de diálogo "Estructuras de conjuntos de registros".

 

4.Haga clic en Definir parámetros de entrada y llamar al procedimiento. Aparecerá el cuadro de diálogo "Evaluar procedimiento almacenado".

mf_sp_12

5.Rellene los valores del parámetro como se muestra en la imagen anterior y haga clic en Ejecutar.

6.Haga clic en Aceptar. La estructura del conjunto de registros ("RS1") ahora es visible tanto en el cuadro de diálogo "Estructuras de conjuntos de registros" como en la asignación.

7.En este punto puede añadir un componente de destino en el que se escribirán los datos obtenidos. En este ejemplo los datos se escribirán en un archivo CSV. En el menú Insertar, haga clic en Archivo de texto y añada un componente CSV a la asignación (véase también Archivos CSV y archivos de texto). A continuación dibuje las conexiones de la asignación como se muestra en la imagen siguiente. Observe que los parámetros de entrada del procedimiento se dan en forma de constantes. Para más información sobre constantes consulte el apartado Agregar una constante a una asignación de datos.

mf_sp_13

Ahora puede obtener una vista previa de la asignación. Haga clic en el botón Resultados y observe el resultado de la asignación en el panel Resultados, por ejemplo:

mf_sp_14

© 2018-2024 Altova GmbH