You are on page 1of 12

What is SAP Basis?

Basis, as evidenced by its name, is a foundational part of SAP systems.


However, it's difficult to answer the question of what exactly SAP Basis is
because of its many different components. Let's start at the beginning.
Thisdefinition of SAP Basis lays out the basics. Basis consists of the
following components:

Client/server architecture and configuration: This is the technical


foundation of both SAP and Basis.

A relational database management system (RDBMS): Basis overlaps


with many aspects of traditional database administration.

A graphical user interface (GUI): The GUI is the interface through which
the Basis administrator interacts with SAP systems.

A development environment: This is where Basis development takes


place.

A data dictionary: Data dictionaries are an indispensable part of the


development process.

User and system administration and monitoring tools: These allow the
Basis administrator to maintain the integrity and performance of SAP
systems and address user concerns along the way.

Understanding what these components are, and how they function


together, is key to being able to answer the question what is SAP Basis?

Resources for SAP Basis administrators

SAP software is used by a wide variety of people, from truck drivers


uploading delivery information to IT specialists in data centers. In SAP
Basis, though, the only regular end users are SAP Basis administrators.
There are two sets of resources for SAP Basis administrators, based on
experience. If you're just getting started in this role, our resident SAP Basis
expert can answer any question you'd like. It can be difficult to anticipate all
the questions a Basis beginner might have, so the best approach is to start
by asking any questions that this guide doesn't answer.

Basis challenge #1: Triggering


jobs inside and outside SAP
First things first transaction SM62 is used to create SAP events,
transaction SM64 is used to trigger SAP events within the application, and
SAPEVT.exe is used to trigger SAP events while outside the application.
Transaction SM36 is used to create background jobs and transaction SM37
is used to monitor and manage background jobs.

Transaction SM62 -- Define events


You can create and display "User Event Names" via SM62. Although user
event names don't have to start with the letter "Z", I recommend you use it
to quickly differentiate between pre-delivered SAP events and your own.

Example:
An event by itself doesn't do anything. A background job needs to be
defined and configured to wait for the event. Therefore, you create the
background job via SM36 and specify the new event name as the "Start
Condition".

Example:

Notice that the new background job can be defined as a periodic job. This
allows you to trigger the job in the future as opposed to one time only.
Transaction SM64 -- Trigger events within SAP
To trigger an event, run transaction SM64 and specify the event name.

Example:

Executable SAPEVT
SAPEVT.exe is part of the R/3 Kernel and located under the
usrsapsysexerun directory on the central instance.

The syntax is as follows:

sapevt &ltEventName> pf=&ltPath_to_Default_Profile>

Example:
C:>sapevt ZFI_LOAD_INVOICES
pf=sapprdsapmntPRDsysprofiledefault.pfl

SAPEVT is a stand-alone executable that can be copied into remote


computers. That's right! You can execute an event right from your laptop or
desktop computer.

So, is there anything else required on the remote computer besides the
executable? Yes. You need to have an entry in the "services" file with the
TCP port for the SAP messenger of the SAP instance. You can edit the file
with Notepad or any plain-text editor and add the necessary entry at the
end. The file is located under the %systemroot%system32driversetc
directory.

Example:
C:>notepad windowssystem32driversetcservices

Add the line below and save the file:


sapmsPRD 3600/tcp

Also, please notice that you need to have read access to the "default.pfl"
file on the SAP instance.

Now that you know how to trigger events to kick off SAP jobs you can smile
every time an interface job is needed.

Basis challenge #2: Reaching


outside the application
Transaction OS01 (LAN Check by Ping) can be used to find out if a particular computer
is reachable on the network. Transactions ST06, ST04, AL11 and others help us carry
out some activities that are outside the SAP application, but sometimes we need more
than that. Sometimes we need to check if external services are running, start or stop
local or external services, run external programs, etc.

Transaction SM69 is used to create and maintain external operating


system commands. SM49 is used to execute them.
<=""
style="border: 0px; max-width: 600px;">

"CMD /C" The window to the outside world


Often we create external OS commands to do specific tasks. In fact, that is
how they should be used, because security must always be taken into
account.

On the other hand we, as administrators, might need to have exclusive


access to the outside world -- for example, if we are troubleshooting
something at 3 AM when no IT people are available at the remote site.

"CMD /C" starts a Windows command interpreter instance and then it


terminates. Defining a new external OS command [via SM69] that runs
"CMD /C" with any optional parameters is indeed our access window to the
outside world.

Example:
<=""
style="border: 0px; max-width: 600px;">

To execute the command created above (ZADMIN) we run transaction


SM49. This will provide us with the opportunity to specify additional
parameters that can be passed to "CMD /C". In the example below, the
command "NET VIEW" is executed.

<=""
style="border: 0px; max-width: 600px;">
As mentioned earlier, however, you can check for services and do many
other things that we would normally have to do at a command prompt
session or by executing a program outside the SAP application. Among
them is the ability to reboot a server, start a specific service, run a batch
file, etc.

You can get server information on a remote machine by running a utility


such as "SRVINFO.exe" within an external command in SAP. Example: the
command "srvinfo sapqas" retrieves server information from machine
"sapqas". Using this we can tell how long the machine has been running,
for example.

Basis challenge #3: Obtaining the


SAPGUI version of all computers
New SAP releases offer a new column in transaction SM04 (User List)
called "GUI Version". This column is not visible by default. To display it you
need to [in SM04] select Settings -> Layout -> Current. Then, choose it
from the list of hidden columns.

Well, this is nice except for two problems: first of all, it is not available in old
SAP releases; secondly, it only provides the release level (e.g. 620, 640)
and not the compilation and patch levels, which are things we have to know
as well.

So, how do we go about getting the GUI release, compilation and patch
levels of all computers? We can use the SAPVER program (available as a
free download in SAP note 526199 at the SAP Support Portal web site) or
a Windows [support tool] utility such as FILEVER.exe.

SAPVER's output looks like this:


Fortunately, SAPVER can be scripted and incorporated into Windows login
scripts. The output information can be appended into a flat-file, which we
can later examine and even choose to import into a spreadsheet or
database table for further analysis.

The following script gets the SAPGUI version, compilation and patch level
of a computer and it puts the information into a flat-file called
"GUIversion.txt". The locations of the SAPVER tool and the flat-file are
controlled in variables "share" and "flatfile" respectively:

@echo off

:: GetSAPGUIversion.bat

:: Author: Giovanni Davila

:: Get SAPGUI version and put it in a flat-file.

set share=fileservertools

set flatfile=fileservertoolsGUIversion.txt

%share%sapver /gui /release


set guirel=%errorlevel%

%share%sapver /gui /compilation

set guicomp=%errorlevel%

%share%sapver /gui /patchlevel

set guipatch=%errorlevel%

echo %computername%,%guirel% %guicomp% %guipatch% >>%flatfile%

As said earlier, we can use a Windows utility such as FILEVER. It can be


executed on one computer and have it read the file version information of
the SAPGUI executable on each computer on the network.

As you may already know, the command "NET VIEW" lists all the
computers on the current Windows domain. We can script FILEVER to loop
through each computer on the network and output the SAPGUI version
information into a flat-file.

See the sample script below:

@echo off

:: SAPGUIversion.bat

:: Author: Giovanni Davila

:: It reports the SAPGUI version in all computers

:: on the current network domain.

:: Requirement: FILEVER.exe

set GUIpath=c$Program FilesSAPFrontEndsapguisapgui.exe

set FlatFile=sfc2k007sapssoSAPGUI.txt
:: Delete previous flat file if found.

if exist %FlatFile% del %FlatFile%

for /f %%i in ('net view ^| find /i ""') do (

if exist "%%i%GUIpath%" (

for /f "tokens=1-2 delims= " %%a in (

'FILEVER /v "%%i%GUIpath%" ^| find /i "FileVersion"')


do (

echo %%i%%a%%b >>%FlatFile%

echo %%i%%a%%b

if not exist "%%i%GUIpath%" (

echo %%i no SAPGUI found! >>%FlatFile%

echo %%i no SAPGUI found!

echo Output file: %FlatFile%

The script above filters the output of "NET VIEW" for all entries starting with
a double backlash (). The path to the SAPGUI executable is controlled in
variable "GUIpath". The output file is a tab-delimited flat file, which can be
easily imported into a spreadsheet or database program.

The following is an example of an output file in Microsoft Excel:


Resources for tackling SAP
administration tasks