Monday, January 12, 2015

SAP NetWeaver 74

SAP NW 7.4 is basically successor of NW 7.0x and particularly NW 73 not just from general SAP Application Server - ABAP stack point of view but it comes with many features with regards to HANA. Reason being is that the NW 74 got optimized for the HANA. This doesn’t mean that other databases are not supported. Sure they are just focus of optimization is just HANA. The NW 74 is foundation of Business Suite and all its innovations of 20013 and BW 7.4.

The NW 7.4 is available since May 2013. Currently there are following SP of NW 74:
SAP NetWeaver 7.4 SP0 GA May 2013
SAP NetWeaver 7.4 SP2 GA May 2013
SAP NetWeaver 7.4 SP3 GA July 2013
SAP NetWeaver 7.4 SP4 GA November 2013
SAP NetWeaver 7.4 SP5 GA December 2013
SAP NetWeaver 7.4 SP6 GA March 2014
SAP NetWeaver 7.4 SP7 GA June 2014
SAP NetWeaver 7.4 SP8 GA September 2014 – so called Service release SRS2
SAP NetWeaver 7.4 SP9 GA November 2014

So now let’s have a look what new is available in NW 74, of course majority of them are focused on HANA. A list below is gathered on NW 7.4 SP8:

-      “Code to data” ABAP code paradigm: This means that instead to do complex or data intensive operations on ABAP application server the logic is moved one floor down to database means to data layer. There are many new ABAP statements available to support this approach. Following are techniques to support this: ABAP Managed Database Procedures (AMDP), Native SQL (ABAP Database Connectivity (ADBC)), Open SQL enhancements for building views for CDS, Optimized protocols (Fast Data Access), Table buffer enhancements, Core Data Services (CDS) etc.

-      Development environment in Eclipse: basically all the development (not only in ABAP but UI and HANA development) can happen now in one tool – the Eclipse. Means co-development and deployment of HANA and ABAP artefacts.

-      Components like Application List Viewer (ALV) and Business Rules Framework (BRF+) optimized for HANA: e.g. ALV optimized for HANA (ALV on HANA), these components are directly leveraging power of HANA, e.g. result set or help displayed in drop down boxes for ALV is reduced already in DB by code-to-data approach.

-      SAP Gateway and SAPUI5 functionalities out of the box: systems based on NW 74 are ready for exposing its data via SAP Gateway using SAPUI5 user interface.

-      Majority of NW 74 offerings available in SAP Cloud Appliance Library (CAL): from the CAL the SAP system can be easily deployed from variety of preconfigured Rapid Deployment Solutions (RDS).

-      New developer tools e.g. for testing, monitoring: SQL Performance  Tuning Worklist (SWLT), ABAP SQL Monitor (tcodes: SQLMD, SQLM)

Useful links:
NetWeaver Community page at SCN

Sunday, January 11, 2015

Working with inactive DDIC objects

Usually while we are activating particular DDIC object (e.g. ABAP report) there is a popup showing all inactive objects of same type. By this popup we can choose which objects will be activated. However this functionality is also available from within special transaction. This is called WORKINGAREA tcode (or SWRK). The tcode is programmed within ABAP report WB_INACTIVE_OBJECTLIST_START.

Another purpose for which the tcode can serve is to make sure that all objects which were created by ABAP developer are active.

Since the tcode is not very know between the ABAP developers I wanted to spread a word about it within the blog post.




PS: As per comment from Constantin I’m adding one more information about the topic. The functionality of inactive objects is also available in tcodes like SE38 or SE80 in menu Environment -> Inactive Objects.

Friday, January 9, 2015

Download/ Exporting of user’s favorites SAP GUI

This is one of very common inquiries from SAP users. Function of Favorites of SAP GUI is very often used. The users like to use it as it is very easy to just put there transaction code which are not easy to remember.

While there is a new SAP system or client where the user is getting account into he or she would like to have same most used or favorite transaction used available in the new system. Actually downloading or exporting of the favorites is supported within SAP GUI. Same it is with upload or import. There is a function available in SAP GUI’s Favorites menu called “Download to PC” similarly to “Upload to PC”.

The functionality of these two is implemented by following FMs:
MENU_FAVORITES_DOWNLOAD

MENU_FAVORITES_UPLOAD


Wednesday, January 7, 2015

SAP project Kayak

While debugging I ran few times into the mysterious term "kayak project" in the ABAP code. Occurrences of this term - the kayak; can be visible e.g. in source code of report LSENAF01. This is a screenshot from that report that I also tweeted:









There are couple of function groups/module, classes, many reports etc.. starting with prefix /KYK/* and available in ECC as well. Few examples of function groups:

/KYK/FIN_FI                                Function Modules for Kayak Financials
/KYK/LOG_EXECUTION                 LOG_EXEcution
/KYK/OPS_MM                             Function group for /KYK/OPS_MM
/KYK/OPS_PP                               Function group for PP

From the code that I found it started to be obvious that the kayak is supposed to another full blown ERP within the same environment of ECC?

So I was eager to reveal further what kayak is or what was is. Google just suggests it is an SAP effort to reduce TCO of SAP ERP. Further information I found by some SAP Notes. The kayak seems was really the project happened in year 2006 when SAP came out with product called All-in-One (AiO) or sometimes called SAP Business All-in-One (BAiO) or SME ERP Business All-in-One.

As SAP was historically power house in segment of "big" ERP systems they are (were) also considering on how to enter SME market. In order to enter this market they did several attempts. White paper which I found here suggests that there were following: R/3 running on laptop – project Heidelberg, Ready to Run (in past also used as SAP’s marketing slogan), Ready to Work. And finally there was All-in-One which is ERP application suite for midsize companies for either on-premise deployments or on a hosted basis. It is based on NetWeaver basis platform. The AiO is prepackaged (also for verticals) and even processes are bit simplified (do not confuse this simplification effort with “S – initiative” announced in 20014). Therefore there is so many “kayak specific” ABAP code. 

I already wrote a blog post about AiO some time ago here. It was actually in 2007 I just didn’t know that code name AiO was the Kayak that time :)

If you are running AiO you may observe as per following remarks:

Software Component: KAYAK, version: e.g. 120, Support Package: e.g. SAPK-12005INKAYAK

Component version information popup

Component version functionality available System Status menu of SAP GUI is very convenient way of how to quickly check what kind of version and components SAP system has user is logged into. This functionality was always there. To see how we can use it (even it is pretty obvious) see in this post or just follow menu in SAP GUI: System -> Status -> Button 'Component Information'.

Sometime ago SAP improved search functionality of this popup. This was done by replacing older layout with ALV features which comprised of sorting.

However within (I guess!) NetWeaver 7.4 I observed that this functionality has improved again. The popup with Component version has extended. Information now is separated into two tabs within the popup. There is “Installed Software Component Version” and
“Installed Product Versions” tabs. The slit serves to recognize between the Components (e.g. SAP_APPL which is Logistics and Accounting or SAP_FIN which is SAP Financials or SAP_HR which is Human Resources) and the Products (e.g. SAP NETWEAVER, SAP ERP, EhP x, or SAP EHS et cetera).


Needless to say that the popup is provided FM OCS_UI_DISPLAY_PATCH_LEVEL.



Friday, December 19, 2014

Data Dictionary Type inconsistency

Recently I faced strange situation related to ABAP data dictionary. While I was logged into the system suddenly I could not run any of standard transaction. Literally all stopped, nothing worked, just everything seemed to ending up in ABAP dumps everywhere. As I could not even change to run tcode ST22 I had no really choice to see what is going on. Only this was the message:















Finally I found out one tcode which worked. It was SM21 tcode and here what I saw in there:

11:53:11 DIA  007 000 SAPSYS                 AB  0 Run-time error "DDIC_TYPE_INCONSISTENCY" occurred
11:53:16 DIA  007 000 SAPSYS                 AB  1 > Short dump "141128 115311 myserve r_SID_00 " generated error DDIC_TYPE_INCONSISTENCY occured p1=abap-gen

While I searched for “DDIC_TYPE_INCONSISTENCY” issue only advices I got was ot check consistency of data dictionary by reports like RSNTABCONSISTENCY or RSDDCHECK. However I could not ran these as nether SE38 was accessible.

Luckily I had an access to OS system of that SAP instance. As I logged into the OS I realized that some transport was being imported. After contacting Basis support I revealed that there was a patch import in progress in that transport. However for some basis issue that patch was not intended to be imported to that system although it was technically possible. Not proper patch caused that data dictionary was falling apart. Basically an objects which were active before got overwritten by the transport but as they were not correct there could not be activated due to syntax related issues.

What can I tell you… basis team admitted their mistake and we ended up restoring the system from (luckily) 1 week old backup. One more lesson learned!

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.


HCP - is cloud platform (Platform-as-a-Service) intended for independent software vendors and developers to create and test cloud apps on HANA using its infrastructure, database and existing app. The platform is Java-based, relies on open standards and leverages industry leading tools to accelerate ramp-up and maximize developer productivity.
Former name of the HCP was SAP NetWeaver Cloud or NetWeaver Neo (neo = SAP HANA Cloud Console Client) or OnDemand Cloud Platform.


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. SAP HANA Enterprise Cloud runs on the SAP HANA Cloud Platform.



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