Thursday 13 December 2012

Essential Basis for SAP (ABAP, BW, Functional) Consultants Part-I

I am sure, while working with any type of SAP system, or interacting with Basis team, sometime it feels that a minimal overview of certain topics should be known.
Being a Basis guy, I have taken several sessions to Non-Basis folks in couple of organizations. This overview helps them to improve their understanding about SAP system, what goes behind the curtain and gives considerably better visualization.

When we login to SAP-ABAP we need SAP Logon-pad. Then let’s first talk around it!
It’s always suggested to keep logon pad updated, do you know where to check its version and patch number?

Click on top-left of you logon pad -> About SAP Logon...

Essential Basis for SAP (ABAP, BW, Functional) Consultants Part-I

Sometime it has been noticed that by upgrading logon-pad one can get rid of some ABAP dumps.
Its also good to know where the entries gets saved whatever connection is present on your logon pad. This helps when you move from one PC/laptop to another.

Options -> SAP Logon Options -> Configuration Files -> Connection.

Essential Basis for SAP (ABAP, BW, Functional) Consultants Part-I

Sometime there is restriction that you cannot add any entry to your logon-pad, no worries at all, just goto Start -> Run and type sapgui <hostname/IP>  <Instance No.>

Essential Basis for SAP (ABAP, BW, Functional) Consultants Part-I

This will open an SAP Login screen of particular system. Test with your existing systems where you are already logged in.

One more thing about logon-pad which is a cool trick to save your User ID and password and next time when you click a link it will skip UserID/password page.

Essential Basis for SAP (ABAP, BW, Functional) Consultants Part-I

Now fill all the field marked as red star.
In order to use this feature you must have a normal entry for an sap system in your logon pad and you need to modify your Windows registry.
Windows Start -> Run -> regedit -> HKEY_CURRENT_USER\Software\SAP\SAPShortcut\Security
create a new "String value" with name "EnablePassword" and value as "1"

Essential Basis for SAP (ABAP, BW, Functional) Consultants Part-I

We will discuss about Load balancing through logon-pad settings later in this blog.

Can we discuss architecture of SAP? Promise I will not bore you with details, my intention is to just provide limited information so that you can have your visualization correct.

Essential Basis for SAP (ABAP, BW, Functional) Consultants Part-I

The story goes like this: There are three layers. Presentation Layer <--> SAP Application Layer <--> Database Layer
PresentationLayer example - SAP GUI, BEx, Internet Exploerers, Adobe Forms, mobile devices interfaces etc.
SAP Application layer - ERP, BW, XI, SCM, CRM etc.
SAP Database - Oracle, MaxDB, DB2, MS-SQL Server, Informix,HANA

The scenario when we are not using load balancing; sapgui will be connected to an operating system(OS) level sap process known as Dispatcher. A Dispatcher is a kind of supervisor for all the other work process available in the SAP Instance (Instance is a set of work processes that can be started and stopped together, in the diagram there are two instance shown as box made of red lines they are denoted as two digit numbers like 00, 10 etc). All work-processes (dialog, background, spool, update etc) reports to the dispatcher about their availability and it's dispatcher which assigns them small chunk of work. No two work process talk to each other,  communication happens through the dispatcher.
The Dispatcher reports to the Message server which is nothing but an OS level work process. The Dispatcher provides information to the message server about how many work processes it has and how many are available at that moment. Dispatcher keeps on updating message server about its various work processes and their status.
Based on this arrangement the Message server remains in the position to decide where to send next request in order to balance the load.
....But wait, the request from outside is not going to message server in the diagram above then how it will route?
Answer is, if we want to use load-balancing feature and we have more than one instance (dialog instance) we should connect to message server through our Logon Pad, and not directly to the dispatcher. If you are loging in directly to one server then message server does not comes in the scene hence no load balancing. Here are both screenshots of logon pad.

Essential Basis for SAP (ABAP, BW, Functional) Consultants Part-I

In the above screenshot the connection is directly with Dispatcher running on the server mentioned in "Application Server" field where IP can be maintained alternatively instead of hostname.

Essential Basis for SAP (ABAP, BW, Functional) Consultants Part-I

In this screenshot the connection is with message server, notice the Group/Server field. This field value is created in SAP system, its a group of application server decided by Basis team that which dialog instance or central instance to include in the load balancing group and which instance should be left/reserved only for job running.

Third layer is database layer, individual work process in each sap instance are connected with database and they perform their activity. There are special work process known as update work process, they are of two type, one type handles time critical updates other type update handles rest of all sap updates which needs to be written to database.

Often question arises when to do system copy and when client copy will do?
Before that, are we clear what happens in client copy and system copy, most of the people are not very clear about it, Let first give quick look about client concept.

Essential Basis for SAP (ABAP, BW, Functional) Consultants Part-I

In this diagram two client are shown 100 and 200 of same SAP system. In an SAP system repository objects are same for all clients. There are some part of customizing which are also shared among all clients. For both of these types if anyone one will make some changes in one client it will be visible in other client as well. What is exclusive to a client is Client dependent Customizing (most of the customizing we know), master and transaction data, User master records(User ID, password, roles, authorizations profiles etc). As you guys already know better than Basis people that this segregation is done with help of table field MANDT.
Based on above diagram lets visualize the client copy concept, what will happen when we delete client 200, all the stuff present in indigo color box will go but if something was saved in repository will remain as it is. You can also imagine the decrease in database size. Now when we create new client by copying another client we get options that what we need from source client, based on the selection the new client will be created and it will increase the size in database accordingly. Below screenshot shows those options.

Essential Basis for SAP (ABAP, BW, Functional) Consultants Part-I

To understand the System Copy let's have a look at below diagram:
System Copy/System Refresh/Database Refresh/Homogeneous System copy/Refresh ->by the way these all terms are used for same thing by different people so do not get lost in the terminology.
What I am not telling you is OSDB Migration/Heterogeneous System Copy which is different than above and we will not discuss them here.

Essential Basis for SAP (ABAP, BW, Functional) Consultants Part-I

Lets assume we want to do system refresh XYZ system to ABC system. As you can notice in the diagram that XYZ has one client 100 and ABC has two client 650 and 930.
When we will do refresh of ABC, what exactly will happen?
first of all, system ABC will be kind of removed, we will do photo copy of XYZ system and make it stand in place where ABC system was standing, then we will rename this copied XYZ to ABC system now it will look like below:

Essential Basis for SAP (ABAP, BW, Functional) Consultants Part-I

See, the database size is exactly same, the client number is same old ABC is no where to find. Whatever was there in ABC earlier is all gone from your programs, codes, User IDs roles, customization everything. Whatever was there in XYZ system is now called as ABC system.

Next task for Basis team will be to create 650 client and 930 client by copying 100 client, when both clients will be ready client 100 will be deleted. don't forget even the user ID/password of XYZ will work as it is in both this new clients.

In last step basis team will import back the User master record of old 650 and 930 client if they have saved it before starting the refresh activity. Finally when system refresh will be over ABC will have two clients and in each client users can login with their old User ID and password as earlier.
If it is required to get back old programs and settings which were in old ABC and not in XYZ and those programs/settings were captured in some transport after re-importing those transport will bring it back. So before starting refresh have a good discussion with your Basis team.

In next part of this blog, we will discuss about SAP transport systems.

1 comment: