Friday, January 31, 2014

SAP Information Steward

This SAP offering originally from its BusinessObjects portfolio aims to provide a single environment to discover, assess, define, monitor, and improve the quality of your enterprise data assets. It is a part of SAP Enterprise Information management (EIM). This sounds really like pure marketing. Well I realized it J Therefore let’s talk about it in plainer and more technical English.
What is this software trying to address is the data quality. Image how difficult is to get Month End Closing (MEC) done for many organization when they have their data spread over x different departments. Every department is using their “practices” to deal with the data. Users sometimes do not know what definition of the data is, they do not know ability to analyze data dependencies, and they lack visibility where the data is coming from. At the event of MEC there is a lot of rush to consolidate eh data into form that is needed to be. So this is where EIM is coming to: it has components to handle Information Governance, Master Data Management, Content Management, Event Processing and Data Service. Following the Information Steward solution it has in particular these components:

Components and capabilities:
SAP BusinessObjects Data Insight – Data profiling
SAP BusinessObjects Metadata Management – Metadata Analysis
SAP BusinessObjects Data Services – e.g. Data Cleaning within Cleansing Package Builder (CPB)
SAP BusinessObjects Data Quality Management – Data Quality (DQ) Monitoring

As Information Steward was originally BusinessObjects products there are /were following versions available:
SAP Information Steward 4.2 (includes Data Cleansing Advisor feature)

Useful links: – EIM homepage
SAP BusinessObjects Information Steward – presentation from 2011

EIM-IS - SMP component

Dealing with 3.x specific DataSources in BW 7.x

3.x DataSources (R3TR ISFS) became obsolete with introduction of BW 7.0 (R3TR RSDS). New versions of BW are still supporting it. By support it is meant that BW 7.x run such a DSs emulated 3.x DataSources. However for some reasons you may need to migrate the 3.x DS to 7.x fashion. This is possible in TA RSDS->menu DataSource-> Migrate 3.x DataSource -> DataSource.

Also if you for some reason need to the change the originally 3.x DS which was migrated to 7.x back to 3.x state. This is supported by TA RSDS as well. See in menu DataSource-> Restore 3.x DataSource.
One thing that you need to be aware is that it is not possible to change/edit a 3.x DataSource directly in TA RSDS only to display it. To change the DS is only possible once transfer rule is generated fot the DS. This can be either done manually in TA RSA1 or generated in TA DSDS. In RSDS what you need to do is just to witch to Edit mode of the DS. You will be prompted to confirm the generation of transfer rule. System generates transfer structure, Persistent Staging Area and all needed corresponding DDIC objects.

For details see SAP Note:
997739 - You cannot edit a 3.x DataSource directly
936644 - 3.x DataSource:No active version displayed in UI (emulation)

Other DS related blog posts:

Wednesday, January 29, 2014


Only very short time ago I blogged about SAPUI5 and here’s continuation. SAP wants to be more and more involved in open source software. As a proof on last year’s Teched 2013 they introduced continuation of SAPUI5 in form of open source called as OpenUI5. The basic difference between those two is that OpenUI5 is free version available under the Apache 2.0 Open Source license. On other hand SAPUI5 is for SAP’s customers and partner having SAP licenses. From central functionalities point of view they both are equal.

For all the details see the OpenUI5 announcement blog at SCN.

To see what UI you can get out of OpenUI5 see here.

Useful links for OpenUI5: – official page
@OpenUI5 - twitter

Transport option IMPORT ALL for BW objects

Since Solution Manager (SOLMAN) system arrived to SAP scene a huge push to automation of SAP systems administration takes place. This of course involves transport between SAP systems. The transports in particular because especially in BW area transports are really painful. SOLMAN forces to use so call IMPORT ALL transport procedure. What is technically done is as follows. The option IMPORT ALL or sometime called as tp import all is involved within METHOD EXECTION phase of transport (during which the objects are being stored into target’s system repositories). Basically in case there are more transport requests (TR or CTS) present in transport queue they are all taken and imported into target system. But is objects (e.g. IOs) which are influencing other objects (e.g. InfoProvider) are not in same TR but in several TRs it is very likely that some of TR will fail during its after-import processing. This would not be an issue in case of ECC (or R/3) objects. However it is an issue in case of BW objects because of dependencies, metadata and so on. Therefore it is needed to handle after-import phase differently. Objects from all TRs are merged together into the one list and the list is processed just once.

If you want to use this functionality notice that there are 2 versions of this solution depending on your BW release:

Pilot and final version. Within pilot you need to set parameter RSVERS_BI_IMPORT_ALL of RSADMIN table to X. Refer to Notes below for further details.

Also notice that in such a scenario of transport setup all the logs from all the TRs are collected into the log of 1st TR.

1115759 - Error during import of BI objects with "Import all"
1556801 - Restrictions for IMPORT ALL in relation to BW objects

1385869 - Parallel execution of BI after-import methods

Tuesday, January 28, 2014

Switch Framework for BW

You may hear about term Switch Framework. It simplifies ABAP based NetWeaver systems by enabling of switching on/off features of the system. Switching on/off approach means objects change their visibility in repository. The purpose is to adapt/activate the industry settings or solution in particular system. The intention is to provide more functionality by enhancing standard functionality with aim to minimize custom development. The Switch Framework controls which enhancement implementations are to be performed. This is controlling:

- Switch on industry solutions and Enterprise Add-Ons delivered by SAP
- Enhance delivered partner and customer systems delivered by partners

See details here on components and architecture of Switch Framework here:

By which transaction I manage Switch Framework?

SFW1                      Create switches
SFW2                      Create business functions
SFW3                      Create business functions sets
SFW5                      Switch on business functions
SFW2 and SFW5       Maintaining information about business functions
SFW_BROWSER        Display and check the status of business functions

When it comes to BW there are also objects which can be managed by Switch Framework. In this case it is about query components. In particular about Business Content (BCT) delivered queries. The framework is called "Switchable Query Components in the Switch Framework".

All query components that are not reusable (e.g. characteristics, attributes, structure elements, conditions, exceptions and cells) are switchable in the Switch Framework. In case query is missing some functionality you can do the switch in TA RSOSCSW.

For more details refer to documentation

Few words on table RSDIOBJ - directory of all InfoObjects

This blog is originally posted on SCN:

Few words on table RSDIOBJ - directory of all InfoObjects

Here's it is just cross-published:

Sometimes we need to find proper IO while we developing BW’s flow’s and associated InfoProviders. It is definitely easy to reuse what’s already pre-delivered (in form of Business Content aka BCT) with BW than to develop custom IOs. To find out if particular IO is already activated from BCT we usually use TA RDS1. If IO is not popping up within this TA we usually activate it.
But there is a different way except to find the IO via RSD1 or RSA1 transactions. Actually repository of all the IOs is stored in table RSDIOBJ. The table acts as directory of all the IOs. So let’s have a look on what is other interesting information within the above mention table.

Main field:
IOBJTP - Type of an InfoObject:
CHA    Characteristic
KYF     Key figure
TIM     Time characteristic
DPA    Data packet characteristic
UNI     Unit of measurement

BCT relevant fields:
CONTREL – BCT Content release e.g. 7.1/01, 1.2/02

CONTTIMESTMP - Time stamp of last modification to the object by SAP (BCT timestamp)

OWNER - Person who created object = always SAP as it is BCT relevant field

BWAPPL - BW Application where the objects bellows to, e.g. BW, APO, etc

ACTIVFL – if X active and revised version do not agree

Time stamp relevant fields:
TSTPNM - Last changed by, in case OBJVER is D it is always SAP, if custom it is name of user who touched the objects for last time

TIMESTMP - UTC Time Stamp in Short Form (YYYYMMDDhhmmss) of object last change

Version relevant fields:
OBJVERS – describes Object Version with regards to BCT:
A        Active
M       Revised
N        New
D        Content
H        Historic
T        Transport

OBJSTAT - describes Object Status from object as itself:
ACT    Active, executable
INA     Inactive, not executable
OFF    Switched off
PRO    Productive

Other fields:
PROTECFL – value X if IO is protected, it means that changes to data and metadata are not allowed for the object because it is internal system object, e.g. 0DATE* 0 date related, 0D* - e.g. 0H_ALEAFNOC, 0FACTCOUNT, 0H* - hierarchy related, 0LANGU, 0OBJECTID, 0TXTLG, 0TXTMD, 0TXTSH

PRIVATEFL - IO is Private means used for Temporal Hierarchy Join InfoObjects, IO which are on Hierarchy tab of IO maintenance screen enabled as "Use Temporal Hierarchy Join" That’s the feature that is to be used for this characteristic with time-dependent hierarchies. (e.g. 0D_FC_CUST1, 0D_FC_PERS1, 0D_FC_SEMP1, 0D_NW_CHB1, 0D_NW_CRB1, 0D_NW_EMPL1, 0D_NW_ORGU1)

FIELDNM – name of the IO in structures (not in database table), by structures is meant start/end routine structues of source/result_package, also the name is used in ABAP DDIC structures of InfoProviders where the IO is used (e.g. 0SALES has field name = SALES, ZZ_IPPORT = /BIC/ZZ_IPPORT)

ATRONLYFL - IO is exclusively an attribute (not used in ICs), this settings is available on General tab of IO maintenance screen. If set it can only be used as a display attribute for another IO and not as a navigation attribute. Also particular IO cannot be included in InfoCubes.

BCTCOMP - Obsolete - do not translate. It was used on older version of BW (<7 .x="" 7.x="" and="" anymore.="" as="" assign="" bct="" been="" business="" by="" component.="" components="" dp_db="" e.g.:="" example="" framework="" have="" ims-usa.="" in="" is-oil="" is="" it="" not="" o:p="" of="" packages="" replaced="" switched="" to="" used="" values="" witch="" xsa="">

BDSFL - Characteristic is allowed as attribute of documents, used for Comments functionality. Feature can be switched on via General tab of IO maintenance screen. The check box is called “Characteristics is Document Property”. Here you define if the characteristic is permitted as a property for documents. User can assign a comment for a combination of characteristic values for such an IO.

ORIGIN - Origin of Object, technical flag to control upgrading of BCT. Attributes of the IO can be deleted with the new BCT. IO created using TA EEWB "Easy Enhancement Workbench" are not affected by this. Possible values:
E        Extensibility


NODIM function in BEx query formula to keep unit associated with KF

Data functions are heavily used with the formulas in BEx queries. You can achieve a lot by proper using of data functions. There is a wide variety of scenarios where they can be used.  In this post I’d like to briefly discuss of how we can use NODIM function within formula where several different units of measure are involved.
Main purpose of NODIM is to strip particular figure from unit of measure which is associated with. It syntax is follows:


Imagine we have a formula in BEx query consists of several key figures each of them having different unit. The formula can be set up in a way that NODIM function would be used to embrace each component of formula/expression. Doing this BEx Query Designer triggers following warning:

Element “formula XYZ” is not correctly defined (check the query definition) (BRAIN-206)

The correct way of how to setup this formula is to have just one NODIM functions for the component of formula which causes strike of different units. By this even system keeps correct unit associated with KF.



Sunday, January 26, 2014

Download developer edition and trial version of SAP software

A long time ago (yes it was Nov of 2007 ~ 7 years!) I posted blog about SAP software available for download. The post still live here:

miniSAP – where to download it?

At that time we called trial version of SAP as miniSAP. Times passed by and now we call it Developer or Developer Edition or Trial version of the same. Also platform where the software is downloadable has changes. SAP - specially SCN team started to migrate the downloads from SCN it self ( to SAP store: downloads are part of Database and Technology department of the store. 

From NetWeaver based on ABAP stack perspective currently there are following three versions available for the developers:

SCN - SAP NetWeaver Application Server ABAP 7.02 SP6 64-bit Developer Edition

SCN - SAP NetWeaver Application Server ABAP 7.02 SP6 32-bit Trial Version

SCN - SAP NetWeaver Application Server ABAP 7.03 64-bit Trial

So all my dear SAP developers rejoyce! Software download is back!

Monday, January 13, 2014

Bypassing SSO in Analysis Office (AO)

For BW developers it is business as usual that they have to test their reports to check whether they are working with test user’s account. This means that during the report development the developer was using the developer account but during the testing he or she has to use test account. In case within the landscape a Single Sign-On (SSO) is in place the developer may not be able to use other account then his own one.

However there is a solution. You can bypass SSO and provide user credentials for particular log on. Depending on you user workflow you need to switch off setting of "Activate Secure Network Communication" for particular BW system. You can find this setting in SAP Logon Pad. Proceed with the right click on particular system and choose Properties. After that you get pop-up where you maintain the setting. Once you done with testing you may want to set it back.

Sunday, January 12, 2014

SAP Terminology site -

SAP has launched probably early in 2013 a new site with all terms used in SAP software. You can find any terminology in more than 40 languages. It may help you to find a definition of the term and its translation into other languages. You can find the site useful while need to look up the term or its translation and not having access to SAP system e.g. to transaction SE64, STERM or SAPTERM – Terminology. Or not having access to the SAP system with particular language installed. 

The site is programmed as web dynpro (app STERM_WEBACCESS I guess it is JAVA based). For details see article here.

What is SAP planning and consolidation portfolio?

In this post I’d like to briefly describe current SAP portfolio of planning/consolidation portfolio. Kindly notice that in this area there are multiple offerings involved. The portfolio is really evolving very fast!

With advert of SAP HANA there are significant changes into planning and consolidation applications. SAP is (was) offering different solutions for planning/consolidation apps.
In case of planning part it all started with BPS (Business Planning and Simulation) which is add-on to BW enabling BW to provide planning functions. Technically speaking this means that BW is capable to write data (so called planning data) entered by user into its InfoProviders (e.g. cubes). This functionality is embraced so called planning layouts where user has the interface via which user can enter the data. Just a side not BPS was formerly called SEM-BPS. In version 7.0 of BW a BW-IP (formerly called BI-IP) arrived. IP stands for Integrated Planning and from technological point of view it is based on JAVA stack of NetWeaver. Finally when HANA took a stage some of BW-IP functionalities started to leverage HANA.

That would be all for planning part. In case of consolidation part situation is trickier as per historic background. In this space SAP has a pile of its own or acquired apps. It all started with R/3 module FI-LC called Legal Consolidation. Later LC module was renamed to EC-CS (not sure what does it stand for, maybe Enterprise Component – Consolidation System?). Usually we call it ECC based consolidation. From BW stand point there was SEM component called BCS (Business Consolidation). This is what we called BW based consolidation. Due to SAP’s acquisition of BusinessObjects and of Outlooksoft there were more products coming into play. BOBJ had product called SAP BusinessObjects Cartesis Finance which became SAP Financial Consolidations Finance (SAP BFC) sometimes called SAP FC only. On Outlooksoft front SAP got two products which are part of Business Planning and Consolidation (EPM-BPC): BPC-MS - Microsoft Version and BPC-NW - NetWeaver Version. To sum up consolidation part there are 3 solutions: BFC and 2 flavors of BPC. HANA has changes consolidation solutions as well. In BW version 7.3 SP5 (which is version required for BW on HANA scenario) Planning Applications Kit (PAK) was introduced. The PAK enables an execution of BW-IP functionalities on HANA. After that the BPC was left as unsupported by HANA. This got changed within SAP BW 7.40 SP05. Here the BPC "unified" model was introduced. By unified it is meant there two models are integrated as enabled on HANA:

1. Business Planning and Consolidation (BPC)
2. Planning Application Kit (PAK)

For information on how to activate PAK see SAP Notes below.

Useful notes:

1637199 - Using the planning applications KIT
1637148 - BW on HANA: Activation of Planning Application Kit
1919631 - Activating the BPC-PAK unified model

Monday, January 6, 2014

Searching within the strings in ABAP

There are few possibilities of how to manage searching within the strings variables in ABAP:

1. The classic way is to use comparison operators for character-like data types. These are following operators which can be used for character-like operands:
CO – Contains Only
CN – Contains NOT Only
CA – Contains Any
NA – Contains NOT Any
CS – Contains String
NS – Contains NOT String
CP – Contains Pattern
NP – NO Pattern

Following wildcards can be used:
* represents any character string,
+ represents any character

To check if string contains value CA followed by underscore; then followed by any combination of 2 characters; then again underscore; then  combination of any 10 characters and finally 10 spaces; would be represented like (this represents Transfer structure between source system and BW - data element RSTRANSTRU):

if l_transtru cp 'CA_++_++++++++++           '.

2. Predicate Functions is other possibility. It basically does the same as above mentioned comparison operators. There are 2 sorts of the fusions:
2.1 contains* / contains_any*
2.1.1. ... contains( val = text  sub|start|end = substring [case = case] [off = off] [len = len] [occ = occ] ) ...

2.1.2. ... contains( val = text regex = regex [case = case] [off = off] [len = len] [occ = occ] ) ...

2.1.3. ... contains_any_of( val = text sub|start|end = substring [off = off] [len = len] [occ = occ] ) ...

2.1.4. ... contains_any_not_of( val = text sub|start|end = substring [off = off] [len = len] [occ = occ] ) ...
2.1. matches [matches( val = text regex = regex [case = case] [off = off] [len = len] ) ...] - compares a search area defined by off and len of the argument text to the regular expression specified in regex and returns the relevant truth value

3. Other possibility much more modern is to use regular expressions. Regular expressions statement REGEX can be used as addition of FIND and REPLACE statements for searching in character strings. More complex regular expression can be handled by classes CL_ABAP_REGEX and CL_ABAP_MATCHER. To model precise regular expression that you need for your development see ABAP report DEMO_REGEX_TOY or DEMO_REGEX. Regular expression is huge topic which deserves separate post. So for time being I’m just providing documents on SDN related to that:

Wednesday, January 1, 2014

SAP ecosystem renewed

Seven years ago I posted a blog about SAP ecosystem. In retrospect that blog looks really obsolete. First of all the scope of ecosystem got much larger then it was to be back in 2007. That time ecosystem was supposed to comprise more-less from partner companies only. Also everything at that time was about SOA (Service Oriented Architecture) which was claimed as core of ecosystem. We all know how SOA hype turned out afterwards.

OK, let’s jump back to present time. SAP needed to drive their ecosystem by something similar to what other companies like Apple did. They engaged wide spectrum of developers. This at is the end what made their products so successful. SAP is I (personally hope) striving to follow same path. Ecosystem is therefore all customers, partners (all type of consultancies from big system integrators through to small boutique type of companies to independed freelancers), developers (and I say developers, developers, developers!), SAP user groups, SAP experts (such as SAP Mentor, influencers, SCN topic leaders etc.) and industry experts.

We have seen in last year 2013 a push to ecosystem by SAP. What is even more needed we have seen big push towards the developers. Fee initiatives introduced last year which I believe will have huge impact on ecosystem:
  • Learning platform ( where developers can gain and broaden their current skills and obtain new one via plenty of courses.
  • UI technology SAP UI5 introduces as open source called OpenUI5.
  • Unified SAP DeveloperLicense – which allows to freely share ABAP code within the projects.
To complete this post I like to point to current possibilities of how start application developments on SAP platforms which I blogged yesterday here.

For more details see:
1054121 - The SAP Ecosystem in a Nutshell

Presentation “The SAP Ecosystem in a Nutshell” on SMP (login required)

PS: as this is my very first blog of year 2013 I’d like to wish all of you very happy New Year MMXIV. Let it bring good health and wealth to you!