Skip to Content

Introduction

This document covers the approach of passing scope/prompt from SAP BPC data manager package to SQL Server stored procedure. This applies to all versions of SAP BPC Version for Microsoft. This approach can be used as an alternate to the approach specified in my earlier document on How to Pass Parameters to SSIS package.

Business Case

The business case is to pass the parameters from SAP BPC data manager package to a stored procedure.  The BPC users will pass the scope (selections) via the data manager prompts. This selection will be passed to a stored procedure via the data manager package. The stored procedure will receive the scope(selections) from BPC data manager package and store it to a table.

BPC Setup

BPC model with the following structure

Environment Name: BADSHELL

Model Name: Planning

/wp-content/uploads/2014/08/image002_517097.jpg

Development Details


Step 1: Create a scope table to receive the scope (selections) passed from SQL Server. This table will be used to receive the parameters passed from the BPC data manager package.  Execute the following script in the SQL Server side.

USE [BADSHELL]

GO

CREATE TABLE [DBO].[BPC_SCOPE](

       [SCOPETBL] [NVARCHAR](100) NULL,

       [DIMENSION] [NVARCHAR](32) NULL,

       [MEMBER] [NVARCHAR](32) NULL

) ON [PRIMARY]

GO


Step 2: Create stored procedure. This stored procedure will receive the selection from BPC and store it in a table (BPC_SCOPE). This table can be used in the further operations like a filter table. To facilitate parallel call of the data manager package this table (BPC_SCOPE) should always be used with the filter SCOPETBL = @SCOPETABLE.

Execute the following script in the SQL Server side. Please read the comments and insert your code…


USE [BADSHELL]

GO

CREATE PROCEDURE [DBO].[USP_CALC_BLOG]

(

@SCOPETABLE VARCHAR(50)

)

AS

BEGIN

EXEC(‘INSERT INTO [BPC_SCOPE] SELECT ”’ + @SCOPETABLE + ”’, DIMENSION, MEMBER FROM ‘ + @SCOPETABLE)

       /*

       INSERT YOUR CODE HERE, YOU CAN USE THE BPC_SCOPE TABLE TO FILTER RECORDS

       TO MAKE SURE WE ISOLATE CONCURRENT EXECUTION USE THE VARIABLE  @SCOPETABLE

       TO FILTER BPC_SCOPE TABLE.

       */

       /*

       FINALLY YOU CAN DELETE ALL THE RECORDS IN THE BPC_SCOPE TABLE

       DELETE FROM BPC_SCOPE WHERE SCOPETBL = @SCOPETABLE

       */

END

Step 3: Create BPC script logic to call the stored procedure. %SCOPETABLE% variable passes the parameter table to the stored procedure.

/wp-content/uploads/2014/08/image004_517098.jpg

Step 4: Create data manager package to invoke the script logic

On the web server side, copy the standard “Default Formulas” data manager package (BLOG_10)

/wp-content/uploads/2014/08/image006_517099.jpg


Configure the package in the data manager interface in EPM add-in for excel. Go to Data Manager >> Organize package list >> Add package and select the copied package

/wp-content/uploads/2014/08/image008_517100.jpg

Modify the package and add the following by specifying following script

/wp-content/uploads/2014/08/image010_517101.jpg

Step 5:  Execute data manager package by selecting prompts

/wp-content/uploads/2014/08/image012_517102.jpg

Step 6:  Check the results

/wp-content/uploads/2014/08/image013_517103.png

Important Notes

  • Add necessary dimensions to the data manager prompt
  • Clear the scope table after the calculation (note SQL section commented in the document)
  • Set up appropriate database security and connection credentials as suited to your need
  • For further reference refer to SAP’s help documentation

Reference Links

How to pass a custom parameter to Data Manager Package

SAP BPC MS: Passing Data Manager Selection (Scope) to SSIS Package

To report this post you need to login first.

3 Comments

You must be Logged on to comment or reply to a post.

Leave a Reply