Search
BWFreak - Journey to the center of Business Intelligence

Quick tip on the following error message for BW aggregate:

Characteristic xxxxxxxxxxxxx is compressed but is not in the aggregate/query

If you get this message, your aggregate will not be used for any query. You can do the following to check if your aggregate can be use.

RSRT —  Execute + Debug — Aggregate — Select Aggregate

BPC Work status changes

Posted on July 22nd, 2011

Work status (work state) provides the ability to lock certain “dimension members”. E.g. lock by fiscal year, regions.

To modify Work Status, login to BPC Excel Client, eSubmit – WorkStatus.

To define the Work Status selection (Default WO, Started, Submitted, Approved, etc), login to BPC Admin Client, Work Status. Available selections are: Owner, locked, Mrg, ALL, and both.

To use Work Status for a dimension, in BPC Admin Client, select the Application, Work Status Setting, then change the work state to “Yes”, “No”, or “Owner”.

The BPC work status changes

UJD_TEST_PACKAGE is a report to trigger BPC packages from BW.

With this program, we can schedule BPC packages from BW using process chains.

To get to it: t-code se38 – program name: UJD_TEST_PACKAGE – run

When entering on the selection screen, most parameters are easy to get from table UJD_PACKAGE2, except AnswerPrompt.

It’s critical to upload the value from a text file. Copying/pasting the value from one line of text to another may not work.

To find out how to create the text file,  please follow the SAP Note 1599387,

When the selection is XML format, one more step is needed: search and replace &lt; &gt; with < >.

The field can’t accept very long text file (1024 char only). Review the file to reduce the size.

BW 7.0+ analysis authorization

Posted on July 22nd, 2011

These are the steps to setup analysis authorization in BW 7.0 and up (authorization for infoObjects).

1. Activate Business Content for BI analysis authorization

2. Set InfoObjects authorization-relevant

  • 0TCAACTVT
  • 0TCAIPROV
  • 0TCAVALID
  • 0TCAKYFNM

3. Create new authorization objects in RSECADMIN for key figure/characteristic value/characteristic hierarchy authorization.

- 0TCAACTVT, 0TCAIPROV,0TCAVALID, will always need to be added.

- All other authorization-relevant infoObjects for that infoProvider need to be added with aggregation authorization (Colon)

4. Check roles assigned to users to make sure S_RS_AUTH doesn’t have 0BI_ALL or *

5. Assign the authorization object to user or role.

6. Query changes

- Create authorization variable for variable selection

-  For hierarchy, if using hierarchy variable, activate hierarchy for the authorization object in the query.

-  Test query with different users: T-code: RSUDO, select RSRT and “with log”.

BPC BAdI for UJ_validation

Posted on July 5th, 2011

1. T-code UJ_Validation to add a rule

2. Select Validation Logic – Use BAdi Implementation. name of BAdI is default to BADI_UJ_VALIDATION_RULE_LOGIC

3. Double click on the name or SE18 to edit BADI_UJ_VALIDATION_RULE_LOGIC

4. Create BAdI Implementation

5. Create enhance implementation (e.g. ZBPC_RAOP) - Create class name (e.g. ZCL_BPC_RAOP)

Exception: CX_BADI_MULTIPLY_IMPLEMENTED

Cause: this BAdI is not for multiple use. If more than one Enhancement Implementations are created,  you’ll get this exception in st22.

Solution: Delete all other enhancement implementations but one, and write all your code in one place. To delete the enhancement implementation and interfaces,  from se80 – Package UJV, enhancement, find the name to delete.

BPC NW 7.5 tips and tricks #1

Posted on June 14th, 2011

If you need to implement the BADi enhancement for UJ_Validation, use the following error message id in your code.

es_message-msgid = ’UJR_EXCEPTION’.
es_message-msgty = ’E’.
es_message-msgno = ’000′.

Don’t use:

es_message-msgid = ’00′.
es_message-msgty = ’E’.
es_message-msgno = ’001′.

To find out all BPC related error codes, go to table T100.

BI team members

Posted on December 16th, 2010

For a company with fast growing data warehouse usage, at least these BW team members should be in place.

Data warehouse architect + Project Manager: who oversees the entire project with focus on architecture design, tools/patches/technology evaluation, system integration. Set overall team priorities on regular base.

BW functional analysts + Data modeler: who collect / translate business requirements, create data models in BW, work with SAP functional analysts to understand source systems data models/changes.

Report developers: who create user-friendly reports including Bex (excel format), web, mobile applications, and other form of “fancy” user interface.

BW Admin: who work with SAP Basis and DBA to setup and maintain BW systems; create roles, and authorization; schedule and monitor daily server activities, handle DB and SAP system performance issues.

Extractor developers: for different data sources, resources are needed to extract data. In most cases, it’s not a full time position.

For companies that use BW as (or as part of ) the Enterprise Data Warehouse / Enterprise Business Intelligence solution, these roles should be in place as well:

Enterprise Business  Intelligence Officer: who create and reinforce the BI policy, oversees the information flow of all departments of the company, aligns BI objectives with the company objectives. This is not an IT staff, but need to have sufficient IT knowledge and take IT suggestions seriously.

Solution expert: who has good knowledge about all systems, provides end-users with alternative BI solutions to manual process, Foxpro, MS Access, etc.

Training and information sharing expert:  training and information sharing are very important to the success of any BI initiative.

Data quality expert: who handles on-going testing and information cross-checking.

BW DataMart loading package size tuning

Posted on October 11th, 2010

In BW3.5, once RSMONMESS table is bigger, it’s hard to make it small. However, there are things can be done to slowdown the growing rate of the table.
For example, you can try to reduce the amount of infoPackages/dataPackages of BW loads from ODSs to Cubes without too much work as the setting is easy to change, and the tuning can be done on BW servers, no impact to ECC loads.
Process:
On BW server,
SBIW – General Setting – Maintaining Control Parameters for Data Transfer
Here are the fields to customize
1. Source system : the BW server you are on
2. MAX. Kb: Maximum size of data packet in kb.
3. MAX lines: Maximum lines in data packet.
4. Frequency: How many data IDoc in one info IDoc
5. Max. Proc.: Maximum parallel processes

For #2 and #3, smaller of the two will be used. The larger the better for reducing the number of records in rsmonmess table. However, if the numbers are large, the memory usage will be higher, and the waiting time will be longer for each data packet.

For #4, the smaller the better for RSMONMESS, but the loading speed will be affected.

For #5, the more parallel processes that can run the better the performance. However, you must bear in mind the number of available dialog processes here.

Test is essential to find the best parameter combinations of your own system.

Before starting a infoPackage, check the “Default Setting in Source system” from top menu – scheduler – Data.S and default data transfer.

If the setting doesn’t show up there, use /$sync or /$tab IDOCPRMS to clear buffer.

March 16, 2009
Ran process chains from Cronacle (Redwood explorer).
Most of the time, everything’s fine. Occationally, I got the following errors:

ORA-20800: JCS-02138: problem with parameter “I_SYNCHRONOUS”

 ORA-01008: not all variables bound

When it happens, the step fails inside Cronacle.

One possible cause is the job I am using didn’t set the value of “I_SYNCHRONOUS” and “I_STIMULATE”.

I Found the value of these two variables are “X” or ” ” (one space between quotation mark).

As when using

select lookup_code from rsi_lookups where LOOKUP_type = ‘YES_NO’ and lookup_code = ‘ ‘;

I got one record.

If using

select lookup_code from rsi_lookups where LOOKUP_type = ‘YES_NO’ and lookup_code = null;

I got 0 record.

Therefore, I added the two parameters with value “empty space” in all BW job chains which trigger process chain load.

                                        ,”I_SYNCHRONOUS”=>’ ‘
                                        ,”I_SIMULATE”=>’ ‘

Update on Sept 2009: 

The problem was gone for several months then came back. It’s gone again after restart Cronacle. Then back again in 2 weeks.

A oracle bug 5254759 was found related to variable not bound. It might be the cause. Solution given by Oracle:

a) Disable literal replacement (use cursor_sharing=exact)

OR

b) Disable parallelism for this query (set degree of parallelism to 1)

OR

c) Apply Patch 5254759
Update on 2010: This issue was fixed after the Oracle upgrade.

Error message in RSMO:

Non-updated Idocs found in Source System

Diagnosis
IDocs were found in the ALE inbox for Source System that are not updated.
Processing is overdue.
Error correction:
Attempt to process the IDocs manually. You can process the IDocs manually using the Wizard or by selecting the IDocs with incorrect status and processing them manually.

The cause of this error can be found by checking we02 or BD87 on the source system:

No resources, immed. processing not possible: Too few free dialog work processes Message no. B1999

If source system dialog processes are used up at the moment of extracting, this error occurs.

To check and monitor RFC resources

You can monitor the RFC resources using tcode: SARFC, see how many process left in a server.

To see what happened a while ago, use STAD

If you are not sure about the setup, the RFC destination table is RFCDES. You can trace when loading.

From SARFC,  active trace: Choose Goto — Activate Trace.

Then sm51, double click server name, Process — Trace — Dispatcher — Display File

To resolve:
- From BW side, turn the load status to red, do what should be done when load fails, e.g. reschedule the load with proper setting, or not reschedule it at all if some other loading processes already take care of the load.
Or
- Make sure the BW load is still valid, then run report RBDAPP01 on source system using the idoc number from we02. This report manually processes the IDoc and transfer the message to BW.

To prevent:
If this problem doesn’t happen on a regular basis,you should fix it from BW side. If it happens often, you should look into increasing the number of work processes on the source system ( check rdisp/rfc_max_own_used_wp setting ) and/or schedule RBDAPP01 automatically.

BW3.5