Wednesday, December 17, 2014

Tools for migrating BW to HANA (BoH)

SAP NetWeaver Business Warehouse powered by SAP HANA or BW on HANA (BoH) is around for some time already. It was introduced in 2nd quarter of 2012 and meanwhile it got a lot of attention. Basically BW is usual choice when companies are trying to evaluate HANA. It is natural that first they just migrate to HANA as database and after some time they start to implement new project using new BW objects leveraging HANA functionalities. Or starting of re-implementing current BW data models to use HANA can happen. Anyway BW is getting a lot of attention as first system to be migrated to HANA.


It may be very tricky for people who are new to HANA even start with basic evaluation of what does it mean to migrate to HANA. To support tasks like this SAP is providing a few tools. In further text I try to list the tools and provide basics information about them.












Tools are embraced by central tool called – BW Migration Cockpit for SAP HANA. From the cockpit other tools for migrating BW systems to HANA are accessible.


Tuesday, December 16, 2014

Possible issues in RFC call between (non)UniCode systems

We can assume that nowadays most of SAP systems are running as UniCode enabled systems. However this wasn’t the case in past. Unicode conversions of SAP systems started around year 2005. As of NetWeaver 70 all SAP systems are shipped as UniCode. 0And still you may experience SAP system running as none UniCode complaint. Whole point of having UniCode SAP system is to enable cross language character set for international data processing. Basically this was driven by companies going multinational and pursuing of globalization.

What are the things one can face in case there are interfaces running between systems which all are not Unicode? A case can be that there is a function module (RFC one - BAPI) placed in SAP system A. The function module is called remotely from another SAP system – B. Systems A and B are not both Unicode complaint. While RFC data transfer between the two a character data based on different code pages are damaged. This is caused because partners are not both UniCode. In case conversion of particular character didn't succeed then the character is replaced e.g. by #.  This basically means that data is not readable in target system; it is damaged and therefore not usable.


How to solve such a situation? The RFC data transfer converts data depending on the transport code page only. The transport code page is independent of the code page the data are encoded in. What is the transport code can be set up in TA SM59 -> particular RFC -> UniCode tab. So basically by specifying of what the transport code is and how character conversion is supposed to take place we can avoid such issues.



















PS: If you ever wonder how System Status popup is build I have information for you. Whole dynpro is coded by FM STATUS_ANZEIGEN screen no 700.

Further info:
547444 - RFC Enhancement for Unicode ./. non-Unicode Connections

Monday, December 15, 2014

LSA++ as successor of LSA

There are few options when it comes to modeling of EDW design. SAP recommends so called Layered Scalable Architecture (LSA). This one I covered in my post here. Such architecture gives a guide for implementing new models in BW. Means what kind of layers are supposed to be used for that particular model.

The (E) DW Layer consists of the first 4 layers. The Architected DataMart Layer or BI Layer consists of the last 3 layers. Here are reference Layers:

·        Data Acquisition Layer (DWH)
·        Harmonization & Quality Layer (DWH)
·        Corporate Memory Layer (DWH)
·        Propagation Layer (DWH)
·        Business Transformation Layer (BI)
·        Reporting Layer (BI)
·        Virtual Layer (BI)

With HANA coming into the scope of BW which is known as BW on HANA (BoH) the LSA got renewed. Basically also HANA optimized objects are incorporated into the architecture. Because of nature of HANA data persistency is less needed across different layers of LSA. This leads to reduction of the layers. Basically this new reference architecture built for BW on HANA is called Layered Scalable Architecture (LSA++)
These are following new InfoProvider objects incorporated into LSA++:

Open ODS View – is object designed to consume external sources with a given semantic. There are no InfoObjects needed to define analytic semantics. Instead it allows field-based modeling. This is in line with agile data modeling suitable e.g. for rapid prototyping. An analytic functionality can be employed on top of (external) data structures due to different interfaces like SAP HANA smart data access. External data (not residing in BW) can be combined with SAP BW data (master and transaction data). It is virtual object – data is not persistent. The Open ODS View object is equivalent of PSA layer in LSA.

Advanced DataStore object (ADSO) – is standard persistent InfoProvider, supports analytic queries, in future also planning apps, capable of calculating data changes within data flow, consolidates different types of IProv: classic DSO, w/o DSO, InfoCube. The consolidation of different objects can be done on the fly by switching its behavior without deleting the data. Modeling of ADSO is done only in Eclipse environment. The data is persistent in the ADSO.


(new) Composite Provider (ComProv) – this is meant for new composite provider available in BW 74 on Hana not the one available in BW 7.3. The new one is successor of MultiProv and Infosets. It is modeling object for both: joins and unions, can consolidate existing InfoProv (VirtualProv base on SAP HANA models, InfoSets, MultiProv, etc). Modeling of the new ComProv is done in Eclipse environment. It fits to Virtual(ization) layer of LSA++.


More information:

LSA++ for SAP NetWeaver BW on SAP HANA – SCN article by Juergen Haupt, EIM203 session

Thursday, December 11, 2014

Components of SAP Gateway

I introduced SAP Gateway solution in my blog post here where I discussed installation of trial Gateway system. The SAP Gateway system is a framework deployable into ABAP Stack of NetWeaver where development of OData services is possible. Former mane of the SAP Gateway is SAP NetWeaver Gateway. It was renamed as per simplification initiative SAP is currently running.

I recently had a chance to work on the Gateway which was based on ABAP AS 74. I notice here that components related to the Gateway installed there were a bit different from other NetWeaver systems in particular those with versions below 74.

The difference was that were no components like GW_CORE, IW_FND and IW_BEP. Instead there was just one component called: SAP_GWFND. The newest current release of the Gateway is: SAP Gateway 2.0 Support Package Stack 09 740  0009          SAPK -74009INSAPGWFND. This basically means that SAP_GWFND in NW 74 contains all components which were delivered separately in lower NW releases.

Below I introduce what all the different components means:

SAP_GWFND - SAP NetWeaver Gateway Foundation
GW_CORE – Core Components
IW_FND - Foundation
IW_BEP - Business Enablement Component


More information:

1560585 - SAP Gateway 2.0 Release Note

Wednesday, December 3, 2014

ABAP: Dynamically generated WHERE conduction in SELECT

Sometimes ABAP programmers needs to do dynamical generation of WHERE conditions in SELECT statement. To do this the WHERE condition can be built by either CONCATENATE statement or by && string expression. Example in SAP documentation is provided here. Basically string variable is filled up with column name in which the lookup is performed and by lookup value:

cond_syntax = column &&  ` = value`. 

More over there are couple of function modules which can do this automatically. There are following FMs for that:

RH_DYNAMIC_WHERE_BUILD
CONVERT_SELECT_INTO_WHERE

Last note to this topic is related to lookups of string values. Usually while we want to search in SAP (e.g. in matchcodes) we use asterisk (*) as wildcard which matches one or more characters. However in SQL language instead of the asterisk a percent sign (%) is used for the same. Therefore while the WHERE condition needs to be build up to look up matches one or more characters before and after EMAIL literal in column USRID it has to look like following:

USRID like '%EMAIL%'

Wednesday, November 26, 2014

Unknown table in tcode SM50

Few days back I was debugging SAP standard function module in HR module of ECC. When I finished what I wanted to see in the debugger I let it run till the end. The FM was not progressing so I turned to TA SM50 to see whether it is doing something. Suddenly I saw that my process is running but what got my attention was Table column indicating that table is unknown (Tunknown). It took few more seconds and the FM and work process finished correctly and entry in the SM50 disappeared. I didn't pay attention anymore to that but I just tweeted about it.

My twitter friend Ram Manohar Tiwari however after some conversation pointed me to SAP Note 1524630 which discuss this issue in detail. Actually while using ADBC (ABAP Database Connectivity) API for Native SQL interface it can lead to situation in which system can’t really determine what table is actually used. In my case usage of ADBC is indicated by class CL_SQL_STATEMENT which is ADBC related.


As the notes suggests there always will be Tunknown entries in the SM50 as there are cases where “guessing” of used tables by DbSl interface (database SQL library) doesn't help.


Thursday, November 20, 2014

Difference between SAP Note and KBA article

SAP Notes are very well known since beginning of first SAP software. They are intended to help while supporting run of SAP applications. Basically the main purpose of the Notes is to fix an issue within the software. For details on the Notes and their types see here. Over the years another type of support document raised. It is SAP Knowledge Base Article (KBA).

The KBA are intended to complement the SAP Notes by depicting additional features or issues which are involved within particular SAP application. But the KBAs do not contain the code which fixes the issue. The code is solely provided by the Notes.

Both the Notes and KBAs are available via SMP at:

Filling EPM data model database tables with data

Similarly to SFLIHGT data model used to ABAP to demonstrate ABAP features in SAP NetWeaver ABAP stack based systems there is a data model in other SAP systems. Over the years another data model grown up. It is called Enterprise Procurement Model (EPM). This demo data model has broader scope and it aims to demonstrate capabilities not only ABAP but whole NetWeaver Stack.

The EPM is an app intended to be used solely for leaning, testing and demo purposes. It is part of NW Demo Software Component (Z_ESH_EPM_DEMO (customer system) or ESH_EPM_DEMO (SAP system)). Technically the app is delivered within different development packages:

Pack S_EPM_DG - New Data Generator, contains data generator, tcode SEPM_DG, associated with report SEPM_DG_EPM_STD_CHANNEL, see picture below


Pack S_NWDEMO_MODEL_DDIC Common Data Dictionary Objects (only) for EPM and NWDEMO, here are all the demo tables delivered



Once you run this tcode. You get tables like “SNWD_SO - EPM: Sales Order Header Table” populated with the data. There is an info message announcing that (EPM Data Generator:        40 Transactional Data records created, Message no. SEPM_DG037) after successful run of the tcode.

Further information:

2078644 - Getting started with EMP-based Demo Software Component ESH_EPM_DEMO
1651157 - Settings to Activate NW Demo Model Gateway Services
1942520 - EPM demo role for upload in a netweaver system

Wednesday, November 19, 2014

What is difference between HANA Cloud Platform (HCP) and HANA Enterprise Cloud Platform (HEC)?

These two terms are actually pretty tricky. There are plenty of articles available on web trying to explain those two. Actually none of them satisfied my curiosity to understand them. This is basically the reason why I wrote this post. One thing to consider is that these two SAP offering are rapidly changing. Also some of SAP definitions of cloud computing terminologies (like IaaS, PaaS, SaaS) are different from industry's perspective definitions.

Basic facts
Both HCP and HEC are cloud platforms and are built around SAP HANA. Very basic fact is that SAP started HANA as database. This database evolved over the time to platform. They both use the same infrastructure. What is different is their purposes and different types of users.

HEC - private managed cloud as hosting service where SAP provides the infrastructure (Infrastructure-as-a-Service) and the services needed to host SAP apps (e.g. Business Suite) deployment. This can include HANA custom and out-of-the box applications and SAP NetWeaver Business Information Warehouse software, all on a single instance of the HANA in-memory database platform. Also customer having already HANA license can user by moving it from their on-premise to cloud. In case of not having license an subscription model can be used.

HCP - is cloud platformm (Platform-as-a-Service) intended for independent software vendors, startups and developers to create and test cloud apps on HANA using its infrastructure, database and existing app.


More details on the topic can be found in following ASUG article

Tuesday, November 18, 2014

Technical Business Content

Technical BCT (tBCT) delivers as any other BCT BW objects that are easily deployable and runnable. There are many pre-delivered reports that can provide the data without much of changing it as well. But tBCT is different from common BCT because it contains technical objects. From this perspective we can say there are objects: used to monitor BW system itself or any other SAP system as well, helping to maintain BW authorization and BEx personalization, planning functions, and tracing reporting issues plus others.

In detail there are following components of Technical BCT:

BW Statistics BI Content – objects to evaluate performance of SAP BW system. There are two main areas of performance evaluation: OLAP processor and Warehouse Management (WM). See details here and here.

CCMS BI Content – comprises of BW objects for Computing Center Management System (CCMS) data in order to monitor and operate SAP systems. There can be thresholds sets for alert monitor and BW monitor, also we can monitor BW relevant SAP monitoring trees for processes like process chains, consistency checks etc. Basically it has the data from tcodes RZ20, RZ21, RSRV etc. See details here.

Central Performance History (CPH) BI Content – Because performance figures are not stored in the system for long period it enables storing of historical performance data of SAP systems to monitor architecture of the systems in landscape (their SLA) from long term point of view.
ABAP statistics BI Content – Enables reporting on statistics data from SAP’s Workload Monitor (tcode ST03). See details here.

Distributed Statistics Record (DSR) BI Content – reporting on Distributed Statistics Records (DSR) generated by non-ABAP components (e.g. AS Java, TREX). DSR are statistics records created for monitoring the SAP system performance of an SAP System and its components collected by associated CCMS agent.

BEx Personalization BI Content – objects used to fill variables with user specific values and to save user-specific start views for Web applications (Personalizing Variables in Web Applications.) and in BEx reports (Personalizing Variables). See details here.

BI Users and Authorizations BI Content – Objects used to generate Analysis Authorizations. Function available in tcode RSECADMIN. See details here.

BI Features Characteristics BI Content – 19 InfoCube objects (0M000100 - 0M111111) used to test the loading process for master data (MD) attributes and texts. By setting of settings for MD characteristics several aspects of the loading process can be tested. See details here.

BI Integrated Planning BI Content – parameters of BI-IP planning functions types stored in those BCT delivered characteristics and key figures. Also personalization of values for variable replacement works with these BCT objects.

Planning functions BI Content – SAP provides InfoObjects (characteristics and key figures) that the system requires as parameters for the standard planning function types (see Standard Planning Function Types). Personalization data for variable replacement (see Changing Variable Values in the Planning Modeler).

BI Trace Tool BI Content – BW objects needed as parameters in trace tool like: Test Results Archive (0RSTT_TESTLOG InfoArea for objects for describing the test results), Test Reporting( 0RSTT_TESTREP InfoArea for detailed description and analysis of the tests). Namespace for the objects starts with the character string 0RSTT*. See details here.


Exchange Rate Type BI Content – objects (like (0RTYPE)) that are supporting currency translation functionality. See details here.

BI Formula Builder BI Content – There was a DataStore Object used to store formula’s created in Formula Builder. But functionality was discontinued.

ABAP Statistics Data – BI Technical Content

There are few nice pieces of BW objects related to technical Business Content (BCT). The Technical BCT delivers predefined BW objects for analyzing statistical data about SAP systems.
Especially within the technical BCT there are components like: CCMS BI Content, Central Performance History (CPH) BI Content, Distributed Statistics Record (DSR) BI Content and ABAP statistics BI Content. N this post I will shortly discuss the later one.

What is ABAP statistics BI Content? In essence the ABAP statistics data are doing reporting on data from SAP’s Workload Monitor (tcode ST03). What reporting needs are covered within ABAP stats? First there are reports about user overview like daily/weekly/monthly overview providing of dialog steps in ABAP systems, broken down by various users. Second set of the reports are workload reports. So information on what was workload of the ABAP systems is shown on different date/time basis. What KPIs are covered? For example Number of Dialog Steps, CPU Time, Processing Time per Dialog Step, Database Time, Number of Sequential Reads, Total/Average Response Time any other other workload related KPI.

What are datasources of ABAP statistics BCT?

0CCMS_ASR_DATA - ABAP Statistics Aggregates and Single Records. Collects statistics data from the STAT statistics files on file system of the SAP instance. Important here is that data is aggregated.

0CCMS_WEBAS_STATREC_DATA - DataSource for ABAP Statistics (Alternative), predecessor of previous one. In contrary of previous one this is single record providing DS.

0CCMS_WEBAS_APPL_STATREC_DATA - DataSource for ABAP Application Statistics. Provides aggregated statistics data from the ASTAT statistics files on file system of the SAP host.


More information:

979581 - Installing and configuring the CCMS BI Content

807072 - DataSources for ABAP data and distributed statistics data

Importing client dependent objects in BW – tcode RSTPRFC

Similar to ABAP Data Dictionary objects (DDIC) also most of BW objects are client independed. However some of BW objects are actually client depended. These are objects especially in areas of DataSources based on web services, Process Chain’s jobs that are executed on client level or in BPC (Business Planning and Consolidation, e.g. appset objects) where this is not the case.
To understand the client dependency is also very important in case of BW transports. Usually BW objects are imported into client 000 while transport is running. But some of them require client specific processing. This is executed during import post processing phase of transport.
These are error messages one may face in case of need of client depended processing during the transport:

Start of the after-import method RS_APPS_AFTER_IMPORT for object type(s) APPS (Activation Mode): RFC Destination could not be determined for client xxx

or

Errors occurred during post-handling RS_AFTER_IMPORT for APPS L

or

"Generation of Web Service terminated (missing user confirmation)" message RSDS 305

or

"Error during remote call of destination ' ... ' - RSPC051"


Solution of such an error is to maintain costuming of destination (the client) for the transport post processing. This function is available from customizing main TA SPRO under path: SAP NetWeaver -> Business Warehouse -> Transport Settings -> Create Destination for Import Postprocessing or calling TA RSTPRFC (Create destination in BW std clnt for import post-processing) directly.



BW related users

There is couple of users needed for communication between SAP BW system and its source SAP systems. These users comes usually in pair: one of them is dialog user for administration guy for doing analysis and troubleshooting and other one is background one used while systems are communicating each other. The paired users are needed in both sides in BW and in e.g. SAP ECC as well. Below I will shortly describe what authorization and other things are needed in order to set up those users.

BW system:
Example of user
profile
BWADMIN
S_RS_ALL - Business Information Warehouse: All Authorizations
BWREMOTE
S_BI-WHM_RFC - Business Information Warehouse, RFC user in the Warehouse


ECC system:
Example of user
profile
BWADMIN
SAP_ALL - All SAP System authorizations
And/Or
SAP_NEW - New authorization checks
ALEREMOTE
S_BI-WX_RFC - Business Information Warehouse, RFC-User Extraction


More information on this topic:

150315 - BW-Authorizations for Remote-User in BW and OLTP

Monday, November 3, 2014

SAP hybris

In 2013 SAP has bought hybris company. What actually SAP gained by this? Hybris is very well known as e-commerce platform. In particular it is a complete multichannel e-commerce solution. It supports business within modules for product content, commerce operations, and extended channels to create a customer experience from online, to in-store, to mobile and beyond.


What is hybris from product portfolio standpoint? Following are parts of hybris Commerce Suite:

B2C commerce: tools to manage customer shopping experience across channels like PC, mobile, phone, tablet, phone call to call center, social network and in store location.

B2B commerce: solution to interact within B2B customers via online on web, on/offline on mobile while selling or buying.

Mobile commerce: platform for commerce on mobile devices (smartphones and tablets).
In Store: solution focusing on in store customer experience.

Master Data Management (MDM): solution for master data shared across sales channels in a single centralized product view.

Product Content Management (PCM): consolidation and centralization of products data and its attributes across all sales channels.

Order Orchestration: solution for order processing. Enables order to be processed  regardless of how order was entered or how product was bought.



What is platform of the hybris?

Hybris is based on standard Java / Spring, and expose API to all hybris specific functionalities.
How to interface hybris with traditional SAP based solution?
Via custom web services plugged into the hybris JAVA API.
Standard hybris services can be exposed as XML or JSON based services.


More information:

How to setup SSL protocol in ABAP stack of SAP NetWeaver

Couple of times I found myself in need of using https protocol in ABAP based NetWeaver system. Sometimes just for basic unit testing to run the test over http is enough. But customers are requiring more and more https as well. There is a nice SAP standard documentation (or here, or here) which basically walks us through the process of setting up an SSL.


In cases like it was mine today where I had some of the configuration done and some wasn’t done I choose a kind of shortcut of the whole setup. Basically I realized that my certificates are imported in TA STRUST. So all what I needed to do was an entering a new service in TA SMICM. I went to menu Goto -> Services of the SMICM. Here I went to menu Service and I choose Create item.


After that a new https service popped up in the list of services. I tested it by calling following URLs in my web browser:



Notice that once you restart your app server the http won’t work anymore. Basically whole configuration as per SAP documentation needs to be done. Especially we need to maintain system profile parameters to make the changes permanent.

Wednesday, October 29, 2014

SAP new logo – 2015 and beyond

Last week during SAP TechEd && d-code event in Las Vegas SAP has started to roll its new logo quietly.  The logo started to be appearing on Oct 21 on SAP home page. Afterwards official SAP twitter account (some of other SAP’s twitter accounts also), linkedin and profile and youtube followed.

The logo it-self is major change comparing to previous one. At first SAP completely abandoned blue as color and shape of the former logo. On color side now it is orange but they called it gold. Personally gold is fine with me. I think blue was also better but as gold implies warmness I think it is good move. On the logo shape I’m not that enthusiastic. For me the shape that was something which made SAP unique. When I look back how SAP logo evolved over the time the shape was there for most of company history. As in the new logo an A letter is shaped into some kind of smiley I believe the smiley can be a kind of differentiator for new logo.

So what message SAP delivers with the new logo? It is all about simplicity as announced on this year SAP’s annual SapphireNow conference. See more on SAP simplicity here:


There is one more thing. The new logo is there but there is no any SAP official statement about its lunch. This may seem to be strange. And it was until recently. In discussion thread on SCN finally and SAP employee (Costanza Tedesco - SVP SAP Brand Experience) made statement which seems to be the only one related to the new logo. Basically she shares that currently it was soft launch just in North America and larger lunch will occur in Jan 2015. She also suggests that new gold color was picked because the gold was here for quite a long time – just remember how layout and colors of all SAP presentations...


This is the new SAP Logo 2015 and beyond:





This is its predecessor 2011 – 2014:

Thursday, October 23, 2014

How to patch SAP Support Package Manager

There is this well-known error message which make me crazy almost every time I want to patch SAP system. It is about SAP Support Package Manager tools (SAINT or SPAM) which need to be upgraded prior the real upgrade of some component that I wanted to patch originally. The message goes like this for example:

SAPKB74005 requires at least version 0051 of the Support Package Manager
Message no. TN194


OK SAP. What else I can do? Just to patch the SAP Support Package Manager. So how do I do that? First of all the patch needs to be obtained from SMP.  It can be found at support.sap.com/software/patches/support-packages.html Basically it is SAR file. Then login as DDIC user into your 000 client. Run Tcode SPAM. Go via menu Support packages ->Load Packages ->From Front End.

Choose decompress. System will announce that “File 'sapkd74054.sar' successfully transferred, decompressed, and then deleted Message no. TN713. After that go to menu Support packages again and choose Import SPAM/SAINT item. The system will notify you about upcoming import of the patch:


This pop-up needs just to be confirmed. SPAM update icon will turn to red as signaling – ongoing update of the tool. The patch import phase will go through all its stages like main import, execution of reports after put, etc. After same time the patching will be finished with following pop-up:

Restart SPAM and read the current information ('i' button)
Message no. TN189
The message mean nothing else just the Support Package Manager was successfully patched.