云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

全站加速_杭州企业网站建设哪家好_是什么

小七 141 0

全站加速_杭州企业网站建设哪家好_是什么

After running a BW-system for several years, there will be many InfoProviders where you are not sure if they are really being used by BEx Queries. But every time you have to modify or would like to replace the InfoProvider, you will have to edit the Multiprovider in which the Infoprovider is included.

A good option would be to remove the (unused) Infoprovider from the Multiprovider (where it won’t be called at query runtime to read data).

It would take a lot of time to check every query (based on the Multiprovider in which the Infoprovider is included). Therefore, it would be better to check the BW metadata tables via an ABAP program.

In order to determine the usage of a part provider in a query, we will have to

Instructions for use:

Selection-Screen: Example with three InfoProvider (to check for usage)

The result is split into the

Results: Example with three InfoProvider (to check for usage)

With the two lists ("LIST OF RESULTS:" / "CUBES WITHOUT MULTIPROVIDER INCLUSION") you know which Infoprovider is not used by BEX elements within the resp. Multiprovider or that this Infoprovider is not used by any Multiprovider at all.

Please note that the program is only fitting for InfoCubes/DSOs within a Multiprovider and that it is not used for aggregation levels, planning functions or Composite Providers.

*&———————————————————————* *& Report  ZBI_BEX_PARTCUBES_UNUSED *&———————————————————————* *& Created by/on: C. Heinrich – (11.02.2016) *& Targets: *& A) check usage of Cubes/DSO, included in Multiprovider, in queries *&    and global BEx-elements (e.g. restricted key-figures) *& B) also show Provider, which are not included in any Multiprovider *& Additions: *&  -> beside (all types of) Cubes, also DSOs are supported *&———————————————————————* REPORT ZBI_BEX_PARTCUBES_UNUSED LINE-SIZE 160 NO STANDARD PAGE HEADING.

TABLES: RSDCUBET.

**** Variables, internal tables DATA: BEGIN OF ls_mpro,  " List of MultiProvider        INFOCUBE TYPE RSINFOPROV,        PARTCUBE TYPE RSINFOPROV,        USED(1) TYPE C,       END OF ls_mpro,       lt_mpro LIKE STANDARD TABLE OF ls_mpro. DATA: BEGIN OF ls_keyf, " List of found key-figures        INFOCUBE TYPE RSINFOPROV,        PARTCUBE TYPE RSINFOPROV,        IOBJNM  TYPE RSIOBJNM,       END OF ls_keyf,       lt_keyf LIKE HASHED TABLE OF ls_keyf         WITH UNIQUE KEY INFOCUBE IOBJNM PARTCUBE. DATA: BEGIN OF ls_compic, " List of queries/elements to MultiProvider         COMPUID TYPE SYSUUID_25,         MAPNAME TYPE RSZCOMPID,         INFOCUBE TYPE RSINFOPROV,         PARTCUBE TYPE RSINFOPROV,         FLAG_KEYF(1) TYPE C,     " key-f. of part-cube included(=X)?         FLAG_SEL_IC(1) TYPE C,   " selection at 0INFOPROV exists? (Y/N)         FLAG_PARTCUBE(1) TYPE C, " selection at corret part-cube (=Y)?       END OF ls_compic,       lt_compic LIKE STANDARD TABLE OF ls_compic. DATA: lv_used(1) TYPE c. *** Field-symbols: FIELD-SYMBOLS: LIKE ls_mpro,                LIKE ls_compic,                LIKE ls_keyf.

**** A) Selection-screen SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.   SELECT-OPTIONS: S_CUBE FOR RSDCUBET-INFOCUBE OBLIGATORY. SELECTION-SCREEN: END OF BLOCK b1.

*** B) Checking usage of Partprovider(s): START-OF-SELECTION.

" –> getting list of Multiprovider, including the Cube(s):    SELECT RSDCUBEMULTI~INFOCUBE RSDCUBEMULTI~PARTCUBE      FROM RSDCUBEMULTI      INTO CORRESPONDING FIELDS OF TABLE lt_mpro      WHERE RSDCUBEMULTI~OBJVERS = ‘A’        AND RSDCUBEMULTI~PARTCUBE IN S_CUBE.

SKIP 1. FORMAT INTENSIFIED ON.    WRITE: / ‘==> CHECK PER MULTI-PROVIDER AND GLOBAL BEX-ELEMENT:’.    FORMAT INTENSIFIED OFF.    LOOP AT lt_mpro ASSIGNING .      " Header: Multiprovider / Part-Cube      WRITE: / ‘Multiprovider: ‘, -INFOCUBE,               50 ‘Partprov.: ‘, -PARTCUBE.      " –> get key-figures of part-cube which are included at the Multiprovider(s):      SELECT RSDICMULTIIOBJ~INFOCUBE RSDICMULTIIOBJ~IOBJNM             RSDICMULTIIOBJ~PARTCUBE        FROM RSDICMULTIIOBJ INNER JOIN RSDIOBJ          ON RSDICMULTIIOBJ~PARTIOBJ = RSDIOBJ~IOBJNM         AND RSDICMULTIIOBJ~OBJVERS = RSDIOBJ~OBJVERS        INTO CORRESPONDING FIELDS OF TABLE lt_keyf        WHERE RSDICMULTIIOBJ~INFOCUBE = -INFOCUBE          AND RSDICMULTIIOBJ~PARTCUBE = -PARTCUBE          AND RSDICMULTIIOBJ~OBJVERS = ‘A’          AND RSDIOBJ~IOBJTP = ‘KYF’.

***   –> now get queries and other BEx-elements similar to restricted key-figures ***       and structures, containing the key-figure(s) of the Partprovider(s):       SELECT COMPUID MAPNAME INFOCUBE         FROM RSZCOMPIC INNER JOIN RSZELTDIR           ON RSZCOMPIC~COMPUID = RSZELTDIR~ELTUID          AND RSZCOMPIC~OBJVERS = RSZELTDIR~OBJVERS         INTO CORRESPONDING FIELDS OF ls_compic         WHERE RSZCOMPIC~INFOCUBE = -INFOCUBE           AND RSZCOMPIC~OBJVERS = ‘A’.         ls_compic-PARTCUBE = -PARTCUBE.         APPEND ls_compic TO lt_compic.       ENDSELECT.