[BW] Setting the Global Workbook Template in SAP NetWeaver 2004s BI or BW 3.x
Introduction
Recently, I've had many people ask me about setting a default workbook template, both in BW 3.x and SAP NetWeaver 2004s BI. This blog will show you how this can be done.The Tables
In case you are wondering, these are the basic tables used for workbooks.Setting a global workbook
To see the default global workbook, go to table RSRWBTEMPLATE. In a BW 3.x system, this table has 2 fields (TEMPLATEUSER and WORKBOOKID). In SAP NetWeaver 2004s BI, this table has 3 fields (TEMPLATEUSER, WORKBOOKID, and LEAST_BEX_VERSIO). The version has been added to distinguish whether this is a BW 3.x workbook or an SAP NetWeaver 2004s BI workbook. If the version is listed as "70" in this version field, that is a 2004s workbook. If not, it is a BW 3.x workbook. If there are no entries specified in this table, the system utilizes the default workbook which is programatically restricted.Therefore, if you leave this table blank, you will use the SAP default workbook. When an end user logs in to the BEx Analyzer (3.x or 2004s), they can specify their own default workbook.
Within the BW 3.x analyzer, this is done by going to "Business Explorer -> Settings -> Permanent Workbook Template" and choosing the permanent workbook template. This will create an entry in the RSRWBTEMPLATE table for this user. Similarly, within the 2004s BEx Analyzer, the user can go to "BEx Analyzer -> Global Settings -> Select Default Workbook". This will allow them to set a permanent workbook for themselves or they can flag the global parameter to set this globally.
If you want to specify a global workbook programatically, this is pretty easy. Specifying the blank user within RSRWBTEMPLATE is the global workbook template for that particular runtime. If you just want to set this globally, then don't use the program below. As I described earlier, you can setup the global workbook through the BEx Analyzer by specifying the global flag in the 2004s runtime. Additionally, you can very easily create an ABAP program to mass update this table with a particular workbook and user entries. This simple ABAP program gives you an example how to mass update this table. The p_vers parameter allows you to flag whether you want to update this for 2004s or not. Typically, you would just update the blank user for 2004s, but this is an option if you want to mass populate this table. You can adapt this program to assign different user groups to different templates as well...
In addition, for the BW 3.x runtime, you will need to update the registry to tell the application to use the default template. To manually make these changes, go to regedit.
Go to the following path:
HKEY_CURRENT_USER -> Software -> SAP -> BEx -> chooseTemplate
Make sure the Default value is set to “T”.
Summary
Now you should know how to set the global workbook for the BW 3.x runtime or SAP NetWeaver 2004s BI runtime! Keep in mind this program is just an example. You can adapt it to your needs. That is why I listed the tables.==========================================================
*&---------------------------------------------------------------------*
*& Report Z_SET_BEX_USER_TEMPLATE *
*& *
*&---------------------------------------------------------------------*
*& Program to update all user's default template *
*& *
*&---------------------------------------------------------------------*
REPORT Z_SET_BEX_USER_TEMPLATE.
**************************************************************************
* Type Pools
**************************************************************************
type-pools:
rs, rsr, rspar, rssg.
**************************************************************************
selection-screen begin of block rad2 with frame title text-001.
parameters: wbid like rsrwbindex-workbookid,
p_vers as checkbox default rs_c_true..
selection-screen end of block rad2.
tables: rsrwbtemplate, usr01.
select * from usr01.
rsrwbtemplate-templateuser = usr01-bname.
rsrwbtemplate-workbookid = wbid.
if p_vers = rs_c_true.
rsrwbtemplate-LEAST_BEX_VERSIO = '70'.
endif.
update rsrwbtemplate.
if sy-subrc <> 0. insert rsrwbtemplate. endif.
endselect.
<< Home