Saturday, October 11, 2008
SAP OPTIMIZATION
Use the GET RUN TIME command to help evaluate performance. It's hard to know whether that optimization technique REALLY helps unless you test it out. Using this tool can help you know what is effective, under what kinds of conditions. The GET RUN TIME has problems under multiple CPUs, so you should use it to test small pieces of your program, rather than the whole program.
Generally, try to reduce I/O first, then memory, then CPU activity. I/O operations that read/write to hard disk are always the most expensive operations. Memory, if not controlled, may have to be written to swap space on the hard disk, which therefore increases your I/O read/writes to disk. CPU activity can be reduced by careful program design, and by using commands such as SUM (SQL) and COLLECT (ABAP/4).
Avoid 'SELECT *', especially in tables that have a lot of fields. Use SELECT A B C INTO instead, so that fields are only read if they are used. This can make a very big difference.
Field-groups can be useful for multi-level sorting and displaying. However, they write their data to the system's paging space, rather than to memory (internal tables use memory). For this reason, field-groups are only appropriate for processing large lists (e.g. over 50,000 records). If you have large lists, you should work with the systems administrator to decide the maximum amount of RAM your program should use, and from that, calculate how much space your lists will use. Then you can decide whether to write the data to memory or swap space. See the Fieldgroups ABAP example.
Use as many table keys as possible in the WHERE part of your select statements.
Whenever possible, design the program to access a relatively constant number of records (for instance, if you only access the transactions for one month, then there probably will be a reasonable range, like 1200-1800, for the number of transactions inputted within that month). Then use a SELECT A B C INTO TABLE ITAB statement.
Get a good idea of how many records you will be accessing. Log into your productive system, and use SE80 -> Dictionary Objects (press Edit), enter the table name you want to see, and press Display. Go To Utilities -> Table Contents to query the table contents and see the number of records. This is extremely useful in optimizing a program's memory allocation.
Try to make the user interface such that the program gradually unfolds more information to the user, rather than giving a huge list of information all at once to the user.
Declare your internal tables using OCCURS NUM_RECS, where NUM_RECS is the number of records you expect to be accessing. If the number of records exceeds NUM_RECS, the data will be kept in swap space (not memory).
Use SELECT A B C INTO TABLE ITAB whenever possible. This will read all of the records into the itab in one operation, rather than repeated operations that result from a SELECT A B C INTO ITAB... ENDSELECT statement. Make sure that ITAB is declared with OCCURS NUM_RECS, where NUM_RECS is the number of records you expect to access.
If the number of records you are reading is constantly growing, you may be able to break it into chunks of relatively constant size. For instance, if you have to read all records from 1991 to present, you can break it into quarters, and read all records one quarter at a time. This will reduce I/O operations. Test extensively with GET RUN TIME when using this method.
Know how to use the 'collect' command. It can be very efficient.
Use the SELECT SINGLE command whenever possible.
Many tables contain totals fields (such as monthly expense totals). Use these avoid wasting resources by calculating a total that has already been calculated and stored.
abap type key ward
Variants:
1. TYPES itabtype {TYPE tabkind OF linetype|
LIKE tabkind OF lineobj}
[WITH [UNIQUE|NON-UNIQUE] keydef[INITIAL SIZE n].
2. TYPES itabtype TYPE RANGE OF type.
TYPES itabtype LIKE RANGE OF f.
3. TYPES itabtype {TYPE linetype|LIKE lineobj} OCCURS n.
Effect
Defines a user-defined type (abap type concept for an internal table
Variant 1
TYPES itabtype {TYPE tabkind OF linetype|
LIKE tabkind OF lineobj}
[WITH [UNIQUE|NON-UNIQUE] keydef] [INITIAL SIZE n].
Effect
Defines the type itabtype for an internal table without header line in a program with table type tabkind and line type linetype (if you use a TYPE reference) or the type of the referred object lineobj (if you use a LIKE reference). Internal tables without a header line consist of any number of table lines, each of which has the structure defined by the line type.
You may also define a table key. If you do not, the system creates a generic table type with any key. You can use generic types to specify the type of generic subroutine parameters.
The UNIQUE and NON-UNIQUE additions allow you to specify whether a table with type itabtype may contain two or more records with the same key or not. The following rules apply:
* STANDARD TABLE:
The key is always NON-UNIQUE by default. You cannot use the UNIQUE addition with a standard table.
* SORTED TABLE:
There is no default setting for sorted tables. If you do not specify UNIQUE or NON-UNIQUE, the system creates a generic table type without a particular uniqueness attribute. You can use generic types to specify the types of generic subroutine parameters.
* HASHED TABLE:
There is no default setting for hashed tables. However, you must define a UNIQUE key. The NON-UNIQUE addition is not permitted.
The optional INITIAL SIZE addition allows you to specify how much memory should be allocated to the table when you create it. This corresponds to the OCCURS specification in variant 2 (see also Performance Notes for Internal Tables). The value n is not taken into consideration in the type check.
Example
The following type definitions define tables using the line type STRUC and the key NAME:
TYPES: BEGIN OF STRUC,
NAME(10) TYPE C,
AGE TYPE I,
END OF STRUC.
TYPES: TAB1 TYPE STANDARD TABLE OF STRUC WITH DEFAULT KEY,
TAB2 TYPE SORTED TABLE OF STRUC
WITH NON-UNIQUE KEY NAME,
TAB3 TYPE HASHED TABLE OF STRUC WITH UNIQUE KEY NAME.
Unlike the above types, the following types are generic. This means that you can use them to specify the type of a generic subroutine parameter, but not to create a table object uisng the DATA statement. The only exception to this is that the system allows you to use a generic standard table type in a DATA statement - the type description is completed automatically by the system according to the rules described under DATA.
TYPES: GEN_TAB1 TYPE STANDARD TABLE OF STRUC,
GEN_TAB2 TYPE SORTED TABLE OF STRUC WITH KEY NAME,
GEN_TAB3 TYPE HASHED TABLE OF STRUC.
The following example shows the definition of a sorted table using a LIKE reference to the ABAP Dictionary structure SFLIGHT:
TYPES: FLTAB LIKE SORTED TABLE OF SFLIGHT
WITH NON-UNIQUE KEY CARRID CONNID FLDATE.
Variant 2
TYPES itabtype TYPE RANGE OF type. TYPES itabtype LIKE RANGE OF f.
Addition:
... INITIAL SIZE n
Effect
Crates a table type itab with table type STANDARD. The line type is a structure, made up as follows:
SIGN(1) TYPE C
OPTION(2) TYPE C
LOW TYPE type or LIKE f
HIGH TYPE type or LIKE f
Addition
...INITIAL SIZE n
Effect
INITIAL SIZE specifies how many lines of the table are created along with the table. The table size increases dynamically as required - for further information, refer to Performance Notes for Internal Tables. The INITIAL SIZE value has no semantic meaning except in the APPEND SORTED BY statement. If you do not specify an INITIAL SIZE, the system uses 0 as the default value.
Variant 3
TYPES itabtype {TYPE linetype|LIKE lineobj} OCCURS n.
Defines the type itabtype as the type for a standard table without a header line. The key is the default key for internal tables.
This variant is the same as the following type definition:
TYPES itabtype {TYPE STANDARD TABLE OF linetype|
LIKE STANDARD TABLE OF lineobj}
WITH DEFAULT KEY INITIAL SIZE n.
Note
Type names
A type name can be up to 30 characters long. The name may only consist of alphanumeric characters and the underscore character. It may not consist entirely of digits. Special characters such as German umlauts are not allowed. As well as these characters, certain special characters are used internall. However, these should not be used in application programs. SPACE is a reserved name, and cannot therefore be used. Furthermore, you should not use a field in a statement if it has the same name as one of the additions of the keyword (for example: PERFORM SUB USING CHANGING.).
Recommendations for Type Names:
1. Always start the name with a letter.
2. Use the underscore to separate compound names (for example, NEW_PRODUCT).
PERFORMENCE TIPS
• Use the GET RUN TIME command to help evaluate performance. It's hard to know whether that optimization technique REALLY helps unless you test it out. Using this tool can help you know what is effective, under what kinds of conditions. The GET RUN TIME has problems under multiple CPUs, so you should use it to test small pieces of your program, rather than the whole program.
• Generally, try to reduce I/O first, then memory, then CPU activity. I/O operations that read/write to hard disk are always the most expensive operations. Memory, if not controlled, may have to be written to swap space on the hard disk, which therefore increases your I/O read/writes to disk. CPU activity can be reduced by careful
program design, and by using commands such as SUM (SQL) and COLLECT (ABAP/4).
• Avoid 'SELECT *', especially in tables that have a lot of fields. Use SELECT A B C INTO instead, so that fields are only read if they are used. This can make a very big difference.
• Field-groups can be useful for multi-level sorting and displaying. However, they write their data to the system's paging space, rather than to memory (internal tables use memory). For this reason, field-groups are only appropriate for processing large lists (e.g. over 50,000 records)
. If you have large lists, you should work with the systems administrator to decide the maximum amount of RAM your program should use, and from that, calculate how much space your lists will use. Then you can decide whether to write the data to memory or swap space.
• Use as many table keys as possible in the WHERE part of your select statements.
• Whenever possible, design the program to access a relatively constant number of records (for instance, if you only access the transactions for one month, then there probably will be a reasonable range, like 1200-1800, for the number of transactions inputted within that month). Then use a SELECT A B C INTO TABLE ITAB statement.
• Get a good idea of how many records you will be accessing. Log into your productive system, and use SE80 -> Dictionary Objects (press Edit), enter the table name you want to see, and press Display. Go To Utilities -> Table Contents to query the table contents and see the number of records. This is extremely useful in optimizing a program's memory allocation.
• Try to make the user interface such that the program gradually unfolds more information to the user, rather than giving a huge list of information all at once to the user.
• Declare your internal tables using OCCURS NUM_RECS, where NUM_RECS is the number of records you expect to be accessing. If the number of records exceeds NUM_RECS, the data will be kept in swap space (not memory).
• Use SELECT A B C INTO TABLE ITAB whenever possible. This will read all of the records into the itab in one operation, rather than repeated operations that result from a SELECT A B C INTO ITAB... ENDSELECT statement. Make sure that ITAB is declared with OCCURS NUM_RECS, where NUM_RECS is the number of records you expect to access.
• If the number of records you are reading is constantly growing, you may be able to break it into chunks of relatively constant size. For instance, if you have to read all records from 1991 to present, you can break it into quarters, and read all records one quarter at a time. This will reduce I/O operations.
Test extensively with GET RUN TIME when using this method.
• Know how to use the 'collect' command. It can be very efficient.
• Use the SELECT SINGLE command whenever possible.
• Many tables contain totals fields (such as monthly expense totals). Use these avoid wasting resources by calculating a total that has already been calculated and stored.
SAP ABAP INTERNAL TABLES IN BRIEF
• In ABAP/4, you work mainly with tables. Tables are the essential data structures in the R/3 System. Long-life data is stored in relational database tables.
• Besides database tables, you can create internal tables which exist only during the runtime of your program. ABAP/4 provides various operations for working with internal tables. You can, for example, search for, append, insert, or delete lines.
• The number of lines in an internal table is not fixed. Depending on requirements, the system increases the size of internal tables at runtime.
• You can use internal tables to perform table calculations on subsets of database tables. For example, you can read a certain part of a database table into an internal table (see Reading Data into an Internal Table).
From the internal table, you can then calculate totals or generate a ranked list.
• Another use for internal tables is reorganizing the contents of database tables according to the needs of your program. For example, you can read data relevant for creating a telephone list from one or several large customer tables into an internal table. During the runtime of your program, you can then access this list directly without having to perform a time-consuming database query for each call.
Structure of Internal Tables
In ABAP/4, you can distinguish between internal table data types, which define the structure of internal tables, and internal table data objects, which are the actual internal tables and can be filled with data. An internal table data type is an abstract definition of a data structure which can be used to declare data objects as internal tables.
Data type
An internal table is one of the two structured data types in ABAP/4. The other structured data type is the field string. An internal table consists of any number of lines which all have the same data type. The data type of the lines can be elementary or structured.
This definition opens a variety of internal table structures which range from lines consisting of one field to lines consisting of field strings which have internal tables as components.
You can define a data type as an internal table by using the TYPES statement with the OCCURS parameter. No memory is occupied when defining a data type.
Data object
A data object which has a data type defined as an internal table is the actual internal table you work with. It occupies memory and you can fill or read its lines.
You create a data object as an internal table by using the DATA statement either with the OCCURS parameter or by referring to another internal table by using the TYPE or LIKE parameters.
Identifying Table Lines
In order to access a certain line of a table, you must specify a field or combination of fields that can be used to identify the line. In the relational data model which is used to store long-life data in the R/3 System, the minimum combination required for this purpose is known as the key. The fields that define the key are called key fields.
Internal Table Index
The index is the sequential number of a table line. It is not a table field, but is created and managed automatically by the system.
You can use the index with the DELETE, INSERT, MODIFY, LOOP, and READ statements. In these statements, you can specify the index either as literal or as variable.
After processing a particular line of an internal table, the system field SY-TABIX generally contains the index of that line.
Internal Table Key
There are two kinds of internal table keys.
Self-defined Key
When reading lines from an internal table using the READ statement, you can specify a self-defined.
Standard Key
By definition, the key fields of an internal table are those fields which are not numeric (type F, I, and P) and are not internal tables. These key fields form the standard key of an internal table.
To obtain the standard key of an internal tables with nested structures (table lines which contain field strings as components), the system breaks down the sub-structures to the level of elementary fields.
SAP ABAP RUN TIME ANALASIS
ABAP Debugger
Runtime Analysis
Runtime Measurement of Program Segments
BREAK-POINT
Basic form
BREAK-POINT.
Additions:
1. ... f
2. ... AT NEXT APPLICATION STATEMENT
Effect
The BREAK-POINT is a debugging aid. When you run a program normally, it is interrupted at the statement, and the system automatically starts the debugger, allowing you to display the contents of any fields in the program and check how the program continues.
If the program is running in the background or in an update task, the system generates a Syslog message.
Note
• If a COMMIT WORK statement occurs in a SELECT loop, the database cursor is lost. This causes a runtime error in the next loop pass when the system tries to read the next line of the table.
Since debugging sometimes generates automatic COMMIT WORKs (non-production client or not debugging in debugging mode), it can be difficult to debug SELECT loops because BREAK-POINT statements within the loop can so easily lead to runtime errors.
• You can set dynamic breakpoints in the Debugger without having to change the ABAP program. Such breakpoints are only valid for the user that set them, and are deleted when the user logs off.
Addition 1
... f
Effect
If the program is not running in dialog mode (background, update task), the contents of field f are output along with the system log message.
Addition 2
... AT NEXT APPLICATION STATEMENT
Note
This addition is for internal use only.
Changes and further developments, which may be incompatible, are possible at any time, and without notice or warning.
Effect
This statement is only relevant to system programs (program attributes, status "S"), or system modules, subroutines, or function modules (names begin with "%_")
If system debugging is not switched on, the program is not interrupted until it reaches a statement that is not in a system program (or module, subroutine, or function module).
If system debugging is switched on, the program is interrupted at the statement itself.
Note
When system debugging is switched off, BREAK-POINT statements in system programs are ignored at runtime unless you use the AT NEXT APPLICATION STATEMENT addition.
GET RUN TIME FIELD
Basic form 5
GET RUN TIME FIELD f.
Effect
Relative runtime in microseconds. When you first call GET RUN TIME, the field f is set to zero (initialized). Each subsequent call places the runtime since the first call into the field f. f must have type I.
The ABAP statements between two GET RUN TIME statements are known as the performance section, and the time between the two calls is known as the measurement interval.
Notes
You can use SET RUN TIME CLOCK RESOLUTION to set the measurement accuracy. The default setting is high accuracy.
Example
Runtime measurement for the MOVE statement
DATA: T1 TYPE I,
T2 TYPE I,
TMIN TYPE I.
DATA: F1(4000), F2 LIKE F1.
TMIN = 1000000.
DO 10 TIMES.
GET RUN TIME FIELD T1.
MOVE F1 TO F2.
GET RUN TIME FIELD T2.
T2 = T2 - T1.
IF T2 < tmin =" T2."> Interval...').
Variant 1
SET RUN TIME CLOCK RESOLUTION HIGH.
Effect
GET RUN TIME uses high accuracy with a short measurement interval to measure the runtime.
Variant 2
SET RUN TIME CLOCK RESOLUTION LOW.
Effect
GET RUN TIME uses low accuracy with a long measurement interval to measure the runtime.
Note
Runtime errors:
• SET_RUN_TIME_CLOCK_ERROR : After GET RUN TIME, you may no longer use SET RUN TIME CLOCK RESOLUTION.
SET RUN TIME ANALYZER ON/OFF
Variants:
1. SET RUN TIME ANALYZER ON.
2. SET RUN TIME ANALYZER OFF.
Effect
These statements only work if you are executing a program using runtime analysis. If you select the Particular units option, the system only measures the statements that occur between SET RUN TIME ANALYZER ON and SET RUN TIME ANALYZER OFF.
Note
You should remove these statements from your source code when you have finished measuring runtime. This ensures that other users can define their own runtime monitoring criteria as well.
Variant 1
SET RUN TIME ANALYZER ON.
Effect
Starts writing performance data.
The return code is set as follows:
SY-SUBRC = 1:
The runtime analysis is not active, or the performance data file is not open for writing.
SY-SUBRC = 0:
All other cases.
Variant 2
SET RUN TIME ANALYZER OFF.
Effect
Stops writing performance data.
Example
DO 3 TIMES.
PERFORM NOT_TO_BE_MEASURED.
SET RUN TIME ANALYZER ON.
PERFORM TO_BE_MEASURED.
SET RUN TIME ANALYZER OFF.
PERFORM NOT_TO_BE_MEASURED.
ENDDO.
FORM NOT_TO_BE_MEASURED. ENDFORM.
FORM TO_BE_MEASURED. ENDFORM.
Note
You can also start and stop measurement dynamically:
1. From the menu:
• System → Utilities → Runtime analysis → Switch on
• System → Utilities → Runtime analysis → Switch off
1. In the command field
• /RON
• /ROFF
MEMORY In SAP ABAP
An external session is usually linked to an R/3 window. You can create an external session by choosing System/Create session, or by entering /o
RETURN is refused. The object to be locked by the called program is displayed as already Locked by another user.
Programs that you call using SUBMIT or LEAVE TO TRANSACTION cannot come into conflict with lock entries from the calling program, since the old program ends when the call is made. When a program ends, the system deletes all of the lock entries that it had set.
Lock requests belonging to the same user from different R/3 windows or logons are treated as lock requests from other users.
NAVIGATION In SAP ABAP
A client is, in organizational terms, an independent unit in the R/3 System. Each client has its own data environment and therefore its own master data and transaction data, assigned user master records and charts of accounts, and specific customizing parameters.
A user master record linked to the relevant client must be created for users to be able to log on to the system.
To protect access, a password is required for logon.
The password is hidden as you type (you only see asterisks).
SAP systems are available in several languages. Use the Language input field to select the logon language for each session.
Multiple logons are always logged in the system beginning with Release 4.6. This is for security as well as licensing reasons. A warning message appears if the same user attempts to log on twice or more. This message offers three options:
Continue with current logon and end any other logons in the system
Continue with current logon without ending any other logons in the system (logged in system)
Terminate current logon
Command field: You can use the command field to go to applications directly by entering the transaction code. You can find the transaction code either in the SAP Easy Access menu tree (see next slide) or in the relevant application under System® Status.
Menu bar: The menus shown here depend on which application you are working in. These menus contain cascading menu options.
Standard toolbar: The icons in the system function bar are available on all R/3 screens. Any icons that you cannot use on a particular screen are dimmed. If you leave the cursor on an icon for a moment, a small flag will appear with the name (or function) of that icon. You will also see the corresponding function key. The application toolbar shows you which functions are available in the current application.
Title bar: The title bar displays your current position and activity in the system.
Check boxes: Checkboxes allow you to select several options simultaneously within a group.
Radio buttons: Radio buttons allow you to select one option only.
Status bar: The status bar displays information on the current system status, for example, warning and error messages.
A tab provides a clearer overview of several information screens.
Options: You can set your font size, list colors, and so on here.
SAP Easy Access is the standard entry screen displayed after logon. Using the menu path Extras® Set start transaction you can select a transaction of your choice to be the default entry screen after logon.
You navigate through the system using a compact tree structure that you can adapt to your own specific requirements. Use the menu path Extras® Settings to change your view of the tree structure. You can use this to display technical names (transaction codes).
You can also create a Favorites list of the transactions, reports, files and Web sites you use most.
You can add items to your favorites list using the Favorites menu option or by simply dragging & dropping them with the mouse.
You can select system functions in the following ways:
Use the mouse to choose
Menu options
Favorites
Other options in the tree structure (tree control)
Use the keyboard (ALT + the underlined letter of the relevant menu option)
Enter a transaction code in the command field:
A transaction code (T-Code) is assigned to each function in R/3 (not each screen).
You can access the assigned transaction code from any screen in the R/3 System.
You can find the transaction code for the function you are working in under the Status option of the System menu.
For example, to display Accounts receivable master data, enter “/n” and the appropriate
transaction code (in this case “/nfd03”).
Other possible entries:
“/n” ends the current transaction. “/i” ends the current session.
“/osm04” creates a new session and goes to the transaction specified (SM04).
You can also use the keyboard to get to the command field. Use the CTRL + TAB key
combination to make the cursor move from one (input) field group to the next. Use TAB to move between fields within a group.
Use F1 for help on fields, menus, functions and messages.
F1 help also provides technical information on the relevant field. This includes, for example, the parameter ID, which you can use to assign values to the field for your user.
Use F4 for information on what values you can enter. You can also access F4 help for a selected field using the button immediately to the right of that field.
If input fields are marked with a small icon with a checkmark, then you can only continue in that application by entering a permitted value.
You can flag many fields in an application to make them either required entry fields or optional entry fields. You can also hide fields using transaction or screen variants or Customizing.
The R/3 System provides comprehensive online help. You can display the help from any screen in the system. You can always request help using the Help menu or using the relevant icon.
The Help menu contains the following options :
Application help: Displays comprehensive help on the current application. Selecting this menu option in the initial screen displays help on getting started with R/3.
SAP Library: This is where all online documentation can be found.
Glossary: Enables you to search for definitions of terms.
Release notes: Displays notes which describe functional changes that occur between R/3 releases.
SAPNet: Enables you to log on to SAPNet.
Feedback: Enables you to send a message to the SAPNet R/3 Frontend, SAP’s service system.
Settings: Enables you to select settings for help.
The System menu contains, among others, the following options:
Create/end session: Enables you to create and end sessions. You can work with up to 6 sessions at a time.
User profile: This is where you can enter user-specific settings.
Services: Takes you to important service functions (see below).
List: Contains important list functions, such as searching for character strings, saving in PC files, printing, and so on.
Status: Enables you to display important user and system data.
Log off: Ends the SAP R/3 session with a confirmation prompt.
The System ® Services menu contains, among others, the following options:
Reporting: Starts reports (ABAP programs).
Output controller: This is where you manage user-specific print requests.
Table maintenance: This is where you process tables and views.
Batch input: Administers batch input sessions and data transfer.
Jobs: This is where you can administer jobs that are processed in the background.
SAP Service: Enables you to log on to SAP’s SAPNet R/3 Frontend.
Use the menu option System® User profile® Own data to set your own personal profile. You can choose between the Address, Defaults and Parameters tabs.
Address: You can create and maintain personal data here, for example, name,function, room number, telephone number, e-mail addresses and so on.
Defaults: Defaults include the date display format, the decimal notation format, the default printer, the logon language, and so on.
Parameters: Use this to assign entries to commonly-used fields. This is only available for input fields that have been allocated a parameter ID.
Procedure for finding out a field’s Parameter ID: Go to the input field to which you want to assign a value. Choose F1, then the “Technical info” pushbutton. This opens a window that displays the corresponding parameter ID (if one has been allocated to the field) in the “Field data” section.
The User profile menu also contains, among others, the following options:
Hold data, Set data, Delete data. Use Hold data to keep data values that you have entered in fields in an application for the duration of a user session. When you call up the application again, you can overwrite these values. Once you have Set data , you can no longer overwrite these values and have to use Delete data if you want to enter different values.
Use the Table Settings function to change, in the table control, the individual basic table settings that are supplied with the system. This is particularly useful for tables where you do not need all the columns. You can use the mouse to drag & drop column positions and widths, or even make the column disappear.
Save the changed table settings as a variant. The number of different variants you can create per table is not restricted.
The first variant is called the basic setting; the SAP System defines this setting. You cannot delete the basic setting (you can delete the variants you define yourself).
The table settings are stored with your user name. The system uses the variant currently valid until you exit the relevant application. If you then select the application again, the system will use the standard settings valid for this table.
Note: you can change table settings wherever you see the table control icon in the top right-hand corner of a table.
The R/3 System provides numerous options for settings and adjustments:
Define default values for input fields
Hide screen elements
Deactivate screen elements (shaded out).
You can do this by, for example, defining transaction variants.
If you pre allocate all necessary parameters for parameter transactions, you do not need to go
through the initial screen.
These functions have been available in R/3 for several releases.
SAP now also includes the GuiXT. In addition to all the above functions, you can now:
Include graphics
Convert fields and add pushbuttons and text
Change input fields (or their F4 help results) into radio buttons
The GuiXT scripts are stored on the frontend. In accordance with local scripts, the GuiXT scripts determine how data sent from the application server is displayed. These scripts can be standard throughout a company, or they can be different for each frontend.
Archives
-
▼
2009
(49)
-
▼
February
(35)
- DIFFERENCE BETWEEN BADI'S AND USER EXITS
- ABAP ENHANCEMENTS
- CHANGING THE SAP STANDARD
- MODIFICATIONS OF SAP STANDARD OBJECTS
- LESSON 51CHANGING THE SAP STANDARD
- LESSON 52 ENHANCEMENTS TO DICTIONERY ELEMENTS
- LESSON 54 ENHANCEMENTS USING COSTMER EXITS
- LESSON 56 SAP MODIDICAITONS
- LESSON 57 MODIFICAITONS EXITEDED
- USER EXITS IN DETAIL
- SAP USER EXITS
- LESSON 35 BASICS OF INTERACTIVE REPORTS
- LESSON 37 Interactive List Techniques
- ABAP Project Overview XI
- Implementing a SAP Project
- EDI and International Standards for SAP
- EDI Converter for SAP
- SAP EDI introduction
- SAP Business Process using EDI
- SAP EDI Process Components
- SAP EDI Process Components II
- SAP EDI Standards
- EDI Outbound Process
- What is inbound EDI Process
- SAP Out bound EDI Process Over view
- SAP EDI Outbound Process with Message Control
- SAP EDI outbound process
- SAP EDI inbound process overview
- SAP EDI Inbound Process via Function Module
- SAP EDI Inbound Process via Workflow
- EDI Subsystem I
- EDI Sub System II
- SAP EDI Subsystem Architecture and Mapping
- EDI Basic Components Configuration I
- EDI Basic Components Configuration II
-
▼
February
(35)