# Crear Datasets a partir de Stored Procedures

**URL:** <https://bc.finneg.com/t/crear-datasets-a-partir-de-stored-procedures/5037>\
**Category:** Datawarehouse\
**Tags:** datasets, db-manager, app-builder, instructivo\
**Created:** [12 Mayo, 2025 14:07 UTC](https://bc.finneg.com/t/crear-datasets-a-partir-de-stored-procedures/5037 "2025-05-12T14:07:15Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Franco\_Tenaglia](https://bc.finneg.com/user_avatar/bc.finneg.com/franco_tenaglia/32/14848_2.png) [@Franco\_Tenaglia](https://bc.finneg.com/u/Franco_Tenaglia)\
**Post date:** [12 Mayo, 2025 14:07 UTC](https://bc.finneg.com/t/crear-datasets-a-partir-de-stored-procedures/5037/1 "2025-05-12T14:07:15Z")

</div>

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”:

 ![](https://bc.finneg.com/uploads/default/original/3X/d/3/d335299bba59e202f4bb904097b3c14b24510f3a.png)

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

 ![](https://bc.finneg.com/uploads/default/original/3X/8/c/8c666799382376244b5fb980eb51be9126a7422e.png)

1. Copiar el SP.

Este se encuentra en el campo Fuente de Datos:

 ![](https://bc.finneg.com/uploads/default/original/3X/2/2/22b03139fb7cc0df4ce7244ba627ed0d74b32c58.png)

1. Crear tu SP:

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

```auto
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:

```auto
CREATE PROCEDURE miSP AS

```

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

```auto
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”.

```auto
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 @@FechaHastaFechaHasta = ‘20250501’, o bien, se le puede asignar el valor vacío que creamos anteri@Parametro1ReportCodermen@ReportCodeVacioe @@Parametro1ReportCode = @@ReportCodeVacio para que traiga todos los valores posibles.

Es importante notar que los ún@ReportCodeVaciocos 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):

 ![image](https://bc.finneg.com/uploads/default/original/3X/1/8/187c981fdb88b60dabf718ca41352bc6530b6903.png)

## Ejemplo

Por ejemplo, para el Análisis de Órdenes de Compra con el SP P\_BS\_OP\_0010 y los siguientes parámetros:

 ![](https://bc.finneg.com/uploads/default/original/3X/b/0/b07e40932f19036545eba170d151d4a3a525edaa.png)

Se crea el siguiente SP P\_BS\_OP\_0010\_DATASET:

```auto
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:

 ![](https://bc.finneg.com/uploads/default/original/3X/d/b/db93e84a44bbe1e717579c90ccaffe0befb60abf.png)

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

1. Crear el dataset.

Abrir la app DataWarehouse y entrar en Datasets:

 ![](https://bc.finneg.com/uploads/default/original/3X/4/8/484d8a1115c3b0734e1381e7eb611437fe675e6e.png)

Luego oprimir “Crear Dataset”:

 ![](https://bc.finneg.com/uploads/default/original/3X/1/a/1a9738c79be0be57d651f75be5efd69ebc175a59.png)

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

 ![](https://bc.finneg.com/uploads/default/original/3X/6/1/616d5f848c9900f070019916da7c5105eef454c5.png)

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