Jun 9, 2014

BI 4.1 on BW 7.x Performance Improvements


The SAP BusinessObjects Business Intelligence Platform 4.1 includes significant performance benefits when one reports on SAP BW. These benefits are a great reason to upgrade for those of you using BW. Specifically there are enhancemets:

On report creation or edit with Web Intelligence or Crystal Reports for Enterprise documents which are based on BEx Queries.
  
On report refresh with Web Intelligence or Crystal Reports for Enterprise on BEx queries with variables.
  
On addition of a BEx Query to an Analysis for OLAP workspace
 



Web Intelligence documents based on BEx Queries via BICS

A big advantage here is that when you select a BEx query with mandatory variables which do not have default values, a variable screen (shown below) will display BEFORE the query panel. This will save some time.

webivar.png

Additionally, you should see a substantial performance gain for the report refresh portion once you've entered the variable values via this prompt window. Note that this particular gain is not seen when user- defined prompts are combined in a document with BEx variables.

View time also brings quicker rendering of the prompt window (screenshot below) as well as a quicker refresh once the mandatory prompt is entered for your end users.

54560748-58F3-4932-8FAC-796708DF3468.png

In addition, there is now a new "Design Time" API that has been implemented at design / edit time. This particular feature requires that your SAP BW server is updated to the level indicated at the bottom of this blog. This Design Time mode allows for the fetchin g of metadata and master data with far less RFC calls. Specifically, the new API is used when you select queries while designing a report.

How does that look in actual practice? Well as an example, when you select your query

QuerySelect.png
You'll see a lot less of the loading screen Loading.png

before the BEx queries available objects are displayed (shown below). The first query you select on a particular server will take more time than the rest due to the initial handshake / warm-up process. Afterwards, it should be very fast. You'll still get some of these benefits even if your BW server isn't of the version listed below.

QP.png


Crystal Reports for Enterprise

Report creation or modification on BEx Queries
   Simi lar to the workflow in Web Intelligence, Crystal Reports also shows a variable screen before the query panel when the query contains mandatory variables without default values. Due to this, the variable screen should load more quickly. This allows the query panel itself to load more quickly. Finally the report itself is refreshed more efficiently.


The report consumers will also see benefits at view time. The prompt screen (shown below) will render more quickly. In addition, there are improvements with the generation of lists of values in this variable screen. The gain increases as the list grows larger. Finally, the report should refresh more quickly.

Crystals.png



Analysis OLAP - selection of BEx Queries

The Open Data Source interface has changed slightly. It now opens to the Find tab instead of the Folders tab. This is helpful when there are a large number of queries on the system as you can immediately search without waiting for  the initial folder / query view to load.

AOLAP.png
FAQ:

What are the BW server requirements to take advantage of the Design Time improvements?

As mentioned earlier, you should still see improvements without the following in most areas. However, to get the maximum you must meet the following criteria (subject to change):

The BW backend needs the following service pack levels and SAP notes in order for the design time improvements to be enabled and fully functional:

BW 7.30 SP8 or BW 7.31 SP5+, plus all the SAP notes listed below.

For critical cases, there is also a collec tion of notes for 7.30 SP7 available (excluding the notes mentioned below, so you need to apply them as well).

Even better, the versions which already contain everything are 7.30 SP10, 7.31 SP08 and 7.40 SP05

Additional SAP Notes:

1771995 – Wrong hierarchy level
1750788 – Meta data extension (contains a collection of extensions and fixes)
1767351 – Missing meta data of characteristics in the fix filter - o nly relevant for characteristics that do not support drill down (i.e. are only in the fix filter of the query).
1776999 – Sorting type of hierarchies is always "HIERARCHY" although it was changed in the query designer
1777544 – Missing meta data of hierarchy node type attributes
1778347 – Hierarchy node type attributes are not read
1770434 – Correction for selection state of compound characteristics
1762156 – Correction for nodes in selection space
1776688 – Optimization for reading hierarchy nodes, too many hierarchy levels are read
1798297 – Correction for issue found on Samsung queries
1806813 – Correction for missing text for members used as default variable values
1809517 – Correction for invalid variable order when retrieving the list of variables through the design time services
1811124 – This note fixes the sorting of the of drill down characteristics returned by the design-time API so that it matches the runtime sorting
1812142 – This note fixes the sorting of the hierarchies returned by the design-time API so that it matches the runtime sorting
1817482 – This note adds the feature for the Design Time API to choose whether members s hould be read initially or not. By default, there are not read; this provides a performance enhancement for SL.

Jun 3, 2014

10 Best Modeling Strategies in SAP BW


I have divided modeling strategy into different categories. In part 1 I will start with modeling strategy for info cubes with 2 key points.
 
A. Info cube
 
1. Dimension vs. Fact table Ratio
 
As re commended by SAP and most of SAP BW consultants are aware of general rule that Dimension table should be within 15% of fact table size.  It is recommended for good performance.
But while designing a data model, how we would determine dimension's design to maintain a healthy dimension vs fact table ratio?
 
Below are some small tips which will help to achieve it.
 
- Keep the dimensions small.
- Check the Info cube design with sample data using tcode RSRV.
    RSRV→ All Elementary Tests →Database.
S1.png
Highlight the Database Information about InfoProvider Tables, right-click (context menu), and choose Select Test.
 
Based on test result adjust your dimension design.
 
Note: If you would like to add sample records without uploading from ECC or flat file, you can use Program "CUBE_SAMPLE_CREATE". It will provide ALV grid to input your sample records.
Caution: Use it ONLY in development or testing environment.
 

2. Navigational Attribute vs Dimension Info object

A great challenge when designing a data model is to decide whether to store data as a Characteristic in a dimension table (and therefore in the InfoCube) or as an attribute in a master data table and use it as Navigational attribute.

Navigational attributes instead of a simple dimensional attribute always introduce a performance penalty in terms of query execution.  It's suggested to avoid if possible activating a large number of navigational attributes and keep them only if there are business requirements.
 
Reason:
 
- The fact table contains one foreign key column per Info Cube dimension and a column per key figure of the Info Cube.
-The dimension table consists of a dimension id (DIMID) column which constitutes the primary key of the dimension plus a column per characteristic in that dimension. Those columns hold SID (surrogate id) values of the corresponding characteristic.
- In the third layer, there are SID-tables of the characteristics. This can be a standard S-table , containing only relationship between SID and characteristic key, an X-table (SID-key relationship plus SID columns per time-independent navigational attribute), or a Y-table (SID-key relationship, timestamp, SID columns per time-dependent navigational attribute).
- In the fourth layer, there are standard S-tables for navigational attributes.
Example:
 
Material Group as Navigational Attribute of Material
In this case during query execution, data will be read up to fourth layer as per below diagram.

S2.png

S3.png  

May 30, 2014

ABAP on HANA - enhance performance through code push down


With SAP Netweaver AS ABAP 7.4, I thought of a simple ABAP program to compare the performance between ABAP program consisting of classic SQL(multiple joins & currency conversion)  against the ABAP program calling HANA calculation view directly (classic SQL with joins & currency conversion logic converted into HANA calculation view).

  • ABAP with SQL embedded  – SQL query with multiple joins & currency conversion in ABAP program. vs
  • ABAP program calling HANA calculation view directly  a.k.a code push down to HANA DB.

You can manage ABAP program, modeling & ABAP profiling all in one place with SAP HANA studio. You need to install additional ABAP development plugins for eclipse and I used SAP HANA Studio version:  1.0.58.




Below is the screen I captured while profiling ABAP program from HANA studio. ABAP program uses classic SQL to fetch data from BKPF, BSEG (multiple joins) and perform currency conversion using standard function module. Actual database time that it took to execute ~ 24 seconds.

From the image below

Screen 1:
SQL statement navigated from hit list (Screen 3) shows more time consumed at DB during execution. SQL query from screen 1 is later converted into calculation view in HANA DB to improve the performance drastically.

Screen 2:
Snapshot from ABAP profilin g analysis done in HANA studio with database time: ~ 24seconds

Screen 3:
Complete Hit list of ABAP program showing BKPF SQL fetch and currency conversion (Perform CONV_CC) which consumed most of the time. Both the SQL statement and currency conversion is pushed down to calculation view for performance boost.

Screen 4:
Currency conversion code inside - Perform CONV_CC.



ABAP code optimization using HANA 24 seconds to 2 seconds:

SQL query & currency conversion is converted into HANA calculation view and called from SQL query as shown below: ZBC_BSEG_DOC is the dictionary view created from HANA calculation view.




Dictionary view: ZBC_BSEG_DOC

dic_view.jpg

HANA Calculation view:




HANA views can be accessed by standard SQL With ABAP 7.40 they are natively supported in ABAP
  • Mapping to DDIC types possible

ABAP profiling & performance after code push down to HANA

Screen 5: ABAP code optimized for HANA. All SQL joins & currency conversi on pushed down to HANA DB as calculation view CA_BSEG_DOC.

Screen 6:
Proxy ABAP dictionary view generated from HANA calculation view so it can be used in ABAP SQL.

Screen 7:
ABAP profiling snapshot showing approx. 2 seconds spent in database during execution compared to 24 seconds with classic SQL.

Screen 8:
HANA calculation view inside HANA DB.

Screen 9:
Hit list fr om ABAP profiling.

hana_optimized.jpg

May 27, 2014

How to group free characteristics in Portal or Web Analyzer


Introduction

                      We use several free characteristics in our reports for drill down purpose. At times, we are forced to use huge no. of drill down chars. It will be cumbersome to view all of them together in a single screen. There are chances for our users to get confused by looking all of them like below.

    Grp1.JPG
                  To deal this issue in a better way, I am going to demonstrate on How to group these free chars as per the entity type
in WAD by using Navigational Block Web Item.

1.     Open WAD and add different "Navigational Block" items to your web template
         
2.    If you want to group as per the Header Customer entity type, then click on the Navigational Block Web item from above and specify the Entity name in the Title like below

  Grp5.JPG

3.     You can select the required Chars and Nav Attrs in the  in Web Item properties like below.

Grp3.JPG

4.     You can create separate groups with different web items in the above fashion and your users can select the required drill down char f rom the Nav Block web item in the Portal like below

  Grp4.JPG

Note : You can correlate with Dimensions in your cube. But with above steps, you can also add Nav Attrs to the group along with dimension chars. You can create total new groups also without concerning the dimension design in the Cube.

May 20, 2014

0 records problem in Master Data load

Via Content in SCN

On a rainy noon of Friday faced strange type of problem while loading master data text in SAP APO server (EHP2 for SAP SCM 7.0).

Problem: There is one generic transaction data source for Master data which was coming from BW side. We have to load its data in different-different info objects like plant, division, sales organisation etc. by putting selection of particular info object in Info package. e.g. - Division
After schedule the Info package we were able to see the 76 records of division at PSA level. Then putting the same selection at DTP level
DTP+0+recorde.PNG
                     
After executing the DTP we was getting 0 records at manage level instead of 76 records for Division at PSA level.

Manage+0+recorde.PNG


Solution:

1. Check the data at PSA level,how it looks

Data in PSA.JPG
                         
2. At DTP level filter is same as data in PSA not as selection of info package(all upper case letter)

DTP+for+Division.PNG
                 
3. After executing the DTP we were able to got 76 records of division at info object manage level.

Manage+recordes+added.PNG

The solution is very simple but some times simple things do wonderful things.

Note: While doing master data load check Handle Duplicate records in update tab of DTP and activate master data after loading.

setting for master.PNG

Thanks for reading..

May 13, 2014

SAP BW/BO data flow and separation between front end and back end with the help of a iceberg


When I was a absolute beginner in the SAP world a while ago, the relations between the Data from the operative source systems, the BW system and the various BI visualization tools was not so simple explainable for me.

The dataflow from the source systems over the SAP BW and the Query Design to the Data visualization was for me a long time a black box.

To make the start for beginners into the world of SAP BI easier and to show the relations other colleagues from SAP ERP modules (e.g. FI, CO, SD, HR, etc.) and decision makers as primary users of BI in a transparent and easy way, some time ago I have designed the following figure:
 
BW_BO_iceberg.png

The aim of this figure is to simplified illustration of the data flow starting with the different possible source systems (e.g. ERP, CRM, 3rd party, XLS, etc.) over the data modelling and data management with respect to the LSA principles of Layered, Scalable Architecture (by Juergen Haupt as godfather) in the Data Warehouse (SAP NetWeaver Business Warehouse) and the Query creation in the BEx Query Designer to the data visualization with the tools of the SAP Business Explorer (SAP BEx) and BusinessObjects BI for SAP.

But above all, the picture is supposed to show the separation between BI front end and back end. The decision makers as the consumers of the reports always see only the tip of the iceberg where they use the frontend tools of BEx (Analyzer, Web Application Designer) and BO (SAP BusinessObjects Design Studio, SAP Lumira (formerly SAP Visual Intelligence), SAP BusinessObjects Analysis, edition for Microsoft Office, SAP Crystal Reports, SAP BusinessObjects Dashboards etc.).

The back end area begins (water surface) with the creation of BEx Queries. The Queries are based on the MultiProviders of the SAP BW system which bring data from different InfoCubes together. The data from the different source systems passing through the ETL-process (extraction, transformation, loading) and provided in a consolidated and adjusted form in the InfoCubes.

Ultimately, with the help of this figure should be underlined the „Extract once - deploy many" principle of the Corporate Information Factory (CIF) Resources by Bill Inmon, Inmon Data Systems.
Note: As mentioned in the beginning, these form of the iceberg figure should make an easy overview of the SAP BW/BO dataflow and the separation between front end and back end. Further possibilities, such as BW on HANA or operative Reporting in the ERP system are not taken in this figure.

May 6, 2014

Success Story: How SAP consulting helped a retail giant realize their HANA journey


While 2012 was all about closing BW on HANA deals, 2013 has been all about BW on HANA implementations. This article describes the journey of my recent BW on HANA success story at a retail customer in Nordics.

Customer Use case:
The customer has implemented SAP ERP and SAP BW systems. Recently, they have incorporated point-of-sale data analytics in the BW system. In brief, the use case was as follows:
8PM: Retail stores across the country closes.
9PM: Point-of-Sale (POS) data is ready to be loaded in the BW systems.
9PM-3AM: Data should be loaded in the BW system and KPI calculations need to be performed in the BW system.
3AM: BW system must be ready by this time to load the data back in the ERP system. This aggregated data with the KPI calculations is then used in the ERP system to execute more application logic.
7AM: All the processing must be complete by this time in the ERP system so that store managers have relevant information available before sto res open.

Challenges
The challenge with the above timeline is that there is only a six hour window to:
  1. Get the data transferred from the SAP ERP system to the BW system.
  2. The process chains in the BW system must be run where the data is loaded from the PSA to DSO and Infocubes and propagated through various complex application logic layers.
  3. Various KPI calculations are performed in the BW layer issuing many look-ups
  4. Once the calculations are performed, the data must be fed back to the source system.
As the entire chain depends to getting the KPIs from the BW system, if the load fails or the processing takes too much time, the store managers won't have the needed information when stores open the following day.

Set up and Performance Results:
We installed BW on HANA and connected it to the source ERP system. There was an existing BW on a traditional DB (BW on ODB) system already existing. This arrangement made it possible to load the data in parallel in the two BW systems and compare the performance numbers.

DSO Activation Times:
We loaded same number of records on both the systems and ran the process chains and recorded the below numbers:

BEX Query Response times:
During the realization, our BW on HANA expert found possibilities to optimize customer's current ABAP code and BW modeling. Just with these optimizations, customer may roll out their existing implementation to a nother smaller market without any issues in near future, though they would need HANA as soon as they want to include bigger markets.

Conclusion:
As proven during the performance tests, there were huge gains in DSO activation times. Usually, in a multi-layer architecture, DSOs feed other DSOs, which was also the case here. The activation gains for each DSO got multiplied and this resulted in great performance improvements.
We also demonstrated loading more than 600 million records in the BW on HANA system without any issues with only 3 parallel jobs. By this we showed that, the system can handle heavy loads without any issues.

Next step at the customer would be to bring in data in the the BW on HANA system from more countries and be able to run the process chains in the BW system with hundreds of millions of rows empowering the store manager more and more.

Apr 29, 2014

Useful ways to format Bex results in Webi


Running webi reports off of Bex queries can present interesting results due to the nature of using a relational tool to consume OLAP results. Here are some useful formulas/tips to help present Bex results in a cleaner manner.


Remove Values using SUBSTR():
A SUBSTR() formula in Webi is used to strip out unnecessary details from a particular field. A classic example is when dealing with compounded infoobjects. For example when there are reports created for financial and accou nting information a report user is interested in seeing the G/L Account number. However G/L Account Number is compounded with the company code that is configured in the backend. The account number is shows up in the following format CODE/number.

Lets say the G/L Account Number is COMP/13550563 but the user is only interested in seeing 13550563. We can use the substr formula.

=Substr([FIELD];6;8)

Substitute [FIELD] with your object. This formula says we will begin our field at the 6th character by ignoring t he first 5 which is COMP/ and the 8 in the formula says G/L account numbers are always 8 characters long and we need to display all 8. It is recommended you look at the actual Infoobject data length to determine the length of the object.

Remove/Replace Values using REPLACE():
We could have removed the company code from the above example using a REPLACE() formula as well if we are sure that our company code will always be the same. If the G/L account number shows up as COMP/13550563 we can write the replace formula as follows:

=Replace([FIELD];" COMP/";"")

This formula now strips out the unwanted COMP/ value from our G/L account number. This formula is also useful to remove additional details from timestamps and any details from an address field. This can also be used to replace existing data with data that might make more semantic sense to the user. For example changing a meaningless 'X' flag value to either YES or NO.

Create Custom Number Formats:
Different clients have different needs on how they view numbers and dollars on their reports. Custom number formats can easily be created in Webi. When yo u go into format for a number you can define your 'custom' format. Here is a sample for a standard accounting format where thousands are separated by a comma, null values are treated as zeroes and negative values are treated in RED and contained in parenthesis. All numbers follow a 2 decimal notation.

POSITIVE = 0,.00
NEGATIVE = (0,.00)[RED]
EQUAL TO ZERO = 0.00
UNDEFINED = 0.00

The comma allows us to seprate the thousands indicators. To apply to integers remove the decimal.

Use system variables to provide additional meta-data
There are a variety of formulas that are available that call the system specific fields. For example you may want to display the last date the report was executed. You can achieve it using  LastExecutionDate(). CurrentUser() gives you the username of the person accessing the report currently. These become more powerful when you use it along with CurrentDate() and CurrentTime()

Calculate Days between two dates:
It takes a significant amount of work to calculate the number of days between two date ranges in Bex but Webi makes it very easy for us to acco mplish the same. Suppose we want to find the number of days between our Transaction Date and our Posting date simply create a new variable of type Detail and use the DaysBetween() formula to calculate the number of days between the range.

=DaysBetween([Activity_Date];[Posting_Date])

Counting Members:
Webi also makes it very easy to create different counters. Suppose we want to compare number of business partners and the number of contract accounts it is very easy to accomplish by using the Count() formula. Create a variable of type measure and use the formulas as such:

=Count([Business Partner])

You can count different dimensions for a good comparative analysis.

Nest Concatenation() to present free text:
Webi contains a Concatenation() formula to join two strings however it is limited to only joining two strings at a time. This formula becomes really useful if you can nest them inside each other. For example lets say we want to display a free text from CRM on the Webi report but the free text is split into 4 fields due to BW's limit of 60 characters per infoobject of type CHAR. The free text is split into FIELD1, FIELD2, FIELD3, and FIELD4. In order to proper nest the concatenations remember this quick formula. If you wish to join 'N' number of fields then you need to use a total of 'N-1' Concatenation() formulas. In this case beause we want to join 4 fields we will need to use the Concatenation() 3 times.

=Concatenation(Concatenation(FIELD1;FIELD2);(Concatenation("FIELD3";"FIELD4")))

Apr 22, 2014

Authorization in BI 7 - Part 1


This blog will give the information related to Authorization concept available in SAP BW. Also, steps are given to maintain report related authorization.

Why is Authorization required in SAP BW?
  • To avoid the unwanted access to various objects as well as data in SAP BW system.
  • To assign restricted access of data to report users.

Authorization in SAP BW 3.x 
  • BW 3.x required Infoprovider Check to activate or deactivate authorization on the given reports.

What's new in SAP BI  7 for Authorization?

Prerequisites for authorization
  • Decide for which all reports an authorization is required.
  • Make list of infoobjects which will act as authorization specific infoobjects in reports.
  • Check whether all the required infoobjects are Authorization Relevant or not, if not marked then activate the flag.
  • Auth flag.JPG
  • Now check the Authorization Mode in SPRO
    • For SAP BW 3.x - Obsolete concept with RSR authorization objects.
    • For SAP BI 7 or above - Current procedure with analysis authorizations.
    • Auth_Mode.JPG
    • SPRO path
      • SAP Customizing Implementation Guide
        • SAP NetWeaver
          • Business Intelligence
            • Settings for Reporting and Analysis
              • General Settings for Reporting and Analysis
                • Analysis Authorizations: Select Concept
  • If you want to use any navigational attribute in authorization then it has to be authorization relevant in master data infoobject as shown in following screen.
  • Nav_attribute.JPG

Steps to create authorization object for SAP BI 7
  • Go to t-code RSECADMIN
  • Select Maintenance button 
RSECADMIN.JPG
  • Maintain Authorization : Initial Screen will appear.
  • Enter the technical name of authorization object to be created.
  • Click on Create Authorization (F5)
  • Auth_ini_scrn.bmp
  • Maintain Authorizations : Create screen will appear with message in status bar 'Special Characteristics Missing'.
  • spl_char_msg.JPG
  • Why these special char s are required, see what SAP has to say about it
  • spl_char_msg1.JPG
  • Fill up short, medium & long text fields.
  • Click on the button 'Insert Special Charact.' as shown below.spl_char_ins1.JPG
  • Following objects with default selection will get added.
  • Further, get the list of all the 'Infoproviders' you want to add in this authorization object.
  • Each infoprovider has set of 'Authorization Relevant Infoobjects', all of them have to be added.
  • Check one by one infoprovider for the 'Authorization Relevant Infoobjects' as shown below.
  • chk_info.JPG
  • New window will pop-up for Infocube Authorizations.
  • You can specify required infoprovider's name directly or can use F4 help to get the name of infoprovider from the list.
  • As per the reporting requirement user either
    • Insert Aggregation Authorizations: For the Totals in report, aggregation authorization ':' is used.
    • Insert Full Authorizations: It will assign '*'.
  • Once you specify the name of infoprovider and hit enter, list of all authorization relevant infoobjects, from the given cube/DSO will appear.
  • list.JPG
  • Select all the infoobjects from the list using Select All (F7) and hit enter.
  • All the selected objects will get added as shown below.
  • list1.JPG
  • Repeat the procedure for all the infoproviders.
  • As shown in the above screen shot, all infoobjects have value (*) in the intervals field. If you want to change value for any of the infoobjects, use following steps.
    • Use Details button to go to the maintenance screen OR
    • Double click the infoobject to reach the maintenance screen.
  • In the maintenance screen, 2 options are given.
    • Value Authorizations: You can specify single, multiple single or range of values.
    • Hie rarchy Authorizations: Hierarchy node values can be assigned.
  • options.JPG
  • Value Authrozations.
    • 1st column - Including/Excluding : Specify either I or E to include of exclude the assigned value.
    • 2nd column - Operator : Specify value from the given list as per your requirement.
  • comp_op.JPG
    • 3rd & 4th column - Technical Character : Here you have to mention values which are required for the authorizati on.
      • Value (*) can be mentioned to assign Full Authorization.
      • Use Add/ Delete Rows option to add more single values.
      • Whenever single, multiple single or range values are maintained add ( : ) as 1 more row to avoid the summary calculation related errors at runtime. 
  • Once you are done by assigning all the required values, click on Save button and exit.
  • If you make changes in the existing authorization object, on saving it pops up following message
  • savemsg.JPG
  • Select Yes and new changes with old definition will be saved.

  • Hierarchy Based Authorization
    • To assign hierarchy node go to Hierarchy Authorizations in details of particular infoobject.
    • Click on Create button to assign hierarchy node.
    • Following window will pop up where you can select the required hierarchy and particular node.
    • hierarchy.JPG
    • Click on Select Hierarchy button to open the hierarchy variant screen.
    • New window will show the available variants of hierarchy.
    • hier_var.JPG
    • Double click on the required variant and Hierarchy variant name will get populated.
    • Now, detail node needs to be selected. Click on Select Node option.
    • detailnode.JPG
    • Select the required node from the list given
    • Once the values for Hierarchy & Nodes are selected, you have to set Type of Authorization.
    • For Type of Authorization following 4 options are given
      • 0 - Only the selected nodes
      • 1 - Subtree below nodes
      • 2 - Subtree below nodes to Level ( Incl. )

  • 3 - Complete hierarchy
  • 4 - Subtree below nodes to ( and Incl. ) Level ( Relative )
  • Now hit enter and main screen will appear where you can see Hierarchy Node value with type of authorization maintained.
  • When you are maintaining hierarchy node value then in the Value Authorizations only ( : ) value needs to be maintained to avoid the error at runtime.
  • Save the authorization object.
  • Apr 15, 2014

    How to manage Error Free Transports


    Introduction
                      This blog is going to explain you about "Managing Transports by using common sense". I am not going to talk about standard Steps to be carried out.

    Common Mistakes :

    1. We tend to collect multiple(too many) objects in a single TR
    2. We collect our objects in other's transport requests via separate tasks without our/their knowledge
    3. We collect different types of objects in a single TR. Eg: Transformations and DTPs together
    4. We overlook dependent objects while collecting our objects
    5. We do not know whether RSLOGSYSMAP table has got right entries in Target systems or not.
    6. We don't bother about dependent objects are active in Target Systems or not

    How to use our common sense while managing transports

    Scenario : In our projects, we use some standard infoobjects like 0plant, 0Division, 0material etc., Please observe all these standard infoobjects belongs to their respective standard Infoareas and Application Components.

    How to handle above scenario?

    We need not to collect their respective Infoareas and Application Components every time. Because these standard Infoareas and Application Comps will be already available in target systems.

    How to transport DSOs/Infocubes first time to the target systems?

    As we might have already moved our infoobjects, we just need to collect only DSOs/Infocubes and move to target systems. We need not to collect any underlying infoobjects it is pointing  to, like below. The infoobjects which has Expand icon can be collected with "Do not Transport Any below". This will reduce the burden on the TR. Note : It's better to use "Only Necessary Objects" and Collect Automatically".
    DSO Collection.JPG

    What to do when DSOs/Infocubes becomes inactive target systems?

    Just collect the active version of DSOs/Infocubes and move to target systems. You need not to collect anything below.
    DSO Active status.JPG

    How to transport Transformations and DTPs first time to the target systems?

    We all are aware that Transformations are between Source and Target. That's exactly is the reason to collect Source and Target along with Transformation like below. We need not to collect all infoobjects of our Cubes and DSOs, because those objects have already been moved. Same explanation applies to DTPs also.
    Trans collection.JPG

    How to transport Transformations and DTPs after the first time to the target systems?

    We just need to collect the active version of Transformation and DTP. It's not required to collect Source and Target as they are already actively available in Target systems. This procedure can avoid running RDG_TRFN_ACTIVATE program directly in Target systems. You can run this program if you want to activate Transformations/DTPs in mass.
    Trans collection1.JPG

    Tips to consider while managing Transports

    We tend to collect multiple(too many) objects in a single TR

    We should not collect too many objects under one TR. Eg: 1) 30+ Queries 2) 10+ Process Chains etc., We will not be able to have a control on all objects. If you collect few and make them successful in Target systems, it gives you a great idea on our transports.

    We collect our objects in other's transport requests via separate tasks without our/their knowledge

    This is not really a big mistake. But there is a dependency here. Unless all the tasks of different users gets finished, you cannot release the main Request No. This will delay your work. To avoid all this mess, you should create your own TR and collect all your objects under it and release it.

    Sometimes the other developer would have developed some objects and saved in his task. When you take up that work and start working on them, all your changes will get merged with the existing request and task. You will be confused finally, what is your changes and their's ? That's why you have to collect freshly just before you are ready to transport all your objects. Never trans port the older requests, as you don't know exactly what are all changes have been done.

    We collect different types of objects in a single TR. Eg: Transformations and DTPs together

    This is a biggest mistake we generally do. When we start our developments in our BW Dev system, we might create one TR in the beginning and start saving all our work in that. Finally we land up in multiple errors while importing in target systems. Eg : (1 Infopackage, 1 DTP, 2 Transformations, 3 DSOs ) All in one TR.

    My tip here is, you can still work on single TR, but finally unlock all your objects with the help of my other blog http://scn.sap.com /docs/DOC-31394. Collect again freshly object wise from RSA1-->Object types in individual requests. Be clear on object wise here. Eg: Cubes- 1 TR, DSOs- 1 TR, Chains- 1 TR, Transformations- 1 TR, DTPs- 1 TR

    We overlook dependent objects while collecting our objects

    We should always cross check in target systems (before transporting our objects), whether dependent objects are active in Target systems or not. Eg : Datasource Replicas, Transformations, DSO/Cubes etc..

    We do not know whether RSLOGSYSMAP table has got right entries in Target systems or not

    Logical system conversions are must to be maintained in target systems , while transporting Transfer rules, Infosources, D atasource Replicas,Transformations etc. They basically check "Source System Reference" in target systems.

    You can maintain them with my other blog http://scn.sap.com/community/data-warehousing/netweaver-bw/blog/2013/09/29/clients-and-logical-systems

    How to collect Data flow Migration work

    This is a very sensitive task while collecting. All your sequence of steps have to be collected on the spot. Treat these TRs with special care. Don't allow any other changes to get saved under it other than migration activities. It is not as easy as unlo cking from the old request and collect again in new Request from RSA1-->Object Types.

    How to collect a BEx Query

    You have to select the tick boxes like below and cross check whether all the query elements have been collected or not. You need to select the Infoproviders, as they will be already available in Target systems.
    Query collec.JPG
    How to set your system Transport Request settings

    Goto RSA1-->Transports Tab-->Follow below image


    TR Type.JPG

    If you switch on standard, then every activity will ask you for transport request through a pop up instantly.

    If youSwitch -off standard, then all your activities will get saved in to local objects. Finally you will have to collect from RSA1-->Transprt tab-->Object types

    Object Changeability

    You can observe this functionality in above image. This can be used to provide a privilege for us to edit the objects directly in Target Systems. Eg: Queries, Web Templates, DTPs, Infopackages etc. This setting has to be done in Target systems

    Conclusion

    Transporting is an easy task if you organize things properly in a systematic manner. Maintain your own excel sheet with all your Transports. This will help you any time if you want to cross check.