Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Std Internal Tables

Former Member
0 Kudos

Hi, what are Standard Internal Tables and Standard reports, and can I have names of some 'Standard Internal Tables' and 'Standard Reports' plz ?

Thnx.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

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.

List of Standar Tables:

DBCON

Description of database connections (including password)

DD02V

Date dictionary tables

DD03L

Date dictionary tables and fields

DD07T

Texts for Domain Fixed Values

T100

Table of message ( mesage class and message number )

TRDIR

Table of programs

TRMAC

Table of macros

TSTC

Table of transaction codes

TADIR

Directory of R/3 repository objects

TFACD

Factory calender definition

THOCI

Public holiday calendar index

TPARA

Table of PID's

DEVACCESS

Table of development users including registered Developer access key

USR02

Logon data

USR04

User master authorization (one row per user)

UST04

User profiles (multiple rows per user)

USR10

Authorisation profiles (i.e. &_SAP_ALL)

UST10C

Composit profiles (i.e. profile has sub profile)

USR11

Text for authorisation profiles

USR12

Authorisation values

USR13

Short text for authorisation

USR40

Table for illegal passwords

OBJT

Authorisation objetc table

8 REPLIES 8

Former Member
0 Kudos

internal tables are 3 types

1) standard

2) sort

3) hash

standard reports means sap provided reports.

don't compare standard reports and standard internal tables

Former Member
0 Kudos

Hi Zayed,

Standard Internal tables have a linear index. Do have a look at this link.

<<http://www.sap-img.com/abap/what-are-different-types-of-internal-tables-and-their-usage.htm>>

Some examples for Standard Reports can be found here:

<<http://www.sapbrainsonline.com/REFERENCES/StandardReports/SAP_standard_reports_list.html>>

Regards,

Nameeta

former_member190818
Active Contributor
0 Kudos

Hi Khan,

The standard reports will start with letter 'R'. Go to SE38 and give R*, you will find so many reports. For example, RSWUWFML2 is the report used to send the workitem to outlook.

For standard internal table, u can see the below link,

http://help.sap.com/saphelp_47x200/helpdata/en/fc/eb3660358411d1829f0000e829fbfe/frameset.htm

Regards,

JMB

Former Member
0 Kudos

Hi

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.

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.

and

The standard Programs which SAP had developed that names does not start with Z or Y that programs are called as Standrad Reports

BALVBT01

Example SAP program for displying multiple ALV reports on one page

BCALV_GRID_DEMO

ALV Dialog grid demo (4.6)

SHOW_COLO

Displays all colours available

SHOW_ICON

Displays all icon available

RGUGBR00

Substitution/Validation and rules utility

RKCTSEAR

Search source code of various programs for up to two strings. Also see RPR_ABAP_SOURCE_SCAN or use search in source functionality via SE80

RPCIFU01

Display File

RPCIFU03

Download Unix File to PC

RPCIFU04

Upload PC File to Unix File

RPR_ABAP_SOURCE_SCAN

Search ABAP code for a string. Much more flexible than RSRSCAN1 or RKCTSEAR

RSBDCBTC

Submit a BDC job with an internal batch number and wait for the end of the batch input session

RSBDCDRU

Prints the contents of a Batch Input session. No options for error transactions only

RSBDCOS0

Execute OS Command (Logged in SYSLOG and Trace Files)

RSBDCSUB

Process batch input sessions automatically

RSBTCDEL

Delete batch jobs

RSCONN01

SAPconnect: Start Email Send Process

RSCSAUTH

Maintain/Restore Authorization Groups

RSINCL00

Extended ABAP Program Reference List

RSMODRES

Restore enhancement projects after upgarde

RSORAREL

Check Oracle Version

RSPARAM

Display all instance parameters

RSPO0041

Delete Old Spool Requests

RSSNAPDL

Reorganization Program for Table SNAP of Short Dumps

RSTRANSP

Transport Report Variants

RSTXFCON

SAPscript: Conversion of Page Format for Forms

RSTXPDFT4

Convert spool request to PDF document

RSTXPDFT5

GUI download of a spool request

RSTXSCRP

SAPscript Export to Dataset / SAPscript Import from Dataset (Upload and download SAPScript layout sets)

RSTXTRAN

Transfer of SAPscript Texts(standard texts) to a transport

RSUSR003

Check the Passwords of Users SAP* and DDIC in All Clients

RSUSR006

List of Users with Incorrect Logons

Former Member
0 Kudos

these are some of the standard reports\

REKH0004

SAP demo program that shows how to do 2d 3D, and 4D graphics.

RGUGBR00

Substitution/Validation utility

RHGEN00

Regen PD and PA inconsistencies

RHGRENZ0

Delimit IT1000 and related 1001s. Program will delete any 1001 infotypes whose start date is after the delimit date.

RHGRENZ1

Extend the end date on delimited records. Very useful when you delimit a bunch of records incorrectly, and need to change the end date.

RHGRENZ2

Delimit IT1001 only.

RKCTSEAR

Search source code for up to two strings. Also see RSRSCAN1 and RPR_ABAP_SOURCE_SCAN.

RPDTRA00

List all HR transactions.

RPR_ABAP_SOURCE_SCAN

Search ABAP code for a string. Has many more options for selecting the ABAPs to search than RSRSCAN1 or RKCTSEAR.

RPUAUD00

HR Report to list all logged changes for an employee. Uses the PCL4 Audit Cluster.

RPUAUDDL

HR Report to delete audit data from the PCL4 Audit Cluster.

RPUDELPN

Delete all info for an employee number, including cluster data and infotypes

RPUP1D00/10

View/Delete data from PCL1 Cluster

RPUP2D00/10

View/Delete data from PCL2 Cluster

RPUP3D00/10

View/Delete data from PCL3 Cluster

RPUP4D00/10

View/Delete data from PCL4 Cluster

RSABAPIV

Mass print/display of ABAP/4 help text

RSAVGL00

Table adjustment across clients

RSBDCBTC

Submit a BDC job with an internal batch number and wait for the end of the batch input session.

RSBDCDRU

Prints the contents of a Batch Input session. No options for error transactions only.

RSBDCOS0

Execute UNIX commands. Looks similar to the old SAPMSOS0 program that disappeared in 3.0

RSBDCSUB

Release batch input sessions automatically

RSBTCDEL

Clean the old background job records

RSSDOCTB

R/3 Table Manual - prints a list of all fields in the selected tables with the field name and the field documentation.

RSCLTCOP

Copy tables across clients

RSDBCREO

Clean batch input session log

RSINCL00

Extended program list

RSNASTED

Process message control output for entries in the NAST table

RSORAREL

Get the Oracle Release

RSPARAM

Display all instance parameters

RSPO0041

Removing old spooling objects

RSRSCAN1

Search source code for a given string. Will also search includes. Also see RKCTSEAR and RPR_ABAP_SOURCE_SCAN.

RSSNAPDL

Clean the old ABAP error dumps

RSTBSERV

Compare a contents of a table between clients

RSTXFCON

Converts SAPScript page formats

RSTXSCRP

Save a SAPScript layout set to disk, and load it back into SAP.

RSTXSCRP

Transport SAPscript files across systems

RSTXSCRP

Upload and download SAPScript layout sets

RSTXTPDF4

Pass the spool number of a report's output to this program to have the output converted to PDF format.

RSTXTRAN

Add standard texts to a transport so they can be moved between systems.

RSUSR003

Check the passwords of users SAP* and DDIC in all clients

RSUSR006

List users last login

RSWBO052

Change development class of a sapscript (provided by Alan Cecchini)

RSWBO060

put objects into a request and transport it to any other system

inernal tables

INTERNAL TABLES IN ABAP:

There are two ways of accessing the records in an internal table:

By copying individual records into a work area. The work area must be compatible with the line type of the internal table.

You can access the work area in any way, as long as the component you are trying to access is not itself an internal table. If one of the components is an internal table, you must use a further work area, whose line type is compatible with that of the nested table.

When you change the internal table, the contents of the work area are either written back to the table or added as a new record.

By assigning the individual data records to an appropriate field symbol. Once the system has read an entry, you can address its components directly via its address. There is no copying to and from the work area. This method is particularly appropriate for accessing large or complex tables.

If you want to read more than one record, you must use a LOOP... ENDLOOP structure. You can then change or delete the line that has just been read, and the system applies the change to the table body. You can also change or delete lines using a logical condition.

When you use the above statements with sorted tables, you must ensure that the sort sequence is maintained.

Within a loop, the INSERT statement adds the data record before the current record in the table. If you want to insert a set of lines from an internal table into another index table, you should use the INSERT LINES OF variant instead.

When you read single data records, you can use two further additions:

In the COMPARING addition, the system compares the field contents of a data record with those in the work area for equality.

In the TRANSPORTING addition, you can restrict the data transport to selected fields.

Other statements for standard tables

SORT [ASCENDING|DESCENDING]

[BY [ASCENDING|DESCENDING] ..

[ASCENDING|DESCENDING]][AS TEXT] [STABLE].

These statements sort the table by the table key or the specified field sequence. If you do not use an addition, the system sorts ascending. If you use the AS TEXT addition, character fields are sorted in culture-specific sequence. The relative order of the data records with identical sort keys only remain constant if you use the STABLE addition.

APPEND INTO SORTED BY .

This statement appends the work area to the ranked list in descending order. The ranked list may not be longer than the specified INITIAL SIZE, and the work area must satisfy the sort order of the table.

The statements listed here can be used freely with both standard and sorted tables.

When you change a single line, you can specify the fields that you want to change using the TRANSPORTING addition. Within a loop, MODIFY changes the current data record.

If you want to delete a set of lines from an index table, use the variant DELETE FROM... TO.. or WHERE... instead of a loop. You can program almost any logical expression after WHERE.

The only restriction is that the first field in each comparison must be a component of the line structure (see the corresponding Open SQL statements). You can pass component names dynamically.

If you want to delete the entire internal table , use the statement CLEAR .

In the LOOP AT... ENDLOOP structure, the statements within the loop are applied to each data record in turn. The INTO addition copies entries one at a time into the work area.

The system places the index of the current loop pass in the system field sy-tabix. When the loop has finished, sy-tabix has the same value that it had before the loop started.

Inserting and deleting lines within a loop affects the following loop passes.

Access to a hashed table is imple mented using a hash algorithm. Simplified, this means that the data records are distributed randomly but evenly over a particular memory area.. The addresses are stored in a special table called the hashing table .

There is a hash function, which determines the address at which the pointer to a data record with a certain key can be found. The function is not injective, that is, there can be several data records stored at a single address. This is implemented internally as a chained list. Therefore, although the system still has to search sequentially within these areas, it only has to read a few data records (usually no more than three). The graphic illustrates the simplest case, that is, in which there is only one data record stored at each address.

Using a hash technique means that the access time no longer depends on the total number of entries in the table. On the contrary, it is always very fast. Hash tables are therefore particularly useful for large tables with which you use predominantly read access.

Data records are not inserted into the table in a sorted order. As with standard tables, you can sort hashed tables using the SORT statement:

SORT [ASCENDING|DESCENDING]

[BY [ASCENDING|DESCENDING] ..

[ASCENDING|DESCENDING]][AS TEXT].

Sorting the table can be useful if you later want to use a loop to access the table.

You can use the statements listed here with tables of all three types. Apart from a few special cases, you can recognize the statements from the extra keyword TABLE. The technical implementation of the statements varies slightly according to the table type.

As a rule, index access to an internal table is quickest. However, it sometimes makes more sense to access data using key values. A unique key is only possible with sorted and hashed tables. If you use the syntax displayed here, your program coding is independent of the table type (generic type specification, easier maintenance).

With a standard table, inserting an entry has the same effect as appending. With sorted tables with a non-unique key, the entry is inserted before the first (if any) entry with the same key.

To read individual data records using the first variant, all fields of that are key fields of must be filled. and can be identical. If you use the WITH TABLE KEY addition in the second variant, you must also specify the key fully. Otherwise, the system searches according to the sequence of fields that you have specified, using a binary search where possible. You can force the system to use a binary search with a standard table using the BINARY SEARCH addition.

In this case, you must sort the table by the corresponding fields first. The system returns the first entry that meets the selection criteria.

Similarly to when you read entries, when you change and delete entries using the key and a work area, you must specify all of the key fields.

You can prevent fields from being transported into the work area during loop processing by using the TRANSPORTING NO FIELDS addition in the WHERE condition. (You can use this to count the number of a particular kind of entry.)

Other statements for all table types

DELETE ADJACENT DUPLICATES FROM

[COMPARING .. | A L L F I E L }|ALL FIELDS}].

The system deletes all adjacent entries with the same key field contents apart from the first entry. You can prevent the system from only comparing the key field using the COMPARING addition. If you sort the table by the required fields beforehand, you can be sure that only unique entries will remain in the table after the DELETE ADJACENT DUPLICATES statement.

Searches all lines of the table for the string . If the search is successful, the system sets the fields sy-tabix and sy-fdpos.

FREE .

Unlike CLEAR, which only deletes the contents of the table, FREE releases the memory occupied by it as well.

If you want to access your data using the index and do not need your table to be kept in sorted order or to have a unique key, that is, when the sequence of the entries is the most important thing, not sorting by key or having unique entries, you should use standard tables. (If you decide you need to sort the table or access it using the key or a binary search, you can always program these functions by hand.)

This example is written to manage a waiting list.

Typical functions are:

Adding a single entry,

Deleting individual entries according to certain criteria,

Displaying and then deleting the first entry from the list,

Displaying someone's position in the list.

For simplicity, the example does not encapsulate the functions in procedures.

The first thing we do in the example is to declare line and table type, from which we can then declare a work area and our internal table. We also require an elementary field for passing explicit index values.

This example omits the user dialogs and data transport, assuming that you understand the principles involved. We really only want to concentrate on the table access:

Adding new entries

The data record for a waiting customer is only added to the table if it does not already exist in it. If the table had a unique key, you would not have had to have programmed this check yourself.

Deleting single entries according to various criteria

The criterion is the key field. However, other criteria would be possible - for example, deleting data records older than a certain insertion date reg_date.

Displaying and deleting the first entry from the list

Once a customer comes to the top of the waiting list, you can delete his or her entry. If the waiting list is empty, such an action has no effect. Consequently, you do not have to check whether there are entries in the list before attempting the deletion.

Displaying the position of a customer in the waiting list

As above, you do not need to place any data in the work area. We are only interested in the values of sy-subrc and sy-tabix. If the entry is not in the table, sy-tabix is set to zero.

At this stage, let us return to the special case of the restricted ranked list:

DATA {TYPE|LIKE} STANDARD TABLE OF ... INITIAL SIZE . ... APPEND INTO SORTED BY .

When you choose to use a sorted table, it will normally be because you want to define a unique key.

The mere fact that the table is kept in sorted order is not that significant, since you can sort any kind of internal table. However, with sorted tables (unlike hashed tables), new data records are inserted in the correct sort order. If you have a table with few entries but lots of accesses that change the contents, a sorted table may be more efficient than a hashed table in terms of runtime.

The aim of the example here is to modify the contents of a database table. The most efficient way of doing this is to create a local copy of the table in the program, make the changes to the copy, and then write all of its data back to the database table. When you are dealing with large amounts of data, this method both saves runtime and reduces the load on the database server. Since the internal table represents a database table in this case, you should ensure that its records have unique keys.

This is assured by the key definition. Automatic sorting can also bring further advantages.

When you change a group of data records, only the fields price and currency are copied from the work area.

This means that, with larger tables, the access time is reduced significantly in comparison with a binary search. In a loop, however, the hashed table has to search the entire table (full table scan). Since the table entries are stored unsorted, it would be better to use a sorted table if you needed to run a loop through a left-justified portion of the key.

It can also be worth using a hashed table but sorting it. A typical use for hashed tables is to buffer detailed information that you need repeatedly and can identify using a unique key. You should bear in mind that you can also set up table buffering for a table in the ABAP Dictionary to cover exactly the same case. However, whether the tables are buffered on the application table depends on the size of the database table.

Buffering in the program using hashed tables also allows you to restrict the dataset according to your own needs, or to buffer additional data as required.

In this example, we want to allow the user to enter the name of a city, and the system to display its geographical coordinates.

First, we fill our "buffer table" city_list with values from the database table sgeocity. Then, we read an entry from the hashed table, specifying the full key.

The details are displayed as a simple list. At this point, it is worth repeating that you should only use this buffering technique if you want to keep large amounts of data locally in the program. You must ensure that you design your hashed table so that it is possible to specify the full key when you access it from your program.

You can define internal tables either with (WITH HEADER LINE addition) or without header lines. An internal table with header line consists of a work area (header line) and the actual table body. You address both objects using the same name. The way in which the system interprets the name depends on the context. For example, the MOVE statement applies to the header line, but the SEARCH statement applies to the body of the table.

To avoid confusion, you are recommended to use internal tables without header lines. This is particularly important when you use nested tables. However, internal tables with header line do offer a shorter syntax in several statements (APPEND, INSERT, MODIFY, COLLECT, DELETE, READ, LOOP).

hope this is helpful

do reward

Former Member
0 Kudos

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.

List of Standar Tables:

DBCON

Description of database connections (including password)

DD02V

Date dictionary tables

DD03L

Date dictionary tables and fields

DD07T

Texts for Domain Fixed Values

T100

Table of message ( mesage class and message number )

TRDIR

Table of programs

TRMAC

Table of macros

TSTC

Table of transaction codes

TADIR

Directory of R/3 repository objects

TFACD

Factory calender definition

THOCI

Public holiday calendar index

TPARA

Table of PID's

DEVACCESS

Table of development users including registered Developer access key

USR02

Logon data

USR04

User master authorization (one row per user)

UST04

User profiles (multiple rows per user)

USR10

Authorisation profiles (i.e. &_SAP_ALL)

UST10C

Composit profiles (i.e. profile has sub profile)

USR11

Text for authorisation profiles

USR12

Authorisation values

USR13

Short text for authorisation

USR40

Table for illegal passwords

OBJT

Authorisation objetc table

Former Member
0 Kudos

ABAP program that reads and analyzes the data in database tables and sometimes also makes updates.

ABAP report programs have the program type "executable program" and are often linked to a particular logical database.

When you execute an ABAP report program, you can display the resulting output list - also known as a report - on the screen or send it to a printer. You can also save the output list and display it later.

BALVBT01

Example SAP program for displying multiple ALV reports on one page

BCALV_GRID_DEMO

ALV Dialog grid demo (4.6)

SHOW_COLO

Displays all colours available

SHOW_ICON

Displays all icon available

RGUGBR00

Substitution/Validation and rules utility

RKCTSEAR

Search source code of various programs for up to two strings. Also see RPR_ABAP_SOURCE_SCAN or use search in source functionality via SE80

RPCIFU01

Display File

RPCIFU03

Download Unix File to PC

RPCIFU04

Upload PC File to Unix File

RPR_ABAP_SOURCE_SCAN

Search ABAP code for a string. Much more flexible than RSRSCAN1 or RKCTSEAR

RSBDCBTC

Submit a BDC job with an internal batch number and wait for the end of the batch input session

RSBDCDRU

Prints the contents of a Batch Input session. No options for error transactions only

RSBDCOS0

Execute OS Command (Logged in SYSLOG and Trace Files)

RSBDCSUB

Process batch input sessions automatically

RSBTCDEL

Delete batch jobs

RSCONN01

SAPconnect: Start Email Send Process

RSCSAUTH

Maintain/Restore Authorization Groups

RSINCL00

Extended ABAP Program Reference List

RSMODRES

Restore enhancement projects after upgarde

RSORAREL

Check Oracle Version

RSPARAM

Display all instance parameters

RSPO0041

Delete Old Spool Requests

RSSNAPDL

Reorganization Program for Table SNAP of Short Dumps

RSTRANSP

Transport Report Variants

RSTXFCON

SAPscript: Conversion of Page Format for Forms

RSTXPDFT4

Convert spool request to PDF document

RSTXPDFT5

GUI download of a spool request

RSTXSCRP

SAPscript Export to Dataset / SAPscript Import from Dataset (Upload and download SAPScript layout sets)

RSTXTRAN

Transfer of SAPscript Texts(standard texts) to a transport

RSUSR003

Check the Passwords of Users SAP* and DDIC in All Clients

RSUSR006

List of Users with Incorrect Logons

RSVARFIT

Adjust Variants to Modified Selections

RSVTPROT

Evaluation of change logs

RSWBO052

Change Object Directory Entries

RSWBO060

Include Objects in a Transport Request

SAPMSUU0

Program for user maintenance(SU01), Maybe useful if you do not have access to the actual SU01 transaction code.

Former Member
0 Kudos

Hi Zayed,

Standard Reports and Standard Internal Tables are Different. You cannot compare them.

The reports which SAP has developed already are called Standard Reports and the reports which u develop by using Z or Y are customizing reports.

There 3 types of Internal Tables:

Standard Internal Table:

It uses Linear Index

Ex: Data: it_itab TYPE STANDARD TABLE OF s_itab.

Sorted Internal Table:

It uses Binary Index so the table should be sorted.

Hashed Internal Table

Hope this answers your question

Regards,

Asif Ali Khan