Crear Datasets a partir de Stored Procedures

Franco_Tenaglia
Mon, 12 May 2025 14:07:15 +0000
Datawarehouse

La app DataWarehouse te da la posibilidad de crear tus propios datasets. Para ello se debe generar un script que contenga sentencias SQL o Stored Procedures (SP). En este instructivo aprenderás a crear tus propios SP para crear datasets.

Nota: para poder utilizar esta funcionalidad, debes tener acceso a AppBuilder.

Pasos a seguir

1. Buscar el informe del que se quiere generar el dataset.

Para ello buscar “Diccionario de Viewers”:

Luego, en el buscador escribir el nombre de la vista, por ejemplo “Análisis de Órdenes de Compra”, e ingresar:

2. Copiar el SP.

Este se encuentra en el campo Fuente de Datos:

3. Crear tu SP:

Entrar a DBManager (Configuración Empresarial →App Builder→DBManager) y crear un script con la siguiente estructura:

CREATE PROCEDURE miSP AS

BEGIN

SET TRANSACTION LEVEL READ UNCOMMITTED

SET NOCOUNT ON

DECLARE @VacioReportCode Int

SET @VacioReportCode = dbo.getReportCode()

INSERT INTO FAFArbolSeleccion(ID, ReportCode) VALUES (0, @VacioReportCode)

DECLARE @@ReportCodeVacio  int = @VacioReportCode

EXEC SP_ORIGINAL
@@FechaDesde = ‘20250101’,
@@FechaHasta = ‘20250501’,
@@Parametro1ReportCode = @@ReportCodeVacio,
@@Parametro1ReportCode = @@ReportCodeVacio

END

A continuación se explican las partes del código parte que se deben modificar:

CREATE PROCEDURE miSP AS

Esto crea un nuevo SP bajo el nombre miSP. Podés elegir el nombre que quieras.

DECLARE @VacioReportCode Int

SET @VacioReportCode = dbo.getReportCode()

INSERT INTO FAFArbolSeleccion(ID, ReportCode) VALUES (0, @VacioReportCode)

DECLARE @@ReportCodeVacio  int = @VacioReportCode

Esto genera un código que representa “vacío” o “sin selección”.

EXEC SP_ORIGINAL
@@FechaDesde = ‘20250101’,
@@FechaHasta = ‘20250501’,
@@Parametro1ReportCode = @@ReportCodeVacio,
@@Parametro1ReportCode = @@ReportCodeVacio

Finalmente, se ejecuta el SP original pasandole los parámetros necesarios. A cada parámetro se le debe asignar un valor, que puede ser un valor fijo, por ejemplo @@FechaHasta = ‘20250501’, o bien, se le puede asignar el valor vacío que creamos anteriormente @@Parametro1ReportCode = @@ReportCodeVacio para que traiga todos los valores posibles.

Es importante notar que los únicos parámetros a los que se le puede pasar @@ReportCodeVacio son a aquellos que son aquellos que están arbolizados (Maestro de Viewers - Solapa Parámetros):

Ejemplo

Por ejemplo, para el Análisis de Órdenes de Compra con el SP P_BS_OP_0010 y los siguientes parámetros:

Se crea el siguiente SP P_BS_OP_0010_DATASET:

CREATE PROCEDURE P_BS_OP_0010_DATASET AS

BEGIN

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

SET NOCOUNT ON

DECLARE @VacioReportCode Int

SET @VacioReportCode = dbo.getReportCode()

INSERT INTO FAFArbolSeleccion(ID, ReportCode) VALUES (0, @VacioReportCode)
DECLARE @@ReportCodeVacio  int = @VacioReportCode

EXEC P_BS_OP_0010
@@CategoriaId = -3,
@@FechaDesde ='20250101',
@@FechaHasta ='20250501',
@@DocumentoTipoReportCode = @@ReportCodeVacio,
@@ClienteReportCode = @@ReportCodeVacio,
@@CircuitoContableReportCode = @@ReportCodeVacio,
@@DimensionValor = @@ReportCodeVacio,
@@DimensionID = 0,
@@ProductoReportCode = @@ReportCodeVacio,
@@MonedaReportCode = @@ReportCodeVacio,
@@VerPendientes = 0,
@@EmpresaReportCode = @@ReportCodeVacio

END

Los parámetros deben pasarse en el orden en que figuran en la tabla de parámetros. Los valores numéricos corresponden a los valores que se le asignan a los parámetros, por ejemplo:

También podemos completar algunos parámetros que no queremos dejar vacíos, como la fecha desde y fecha hasta.

4. Crear el dataset.

Abrir la app DataWarehouse y entrar en Datasets:

Luego oprimir “Crear Dataset”:

Poner un nombre y una descripción al dataset, y pegar el nombre del SP creado:

Presioná “Guardar” y listo, tu dataset está creado y preparado para conectar a tu BI.