ABAP
ABAP Repository -> contine toate obiectele SAP din sistem independent de client contine atat obiecte standard SAP cat si obiectele custom (create la cerinta clientului obiectele sunt disponibile in toti clientii sistemului contine: programe, functii, definitii ale tabelelor, tipuri de date, clase etc. ABAP Repository este impartit in functie de componenta de aplicatie (de ex MM); aceste componente sun ierarhizate intr-o structura arborescenta (in principiu pe module si sub-module; sub ele se afla pachetele) In cadrul unei componente obiectele sunt impartite logic in pachete; fiecare obiect trebuie sa fie atribuit unui pachet Tool-uri de Workbench: o ABAP Editor(SE38) – pentru editarea codului o ABAP Dictionary(SE11) – pentru crearea si editarea obiectelor de baza de date(tabele, elemente de date, domenii, table views etc) o Screen painter(SE51) – utilizat pentru crearea layouturilor ecranelor folosite in progamele ABAP o Menu painter(SE41) – pentru configurarea meniurilor o Function Builder(SE37) – pentru crearea si modificarea functiilor SAP(Function modules) o Class Builder(SE24) – pentru lucrul cu clase si interfete globale (ABAP OO) o Object Navigator(SE80) – ofera acces la toate cele de mai sus + obiecte de transport and others Crearea programelor ABAP o Dezvoltarea progamelor ABAP se realizeaza in sistemul de dezvoltare, apoi se transporta catre sistemele de Quality Assurance si Productiv cu ajutorul Transport Organizer(SE09/SE10/SE01) SINTAXA
Introductory Statements for Programs (In blue the most common ones) CLASS-POOL
Introduces a class pool
FUNCTION-POOL Introduces a function group INTERFACE-POOL Introduces an interface pool PROGRAM
Introduces a module pool or subroutine pool
REPORT
Introduces an executable program
TYPE-POOL
Introduces a type pool
Modularization Statements Procedures
FUNCTION ... ENDFUNCTION Defines a function module METHOD ... ENDMETHOD
Defines a method
Dialog Modules MODULE ... ENDMODULE Defines a dialog module
Event Blocks AT LINE-SELECTION
List Event
AT SELECTION-SCREEN Selection Screen Event AT USER-COMMAND
List Event
END-OF-PAGE
List Event
END-OF-SELECTION
Reporting Event
GET
Reporting Event
INITIALIZATION
Reporting Event
LOAD-OF-PROGRAM
Program Constructor Event
START-OF-SELECTION Reporting Event TOP-OF-PAGE
List Event
Source Code Modules DEFINE ... END-OF-DEFINITION Defines a macro INCLUDE
Includes an include program
Declarative Statements Data Types and Data Objects CONSTANTS
Declares a constant
DATA
Declares a variable
FIELD-SYMBOLS Declares a field symbol INCLUDE
Includes a structure
NODES
Declares a table work area
STATICS
Declares a static variable
TABLES
Declares a table work area
TYPES
Defines a separate data type
Classes and Interfaces ALIASES
Declares an alias name
CLASS ... ENDCLASS
Defines a class
CLASS-DATA
Declares a static attribute
CLASS-EVENTS
Declares a static event
CLASS-METHODS
Declares a static method
EVENTS
Declares an instance event
INTERFACE ... ENDINTERFACE Defines an interface INTERFACES
Includes an interface
METHODS
Declares an instance method
PRIVATE SECTION
Introduces the package visibility section
PROTECTED SECTION
Introduces the protected visibility section
PUBLIC SECTION
Introduces the public visibility section
Object Creation CREATE DATA
Creates an anonymous data object
CREATE OBJECT Creates an object
Calling and Exiting Program Units Calling Programs CALL TRANSACTION
Calls a transaction
LEAVE TO TRANSACTION Calls a transaction SUBMIT
Calls an executable program
Calling Processing Blocks CALL FUNCTION
Calls a function module
CALL METHOD
Calls a method dynamically
PERFORM
Calls a subroutine
RAISE EVENT
Triggers an event
SET HANDLER
Registers an event
SET USER-COMMAND Triggers a list event
Exiting Program Units CHECK
Exits a loop pass or processing block
CONTINUE
Exits a loop pass
EXIT
Exits a loop or processing block
LEAVE PROGRAM Exits an ABAP program REJECT
Exits a processing block
RETURN
Exits a processing block
STOP
Exits a processing block
Program Flow Logic Control Structures DO ... ENDDO
Loop
CASE ... WHEN ... ENDCASE Branch IF ... ELSEIF ... ELSE ... ENDIF Branch WHILE ... ENDWHILE
Loop
Program Interruption WAIT UP TO Program interruption for a certain amount of time
Exception Handling RAISE
Triggers a non-class-based exception
RAISE EXCEPTION
Triggers a class-based exception
TRY ... CATCH ... CLEANUP ... ENDTRY Handles class-based exceptions RESUME
Assignments Special Assignments
Resumes after a resumable exception
MOVE-CORRESPONDING Assignment according to structure components UNPACK
Unpacks a packed number
Setting References ASSIGN
Sets a field symbol
UNASSIGN
Initializes a field symbol
GET REFERENCE Sets a data reference
Initializations CLEAR Initializes a data object FREE Initializes a data object
Processing Internal Data Calculation Statements ADD
Adds numeric data objects
DIVIDE
Divides numeric data objects
MULTIPLY Multiplies numeric data objects SUBTRACT Subtracts numeric data objects
Character String and Byte String Processing CONCATENATE Concatenates character strings or byte chains CONDENSE
Condenses a character string
CONVERT TEXT Converts a character string FIND
Searches in a character string or byte chain
GET BIT
Reads individual bits in a byte chain
OVERLAY
Replacement in a character string
REPLACE
Replacement in a character string or byte chain
SET BIT
Sets individual bits in a byte chain
SHIFT
Moves a character string or byte chain
SPLIT
Splits a character string or byte chain
TRANSLATE
Converts a character string
WRITE TO
Formats values as a character string
Date and Time Processing CONVERT INTO TIME STAMP Converts date and time into time stamp CONVERT TIME STAMP
Converts a time stamp into data and time
GET TIME
Fills the system fields for date and time
GET TIME STAMP
Creates a time stamp
Internal Tables APPEND
Attaches rows to an internal table
COLLECT
Condensed insertion of rows into an internal table
DELETE
Deletes rows from an internal table
FIND IN TABLE
Searches in an internal table
INSERT
Inserts rows into an internal table
LOOP AT itab ... ENDLOOP
Loop across an internal table
LOOP AT GROUP ... ENDLOOP Loop across a row group in an internal table AT
Control Level Processing
MODIFY
Changes rows in an internal table
READ TABLE
Reads a row of an internal table
REPLACE IN TABLE
Replacement in an internal table
SORT
Sorts an internal table
SUM
Summation of numeric fields in an internal table
Meshes SET ASSOCIATION Sets an association for a mesh path.
Attributes of Data Objects DESCRIBE Determines the attributes of a data object
Processing External Data
Open SQL CLOSE CURSOR
Closes a database cursor
DELETE
Deletes rows from a database table
FETCH NEXT CURSOR Reads rows using a database cursor INSERT
Inserts rows into a database table
MODIFY
Changes or inserts rows in a database table
OPEN CURSOR
Opens a database cursor
SELECT ... ENDSELECT Reads rows from a database table UPDATE
Changes rows in a database table
Native SQL EXEC SQL ... ENDEXEC Defines an area for embedded Native SQL.
ABAP and HANA CALL DATABASE PROCEDURE Calls a database procedure of SAP HANA database.
Secondary Database Connections COMMIT CONNECTION Completes an SAP LUW on a secondary database connection ROLLBACK CONNECTION Cancels an SAP LUW on a secondary database connection
Data Clusters DELETE
Deletes data clusters
EXPORT
Exports data objects into a data cluster
FREE MEMORY
Deletes data clusters from the ABAP memory
IMPORT
Imports data objects from a data cluster
IMPORT DIRECTORY Creates the interval directory of a data cluster
File Interface CLOSE DATASET
Closes a file
DELETE DATASET
Deletes a file
GET DATASET
Specifies the properties of a file
OPEN DATASET
Opens a file
READ DATASET
Reads a file
SET DATASET
Sets the properties of a file
TRANSFER
Fills a file
TRUNCATE DATASET Changes the size of a file
Data Consistency AUTHORITY-CHECK
Checks an authorization
COMMIT WORK
Completes a SAP-LUW
ROLLBACK WORK
Cancels a SAP-LUW
SET UPDATE TASK LOCAL Sets the local update
Program Parameters SAP Memory GET PARAMETER Reads an SPA/GPA parameter SET PARAMETER Sets an SPA/GPA parameter
Language Environment GET LOCALE
Specifies the text environment.
SET COUNTRY
Sets the formatting settings of the language environment
SET LANGUAGE Loads a text pool SET LOCALE
Sets the text environment
Program Editing Testing and Checking Programs ASSERT
Defines an assertion
BREAK-POINT
Defines a breakpoint
LOG-POINT
Defines a logpoint
GET RUN TIME
Specifies a measuring interval
SET RUN TIME ANALYZER Controls the runtime analysis SET RUN TIME CLOCK
Sets the measurement accuracy for measuring intervals
Dynamic Program Development GENERATE SUBROUTINE POOL Generates a subroutine pool INSERT REPORT
Stores an ABAP program
INSERT TEXTPOOL
Stores a text pool
READ REPORT
Imports an ABAP program
READ TEXTPOOL
Imports a text pool
SYNTAX-CHECK
Calls the syntax check
ABAP Data and Communication Interfaces Remote Function Call CALL FUNCTION DESTINATION
Remote Function Call
RECEIVE
Receives parameters for the remote function call
WAIT FOR ASYNCHRONOUS TASKS Waits for completion of the remote function call WAIT FOR MESSAGING CHANNELS Wait for messages communicated using AMC
ABAP and XML CALL TRANSFORMATION Calls an XSLT program or a simple transformation
OLE Interface CALL METHOD Calls a OLE automation method CREATE OBJECT Create an OLE automation object FREE OBJECT
Releases memory in the OLE automation
GET PROPERTY Reads an attribute in the OLE Automation SET PROPERTY Sets an attribute in the OLE Automation
User Dialogs Dynpros
CALL SCREEN
Calls a dynpro sequence
CONTROLS
Declares a control
EXIT FROM STEP-LOOP
Exits a table control or step loop
GET CURSOR
Reads the cursor position
GET PF-STATUS
Sets the GUI status
LEAVE [TO] SCREEN
Exits a dynpro
LOOP AT SCREEN ... ENDLOOP Loop across screen elements MODIFY SCREEN
Modifies a screen element
REFRESH CONTROL
Initializes a table control
SET CURSOR
Sets the cursor position
SET HOLD DATA
Activates/deactivates standard menu entries
SET PF-STATUS
Sets the GUI status
SET SCREEN
Sets the next dynpro
SET TITLEBAR
Sets the GUI title
SUPPRESS DIALOG
Suppresses the screen
Selection Screens PARAMETERS
Defines a parameter
SELECTION-SCREEN Defines a selection screen or a screen element SELECT-OPTIONS
Defines a selection criterion
Lists BACK
Relative positioning of list cursor
DESCRIBE LIST
Specifies the properties of a list in the list buffer
FORMAT
Formats a list
GET CURSOR
Reads the cursor position
HIDE
Saves a data object in a list level
LEAVE TO LIST-PROCESSING Calls the list processing LEAVE LIST-PROCESSING
Exits list processing
MODIFY LINE
Changes a list in the list buffer
NEW-LINE
Line break in a list
NEW-PAGE
Page break in a list
POSITION
Positions the list cursor
PRINT-CONTROL
Formats a spool list.
READ LINE
Reads a list in the list buffer
RESERVE
Relative page break in a list
SCROLL LIST
Scrolls in a list
SET BLANK LINES
Controls the blank characters in a list
SET CURSOR
Sets the cursor position
SET MARGIN
Sets the margin of a spool list
SET PF-STATUS
Sets the GUI status
SET LEFT SCROLL-BOUNDARY Sets the scroll boundaries of a list SET TITLEBAR
Sets the GUI title
SKIP
Positions the list cursor
ULINE
Displays a line in a list
WINDOW
Displays a list in a dialog box
WRITE
Displays data in a list
Messages MESSAGE Sends a message
Enhancements Source Code Enhancements ENHANCEMENT ... ENDENHANCEMENT
Implements a source code enhancement
ENHANCEMENT-POINT
Defines a source code enhancement
ENHANCEMENT-SECTION ... END-ENHANCEMENT-SECTION Defines a source code enhancement
Enhancements Using BAdIs GET BADI Creates a BAdl object CALL BADI Calls BAdI methods
Statements for Experts INFOTYPES
Declares an internal table for HR info types
PROVIDE ... ENDPROVIDE Loop across multiple internal tables
Native SQL EXIT FROM SQL Exits implicit cursor processing of Native SQL
Contexts CONTEXTS Data type for contexts DEMAND Requests a context SUPPLY
Fills the key fields of a context
Internal Statements Program Editing DELETE DYNPRO
Deletes a dynpro
DELETE REPORT
Deletes an ABAP program
DELETE TEXTPOOL
Deletes a text pool
EXPORT DYNPRO
Exports a dynpro
GENERATE DYNPRO
Generates a dynpro
GENERATE REPORT
Generates an ABAP program
LOAD REPORT
Loads an ABAP program
IMPORT DYNPRO
Imports a dynpro
SCAN
Splits an ABAP program into tokens
SYNTAX-CHECK FOR DYNPRO Syntax check for a dynpro SYNTAX-TRACE
Influences the syntax check
External Interface CALL Calls a c function of the ABAP runtime environment
Operators o ABAP contains the following operators:
Operators that perform special operations in operand positions:
Declaration operators The declaration operators DATA and FIELD-SYMBOL declare variables or field symbols in operand positions.
Constructor operators The constructor operators NEW, VALUE, CONV, CORRESPONDING, CAST, REF, EXACT, REDUCE, FILTER, COND, and SWITCH construct values for data objects of specific data types in constructor expressions.
Operators that join multiple operands in a single expression:
Assignment operators The assignment operator = joins the source field and target field of an assignment. In the case of assignments, the special casting operator ?= performs a down cast. The operator = also joins actual parameters with formal parameters, for example in procedure calls or when working with data clusters.
Arithmetic operators The arithmetic operators +, -, *, /, DIV, MOD, and ** join two or more numeric operands with an arithmetic expression. In addition, the characters + and - act as plus/minus signs in arithmetic expressions.
Bit operators The bit operators BIT-AND, BIT-OR, and BIT-XOR join two or more byte-like operands with a bit expression. The bit operator BIT-NOT negates a byte-like operand.
String operators The string operator && chains two character-like operands to a string expression.
Relational operators Relational operators occur in relational expressions, which themselves are components of logical expressions. The relational operators =, <>, <, >, <=,>=, BETWEEN, and so on join two or more operands of any data type as a comparison expression. There are additional relational operators for specific data types. The predicate operator IS qualifies an operand.
Boolean operators The Boolean operators AND, OR, and EQUIV join the results of individual logical expressions with a logical expression. The result of a logical expression is either true or false. The Boolean operator NOT negates the result of a logical expression.
Operator that joins two operands in compilations:
Literal operator The literal operator & joins two literals or two string templates with a literal or a string template.
ABAP Program Types The type of an ABAP program determines (among other things) which declarations and processing blocks a program can contain and how the program can be executed in the ABAP runtime environment. The following table shows all program types for standalone programs (compilation units) and how the attributes of the programs are affected by the type. Program Type Execution
Global Declarations
Processing Blocks
Dynpros
Text Pools
Executable program
Statement SUBMIT or a Local interfaces and dynpro or selection classes, all other screen is called using a declarative statements transaction code
All (except function Yes modules)
Yes
Class pool
A global class from the Call of a visible method class library, local or a call using a interfaces and classes, transaction code statements TYPES and CONSTANTS
Methods only
No
Yes
A function module is Function called using CALL group or FUNCTION or a dynpro function pool is called using a transaction code
Local interfaces and classes, all other declarative statements
All (except event blocks for reporting Yes events)
Yes
Interface pool None
A global interface from the class library
None
No
No
All (except function modules and event Yes blocks for reporting events)
Yes
Local interfaces and classes, all other declarative statements
Event block LOADOF-PROGRAM, subroutines, methods
No
Yes
Statements TYPES and CONSTANTS
None
No
No
Local interfaces and A dynpro is called using Module pool classes, all declarative a transaction code statements Subroutine pool
External call of local procedures (subroutines or methods)
Type group or None type pool
The second column of the table shows which category of execution the program type is designed for. The third column shows which declarations can be made in the global declaration section of a program with the specified type. The fourth column shows which processing blocks the program can contain. The
fifth indicates whether the program can support its own dynpros. The final column indicates whether the program can create its own text pools. ABAP Program Types The type of an ABAP program determines (among other things) which declarations and processing blocks a program can contain and how the program can be executed in the ABAP runtime environment. The following table shows all program types for standalone programs (compilation units) and how the attributes of the programs are affected by the type. Program Type Execution
Global Declarations
Processing Blocks
Dynpros
Text Pools
Executable program
Statement SUBMIT or a Local interfaces and dynpro or selection classes, all other screen is called using a declarative statements transaction code
All (except function Yes modules)
Yes
Class pool
A global class from the Call of a visible method class library, local or a call using a interfaces and classes, transaction code statements TYPES and CONSTANTS
Methods only
No
Yes
A function module is Function called using CALL group or FUNCTION or a dynpro function pool is called using a transaction code
Local interfaces and classes, all other declarative statements
All (except event blocks for reporting Yes events)
Yes
Interface pool None
A global interface from the class library
None
No
No
All (except function modules and event Yes blocks for reporting events)
Yes
Local interfaces and classes, all other declarative statements
Event block LOADOF-PROGRAM, subroutines, methods
No
Yes
Statements TYPES and CONSTANTS
None
No
No
Local interfaces and A dynpro is called using Module pool classes, all declarative a transaction code statements Subroutine pool
External call of local procedures (subroutines or methods)
Type group or None type pool
The second column of the table shows which category of execution the program type is designed for. The third column shows which declarations can be made in the global declaration section of a program with the specified type. The fourth column shows which processing blocks the program can contain. The
fifth indicates whether the program can support its own dynpros. The final column indicates whether the program can create its own text pools. ABAP Program Types The type of an ABAP program determines (among other things) which declarations and processing blocks a program can contain and how the program can be executed in the ABAP runtime environment. The following table shows all program types for standalone programs (compilation units) and how the attributes of the programs are affected by the type. Program Type Execution
Global Declarations
Processing Blocks
Dynpros
Text Pools
Executable program
Statement SUBMIT or a Local interfaces and dynpro or selection classes, all other screen is called using a declarative statements transaction code
All (except function Yes modules)
Yes
Class pool
A global class from the Call of a visible method class library, local or a call using a interfaces and classes, transaction code statements TYPES and CONSTANTS
Methods only
No
Yes
A function module is Function called using CALL group or FUNCTION or a dynpro function pool is called using a transaction code
Local interfaces and classes, all other declarative statements
All (except event blocks for reporting Yes events)
Yes
Interface pool None
A global interface from the class library
None
No
No
All (except function modules and event Yes blocks for reporting events)
Yes
Local interfaces and classes, all other declarative statements
Event block LOADOF-PROGRAM, subroutines, methods
No
Yes
Statements TYPES and CONSTANTS
None
No
No
Local interfaces and A dynpro is called using Module pool classes, all declarative a transaction code statements Subroutine pool
External call of local procedures (subroutines or methods)
Type group or None type pool
The second column of the table shows which category of execution the program type is designed for. The third column shows which declarations can be made in the global declaration section of a program with the specified type. The fourth column shows which processing blocks the program can contain. The
fifth indicates whether the program can support its own dynpros. The final column indicates whether the program can create its own text pools. Predefined Numeric Types The data objects of the numeric data types are used to handle number values. Properties Type
Length
Standard Length Name
b
1 byte
1-byte integer (internal)
s
2 byte
2-byte integer (internal)
i
4 byte
4-byte integer
p
1 to 16 bytes 8 byte
Packed number
decfloat16 8 byte
Decimal floating point number with 16 places
decfloat34 16 byte
Decimal floating point number with 34 places
f
Binary floating point number with 17 places
8 byte
Value Ranges and Initial Values Type
Value Range
Initial Value
b
0 to 255
0
s
-32,768 to +32,767
0
i
-2,147,483,648 to +2,147,483,647
0
p
The valid length for packed numbers is between 1 and 16 bytes; two places are packed into one byte, where the last byte only contains one place and the sign (the number of places or digits is calculated from 2 * len-1); after the decimal separator, up to 14 decimal places are permitted. Depending on the field length len and the 0 number of decimal places dec, the following applies to the value range: (-10^(2len1) +1) / (10^(+dec)) to (+10^(2len-1) -1) /(10^(+dec)) in increments of 10^(-dec); any intermediate values are rounded (decimal); invalid content produces undefined behavior.
Decimal floating point numbers of this type are represented internally with 16 places in accordance with the IEEE-754-2008 standard; valid values are numbers between 1E385(1E-16 - 1) and -1E-383 for the negative range, 0 and +1E-383 to decfloat16 1E385(1 - 1E-16) for the positive range. Values lying between the ranges form the 0 subnormal range and are rounded; outside of the subnormal range, each 16-digit decimal number can be represented precisely with a decimal floating point number of this type
Decimal floating point numbers of this type are represented internally with 34 places in accordance with the IEEE-754-2008 standard; valid values are numbers between 1E6145(1E-34 - 1) and -1E-6143 for the negative range, 0 and +1E-6143 decfloat34 and 1E6145(1 - 1E-34) for the positive range. Values lying between the ranges form 0 the subnormal range and are rounded; outside of the subnormal range, each 34digit decimal number can be represented precisely with such a decimal floating point number
f
Binary floating point numbers are represented internally in accordance with the IEEE-754 standard (double precision); in ABAP, 17 places are represented (one integer digit and 16 decimal places). Valid values are numbers between 1.7976931348623157E+308 and -2.2250738585072014E-308 for the negative 0 range and between +2.2250738585072014E-308 and +1.7976931348623157E+308 for the positive range, plus 0. Both validity intervals are extended in the direction of zero using subnormal numbers in accordance with the IEEE-754 standard.
Predefined Numeric Types The data objects of the numeric data types are used to handle number values. Properties Type
Length
Standard Length Name
b
1 byte
1-byte integer (internal)
s
2 byte
2-byte integer (internal)
i
4 byte
4-byte integer
p
1 to 16 bytes 8 byte
Packed number
decfloat16 8 byte
Decimal floating point number with 16 places
decfloat34 16 byte
Decimal floating point number with 34 places
f
Binary floating point number with 17 places
8 byte
Value Ranges and Initial Values Type
Value Range
Initial Value
b
0 to 255
0
s
-32,768 to +32,767
0
i
-2,147,483,648 to +2,147,483,647
0
p
The valid length for packed numbers is between 1 and 16 bytes; two places are packed into one byte, where the last byte only contains one place and the sign (the 0 number of places or digits is calculated from 2 * len-1); after the decimal separator, up to 14 decimal places are permitted. Depending on the field length len and the
number of decimal places dec, the following applies to the value range: (-10^(2len1) +1) / (10^(+dec)) to (+10^(2len-1) -1) /(10^(+dec)) in increments of 10^(-dec); any intermediate values are rounded (decimal); invalid content produces undefined behavior. Decimal floating point numbers of this type are represented internally with 16 places in accordance with the IEEE-754-2008 standard; valid values are numbers between 1E385(1E-16 - 1) and -1E-383 for the negative range, 0 and +1E-383 to decfloat16 1E385(1 - 1E-16) for the positive range. Values lying between the ranges form the 0 subnormal range and are rounded; outside of the subnormal range, each 16-digit decimal number can be represented precisely with a decimal floating point number of this type Decimal floating point numbers of this type are represented internally with 34 places in accordance with the IEEE-754-2008 standard; valid values are numbers between 1E6145(1E-34 - 1) and -1E-6143 for the negative range, 0 and +1E-6143 decfloat34 and 1E6145(1 - 1E-34) for the positive range. Values lying between the ranges form 0 the subnormal range and are rounded; outside of the subnormal range, each 34digit decimal number can be represented precisely with such a decimal floating point number
f
Binary floating point numbers are represented internally in accordance with the IEEE-754 standard (double precision); in ABAP, 17 places are represented (one integer digit and 16 decimal places). Valid values are numbers between 1.7976931348623157E+308 and -2.2250738585072014E-308 for the negative 0 range and between +2.2250738585072014E-308 and +1.7976931348623157E+308 for the positive range, plus 0. Both validity intervals are extended in the direction of zero using subnormal numbers in accordance with the IEEE-754 standard.
Generic ABAP Types The following table shows the predefined generic ABAP types. A generic data type is an incomplete type specification that includes multiple complete type specifications. With the exception of object, all generic types can be used after TYPE for the typing of field symbols and formal parameters. When a data object is assigned to generically typed field symbols using the statement ASSIGN, or to a formal parameter in procedure calls, the system checks whether its concrete data type is compatible with it, that is whether it is a subset of the generic type. The only generic types that can be used after TYPE REF TO are data, for the generic typing of data references, and object for the generic typing of object references. Type
Description
any
Any data type
any table
Internal table with any table category
c
Text field with a generic length
clike
Character-like (c, d, n, t, string, and character-like flat structures)
csequence
Text-like (c, string)
data
Any data type
decfloat
Decimal floating point number (decfloat16, decfloat34)
hashed table Hashed table index table
Index table
n
Numeric text with generic length
numeric
Numeric (i (b, s), p, decfloat16, decfloat34, f)
object
Any object type (root class of the inheritance hierarchy)
p
Packed number with generic length and generic number of decimal places
simple
Elementary data type including structured types with exclusively character-like flat components
sorted table
Sorted table
standard table
Standard table
table
Standard table
x
Byte field with generic length
xsequence
Byte-like (x, xstring)