Thursday, June 5, 2008

REPORTS EXAMPLES

I have a report, with a select-options with G/L Account nr. (ska1-saknr).
I have one authorization object with the field skanr.
I can select more than one account in auth, or a range of accounts.
By example - saknr: 11102070, 11102095, 11102097-11102099
Is not possible exclude accounts in this case.

The objective of the report is list all authorization objects that apply with the selection.

So, there is a complete (and little complex) example.
=> authorization objects
auth1: 11102070, 11102095, 11102097-11102099
auth2: 11102068, 11102070-11102098
1) select-options: I-EQ-11102070.
result -> auth1, auth2
2) select-options: I-EQ-11102069.
result -> none
3) select-options: I-EQ-11102071.
result -> auth2
4) select-options: I-EQ-11102071, I-BT-11102096->11102098.
result -> auth1, auth2
5) select-options: I-BT-11102060->11102069, E-EQ-11102068.
result -> none
6) select-options: I-BT-11102072->11102096, E-EQ-11102095.
result -> auth2

*****************************************************
In my interactive report, when user clicks on Material no, then only it should go to next level while currently it's going to next level even if user clicks anywhere.
I have used hide, at selection, get cursor field ..., etc.
*******************************************************
Searched for this but could not find anything. Is this a function module that can read the values of your ALV variant. i.e. what columns you have choosen.
The client would like the output file(unix) to reflect the choosen ALV variant so i will need to known the columns in the ALV Variant in order to dissect (sounds more interesting than it is) the file contents.

SELECT SINGLE REPORT VARIANT FROM LTDX INTO
(L_LTDXKEY-REPORT,L_LTDXKEY-VARIANT)
WHERE RELID = 'LT' AND REPORT = G_REPID AND VARIANT = P_VARI.
CHECK SY-SUBRC = 0.
L_LTDXKEY-TYPE = 'F'.

CALL FUNCTION 'LT_DBDATA_READ_FROM_LTDX'
EXPORTING
I_TOOL = 'LT'
IS_VARKEY = L_LTDXKEY
TABLES
T_DBFIELDCAT = L_LTDXDATA
* T_DBSORTINFO =
* T_DBFILTER =
EXCEPTIONS
NOT_FOUND = 1
WRONG_RELID = 2
OTHERS = 3.
Where L_LTDXDATA contains the ALV fields. If you need more code, I will post it here.
************************************************************

I got the task to program a report, that displays some of the conditions that are specific for a combination of Sales Organization, Distribution Channel, Division, Customer, Material and Validity period.
In which table or table join can I find the assignment (via KNUMH) of the condition types to this combination, to use it to read more condition data from KONP?

AFAIK:
run v/06 and read access sequence for your condition
run v/07 and read accesses assigned to access seqence. Remember table number and key fields. All sale pricing condition master data are stored in table with names Annn where nnn means 3 digits number. So if you read table number you can calculate condition ddic tablename.
Build a report browsing all tables from access sequence with all key fields.
Notify me when you finish version 2.0 where two first steeps you'll code inside your report to make it usefull for all conditions.

First of all be sure there is no FM doing the same in the system.

*******************************************************************************************************************
Recently I came accorss one report painter 12 month rolling actuals cost center report which is made by report painter. This report is slow. TheSQL trace shows that
. access new table.
. data pages are read in advance
. pure sequential prefetch is used
. new table:
. SAPR3.COSP
. table space locked in mode: N
. Accesstype: by index.
. Index: SAPR3.COSP~1 (matching index)
. Index columns (ordered):
. OBJNR
. MANDT
. LEDNR
. VERSN
. WRTTP
. GJAHR
. VRGNG
. with 1 matching columns of 7 index columns.

Please help how to make the performace improvement in Painter to make all the matching column of index column

as per my knowledge u cann't increase performance of reports which are Generated thru Report Painter . But what u can do is u can change the Chat/Key figures for what Report Selection which is tough Job for a ABAPers .


2. other option is u have to develop a Report based on the Key figures , and this one also Big one .
Please , i am telling on my experience . I have workedout on trail balance report.
*****************************************
When we display classical report. How to check, how many number of records it has displayed.
Kindly Advice.
One that you've written yourself ??
Count them as you output them and then output that at the end of the report.
For a standard SAP report that doesn't do that for you, count the number of records on the first page, multiply by no of pages - 1 and add the number of records on the last page.
*************************************************
I have a user requesting to view 2 alv reports on the same screen. I can provide a facility to switch between the reports but they would like to see both at the same time.
Any suggestions?
Hi,
It is possible to display two ALV Grids on the same screen, if you use OOPS ALV..
Otherwise, to display two ALV List using Function modules you can see the programs BALVBT01 and BALVBT02.

Yes, we can display the two reports in the same screen using 2 grids.

But we faced the problem when we ran the program in background.In the spool we found that only first report was being displayed(in first grid)...second grid was not coming at all.
***************************************************************************
what is the main use of logical databases?

In my experience thay are a standard SAP grouping of database tables, that can be accessed in a simple manner using their own built-in selection screens and join logic.

Did I use them a long long time ago? Yes.

Would I use them now? No.

They are useful, however, if you are not familiar with certain functional modules in SAP and require a quick point in the right direction!

Good luck with them!

And rightly so,
They are pretty fast and flexible (using HR report category).

I wouldn't bother with logical databases outside of the HR-module though.
I stopped using them 7 or 8 years ago because we kept finding erroneous results with them. Are they more robust now? I don't know but don't take chances any more and use the good old SELECTS.

But in HR I also know they are currently used without problems so....

I use to like them then because in certain cases for small programs, they were kinda neet, and constituted nice structured coding.

***********************************
i use fm ALSM_EXCEL_TO_INTERNAL_TABLE.

if there's any space in excel file i don't get it in internal table.
how can i get the space in internal table ? ?

Put an Apostrophe (an Apostrophe doc... not a Quote) in front of the string.
Why is that a problem? There are numerous examples of code using that FM that seem to magically cope with it.

You can check this sample code,


REPORT ztmptl_upload_excel_from_pc3 NO STANDARD PAGE HEADING.

TABLES : t001.
DATA : BEGIN OF i_tab OCCURS 0,
row TYPE alsmex_tabline-row,
col TYPE alsmex_tabline-col,
value TYPE alsmex_tabline-value,
END OF i_tab.
DATA : BEGIN OF it_tab OCCURS 0.
INCLUDE STRUCTURE t001.
DATA : END OF it_tab.
DATA wa_itab LIKE i_tab.
DATA : l_file TYPE rlgrap-filename.
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-000.
PARAMETER: dataset TYPE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN: END OF BLOCK b1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR dataset.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
*def_filename = ' '
*def_path = ' '
*mask = ' '
mode = '0'
title = 'Choose the Appropriate excel sheet'
IMPORTING
filename = dataset
*EXCEPTIONS
*inv_winsys = 01
*no_batch = 02
*selection_cancel = 03
*selection_error = 04
.
l_file = dataset.

START-OF-SELECTION.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = l_file
i_begin_col = 1
i_begin_row = 1
i_end_col = 10
i_end_row = 65300
TABLES
intern = i_tab
* EXCEPTIONS
* INCONSISTENT_PARAMETERS = 1
* UPLOAD_OLE = 2
* OTHERS = 3
.
break tlise.
*********************************************************************************************
I want to get a list of tables (as found in the SAP data dictionary) used in ABAP report programs created using transaction SE38.

That is, for example, I have created a report program ZEXAMPLE1.
In this program, I have used tables MARA, MAKT, T001W and MSEG.

I want to get a list of the above table names populated in an internal table. Though I can write a separate program to fulfill the purpose, I want to know whether any ready-made solution is available in SAP in the form of Function Modules or SAP's utility report programs.

Can anyone help me in saving the time of writing a new report program that will generate a list of SAP tables (including Z-tables) used in report programs ?
**************************************
Hi All,
I would like to know the difference between user exit and BADI.. If i have to change the standard menus, fields or program flow and if user exit is availble then accordingly it can be enabled..
But also SAP has provided BADIs ( business add ins) for taking care of adding additional features to standard system.. How BADI works? Is it like an external program to be plugged in or like user exit does it gets executed during the program flow ?

Please clarify
BADI is just an object-oriented version of user-exit. Instead of entering program code into some function module (as in customer-exit), you define some class which has to implement predefined methods and those methods are fired at predefined points just like an old user-exit. Some BADI can have multiple independent
implementations which is much better for software deployment as several developers can implement the same BADI independently.

SAP MEMORY AND ABAP MEMORY

SAP Memory
SAP memory is the memory area where all main sessions with in the SAP GUI have the access. We can use SAP memory either
to pass data from one program to other within the session, or to pass data from one session to other. Application programs that
use SAP memory must do so using SPA/GPA parameters (also known as SET/GET parameters). These parameters can be set
either for a particular user or for a particular program using the SET PARAMETER statement. Other ABAP programs can then retrieve
the set parameters using the GET PARAMETER statement. The most frequent use of SPA/GPA parameters is to fill input fields on
screens

The SAP memory, otherwise known as the global memory, is available to a user during the entire duration of a terminal session. Its
contents are retained across transaction boundaries as well as external and internal sessions. The SET PARAMETER and GET
PARAMETER statements allow you to write to, or read from, the SAP memory.

ABAP/4 Memory
ABAP memory is the memory area that all ABAP programs within the same internal session can access using the EXPORT and
IMPORT statements. Data within this area remains intact during a whole sequence of program calls. To pass data
to a program which you are calling, the data needs to be placed in ABAP memory before the call is made. The internal session of
the called program then replaces that of the calling program. The program called can then read from the ABAP memory. If control is
then returned to the program which made the initial call, the same process operates in reverse.

Tuesday, May 20, 2008

OPERATIONS ON TABLES

Making Changes to Tables

Procedure

Enter the table name in the initial screen of the ABAP Dictionary.
Select object class Database table.
Choose Change.
The maintenance screen for the table is displayed.

The following describe how to make changes to existing tables:

Adding an Append Structure
Inserting an Include
Inserting New Fields
Deleting Existing Fields
Changing the Data Type, Field Length and Decimal Places of Existing Fields
Changing the Table Category
Moving Fields
Copy Fields from Another Table
Copying Fields from an Entity Type.
Deleting Tables


Adding an Append Structure

Procedure

Go to change mode in the maintenance screen of the table where you want to add the append structure.
If the table contains a long field (data type VARC, LCHR or LRAW), you cannot add an append structure.

Choose Goto ® Append structures.
Either a dialog box appears in which you can enter the name of the append structure or a list of all the append structures. that were
already created for the table appears. If append structures already exist, you have to choose to get the dialog box for entering the name.

Enter the append structure name and choose . The name must lie in the customer namespace.
You go to the field maintenance screen of the append structure.

Define the fields of the append structure. You can proceed as when creating a normal structure with two restrictions (see Creating
Structures).
The fields of an append structure must lie in the customer namespace, that is the field names must begin with ZZ or YY. This prevents
conflicts with fields inserted in the table by SAP.

An append structure must be flat, that is each field of the append structure must either refer to a data element or be directly assigned a
data type, length, decimal places and short text.

If you want to create foreign keys or search help attachments for table fields that already exist, you can display these fields with Show
appending objects. Proceed as if you wanted to create the foreign key or search help attachment in the underlying table (see Creating
Tables).
If a foreign key or search help attachment is already defined for a field in the table, you cannot change this definition with the append
structure.

Choose .
Result

The table will also be activated when the append structure is activated. The fields of the append structure are appended to the table in the
database. Foreign keys or search help attachments for the fields that are already in the table and that were defined with the append
structure are also activated.

You can display information about the activation process with Utilities ® Activation log. Errors occurring when the append structure is
activated are displayed directly in the activation log.

Inserting an Include

Prerequisites

Only flat structures may be included in a table. No field refers to another structure in a flat structure. All the fields of a flat structure
therefore refer either to a data element or were directly assigned a data type, field length and decimal places.

A field name may not have more than 16 places in a table. A structure therefore can only be included in a table if none of the field names of
the structure are longer than 16 places.

Procedure

Place the cursor under the line in which you want to insert the include and choose Edit ® Include ® Insert.
A dialog box appears.

Enter the structure name. You can optionally enter a group name (see Named Includes) or a three-place suffix.
With the group name, you can access the fields in the include together in ABAP programs.

The suffix can be used to avoid name collisions between fields of the include and fields already in the table. The suffix is added to all the
fields of the include, whereby the field name is first truncated if necessary.

Choose .
A line with .INCLUDE in the Fields field and the name of the include in the Field type field is inserted in the field maintenance screen for the
table.

Select column Key if all the fields in the include should be key fields of the table.
The table key must be at the start of the field list. If you select column Key, you must insert the include after the last key field or between
the existing key fields of the table.

If you do not select column Key, none of the included fields is a key field of the table.

Choose .
Result

The fields of the include are added to the table in the database. If you inserted the fields of the include as key fields, the primary index of
the table is built again.

You can find information about the activation flow in the activation log, which you can display with Utilities ® Activation log. The activation
log is displayed immediately if errors occur when the table is activated.

Other Options

You can display the fields contained in an include by placing the cursor on the line of the include and choosing . The fields of the include are
now shown below this line. You can cancel this action with .

You can expand all the includes contained in a table with . Cancel this action with .

You can copy the fields contained in the include directly to the table with Edit ® Include ® Copy components. The fields of the include
become table fields. They are no longer adjusted to changes in the include.

Inserting New Fields

Procedure

In the maintenance screen for the table, place the cursor on the field in front of which the new field should be inserted and choose Insert
line. You can append several new fields at the end of the table with New lines.
An empty line appears in which you can insert the new field. Creating Tables. describes how to add a field to a table.

Set the Init flag if the new field should be created in the database as NOT NULL.
In this case the entire is scanned during activation and the new field is filled with the initial value. This can be very time-consuming for large
tables.

Key fields are always defined as NOT NULL. When a new key field is inserted, the primary index of the table is built again in the database.

Choose .
Result

The new field is added to the table when it is activated in the database. This does not depend on the position of the new field in the field
list of the table, that is the order of the fields in the ABAP Dictionary does not have to be the same as in the database.



If the table is a check table of a foreign key, new key fields can only be appended to the previous primary key. When the table is activated,
the foreign keys concerned are defined as generic with regard to the new key fields. The foreign keys changed in this way are listed in the
activation log.



Inserting a client field results in a table conversion (see Adjusting Database Structures). The data in the table is copied to all the clients
listed in client table T000.

If the table is a check table of a foreign key, it is not possible to insert a client field. In this case you must first delete the existing foreign
keys.


Deleting Existing Field

To delete one field from a table, place the cursor on the corresponding line and choose Delete line. Choose .



If the table in the database already contains data, you have to convert the table after deleting existing fields (see Adjusting Database
Structures).

If you delete key fields of the table, data could be lost during conversion. If the table contains data records that only differ in the deleted
key field, only one of these data records can be loaded back into the table.



You cannot delete a field used as a reference field in another table. In this case you must first remove all the uses of the field as a
reference field (see Reference Fields and Reference Tables).

You cannot delete key fields of the table if the table is the check table. In this case you must first delete the corresponding foreign keys.

You can determine all the tables that use the particular table as check table or reference table with .

Changing Data Types and Lengths of Existing Fields

If a data element is assigned to the field, you must change the technical field attributes (data type, length, number of decimal places) in
the domain of the data element.

Procedure for Fields with Data Elements

Double-click on the name of the data element.
The data element maintenance screen appears.

Double-click on the name of the domain.
The domain maintenance screen appears.

Choose Domain ® Display ® Change.
Make the required changes and save your entries.

Note that this change affects all the table fields that refer to the particular domain. Foreign keys could become inconsistent and conversions
required. You should therefore consider the effects of this action before changing the domain by choosing in the maintenance screen of the
domain and checking if the domain is used in other tables.

Choose .
The table is activated again and the table field is adjusted to the domain change.

Procedure for Fields with Direct Type Entry

Place the cursor on the field and choose Data element / Direct type.
Values can now be entered in fields Data type, Length, DecPlaces and Short text.

Change the entries for the data type, length and possibly the number of decimal places.
Save your entries.

activate.

Changing the Table Category

Prerequisites

Depending on the category of the change, note the following features:

Transparent to structure: The table is deleted from the database at activation. Existing data is lost. Any technical settings for the table are
also lost.
Pooled/cluster to transparent: Since technical settings are meaningless for pooled and cluster tables, you must maintain them before
activating the transparent table.
Transparent to pooled/cluster: You must define the assignment to the table pool or table cluster in which the table data should be stored.
Procedure

In the field maintenance screen of the table, choose Extras ® Change table category.
A dialog box appears in which the current table category (transparent database table, structure, pooled table, cluster table) is selected.

Select your table category and choose Select.
You return to the field maintenance screen for the table.

activate

Moving Fields

Procedure

Place the cursor on the field to be moved and choose .
The selected field is deleted and copied to the clipboard.

Place the cursor on the field in front of which you want to insert the selected field and choose .
The field is inserted in the table at the new position.



The order of the fields in the ABAP Dictionary can differ from the order of the fields in the database. Changing the order of the fields (with
the exception of key fields) in the ABAP Dictionary therefore does not result in a change in the database. In particular, a table conversion is
not required (see Adjusting Database Structures).

If the table is a check table, you cannot change the order of the key fields. In this case you must first delete the corresponding foreign keys.

Copying Fields from Another Table

You can copy fields or blocks of fields from another table.

Procedure

In the maintenance screen of the table choose Edit ® Copy fields.
Enter the name of the table from which you want to copy the fields in the next dialog box.

Choose Field selection.
A list of the fields contained in this table appears.

Place the cursor on the first field of the block to be copied and choose Select block.
If you want to copy only single fields, place the cursor on these fields and choose Select.

Place the cursor on the last field of the block to be copied and again choose Select block.
All the fields of the selected block are highlighted.

Choose Copy.
The selected block or the selected single fields are copied to a buffer, and you return to the field maintenance screen.

Place the cursor on the field in front of which you want to insert the new fields and choose .
The selected fields are inserted in the table.

activate

Copying Fields from an Entity Type

Procedure

In the field maintenance screen of the table choose Edit ® Att. from ent. type.
A dialog box appears.

Enter the name of the entity type from which you want to copy attributes to the table. Choose Field selection.
A dialog box appears listing all the attributes of the entity type.

Select the attributes that you want to copy. Select the corresponding entry in the list and choose Choose.
The entry is highlighted.

Note that only the explicit attributes of the entity type can be copied with this function. Only these explicit attributes are displayed. Explicit
attributes are the attributes that were not copied from the table assigned to the entity type. This means that only those attributes that
were entered directly in the Data Modeler can be copied.

Select all the fields you want and choose Copy.
The attributes are now copied to the clipboard.

Place the cursor on the field in front of which you want to insert the fields and choose .
The selected fields are inserted in the table.

Deleting Tables

Prerequisites

A table can only be deleted in the ABAP Dictionary when it is no longer used in any other objects (for example views or programs).

Procedure

In the initial screen of the ABAP Dictionary, select the object type Database table and enter the name of the table.
With the where-used list , check if the table is still used in programs or other objects of the ABAP Dictionary.

Choose .
A dialog box appears in which you are asked to confirm the deletion request. This dialog box tells you if the table still contains data.

Confirm the deletion request.
Result

The table is now deleted if it is no longer being used in other objects of the ABAP Dictionary



ABAP DICTIONARY

Purpose

Data definitions (metadata) are created and managed in the ABAP Dictionary. The ABAP Dictionary permits a central description of all the
data used in the system without redundancies. New or modified information is automatically provided for all the system components. This
ensures data integrity, data consistency and data security.

You can create the corresponding objects (tables or views) in the underlying relational database using these data definitions. The ABAP
Dictionary therefore describes the logical structure of the objects used in application development and shows how they are mapped to the
underlying relational database in tables or views.

The ABAP Dictionary also provides standard functions for editing fields on the screen, for example for assigning a screen field an input help.

What Information is Stored in the ABAP Dictionary?

The most important object types in the ABAP Dictionary are tables, views, 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.

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. The list of possible input values
that appears for the input help is created by a foreign key or a search 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 and ABAP interpreters, input help, database interface, and development tools always access current data.

The following ABAP program lists the airline carriers (see Flight model) and carrier IDs contained in table SCARR.
DATA: SCARR_TAB TYPE SCARR.

SELECT * INTO SCARR_TAB FROM SCARR.

WRITE: / SCARR_TAB-CARRID, SCARR_TAB-CARRNAME.

ENDSELECT.

Only structure SCARR_TAB is declared in the program. All the information about this structure, such as the field names, data types and field
lengths, are copied from table SCARR, which is defined in the ABAP Dictionary. This information about table SCARR is called from the ABAP
Dictionary when the program is generated.

This means that the source text of the program need not be adjusted when a change is made to table SCARR, for example when the length
of a table field is changed. The next time the program is called, the system automatically determines that the structure of table SCARR has
changed. The program is simply regenerated, thereby retrieving up-to-date information about table SCARR from the ABAP Dictionary.


When you work on development projects, objects of the ABAP Dictionary can be changed any number of times before being activated and
made available to the operative components of the system. Objects can have both an active and an inactive version in the ABAP Dictionary
at the same time.

Inactive ABAP Dictionary objects have no effect on the runtime system (ABAP processor, database interface). This permits greater changes
to several objects without impairing the executability of the system. The objects can only be activated together when they have all been
changed.

Wednesday, April 30, 2008

CREATING INTERNAL TABLES

This section describes how to define internal tables locally in a program. You can also define internal tables globally as data types in the
ABAP Dictionary.

Like all local data types in programs , you define internal tables using the TYPES statement. If you do not refer to an existing table type
using the TYPE or LIKE addition, you can use the TYPES statement to construct a new local internal table in your program.

TYPES TYPE|LIKE OF [WITH ]
[INITIAL SIZE ].

After TYPE or LIKE, there is no reference to an existing data type. Instead, the type constructor occurs:

OF [WITH ]

The type constructor defines the table type , the line type , and the key of the internal table .

You can, if you wish, allocate an initial amount of memory to the internal table using the INITIAL SIZE addition.

Table type

You can specify the table type as follows:

Generic table types

INDEX TABLE

For creating a generic table type with index access.

ANY TABLE

For creating a fully-generic table type.

Data types defined using generic types can currently only be used for field symbols and for interface parameters in procedures . The generic
type INDEX TABLE includes standard tables and sorted tables. These are the two table types for which index access is allowed. You cannot
pass hashed tables to field symbols or interface parameters defined in this way. The generic type ANY TABLE can represent any table. You
can pass tables of all three types to field symbols and interface parameters defined in this way. However, these field symbols and
parameters will then only allow operations that are possible for all tables, that is, index operations are not allowed.

Fully-Specified Table Types

STANDARD TABLE or TABLE

For creating standard tables.

SORTED TABLE

For creating sorted tables.

HASHED TABLE

For creating hashed tables.

Fully-specified table types determine how the system will access the entries in the table in key operations. It uses a linear search for
standard tables, a binary search for sorted tables, and a search using a hash algorithm for hashed tables.

Line type

For the line type , you can specify:

Any data type if you are using the TYPE addition. This can be a predefined ABAP type, a local type in the program, or a data type from the
ABAP Dictionary. If you specify any of the generic elementary types C, N, P, or X, any attributes that you fail to specify (field length, number
of decimal places) are automatically filled with the default values. You cannot specify any other generic types.
Any data object recognized within the program at that point if you are using the LIKE addition. The line type adopts the fully-specified data
type of the data object to which you refer. Except for within classes, you can still use the LIKE addition to refer to database tables and
structures in the ABAP Dictionary (for compatibility reasons).
All of the lines in the internal table have the fully-specified technical attributes of the specified data type.

Key

You can specify the key of an internal table as follows:

[UNIQUE|NON-UNIQUE] KEY ...

In tables with a structured line type, all of the components belong to the key as long as they are not internal tables or references,
and do not contain internal tables or references. Key fields can be nested structures. The substructures are expanded component by
component when you access the table using the key. The system follows the sequence of the key fields.

[UNIQUE|NON-UNIQUE] KEY TABLE LINE

If a table has an elementary line type (C, D, F, I, N, P, T, X), you can define the entire line as the key. If you try this for a table whose line
type is itself a table, a syntax error occurs. If a table has a structured line type, it is possible to specify the entire line as the key. However,
you should remember that this is often not suitable.

[UNIQUE|NON-UNIQUE] DEFAULT KEY

This declares the fields of the default key as the key fields. If the table has a structured line type, the default key contains all non-numeric
columns of the internal table that are not and do not contain references or internal tables. If the table has an elementary line type, the
default key is the entire line. The default key of an internal table whose line type is an internal table, the default key is empty.

Specifying a key is optional. If you do not specify a key, the system defines a table type with an arbitrary key. You can only use this to
define the types of field symbols and the interface parameters of procedures . For exceptions, refer to Special Features of Standard Tables.

The optional additions UNIQUE or NON-UNIQUE determine whether the key is to be unique or non-unique, that is, whether the table can
accept duplicate entries. If you do not specify UNIQUE or NON-UNIQUE for the key, the table type is generic in this respect. As such, it can
only be used for specifying types. When you specify the table type simultaneously, you must note the following restrictions:

You cannot use the UNIQUE addition for standard tables. The system always generates the NON-UNIQUE addition automatically.
You must always specify the UNIQUE option when you create a hashed table.
Initial Memory Requirement

You can specify the initial amount of main memory assigned to an internal table object when you define the data type using the following
addition:

INITIAL SIZE

This size does not belong to the data type of the internal table, and does not affect the type check. You can use the above addition to
reserve memory space for table lines when you declare the table object.

When this initial area is full, the system makes twice as much extra space available up to a limit of 8KB. Further memory areas of 12KB each
are then allocated.

You can usually leave it to the system to work out the initial memory requirement. The first time you fill the table, little memory is used. The
space occupied, depending on the line width, is 16 <= <= 100.

It only makes sense to specify a concrete value of if you can specify a precise number of table entries when you create the table and
need to allocate exactly that amount of memory (exception: Appending table lines to ranked lists). This can be particularly important for
deep-structured internal tables where the inner table only has a few entries (less than 5, for example).

To avoid excessive requests for memory, large values of are treated as follows: The largest possible value of is 8KB divided by the
length of the line. If you specify a larger value of , the system calculates a new value so that n times the line width is around 12KB.

Examples



TYPES: BEGIN OF LINE,
COLUMN1 TYPE I,
COLUMN2 TYPE I,
COLUMN3 TYPE I,
END OF LINE.

TYPES ITAB TYPE SORTED TABLE OF LINE WITH UNIQUE KEY COLUMN1.

The program defines a table type ITAB. It is a sorted table, with line type of the structure LINE and a unique key of the component
COLUMN1.



TYPES VECTOR TYPE HASHED TABLE OF I WITH UNIQUE KEY TABLE LINE.

TYPES: BEGIN OF LINE,
COLUMN1 TYPE I,
COLUMN2 TYPE I,
COLUMN3 TYPE I,
END OF LINE.

TYPES ITAB TYPE SORTED TABLE OF LINE WITH UNIQUE KEY COLUMN1.

TYPES: BEGIN OF DEEPLINE,
FIELD TYPE C,
TABLE1 TYPE VECTOR,
TABLE2 TYPE ITAB,
END OF DEEPLINE.

TYPES DEEPTABLE TYPE STANDARD TABLE OF DEEPLINE
WITH DEFAULT KEY.

The program defines a table type VECTOR with type hashed table, the elementary line type I and a unique key of the entire table line. The
second table type is the same as in the previous example. The structure DEEPLINE contains the internal table as a component. The table
type DEEPTABLE has the line type DEEPLINE. Therefore, the elements of this internal table are themselves internal tables. The key is the
default key - in this case the column FIELD. The key is non-unique, since the table is a standard table.

INTERNAL TABLES

Internal tables

Internal tables provide a means of taking data from a fixed structure and storing it in working memory in ABAP. The data is stored line by
line in memory, and each line has the same structure. In ABAP, internal tables fulfill the function of arrays. Since they are dynamic data
objects, they save the programmer the task of dynamic memory management in his or her programs. You should use internal tables
whenever you want to process a dataset with a fixed structure within a program. A particularly important use for internal tables is for
storing and formatting data from a database table within a program. They are also a good way of including very complicated data
structures in an ABAP program.

Like all elements in the ABAP type concept, internal tables can exist both as data types and as data objects A data type is the abstract
description of an internal table, either in a program or centrally in the ABAP Dictionary, that you use to create a concrete data object. The
data type is also an attribute of an existing data object.

Internal Tables as Data Types

Internal tables and structures are the two structured data types in ABAP. The data type of an internal table is fully specified by its line type,
key, and table type.

Line type

The line type of an internal table can be any data type. The data type of an internal table is normally a structure. Each component of the
structure is a column in the internal table. However, the line type may also be elementary or another internal table.

Key

The key identifies table rows. There are two kinds of key for internal tables - the standard key and a user-defined key. You can specify
whether the key should be UNIQUE or NON-UNIQUE. Internal tables with a unique key cannot contain duplicate entries. The uniqueness
depends on the table access method.

If a table has a structured line type, its default key consists of all of its non-numerical columns that are not references or themselves
internal tables. If a table has an elementary line type, the default key is the entire line. The default key of an internal table whose line type
is an internal table, the default key is empty.

The user-defined key can contain any columns of the internal table that are not references or themselves internal tables. Internal tables
with a user-defined key are called key tables. When you define the key, the sequence of the key fields is significant. You should remember
this, for example, if you intend to sort the table according to the key.

Table type

The table type determines how ABAP will access individual table entries. Internal tables can be divided into three types:

Standard tables have an internal linear index. From a particular size upwards, the indexes of internal tables are administered as trees. In
this case, the index administration overhead increases in logarithmic and not linear relation to the number of lines. The system can access
records either by using the table index or the key. The response time for key access is proportional to the number of entries in the table.
The key of a standard table is always non-unique. You cannot specify a unique key. This means that standard tables can always be filled
very quickly, since the system does not have to check whether there are already existing entries.

Sorted tables are always saved sorted by the key. They also have an internal index. The system can access records either by using the
table index or the key. The response time for key access is logarithmically proportional to the number of table entries, since the system
uses a binary search. The key of a sorted table can be either unique or non-unique. When you define the table, you must specify whether
the key is to be unique or not. Standard tables and sorted tables are known generically as index tables.

Hashed tables have no linear index. You can only access a hashed table using its key. The response time is independent of the number of
table entries, and is constant, since the system access the table entries using a hash algorithm. The key of a hashed table must be unique.
When you define the table, you must specify the key as UNIQUE.

Generic Internal Tables

Unlike other local data types in programs, you do not have to specify the data type of an internal table fully. Instead, you can specify a
generic construction, that is, the key or key and line type of an internal table data type may remain unspecified. You can use generic
internal tables to specify the types of field symbols and the interface parameters of procedures . You cannot use them to declare data
objects.

Internal Tables as Dynamic Data Objects

Data objects that are defined either with the data type of an internal table, or directly as an internal table, are always fully defined in
respect of their line type, key and access method. However, the number of lines is not fixed. Thus internal tables are dynamic data objects,
since they can contain any number of lines of a particular type. The only restriction on the number of lines an internal table may contain are
the limits of your system installation. The maximum memory that can be occupied by an internal table (including its internal administration)
is 2 gigabytes. A more realistic figure is up to 500 megabytes. An additional restriction for hashed tables is that they may not contain more
than 2 million entries. The line types of internal tables can be any ABAP data types - elementary, structured, or internal tables. The
individual lines of an internal table are called table lines or table entries. Each component of a structured line is called a column in the
internal table.

Choosing a Table Type

The table type (and particularly the access method) that you will use depends on how the typical internal table operations will be most
frequently executed.

Standard tables

This is the most appropriate type if you are going to address the individual table entries using the index. Index access is the quickest
possible access. You should fill a standard table by appending lines (ABAP APPEND statement), and read, modify and delete entries by
specifying the index (INDEX option with the relevant ABAP command). The access time for a standard table increases in a linear relationship
with the number of table entries. If you need key access, standard tables are particularly useful if you can fill and process the table in
separate steps. For example, you could fill the table by appending entries, and then sort it. If you use the binary search option with key
access, the response time is logarithmically proportional to the number of table entries.

Sorted tables

This is the most appropriate type if you need a table which is sorted as you fill it. You fill sorted tables using the INSERT statement. Entries
are inserted according to the sort sequence defined through the table key. Any illegal entries are recognized as soon as you try to add
them to the table. The response time for key access is logarithmically proportional to the number of table entries, since the system always
uses a binary search. Sorted tables are particularly useful for partially sequential processing in a LOOP if you specify the beginning of the
table key in the WHERE condition.

Hashed tables

This is the most appropriate type for any table where the main operation is key access. You cannot access a hashed table using its index.
The response time for key access remains constant, regardless of the number of table entries. Like database tables, hashed tables always
have a unique key. Hashed tables are useful if you want to construct and use an internal table which resembles a database table or for
processing large amounts of data.

Monday, March 24, 2008

SAP TRANSACTION CODES

MM:
ME21 - create purchase order
ME22 - change purchase order
ME51N - Create a Purchase Requisition
ME52N - Change a Purchase Requisition
ME53N - Delete a Purchase Requisition
ME54 - Individual Release of a Purchase Requisition
ME55 - Collective Release of a Purchase Requisition
MIGO - Receive Goods/Services

DEVELOPING:
S001 Abap Workbench
SE09 Workbenche organizer (Transports)
SE11 ABAP/4 Dictionary
SE16 Data browser
SE24 Class builder
SE30 ABAP Runtime
SE32 ABAP/4 Text Element Maintenance
SE35 ABAP/4 Dialog Modules Maintenance
SE36 Logical DatabasesSE37 Function builder
SE38 ABAP/4 EditorSE39 Program Comparison
SE41 Menu Painter
SE43 Area Menu editor
SE48 Call hierarchy
SE49 Program analysis: Table Manipulation
SE51 Screen Painter: Initial Screen.
SE55 Table maintenance dialog
SE80 Repository browser
SE91 Message Classes
SE93 Maintain transaction
SHDB Batch input recorder
SM30 Maintain table views
SM35 Monitor batch input
ST22 Short dump analysis

MONITORING:
ST05 SQL Trace
ST07 Application monitor3.System
SM04 User overview ( Possible to end sessions)
SM12 Table lock Entries
SM21 System log for viewing dumps
SM36 Define background jobs
SM37 View background jobs
SM50 Process Overview
SU53 Display Authorization Values for User
SLG1 View application log
SLG2 Delete application log
SPAD Output devices
SP01 See spool

SAP SCRIPTS:

SE71 Form painter
SE72 Style maintenance
SE73 SAPscript font maintenance.
SE74 SAPscript format conversion
SE75 SAPscript Settings
SE76 SAPscript Form Translation
SE77 SAPscript Style Conversion
SE78 SapScript Graphics Management
SO10 Create standard text module

WORKFLOW:

SWDM Workflow explorer
SWDD Workflow builder
SWUS Start workflow - Test enviromnent
SWU0 Simulate event
SBWP Business workplace
PFTC_INS Create Task/Task group
PFTC_CHG Change Task/Task group
SWUD Dagnosis
SWI1 Work item selection

ENHANCEMENTS & MODIFICATIONS:

CMOD Enhancementprojects
SMOD List SAP enhancements to use in
CMODSHD0 Transaction variant maintenance

ABAP IMG TCODES:

USMM Pressing F8 will display all hotpacks applied.
SEARCH_SAP_MENU Show the menu path to use to execute a given tcode. You can search by transaction code or menu text.
DI02 ABAP/4 Repository Information System: Tables.
LSMW Legacy System Migration Workbench. An addon available from SAP that can make data converstion a lot easier. Thanks to Serge Desland for this one.
OSS1 SAP Online Service System
OY19 Compare Tables
SM13 Update monitor. Will show update tasks status. Very useful to determine why an update failed.
S001 ABAP Development Workbench
S001 ABAP/4 Development Weorkbench.
S002 System Administration.
SA38 Execute a program.
SCAT Computer Aided Test Tool
SCU0 Compare Tables
SE01 Old Transport & Corrections screen
SE03 Groups together most of the tools that you need for doing transports. In total, more than 20 tools can be reached from this one transaction.
SE09 Workbench Organizer
SE10 New Transport & Correction screen
SE11 ABAP/4 Dictionary Maintenance
SE12 ABAP/4 Dictionary Display
SE13 Maintain Technical Settings (Tables)
SE14 Utilities for Dictionary Tables
SE15 ABAP/4 Repository Information System
SE16 Data Browser: Initial Screen
SE16N Table Browser (the N stands for New, it replaces SE16).
SE17 General Table Display
SE24 Class Builder
SE30 ABAP/4 Runtime Analysis
SE32 ABAP/4 Text Element Maintenance
SE35 ABAP/4 Dialog Modules
SE36 ABAP/4: Logical Databases
SE37 ABAP/4 Function Modules
SE38 ABAP Editor
SE39 Splitscreen Editor: Program Compare
SE41 Menu Painter
SE43 Maintain Area Menu
SE48 Show program call hierarchy. Very useful to see the overall structure of a program.
SE49 Table manipulation. Show what tables are behind a transaction code.
SE51 Screen Painter: Initial Screen.
SE54 Generate View Maintenance Module
SE61 R/3 Documentation
SE62 Industry utilities
SE63 Translation
SE64 Terminology
SE65 R/3 document. short text statistics
SE66 R/3 Documentation Statistics (Test!)
SE68 Translation Administration
SE82 Customer Application Hierarchy
SE83 Reuse Library.
SE84 ABAP/4 Repository Information System
SE85 ABAP/4 Dictionary Information System
SE86 ABAP/4 Repository Information System
SE87 Data Modeler Information System
SE88 Development Coordination Info System
SE91 Maintain Messages
SE92 Maintain system log messages
SM12 Lock table entries (unlock locked tables)
SM21 View the system log, very useful when you get a short dump. Provides much more info than short dump
SM30 Maintain Table Views.
SM31 Table Maintenance
SM32 Table maintenance
SM35 View Batch Input Sessions
SM37 View background jobs
SM50 Process Overview.
SM51 Delete jobs from system (BDC)
SM62 Display/Maintain events in SAP
BP_EVENT_RAISESMEN Display the menu path to get to a transaction
SMOD/CMOD Transactions for processing/editing/activating new customer enhancements.
SNRO Object browser for number range maintenance
SQ00 ABAP/4 Query: Start Queries
SQ01 ABAP/4 Query: Maintain Queries
SQ02 ABAP/4 Query: Maintain Funct. Areas
SQ03 ABAP/4 Query: Maintain User Groups
SQ07 ABAP/4 Query: Language
WEDI EDI Menu. IDOC and EDI base.
WE02 Display an IDOC
WE07 IDOC Statistics

SAP TABLES

SALES & DISTRIBUTION TABLES:
VBBE Sales Requirements: Individual Records
VBEH Schedule line history
VBEP Sales Document: Schedule Line Data
VBFA Sales Document Flow
VBLB Sales document: Release order data
KONV Conditions for Transaction Data
KONP Conditions for Items
LIKP Delivery Header Data
LIPS Delivery: Item data
VBAK Sales Document: Header Data
VBAP Sales Document: Item Data
VBLK SD Document: Delivery Note Header
VBPA Sales Document: Partner
VBRK Billing: Header Data
VBRP Billing: Item Data
VBUK Sales Document: Header Status and Administrative Data
VBUP Sales Document: Item Status
VEKP Handling Unit - Header Table
VEPO Packing: Handling Unit Item (Contents)
VEPVG Delivery Due Index

MATERIAL MANAGEMENT TABLES:

MBEW Material ValuationMKPF Header- Material Document
MSEG Document Segment- Material
MVER Material Consumption
MVKE Sales Data for materials
EINA Purchasing Info Record- General Data
EINE Purchasing Info Record- Purchasing Organization Data
MAKT Material Descriptions
MARA General Material Data
MARC Plant Data for Material
MARD Storage Location Data for Material
MAST Material to BOM Link
RKPF Document Header- Reservation
T023 Mat. groups
T024 Purchasing Groups
T156 Movement Type
T157H Help Texts for Movement Types

ABAP FAQS WITH ANSWERS

1. Can you create a table with fields not referring to dataelements?
YES. eg:- ITAB LIKE SPFLI.here we are referening to a data object(SPFLI) not data element.What are the different types of data dictionary objects? tables,structures, views, domains, data elements, lock objects, Match codeobjects.
2. What should be the approach for writing a BDC program?
STEP 1: CONVERTING THE LEGACY SYSTEM DATA TO A FLAT FILE to internaltable CALLED "CONVERSION".
STEP 2: TRANSFERING THE FLAT FILE INTO SAP SYSTEM CALLED "SAP DATATRANSFER".
STEP 3: DEPENDING UPON THE BDC TYPEi)call transaction(Write the program explicity)ii) create sessions (sessions are created and processed.if successdata will transfer).
3. What are the problems in processing batch input sessions and Howis batch input process different from processing online?
PROBLEMS:i) If the user forgets to opt for keep session then the session willbe automatically removed from the session queue(log remains).However if session is processed we may delete it manually.
ii)if session processing fails data will not be transferred to SAPdatabase table.

4. What does an extract statement do in the ABAP program?
Once you have declared the possible record types as field groups anddefined their structure, you can fill the extract dataset using thefollowing statements: EXTRACT. When the first EXTRACT statementoccurs in a program, the system creates the extract dataset and addsthe first extract record to it. In each subsequent EXTRACTstatement, the new extract record is added to the dataset EXTRACTHEADER. When you extract the data, the record is filled with thecurrent values of the corresponding fields. As soon as the systemhas processed the first EXTRACT statement for a field group , thestructure of the corresponding extract record in the extract datasetis fixed. You can no longer insert new fields into the field groupsand HEADER. If you try to modify one of the field groups afterwardsand use it in another EXTRACT statement, a runtime error occurs. Byprocessing EXTRACT statements several times using different fieldgroups, you fill the extract dataset with records of differentlength and structure. Since you can modify field groups dynamicallyup to their first usage in an EXTRACT statement, extract datasetsprovide the advantage that you need not determine the structure atthe beginning of the program.

5. Can a transparent table exist in data dictionary but not in thedata base physically?
NO. TRANSPARENT TABLE DO EXIST WITH THE SAME STRUCTURE BOTH IN THEDICTIONARY AS WELL AS IN THE DATABASE,EXACTLY WITH THE SAME DATA ANDFIELDS.

6. What is the step by step process to create a table in datadictionary?
step 1: creating domains(data type, field length, range).
step 2: creating data elements(properties and type for a tablefield).
step 3: creating tables(SE11).

7. What is the typical structure of an ABAP/4 program?
HEADER ,BODY,FOOTER.

8. A situation: An ABAP program creates a batch input session. Weneed to submit the program and the batch session in back ground. Howto do it?
go to SM36 and create background job by giving job name, job classand job steps (JOB SCHEDULING)

9. What are the domains and data elements?
DOMAINS : FORMAL DEFINITION OF THE DATA TYPES.THEY SET ATTRIBUTESSUCH AS DATA TYPE,LENGTH,RANGE.
DATA ELEMENT : A FIELD IN R/3 SYSTEMIS A DATA ELEMENT.

10. What is the alternative to batch input session?
Call transaction.

11. What is a batch input session?
BATCH INPUT SESSION is an intermediate step between internal tableand database table. Data along with the action is stored in sessionie data for screen fields, to which screen it is passed, programname behind it, and how next screen is processed.

12. What is the advantage of structures? How do you use them in theABAP programs?
Adv:- GLOBAL EXISTANCE(these could be used by any other programwithout creating it again).

13. How many types of tables exists and what are they in datadictionary?
4 types of tables
i)Transparent tables - Exists with the same structure both indictionary as well as in database exactly with the same data andfields. Both Opensql and Nativesql can be used.
ii)Pool tables &iii)Cluster tables - These are logical tables that are arranged asrecords of transparent tables. one cannot use native sql on thesetables (only open sql).They are not managable directly usingdatabase system tools.
iv)Internal tables - .?

SAP SCRIPTS & SMARTFORMS FAQS

1.What is the difference between a script & a report ?
2.What are the components/elements in sap script ?
3.Can you create a script with out a main window ?
4.How many main windows can be created for a script ?
5.How can we use tables in sap scripts?
6.How to print a logo in a sap script?
7.When we need to modify standard scripts(eg:medruck) given by sap?
8.What is the use of transaction code NACE in sap scripts?
9.what is the table name that will contain all the script form names and print program names?
10.Can you assign your own form to a standard print program? how?
11.What is the use of PROTECT & ENDPROTECT?
12.How to add extra functionality to a standard print program with out touching the print program?
13.what is sub routine pool in sap script? when it is used?
14.How to read text in sapscripts?
15.What is the transaction code for logo uploading?
16.what is the difference between paragraph & character format?
17.How to use a sapscript for multiple languages ? (english,germany etc)
18.How to download/upload sapscripts from & to your PC ?
19.What is the difference between scripts & smart forms?
20.What is the standard program used for uploading the logo to script?
21.How can you send forms from one client to other?
22.what does open_form, write_form, close_form do?
23.How to convert a sapscript to smart form?
24.How to send a smartform result through mail?
25.how to select desired paper size in sapscript?

PERFORMANCE TUNING FAQS

1.What is performance tuning?
2.What are steps you follow to improve the performance of a report ?
3.what is the role of secondary index in performance?
4.what is the role of ST05 in performance tuning?
5.what is the role of extended syntax check in performance tuning?
6.will join conditions in sql queries affect perfomance? how?
7.will sorted internal tables help in performance?
8.will where conditions in a sql query help improve performance?
9.does select single *.. / select * .. affect performance ? how?

BDC & LSMW FAQS

1.What is BDC ?
2.What is call transaction method ? what is the syntax/procedure?
3.What is session method and what is the syntax/procedure?
4.Difference between call transaction & session method?
5.which of these methods can be best used in background process?
6.What is direct input method?
7.How LSMW is advantageous than normal BDC?
8.what are the steps in lsmw?
9.IN LSMW can you use BAPI, ?
10.Can you call a bdc from a report program?
11.what is the difference between synchronus & asynchronus methods?
12.call transaction uses synchronus or synchronus method?
13.session method uses synchronus or synchronus method?
14.What is bapi?
15.how bapi is different from call transaction/session?
16.what r the advantages of bapi?
17.for uploading master data(ex:customer data) into sap, which methods you prefer? call transaction/session/lsmw/bapi? why?
18.tell any 2 standard bapi function modules used for uploading sales order data?

INTERNAL TABLE FAQS

1.what is an internal table?
2.how many type of internal tables are there?
3.what is the difference between hashed & sorted internal tables?
4.what is the difference between standard and sorted internal tables? (in performance wise)
5.Difference between internal table and a dictionary table?
6.can you create an internal table dynamically?(at run time)
7.what is the use of select for all entries in an internal table?
8.when you are using 2 internal table in program, you have decided to use for all entries statement to retrieve data but unfortunately there are no records in the first internal table. What will be the result? (2nd internal table contains records).
9.in a loop of an internal table, what is the use of at first & at last statements?
10.What is the use of at new statement?
11.what is the difference between at first & at new statements?
12.what is a binary search ? and how it is useful in a sorted internal table?
13.when do you need to create an internal table with header line ?and with out a header line?
14.what does it mean occurs 0 while creating an internal table?
15.what will happen if you don't give occurs clause while creating an internal table?
16.what is the difference between clear, delete & refresh with respect to an internal table?

ABAP REPORTS FAQS

1.what is a report?
2.what are types of reports?
3.difference bet'n simple and interactive reports?
4.what are the events in interactive reports?
5.what is the first event that will be triggered in a report?
6.what is the use of Initialization event? give one example.
7.what is the use of start-of-selection event?
8.what is the difference betn end-of-page and end-of-selection?
9.if you write a write statement after end-of-selection, will that be triggered?
10.how to create a button in selection screen?
11.how to add a gui status in a selection screen?
12.what is at-line-selection event?
13.How many secondary lists can be created in an interactive report?
14.how to create a check box/option button in a list?
15.can you call a bdc program from a report? how?
16.can you call a transaction from a report? how?
17.what are ALV reports? how they are different from normal reports?
18.what are the main events that are used in an ALV report?
19.what is the use of SLIS type pool in alv reports?
20.difference betn top-of-page and top-of-page during at-line-selection?
21.in an interactive report, after going to 5th list, can you come back to 2nd list? how?

REAL TIME FAQS

1.Which client number you use for the current project?
2.You are running a report. It is taking long time for execution. What steps will you do to reduce the execution time.
3.After running a BDC program in background, next day morning when you see the results, few records are not updated(error records). What will you do then?
4.You are given functional specs for a BDC program and you need to decide whether to write a method call transaction or a session. How u will decide?
5.What is the difference between report and script?
6.what are the differences between scripts & smart forms?
7.what are enhancements?
8.what are user-exits?
9.what is badi?
10.what is the difference between user-exit & BADIs?
11.what is the difference between user-exit & customer-exit?
12.how do you get functional specs when you are assigned some object? (specs through email..??)
13.How do you write technical specs?
14.How do you write UTP?(unit test plan)

SAP ABAP DATA DICTIONARY FAQ

Dear Friends, We have listed the important and commonly asked interview questions in this page. These questions under are gathered from many candidates who have appeared SAP interviews. We have divided the faq in two different categories namely ABAP FAQ & REAL time faq. First category covers questions that you can get answers from your faculty or text book. The second category covers all real time questions that are being asked in interviews. We are sure if you can cover these 2 categories, you are through 70% of your interview. We did not give answers to the questions because we want you should spend some time to find out the answers. That shows how serious you are for a job? If we give answers here, it does't really help you much, you will simply read and forget, but if you spend some time to find answers, you will not forget and will come to know many other things..Good Luck...

SAP ABAP FAQ (Technical):

Data Dictonary:


1.What is data Dictionary ?
2.What is the difference between open sql & native sql ?
3.Difference between Pooled, cluster & transparent tables?
4.What is Primary key, foreign key ? what is primary index? secondary index?
5.how many indexes can be created for a table?
6.what is a value table?
7.what are the components of a table?
8.what is a domain?
9.what is a data element?
10.what is data class?
11.can you create a table with out a data element?
12.can you create a field with out a data element?
13.What approach you prefer for creating a table?
14.Give few names of cluster tables in sap?
15.Give few names of pooled tables in sap?
16.give few names of transparent tables?
17.what is a buffer and how many types?
18.what is table maintenance generator and how to create that? What is the transaction code?
19.How to add new fields to a standard sap table ?
20.How many types of table joins are there?
21.difference between inner join & outer join?
22.Difference between "select * from mara" and "select single * from mara"?
23.what is a match code ? Lock objects ?
24.what are views?
25.what are logical tables/database?
26.what is the difference bet'n table and a structure?

Sunday, March 23, 2008

SAP History

HISTORY

Systems, Applications, Products in data processing or SAP was originally introduced in the 1980’s as SAP R/2 which was a mainframe system that provided users with a soft-real-time business application that could be used with multiple currencies and languages. Later when client servers were introduced SAP brought out a server based version of their software called SAP R/3, henceforth referred to as SAP, which was launched in 1992. They also developed a graphical user interface or GUI to make it more user friendly and to move away from the mainframe style user interface. For the next 10 years SAP dominated the large business applications market. It was successful primarily because it was extremely flexible. Because SAP was a modular system meaning that the various functions provided by it could be purchased piecemeal it was an extremely versatile system. All a company needed to do was purchase the modules they wanted and customize the processes to match the company’s business model. SAP’s flexibility, while one of its greatest strengths is also one of its greatest weaknesses. We will now turn to the audit issues surrounding SAP.


REPUTATION:

SAP is the third-largest software company in the world. It ranks after Microsoft and Oracle in terms of market capitalization. SAP is the largest business application and Enterprise Resource Planning (ERP) solution software provider in terms of revenue.




PRODUCTS:

SAP's products focus on ERP, which it helped to pioneer. The company's main product is SAP R/3; the "R" stands for realtime data processing and the number 3 relates to a 3-tier architecture: database, application server and client (SAPgui). SAP R/3's predecessor was R/2 which ran on a Mainframe architecture.Other major product offerings include Advanced Planner and Optimizer (APO), Business Information Warehouse (BW), Customer Relationship Management (CRM), Supply Chain Management (SCM), Supplier Relationship Management (SRM), Human Resource Management Systems (HRMS), Product Lifecycle Management (PLM), Exchange Infrastructure (XI), Enterprise Portal (EP) and Knowledge Warehouse (KW).The APO name has been retired and rolled into SCM. The BW name (Business Warehouse) has now been rolled into the SAP NetWeaver BI (Business Intelligence) suite and functions as the reporting module.The company also offers a new technology platform, named SAP NetWeaver. While its original products are typically used by Fortune 500 companies, SAP is now also actively targeting small and medium sized enterprises (SME) with its SAP Business One and SAP All-in-One.Reportedly, there are over 100,800 SAP installations at more than 28,000 companies. SAP products are used by over 12 million people in more than 120 countries




IMPLEMENTATION:

SAP Implementation is the whole of processes that defines a complete method to implement SAP software in an organization. The SAP implementation method described in this entry is a generic method and not a specific implementation method as such. It is based on best practices and case studies from various literature sources and presents a collection of processes and products that make up a complete implementation method to allow any organization to plan and execute the implementation of SAP (ERP) software.