You are on page 1of 41

ERP

E NTERPRI SE R ESOURCE P LA NNING

Page 1 7/30/2008
T ABLE OF CONTENTS

1. INTRODUCTION......................................................................................................... .............3
1.1 PURPOSE OF THIS INTRODUCTION ................................................................................................3
1.2 W HY ERP?.........................................................................................................................3
1.2.1 Merits........................................................................................................................... ...4
1.2.2 Demerits.......................................................................................................... ...............5
2.SAP............................................................................................................................................. .7
2.1HOW TO PRONOUNCE SAP?.....................................................................................................7
2.2W HAT IS SAP R/3?...............................................................................................................7
2.3W HY SAP?..........................................................................................................................7
2.3.1Business Process Reengineering (BPR).......................................................... ...............8
2.3.2Workflow Perspective............................................................................................ ..........9
2.3.3Software Alternatives.................................................................................................... ...9
2.3.4Software Complexity......................................................................... ............................10
2.3.5SAP R/3 Adoptions................................................................................. .......................11
2.3.6Best Business Practices............................................................................. ...................11
2.3.7Event Driven Transaction Processing.................................................................... ........12
3. ABAP WORKBENCH ENVIRONMENT AND TOOLS.................................... .......................13
3.1INTRODUCTION.......................................................................................................................13
3.1.1 Workbench Tools................................................................................................ ..........13
3.2 ABAP EDITOR AND FUNCTIONS...............................................................................................15
3.2.1Front End Editor ...................................................................................... .....................15
3.2.2Back End Editor ....................................................................................................... .....16
3.3 ABAP DICTIONARY..............................................................................................................19
3.3.1Creating Tables ............................................................................................................ .21
3.3.2Creating Views.................................................................................... ..........................23
3.3.3Creating Types.................................................................................... ..........................26
3.3.4Creating Lock Objects................................................................................ ...................28
3.4SCREEN PAINTER..................................................................................................................28
3.4.1Creating Screens.................................................................................................. .........29
3.5MENU PAINTER.....................................................................................................................32
3.5.1Creating GUI Title.................................................................................................. ........33
3.5.2Creating GUI Status.............................................................................. ........................33
3.5.3Creating Context Menu.............................................................................................. ....34
3.6OBJECT NAVIGATOR...............................................................................................................35
3.6.1Areas of Navigation in Object Navigator................................................................. .......37
3.6.2Objects Lists in Object Navigator......................................................... .........................38
3.7EXERCISE............................................................................................................................40

Page 2 7/30/2008
1. Introduction

1.1 Purpose of this Introduction

This introduction is intended to give brief idea about ERP (Enterprise Resource
Planning Techniques). The term ERP originally implied, to plan the utilization of
enterprise-wide resources. Although the acronym ERP originated in the manufacturing
environment, today's use of the term ERP has much broader scope. ERP’s typically
attempt to cover all basic functions of an organization, regardless of the organization's
business or charter. Business, non-profit organizations, governments, and other large
entities utilize ERP systems.

1.2 Why ERP?

Prior to the concept of ERP systems, departments within an organization would have

their own computer systems. For example - the Human Resources (HR) department,

the Payroll (PR) department, and the Financials department have their own systems.

The HR computer system (Often called HRMS or HRIS) would typically contain

information on the department, reporting structure, and personal details of employees.

The PR department would typically calculate and store paycheck information. The

Financials department would typically store financial transactions for the organization.

Each system would have to rely on a set of common data to communicate with each

other. For the HRIS to send salary information to the PR system, an employee number

would need to be assigned and remain static between the two systems to accurately

identify an employee. The Financials system was not interested in the employee level

data, but only the payouts made by the PR systems, such as the Tax payments to

various authorities, payments for employee benefits to providers, and so on. This

provided complications. For instance, a person could not be paid in the Payroll system

without an employee number.

After the evolution of ERP software, among other things, combined the data of formerly
disparate applications. This made the worry of keeping employee numbers in

Page 3 7/30/2008
synchronization across multiple systems disappear. It standardized and reduced the
number of software specialties required within larger organizations. It enabled reporting
that spanned multiple systems much easier. And it allowed for the development of
higher-level analysis functions enabling larger organizations to identify trends within the
organization and make appropriate adjustments more quickly.

1.2.1 Merits
In the absence of an ERP system, a large manufacturer may find itself with many
software applications that do not talk to each other and do not effectively interface.

Tasks that need to interface with one another may involve:


• design engineering (how best to make the product)
• order tracking from acceptance through fulfillment
• the revenue cycle from invoice through cash receipt
• managing interdependencies of complex Bill of Materials
• tracking the 3-way match between Purchase orders (what was ordered),
Inventory receipts (what arrived), and Costing (what the vendor invoiced)
• The Accounting for all of these tasks tracking the Revenue, Cost and Profit
on a granular level.

Change how a product is made, in the engineering details, and that is how it will now
be made. Effective dates can be used to control when the switch over will occur from
an old version to the next one, both the date that some ingredients go into effect, and
date that some are discontinued. Part of the change can include labeling to identify
version numbers.
Computer security is included within an ERP, to protect against both outsider crimes,
such as industrial espionage and insider crime, such as embezzlement. A data-
tampering scenario might involve a terrorist altering a Bill of Materials so as to put
poison in food products, or other sabotage. ERP security helps to prevent abuse as
well.
There are concepts of Front office (how the company interacts with customers), which
includes CRM or Customer relationship management; Back end (internal workings of
the company to fulfill customer needs), which includes quality control, to make sure

Page 4 7/30/2008
there are no problems not fixed, in the end products; Supply chain (interacting with
suppliers and transportation infrastructure). All of these can be integrated through an
ERP, although some systems have gaps in comprehensiveness and effectiveness.
Without an ERP that integrates all these, it can be quite complicated for a manufacturer
to handle.

1.2.2 Demerits

Many of the problems that organizations have with ERP systems are due to the
inadequate level of investment in ongoing training for all personnel involved. This
include the implementing and testing changes, as well as a lack of corporate policies
protecting the integrity of the data held in the ERP systems and how it is used.

Limitations of ERP include:


• Success depends on the skill and experience of the workforce, including
training about how to make the system work correctly. Many companies cut
costs by cutting training budgets. Privately owned small enterprises are
often undercapitalized, meaning their ERP system is often operated by
personnel with inadequate education in ERP in general, such as APICS
foundations, and in the particular ERP vendor package being used.
• Personnel turnover; companies can employ new managers lacking
education in the company's ERP system, proposing changes in business
practices that are out of synchronization with the best utilization of the
company's selected ERP.
• Customization of the ERP software is limited. Some customization may
involve changing of the ERP software structure, which is usually not allowed.
• Re-engineering of business processes to fit the "industry standard"
prescribed by the ERP system may lead to a loss of competitive advantage.
• ERP systems can be very expensive to install.
• ERP vendors can charge sums of money for annual license renewal that is
unrelated to the size of the company using the ERP or its profitability.
• Technical support personnel often give replies to callers that are
inappropriate for the caller's corporate structure. Computer security
concerns arise, for example when telling a non-programmer how to change

Page 5 7/30/2008
a database on the fly, at a company that requires an audit trail of changes
so as to meet some regulatory standards.
• ERPs are often seen as too rigid, and difficult to adapt to the specific
workflow and business process of some companies - this is cited as one of
the main causes of their failure.
• Systems can be difficult to use.
• The system can suffer from the "weakest link" problem - inefficiency in one
department or at one of the partners may affect other participants.
• Many of the integrated links need high accuracy in other applications to work
effectively. A Company can achieve minimum standards, then over time
"dirty data" will reduce the reliability of some applications.
• Once a system is established, switching costs are very high for any one of
the partners (reducing flexibility and strategic control at the corporate level).
• The blurring of company boundaries can cause problems in accountability,
lines of responsibility, and employee morale.
• Resistance in sharing sensitive internal information between departments
can reduce the effectiveness of the software.
• There are frequent compatibility problems with the various legacy systems of
the partners.
• The system may be over-engineered relative to the actual needs of the
customer.

Page 6 7/30/2008
2. SAP
2.1 How to Pronounce SAP?

SAP is Systems, Applications and Products in Data Processing. That is, SAP is
pronounced like IBM for International Business Machines.

2.2 What is SAP R/3?

SAP is business enterprise software because it encompasses many different aspects


of information systems technology for core business processing including:
• Change agent
• Way of doing business
• Way of life
• Standard business software
• Systems development methodology
• There are three different perspectives for viewing the SAP R/3 System that
include:
• Screens/reports used for transaction processing
• Configuration activities for the application modules
• Management of the overall SAP implementation project

2.3 Why SAP?


Over time, businesses grow and change. Their information systems can no longer meet
the information processing requirements of the business. The current systems must be
improved either by making extensive changes to the existing systems or by replacing
those systems. Either alternative represents a major business expense.
For example, consider your car. You have 124,000 miles on it. It is in need of an engine
overhaul and tune up, new brakes, new tires, and the radio doesn’t work. If you just
love that old car, you may fix it up. But, when you get done, it’s still an old car, which will
likely soon be in need of even more repairs. So, if you're looking for trouble free
transportation, a better alternative may be to get a new car. The same situation occurs
for information systems in organizations. Although the program code is not worn out, it

Page 7 7/30/2008
is in need of major repairs to meet the information processing requirements of the
business.

The “Year 2000” has impacted many information systems. They are in need of a major
overhaul. In many situations, it is better to replace them rather than trying to repair
them. Also, the sleek, unpatched, new model will provide a number of years of trouble
free service. With automobiles, you can usually get a better product at a lower cost if
you purchase one produced by an automobile manufacturer on an assembly line,
rather than attempting to build your own. In today’s world of business software, a
similar situation exists for the core business, financial software used by many
businesses. SAP R/3 provides a flexible solution to the replacement of aging business
software and it’s “Year 2000” compliant.

So, why are so many companies putting themselves through the "heartache of SAP?"
How about trying to live with "band aid" together systems? Data is not only NOT
shared but quite often in different systems. One company has 27 vendor masters in
separate accounts payable modules, as well as duplicate vendor masters in standalone
purchasing systems. Ask anyone at that company what they'd like, and you'll get the
same response: a fully integrated package, Enterprise Software.
In short, the current system is BROKE, and it needs to be REPLACED!

2.3.1 Business Process Reengineering (BPR)

Many business opportunities are enhanced through reengineering of technological


standards, which support strategic objectives and policies. This has been a continuing
process for the Dow Chemical Company. To meet its strategic goals, SAP was
implemented in the early-1990. Prior to implementation, there were many accounting
and inventory systems in place throughout the Dow organization. Inefficiencies were
the rule instead of the exception. Anytime a change was needed the information
systems staff would need to implement it on each of the various systems within Dow's
environment. The information systems staff was NOT large enough to continue to
support the required changes and much time and profit was lost. A better solution was
created through BPR conducted with the implementation of SAP.
For reengineering, consider a comparison between the dinosaur and the crocodile.
The crocodile was able to adjust (reengineer), so it is still around. However, the

Page 8 7/30/2008
dinosaur was NOT able to adjust, so now it is extinct.

With BPR, the old ways of doing business should be questioned. An example of
questioning prior assumptions involves a situation in which errors were accepted as
inevitable and so a certain amount of leeway was needed to accommodate this in
manufacturing processes.

2.3.2 Workflow Perspective

The idea behind workflow technology is to create a single environment to manage the
complexity of multiple office interrelationships. As software and data have migrated
from individualized solutions with dedicated functionality to integrated solutions then to
groupware solutions, workflow has evolved as an arrangement for the coordination of
multiple workgroups using multiple technologies. In many ways, workflow becomes the
conductor of data, documents, applications, communications, and the user interface.
SAP R/3 enterprise software is an enabling technology that supports workflow activities
in business organizations.

Implementing SAP R/3 usually forces a business to change some of its workflow
processes. Those processes are reengineered to fit the processing available in SAP
R/3 through the implementation of "best business practices."

2.3.3 Software Alternatives

With software tools such as Microsoft Word, Excel, and Access, the focus on
information processing is PRIMARILY the development of analyses that are prepared
by one individual with limited sharing. When sharing occurs, it is frequently by sending
the file to a co-worker. Several people in a department may use some small database
applications. However, there is little sharing of the information throughout the company.
When you learn how to use these software tools, you are learning how to prepare your
own reports and analyses. You may share the file on an office network or send it via
email to a co-worker.

Hundreds or thousands of users in the same organizations do not use applications


developed using personal productivity software tools. They do not turn out thousands

Page 9 7/30/2008
of billings each day, such as that required by companies that prepare utility bills or send
out credit card or other customer statements.
The use of these tools centers on SMALL applications with limited user access. You
can often learn how to use one of these tools with a few hours of instruction. You have
few business rules to learn before you are ready to use Word to write a memo to a co-
worker.

The focus of SAP R/3 and other enterprise software is on sharing information among
many hundreds or thousands of employees in a single company. It is designed for
much, much larger volumes of transactions than those are that might be processed
using a system developed with a personal productivity tool. Learning about enterprise
software requires you to learn about most of the core business transaction processing
in a company. This involves many business rules and is far more complex than writing a
memo to a co-work or preparing a project budget with Excel. With a word processor,
you can learn a few commands for entering, editing, and saving data. Then you are
ready to write your own memo. To process a transaction in a company, you need to
know about customer numbers, product numbers, billing options and so on. Otherwise,
you won’t have the data needed for a single transaction. There is much to learn before
you are ready to process transactions. There is even more to learn before you are
ready to set up the business rules implemented in the enterprise software.
And, Microsoft runs its core business processes on SAP software, not using Microsoft
Office.

2.3.4 Software Complexity

If using Word, Excel, or Access personal productive software is like riding a motorcycle,
then using SAP in a company is like flying a jumbo jet. It takes much less training to
ride the motorcycle, than is does to pilot a jumbo jet. If you have a problem with your
motorcycle, it is relatively easy to pull to the side of the road and fix it. If you are flying a
jumbo jet at 30,000 feet, there is no pulling over to fix a problem. Everything must
function as expected or many people are affected. If you create an Excel spreadsheet,
and discover a formula is in error, you can easily correct it. Most likely, only a few of
your coworkers would be affected by your fix. If the jumbo jet needs to make an
emergency landing, several hundred passengers are affected. If an SAP R/3 System
cannot process customer orders, many thousands of employees could be affected.

Page 10 7/30/2008
Like personal productivity software, you can learn to ride a motorcycle in a short
amount of time. After a few hours of instruction, you are ready for hands-on operation.
To learn to pilot a jumbo jet takes years of learning and experience. This is similar to
understanding the many business processes included in SAP R/3 that can take several
years. After a few hours of instruction, you may be able to process a few the SAP R/3
transactions. Similar to a passenger in a jumbo jet going along for the ride. Clearly,
learning the details of SAP requires much more knowledge before you are ready to
begin to configure this software. These lessons help you learn about SAP so you can
be an informed passenger. You’ll need to gain additional experience before you are
ready to pilot a SAP configuration.

2.3.5 SAP R/3 Adoptions

In replacing core business applications, SAP R/3 is centered on:


• Streamlining, integrating, and time synchronizing core operating and
management processes.
• Under conditions of increased organizational complexity, uncertainty, and
speed of change.
• A decision to implement enterprise software impacts a very significant
portion of the information processing activities in an organization with old
methods torn out and replaced by new methods.

2.3.6 Best Business Practices

With R/3, more than 1,000 ready-made business processes are available for use in
customizing the SAP application modules.

SAP builds Best Business Practices by gathering requirements from a number of


sources that include a development request process, user groups, industry groups, and
alliance partnerships. The development request process is a procedure established by
SAP for customers to submit requests for enhancement and improvements in R/3 and
it's business processes. These are then incorporated in the application modules based
on the needs of the SAP customer base, which now exceeds 10,000 companies

Page 11 7/30/2008
2.3.7 Event Driven Transaction Processing

SAP R/3 is event-driven. Data is entered into the applications of R/3 and processed for
the various events in the primary value chain. A business event is the primary trigger for
the processing actions in R/3. That is, a SAP R/3 transaction begins in reaction to a
business event such as the shipment of a customer order.

Page 12 7/30/2008
3. ABAP Workbench Environment and Tools

3.1 Introduction
This section describes about the different tools available in the ABAP workbench. For
example, when you are working on a program, the ABAP Editor will also recognize
objects created using other tools. This integration means if you double-click an object,
the Workbench automatically launches the tool that was used to create the object.

3.1.1 Workbench Tools


• ABAP Dictionary SE11
• ABAP/4 Editor SE38
• Function Builder SE37

Page 13 7/30/2008
• Object Browser SE80
• Screen Painter SE51
• Menu Painter SE41
• Performance Tuning ST05
• Runtime Analysis SE30
• Class Builder SE24
From SAP Easy Access Menu you can navigate to ABAP Workbench Tools.

SAP Menu -> Tools -> Development -> ABAP Dictionary or giving the Transaction code
in the Command Field.

Page 14 7/30/2008
3.2 ABAP Editor and Functions

The ABAP Editor is a tool that you use to write ABAP programs, class methods,
function modules, screen flow logic, type groups, and logical databases.
Editor Modes
The ABAP Editor has two different modes:
•Frontend editor
•Table control mode
The frontend editor uses the SAP Textedit Control from the SAP Control Framework. It
loads your source code onto the frontend and allows you to perform many tasks without
any communication with the application server.
Please note that command mode is no longer supported in the new version of the
ABAP Workbench and is therefore no longer available in Release 4.6B.
Integration
Table control mode and frontend editor are fully compatible and interchangeable –
source code that you have created using one mode is properly reproduced by the
system in the other without you having to do anything yourself. In particular, the line
lengths are the same. If you exceed the maximum length, the system automatically
inserts a line break.
Both editor modes offer the same source code layout. The contents of the editor are
displayed exactly as they are stored in the database. There is no automatic conversion
(for example, into uppercase) in either mode.
Differences
There are differences between the two modes in respect of how they are used, the
system requirements, and (to a small extent) the functions that they contain. Other
sections of this documentation explain the differences in more detail.

3.2.1 Front End Editor


In the frontend editor, the ABAP source code is loaded onto the frontend and edited
locally. The advantage of this is that all-editing functions that do not require
communication with the backend can be performed very quickly.
However, the communication channel between the frontend and backend can be
overloaded when you use the frontend editor. If you have a large program, this can be
a problem even in a LAN environment, but in a WAN, it can become critical.

Page 15 7/30/2008
You can edit the following development objects in the frontend editor:
•ABAP programs
•Method implementations (Class Builder)
•Function module implementations (Function Builder)
•Screen flow logic (Screen Painter)
•Type groups (ABAP Dictionary)

The frontend editor of the ABAP Editor contains the following features:
•Local scrolling (only available in this mode)
•Cut, copy, and paste for selected text areas (only available in this mode)
•Drag and drop (only available in this mode)
•Context menu (right-click) for accessing editor functions (only available in this
mode)
•Local find and replace function
•Navigation to a selected line (using the context menu)
•Access to the buffer and block operations (using the context menu)
•Commenting out text blocks
•Working with blocks and clipboards
•Navigation functions (forward navigation)
•Syntax check, displaying error messages and warnings in a separate window
•Colored highlighting for comment lines
•Automatic line feed when the maximum line width is reached (only available in
this mode)
•Insert statement function.
•Multiple-step undo and redo functions (only available in this mode)
•Displays current cursor position
•Pretty Printer for standardizing the layout
•Import and export for local files.

3.2.2 Back End Editor

Page 16 7/30/2008
The backend editor allows you to use the traditional backend editor for editing your
ABAP coding. The editor is line-based, and to use normal editor functions such as cut,
copy, and paste, you must first select a block of lines. It is often useful to use the
clipboards in this mode.
If you have a very long program (and especially if you are working in a WAN
environment), the backend editor can produce better performance than the frontend
editor. Furthermore, backend editor allows you to edit any development object that is
based on the ABAP Editor. The split screen editor, the BOR Editor, and the Logical
Database Editor are only available in the backend editor.

The backend editor of the ABAP Editor provides the following functions:
•Navigation functions (forward navigation).
•Block selection and clipboards.
•Compression logic (only available in this mode).
•Line numbering (only available in this mode).
•Find and replace functions.
•Colored highlighting for comment lines.
•Insert statement function.
•Include expansion (only available in this mode).
•Single-step undoes function.
•Conversion of a text block to comment lines.
•Pretty printer for standardizing program layout.
•Syntax checks.
•Upload and download of local files.

From SAP Easy Access Menu you can navigate to ABAP Workbench Tools.
SAP Menu -> Tools -> ABAP Workbench -> Development -> ABAP Editor or giving the
Transaction code SE38 in the Command Field.

Page 17 7/30/2008
Page 18 7/30/2008
3.3 ABAP Dictionary

The ABAP Dictionary centrally describes and manages all the data definitions used in
the system. The ABAP Dictionary is completely integrated in the ABAP Workbench. All
the other components of the Workbench can actively access the definitions stored in
the ABAP Dictionary.
The ABAP Dictionary supports the definition of user-defined types (data elements,
structures and table types). You can also define the structure of database objects
(tables, indexes and views) in the ABAP Dictionary. These objects can then be
automatically created in the database with this definition. The ABAP Dictionary also
provides tools for editing screen fields, for example for assigning field input help (F4
help). The most important object types in the ABAP Dictionary are tables, views, types
(data elements, structures, table types), domains, search helps and lock objects.

Tables - are defined in the ABAP Dictionary independently of the database. A table
having the same structure is then created from this table definition in the underlying
database.

Page 19 7/30/2008
Views - are logical views on more than one table. The structure of the view is defined in
the ABAP Dictionary. A view on the database can then be created from this structure.
Types - are used in ABAP programs. The structure of a type can be defined globally in
ABAP programs. Changes to a type automatically take effect in all the programs using
the type.
Lock objects - are used to synchronize access to the same data by more than one
user. Function modules that can be used in application programs are generated from
the definition of a lock object in the ABAP Dictionary.
Different fields having the same technical type can be combined in domains. A domain
defines the value range of all table fields and structure components that refer to this
domain.
The ABAP Dictionary also contains the information displayed with the F1 and F4 help
for a field in an input template. The documentation about the field is created for a data
element that describes the meaning of the contents of a table field. A foreign key or
search help creates the list of possible input values that appears for the input help.

Integration in the ABAP Workbench

The ABAP Dictionary is completely integrated in the ABAP Workbench. The R/3 System
works interpretatively, permitting the ABAP Dictionary to be actively integrated in the
development environment. Instead of the original objects, the interpreters see only
internal representations of these objects.
These internal representations are adjusted automatically when the system finds that
changes have been made in the ABAP Dictionary. This ensures that the screen, ABAP
interpreters, input help, database interface, and development tool always access
current data.

Page 20 7/30/2008
3.3.1 Creating Tables

From SAP Easy Access Menu you can navigate to ABAP Workbench Tools.
SAP Menu -> Tools -> ABAP Workbench -> Development -> ABAP Dictionary or giving
the Transaction code SE11 in the Command Field.

1. In the initial screen of the ABAP Dictionary, select object class Database table,
enter the table name and choose Create.
The maintenance screen for the table is displayed.
2. Enter an explanatory short text in the field Short text.
You can for example find the table at a later time using this short text.
3. On the Delivery and Maintenance tab, enter the delivery class of the table.
On this tab, choose an entry from the dropdown box for the Data Browser/Table
View Maintenance field. Choose Table maintenance allowed on this tab page if
users with the corresponding authorization might change the data in the table
using the Data Browser (Transaction SE16). For more information refer to the
available options in Data Browser/Table View Maintenance.
4. On the Fields tab page, enter the table fields. Perform the following steps for
each table field:
Enter a name for the table field in the column Fields. The field name may only

Page 21 7/30/2008
contain letters, digits and underlining, and it must begin with a letter. A field
name may not be longer than 16 characters.
5. Maintain the technical settings for the table. The corresponding maintenance
screen is displayed with Goto ® Technical settings.
The technical settings are a separate object and can be activated and
transported separately from the table.
6. Maintain (if necessary) the foreign key relationships of the table to other tables.
The corresponding maintenance screen is displayed if you place the cursor on
the check field and choose .
7. Create (if necessary) secondary indexes for the table.
To do this choose Goto ® Indexes.
8. Save the table .
A dialog box appears in which you have to assign the table a development
class.
For tables with the Delivery Class G or E, you must also maintain a customer
namespace (key block of the table) for the table entries. SAP cannot change
table entries or import new entries in the customer namespace during upgrades.
To navigate to the appropriate maintenance transaction, choose Define
Customer Namespace on the Attributes tab.
9. Choose an enhancement category.
10. Choose .

Constraints
•All the key fields of a table must be stored together at the beginning of the table. A
non-key field may not occur between two key fields.
•A maximum of 16 key fields per table is permitted. The maximum length of the
table key is 255.
•If the key length is greater than 120, there are restrictions when transporting table
entries. The key can only be specified up to a maximum of 120 places in a
transport. If the key is larger than 120, table entries must be transported generically.
•A table may not have more than 249 fields. The sum of all field lengths is limited to
1962 (whereby fields with data type LRAW and LCHR are not counted).
•Fields of types LRAW or LCHR must be at the end of the table. Only one such
field is allowed per table. There must also be a field of type INT2 directly in front of

Page 22 7/30/2008
such a field. The actual length of the field can be entered there by the database
interface.

3.3.2 Creating Views


1. Select object class View in the initial screen of the ABAP Dictionary, enter the
view name and choose Create.
A dialog box appears in which you must select the view type.
2. You go to the maintenance screen of the selected view type with Choose.

The procedure to be followed (depending on the view type) is described in:


•Creating Database Views
1 Enter an explanatory short text in the field Short text.
You can for example find the view at a later time using this short text.
2 Define the tables to be included in the view in the Tables field of the Tables/Join
conditions tab page.
Keep in mind that you can only include transparent tables in a database view.
3 Link the tables with join conditions.
If there are suitable foreign keys between the tables, you should copy the join
conditions from these foreign keys. Place the cursor on a table name and
choose Relationships. All foreign keys to other tables defined for this table are
displayed. Select the foreign keys and choose Copy. The join condition is
now derived from the definitions in the foreign key.
If you only want to see the foreign key relationship existing between two tables,
you must first select these two tables (click on the first column of the input area
Tables) and then choose Relationships.
4 On the View fields tab page, select the fields that you want to copy to the view.
Choose Table fields. All the tables contained in the view are displayed in a
dialog box. Select a table. All the fields contained in this table are displayed. You
can copy fields by selecting them in the first column and choosing Copy.
5 On the Selection conditions tab page, you can (optionally) formulate restrictions
for the data records to be displayed with the view.
6 The selection conditions define the data records that can be selected with the
view.
7 With Goto ® Technical settings, you can (optionally) maintain the technical

Page 23 7/30/2008
settings of the database view.
8 On the Maintenance status tab page, select the maintenance status of the
database view.
If the view contains more than one table, the maintenance status read only
cannot be altered.
9 Save your entries. You are asked to assign the view a development class.
You can change this development class later with Goto ® Object directory entry.
10 Choose .

•Creating Maintenance Views

1. Enter an explanatory short text in the field Short text.


You can for example find the view at a later time using this short text.
2. Enter the primary table of the view under Tables in the Tables/Join conditions
tab
page. Only those tables that are linked with the primary table (indirectly) with a
foreign key can be included in the maintenance view.
3. If required, include more tables in the view. In a maintenance view you can
insert tables that are linked to one another with foreign keys.
Place the cursor on the primary table and choose Relationships. All existing
foreign key relationships of the primary table are displayed. Select the required
foreign key and choose Copy. The secondary table used in such a foreign
key is included in the view.
4. On the View fields tab page, select the fields that you want to copy to the view.
Choose Table fields. All the tables contained in the view are displayed in a
dialog box. Select a table. The fields of the table are now displayed in a dialog
box. You can copy fields by selecting them in the first column and choosing
Copy.
All key fields of the primary table must be included in a maintenance view. In
addition, all key fields of secondary tables that are not involved in the foreign
key (that is, which are not linked via a join condition to a key field already
included in the view) must be included in the view.
This ensures that the records inserted with a maintenance view can be written
correctly in the tables contained in the view.

Page 24 7/30/2008
5. On the Selection conditions tab page, you can (optionally) formulate
restrictions
for the data records that can be displayed.
6. The selection conditions define the data records that can be selected with view.
7. In the Maintenance status tab page, define the maintenance status of the view.
The maintenance status defines how you can access the view data with the
standard maintenance transaction (SM30).
8. Choose .
At activation, a log is written; it can be displayed with Utilities ® Activation log. If
errors or warnings occurring when the view was activated, the activation log is
automatically displayed.
9. Go to Transaction SE54 with Environment ® Tab.maint.generator.

•Creating Help Views

1. Enter an explanatory short text in the field Short text.


2. You can for example find the view at a later time using this short text.
3. Enter the primary table of the view under Tables in the Tables/Join conditions
tab
Only tables that are linked with the primary table (indirectly) with a foreign key
can be included in the view.
4. Save your entries and Activate .
5.You are asked to assign the help view a development class. You can change this
development class later with Extras ® Object directory entry. If required, include
more tables in the view. In help view you can only include tables that are linked
to one another with foreign keys.

•Creating Projection Views

11. Enter an explanatory short text in the field Short text.


You can for example find the view at a later time using this short text.
12. Enter a table name in the field Base table.
A projection view always contains exactly one table.
13. Select the fields of the base table that you want to include in the view.

Page 25 7/30/2008
Choose Table fields. The fields of the table are now displayed in a dialog box.
You can copy fields by selecting them in the first column and choosing
Copy.
14. Save your entries.
You are asked to assign the view a development class. You can change this
development class later with Goto → Object directory entry.
15. Choose .

3.3.3 Creating Types


There are three different categories of Types.

• Data Elements

1. In the initial screen of the ABAP Dictionary select object type Data Type, enter
the data element name and choose Create. A dialog box appears.
2. Select the data element and choose .
3. Enter explanatory text.
4. Save the data element and Activate .

• Structures

1. In the initial screen of the ABAP Dictionary select object type Data Type, enter
the data element name and choose Create. A dialog box appears.
2. Select the Structure and choose .
3. Enter Explanatory text
4. Enter name in Column Components
5. Save and Activate

• Table Types

1 In the initial screen of the ABAP Dictionary, enter the table type name in field
Data type and choose Create. A dialog box appears in which you must define
the type category.
2 Select Table types and choose Choose. The maintenance screen for table types
appears.
3 Enter an explanatory short text in the field Short text.
You can for example find the table type at a later time using this short text.

Page 26 7/30/2008
Now define the structure of a row of the table type (row type), the options for
accessing data in the defined internal table (access mode) and the key of the
table type.
4 Enter the row type of the table type on the Row type tab page. You can refer to
an existing type (data element, structure, table, view, table type) or directly enter
the row type.
If you want to refer to an existing type, you must mark the Row type radio button
and enter the name of the type in the field below it.
If you want to enter the data type, field length and possibly the number of
decimal places directly, you must mark the Built-in type radio button. Entries are
now possible in the fields Data type, Number of places and Decimal places.
If you want to use a reference type as row type, mark the radio button
Reference type and then referenced type. Enter the name of the referenced
type. This can be the name of a class or an interface, a generic reference to
ANY, OBJECT, or DATA or a reference to a type defined in the Dictionary. If you
want the reference type to be a predefined Dictionary type, choose Reference
to predefined type. Select the type, the number of places and possibly the
number of decimal places.
5 On the Access tab page define the access mode of the table type.
This defines how to access the data in an internal table defined by the table
type in ABAP programs.
6 Define the key of the table type on the Key tab page.
The key of a table type is defined by the key definition and the key category.
If you select Key components, you can define the key of the table type directly
in the input area with the same name. This option is only possible if the row type
of the table type is a structure, table or view.
You can display all the components of the row type with Select components.
Select the components you want to copy to the key and choose .
7 Save the table type.
You are asked to assign the table type a development class. You can change
this development class later with Goto → Object directory entry.
8 Choose .

Page 27 7/30/2008
3.3.4 Creating Lock Objects

The R/3 System synchronizes simultaneous access of several users to the same data
records with a lock mechanism. When interactive transactions are programmed, locks
are set and released by calling function modules.
1. Select object type Lock object in the initial screen of the ABAP Dictionary, enter
an object name and choose Create. The name of a lock object should begin
with an E (Enqueue). The maintenance screen for lock objects is displayed.
2. Enter the explanatory text.
3. Enter the primary table of the lock object.
4. Select the Lock Mode.
5. Save and activate .

3.4 Screen Painter


This ABAP Workbench tool allows you to create screens for your transactions. You use
it both to create the screen itself, with fields and other graphical elements, and to write
the flow logic behind the screen.

Screen Painter is used to create and maintain all elements of a screen. These are:

Screen Attributes Describe a screen object in the R/3 System. Screen attributes
include the program the screen belongs to and the screen type.
Screen layout Screen elements are the parts of a screen with which the user
interacts. Screen elements include checkboxes and radio buttons.
Elements Correspond to screen elements. Fields are defined in the ABAP
Dictionary or in your program.
Flow logic Controls the flow of your program.

Two Screen Painter Modes


The Screen Painter has a layout editor that you use to design your screen layout. It
works in two modes:
•Graphical mode and
•Alphanumeric mode.

Both modes offer the same functions but use different interfaces. In graphical mode,

Page 28 7/30/2008
you use a drag and drop interface similar to a drawing tool. In alphanumeric mode, you
use your keyboard and menus.
Graphical mode is available only on MS Windows 95, MS Windows NT, and Unix/Motif
platforms.
To activate the graphical mode, choose Utilities ® Settings in the Screen Painter, then
select the graphical layout editor option.

Creating a Screen: Basics


• Create a screen in an existing program and define its attributes.
• Design the screen layout and define the attributes of the elements.
• Write the flow logic.

Basic Principles
•Uses predefined elements with links to the ABAP Dictionary or program.
•Supports forwards navigation.
•Supports complex elements: Table Control and Tabstrip Control, and Custom
Container.
•Cut/ Copy/ Paste (Graph. fullscreen)
•Undo/ Redo (Graph. fullscreen)

3.4.1 Creating Screens


1. Start the Screen Painter.
2. Enter program name. The program you specify should be an executable
program (type 1), a module pool (type M), or a function group (type F) and must
already exist.
3. Enter Screen Number A screen number must be unique and up to 4 numbers
long. All screen numbers above 9000 are reserved for SAP's customers. The
number 1000 is reserved for table screens and report selection screens. Initial
screens of transactions are often given a number whose last three digits are 100
(for example, 3100).
4. To display a list of a program's screens, use the possible entry button.
5. Choose Create.
6. The system displays the Change Screen Attributes screen.

Page 29 7/30/2008
Define the screen attributes.

Screen attributes enable the system to assign and process a screen. You can set the
following screen attributes:
Attribute Description and Ergonomic Guidelines
Program Name of the module pool to which the screen belongs.
Screen number Identifies a unique name up to 4 numbers long.
Short description Describes a screen's purpose.
Original Language Identifies a screen's maintenance language. When you
create a screen, the system sets this value to the
module pool's maintenance language.
Package Identifies the package the screen belongs to.
Last changed or Last Date and time when the screen was last changed or
generated generated.
Screen type
Normal If you set this option, the screen is flagged as a normal
screen. This is the default setting.
Subscreen Identifies the screen as a subscreen.
Modal dialog box Identifies a specialized interface for display of lists in a
dialog box. See Using Modal Dialog Boxes for more
details.
Selection screen Identifies an automatically created screen. Selection
screens request values for database selection criteria
before a report is started. The system sets this attribute
automatically.
Settings
Hold data The system only supports the Hold data, Set data, and
Delete data functions (under System Õ User profile)
on the screen if this option is selected. The system can
hold entries made on the screen at runtime in this way.
The system automatically displays this data if the user
calls the particular screen again.
Switch off runtime If you set this option, the screen is not compressed at
compression runtime.
Ergonomic guideline: You should not use this option,
since empty lines may appear on the screen if you hide
fields dynamically at runtime. When gaps occur, users
typically need longer to process the screen.

Page 30 7/30/2008
Hold scroll position Use this option to specify whether the vertical and
horizontal scroll positions should be retained for a
screen. If you set the attribute, the scroll position is
retained when the user returns to the screen after
processing another screen.
This also applies if the length or width of the screen
changes, if other subscreens are used, or if the cursor
is placed outside the visible area.
This setting is intended for large screens on which the
scroll position has previously been lost as a result of
certain actions.
Without application toolbar With this attribute you can suppress the display of the
application toolbar belonging to the current program
status. This is particularly important if the application
does not need its own toolbar since it is included in the
toolbar for the controls.
If the Without application toolbar option is set, the
toolbar belonging to the current program status is not
displayed , whether or not it contains pushbuttons. The
corresponding place that was reserved for the toolbar is
then free. You cannot change this attribute at runtime.
Note that the functions of the current program status
are only available on the menu bar or context menu
(right mouse key).
Other attributes
Next screen Number of the next screen to be displayed, assuming
that the screen sequence is processed statically.
Cursor position Identifies the screen element that contains the cursor
when a screen is first displayed. If you leave this field
blank, the system uses the first screen field that can
accept input.
Screen group Specifies a four-character identifier of a group of
associated screens.
Lines/columns Used Specifies the size of the screen area currently occupied
with screen elements.
Lines/columns Maint. Size of the screen in rows/columns. The size is

Page 31 7/30/2008
measured in characters starting with the upper left
corner.
Screens can have a maximum size of 200 rows x 255
columns.

3.5 Menu Painter

ABAP programs contain a wide variety of functions, which fall into different categories
within the user interface. It is important for users to be able to differentiate between
these categories, and to choose the right function easily. In the R/3 System, you
arrange functions using the Menu Painter. An instance of the user interface, consisting
of a menu bar, a standard toolbar, an application toolbar, and a function key setting, is
called a GUI status. The GUI status and GUI title defines how the user interface will
look and behave in an ABAP program.

Page 32 7/30/2008
3.5.1 Creating GUI Title
1. Choose Status from the object list. The system displays a list of possible
program objects.
2. Select GUI Title
3. Enter a Title Code
4. Choose Create
5. Choose Save.

3.5.2 Creating GUI Status


• Enter the name of your ABAP program. Choose Status from the object list.
Enter a status name.
• A status name can consist of up to 20 alphanumeric characters.
• Choose Create.
• The Create Status dialog box appears.

Page 33 7/30/2008
• Enter a short description. Select a Status Type.
• The status type enables the Menu Painter to display the correct work area
for the kind of status you want to create. The following status types follow
the standards in the SAP Style Guide.
Status type: References to
Dialog status Menu bars, standard toolbar, function keys and application toolbar
Dialog box Function keys and application toolbar. Dialog boxes do not have menu
bars or a standard toolbar.
Context menu A context menu. Context menus contain a set of functions that you can
use to construct a context-sensitive menu. See also Creating a Context
Menu.
• Choose Continue.
• The system displays the work area of the Menu Painter.
• Define the components of the interface (or refer to existing interface
components).
• Save.

3.5.3 Creating Context Menu


• Select Program objects and choose Edit. Enter the name of the ABAP
program. Choose GUI Status and enter the name of your context menu.
This is the name that you will pass to the importing parameter STATUS of
the method LOAD_GUI_STATUS. Choose Create.
The Create Status dialog box appears, containing fields for the status
attributes. Enter a short text. Select the status type context menu. Choose
Continue.
The work area for the context menu appears. In the Code column, enter a
function code, and under Text, the corresponding text for the menu entry.
Repeat step 8 for each further function you want to add to your context
menu. If you want to enter a separator, choose Edit ® Insert ® Separator. If
you want to create a cascading menu, leave the Code field empty, and enter
the menu text for the cascading menu. You can then open it by double
clicking, and enter the required entries. For Example

Page 34 7/30/2008
3.6 Object Navigator
The Object Navigator is a central point of entry into the ABAP Workbench. It is the
successor of the Repository Browser, and you can access it using transaction SE80.
You use the Object Navigator to organize your programming in an integrated
development environment. Development objects are arranged together in object lists.
Each object list contains all of the objects in a certain category, such as package,
program and global class. From the object list, you can select an object by double-
clicking it. When you open an object, the Workbench calls up the development tool with
which the object was created.

Page 35 7/30/2008
Navigation Area
•Object list
•Toolbar for Object List Display
•Context menu
Tool Area
•ABAP Workbench Tools
•Tool Functions
•Menus
•Standard Toolbar
•Application Toolbar
•Context Menu (only in ABAP Editor in edit control mode)

Page 36 7/30/2008
3.6.1 Areas of Navigation in Object Navigator
The Object Navigator has the following areas of navigation:
•Browser selection and navigation in the event list
•Navigation in the tools
•Navigation in separate windows
•Integrated window in the Object Navigator (syntax check, navigation stack,
worklist...)
•Additional dialog box (for example, when you open an object in a new session).

Page 37 7/30/2008
You can choose one of the following browsers in SE80:

MIME Repository Displays all directories with MIME objects that were imported
into the current system
The Public folder is always output. A selection of BSP
applications is also given.
Repository Browser This browser is initially used when you start SE80.
It outputs Repository objects in the form of object lists. The
objects are selected by category (packages, programs,
classes, local objects, etc.)
Repository Information Displays all the objects of the information system without pre-
System selection.
Tag Library Displays tags for Web applications. You can limit the list to the
relevant tag in ITS-based applications or in BSP applications
by pre-selection.
Transport Organizer Outputs Transport Organizer requests in the current system.

3.6.2 Objects Lists in Object Navigator

Any component of an application program that is stored as a separate unit in the


Repository is called a development object or a repository object. In the SAP System, all
development objects that logically belong together are assigned to the same package.
In the Object Navigator you normally access development objects using the Repository
Browser. Development objects are displayed in object lists that contain all of the
elements in a package, a program, global class, and so on.
Object lists show not only a hierarchical overview of the development objects in a
category, but also tell you how the objects are related to each other. The Object
Navigator displays object lists in a tree structure.
The topmost node of any object list is a package. From here, you can navigate right
down to the lowest hierarchical level of objects.

To select development objects, you use a selection list in the Object Navigator. This
contains the following categories:

Page 38 7/30/2008
Category Meaning
Application Hierarchy Tool A list of all the development objects in the SAP System. This
list is arranged hierarchically by application components,
component codes, and the packages belonging to them.
Package List of all objects in a package
Program A list of all the subobjects in an ABAP program
Function group List of all function modules and their sub-objects that are
defined within a function group
Class/interface List of all the components of a global class. It also lists the
superclasses of the class, and all of the inherited and
redefined methods of the current class.
Internet service List of all the sub-objects of an Internet service:
Service description, themes, language resources, HTML
templates, and MIME objects.
When you choose an Internet service from the tree display,
the Web Application Builder is started.
See also: Web Application Builder for ITS Services
BSP application List of the subobjects of a BSP application. Selecting a BSP
application starts the Web Application Builder for BSPs. See
also: Web Application Builder for BSPs.
Local objects · List of all local private objects of a user
Objects in this list belong to the package $TMP and are not
transported. As well as your own local private objects, you can
also display those belonging to other users. Local objects are
used mostly for testing. However, you can also assign local
objects for transport to another package. For more
information, refer to Change Package
Inactive objects · List of all inactive objects belonging to a user.
· This display contains both local as well as transportable
objects belonging to a user. In the standard version, the user
currently logged on is used here.

Page 39 7/30/2008
3.7 Exercise
1) Navigate to ABAP Workbench from the Main menu.

2) See the Source code of the program RSTXICON.

3) Type MM01 in the command field and press enters. Now look for its program name &
continue further to see the source code.

4) Create a test program, Save as local object, Check & then Activate.

Page 40 7/30/2008
5) Go to ABAP Data dictionary and enter MARA in the database table field. Press
display button. Look for details in the 3 tabs – Attributes, Fields, Currency/quant fields.
Use F1 key to understand the documentation.

6) Repeat the previous step. Execute Contents button that navigates to Selection-
screen of the table MARA. Verify the field ‘Maximum no. of hits’ has got value not
exceeding 1000. Press the Execute button to see the contents of the table MARA.

7) Create a Module pool program (SAPMZTESTxx) in SE38 & design a screen (9000)
in SE51.
Include Text field, Input/Output field, Pushbutton and other controls in the screen. Then
check & activate the same. View the controls you have placed in the screen after
execution.

8) Create a Menu bar & Application Tool bar for the screen created in previous step.
Use Transaction code SE41.

9) Execute Transaction code for Object Navigator SE80 and explore the individual
nodes listed.

10) Execute Transaction code SE09 and understand the meaning of each keyword in
this screen by pressing F1.

Page 41 7/30/2008

You might also like