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

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: