Top Banner
Unit 4: Basic ABAP Language Elements
55

Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

Apr 13, 2017

Download

Software

dubon07
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

Unit 4: Basic ABAP Language Elements

Page 2: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

• In this lesson you will become familiar with the difference between data types and data objects and you will learn how to define and use these in a program. You will also learn some basic ABAP statements.

•You will be working with structures and internal tables, as well as program flow control and logical expressions.

Lesson: Working with Elementary Data Objects

Lesson Overview

Page 3: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•You are supposed to use simple variables in your programs and edit these with simple statements.

Business Example

Page 5: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•A formal variable description is called data type. In contrast, a variable concretely defined by means of a data type is called data object.

• Let's have a look at the ABAP standard types predefined by SAP (implemented types) first.

•These are divided into two groups:•Complete and• incomplete types.

Page 6: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•The following implemented ABAP standard types are complete.•This means that they already contain the type-related, fixed length

information:•Complete ABAP standard types

•DType for date(D), format: YYYYMMDD, length 8 (fixed)•TType for time (Time), Format: HHMMSS, length 6 (fixed)• IType for integer (I), length 4 (fixed)

Page 7: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•FType for floating point number (F), length 8 (fixed)•STRINGType for dynamic length character string•XSTRINGType for dynamic length byte sequence (HeXadecimal string)

Page 8: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•The following standard types do not contain a fixed length (incomplete). With these, the length of the variable has to be specified for data object definitions.

• Incomplete ABAP standard types

•CType for character string (Character) for which the fixed length is to be specified•NType for numerical character string (Numerical character) for which the fixed length is to be specified

Page 9: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•XType for byte sequence (HeXadecimal string) for which the fixed length is to be specified•PType for packed number (Packed number) for which the fixed length is to be specified. (In the definition of a packed number, the number of decimal points may also be specified.)

•For more information on predefined ABAP types, refer to the keyword documentation on the TYPES or DATA statement.

Page 10: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

Declaration of local typesTYPES type_name TYPE …

DATA myvarTYPE type_name-

DATA myvar2 LIKE myvar.

ABAP Program

type_name

Defining Data Objects

Page 11: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•Data objects are always defined with the DATA key word.

•You can use an ABAP standard type, a local type, or a global type to type a data object.

•You can refer to an already defined data object when defining additional variables (LIKE addition).

Page 12: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

• If the type information is missing in a variable definition, the standard type C is assumed.

• In contrast, if the length is missing, then the appropriate default length for the (incomplete) standard type is used.

•The "DATA myvar." statement without type or length information thus defines a character variable with a length of 1 as the default length of type C is one.

Page 13: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

• Literals and constants belong to the fixed data objects.

•You can use literals to specify fixed values in your programs.

•There are numeric literals (specified without quotation marks) and text literals (specified with quotation marks).

•You define constants using the CONSTANTS statement.

Page 14: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•The VALUE addition is required for constants.

• Local data types can only be used in the program where they are defined.

•Global data types, in contrast, can be used throughout the entire system.

Page 16: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•You can use the MOVE statement to transfer the contents of a data object to another data object.

•The following two syntax variants have the same effect:

•MOVE var1 TO var2.

•var2 = var1.

Page 17: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

• If both data objects var1 and var2 are of different types, then there is a type conflict.

• In this case, a type conversion is carried out automatically, if a conversion rule exists.

•For detailed information on copying and the conversion rules, refer to the keyword documentation for the MOVE statement.

•The CLEAR statement resets the contents of a data object to the type-specific initial value.

Page 19: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

• In ABAP you can program arithmetic expressions nested to any depth. Valid operations include:

•+ Addition• - Subtraction•* Multiplication• / Division•** Exponentiation•DIV Integral division without remainder•MOD Remainder after integral division

Page 20: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

• the following statement provides the current length of the content of a character variable.

• length = STRLEN( cityfrom ).

Page 21: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

Program Flow Control And Logical Expressions

Page 23: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

• In ABAP you have two ways to execute different sequences of statements, depending on certain conditions:

• In the IF construct you can define any logical expressions as check conditions.

•You can use nested IF statements, using the ELSEIF clause.

•You can use the CASE construct to clearly distinguish cases.

•The content of the field specified in the CASE part is checked against the data objects listed in the WHEN branches to see whether they match.

Page 24: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

• In both constructs the condition or match check happens sequentially from the top down.

•As soon as the statement block of a branch has been executed, the system immediately jumps to ENDIF or ENDCASE.

Page 25: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•When writing application programs, you often need to formulate conditions.

•These are used mostly to control the flow of the program, or to decide whether to exit a processing block.

•You formulate a condition using logical expressions. A logical condition can be either true or false.

Logical Expressions

Page 26: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•Comparisons Between Different Data Types

•Comparing Strings

Comparing Data Objects

Page 27: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

Comparison between different data types

Page 28: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

Comparing Strings

Page 29: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•To combine several logical expressions together in one single expression which is true only if all of the component expressions are true, link the expressions with AND.

•To combine several logical expressions together in one single expression which is true if at least one of the component expressions is true, link the expressions with OR.

•To negate the result of a logical expression, you can precede it with the NOT operator. SAP VIDEO

Combining Several Logical Expressions (AND, OR)

Page 30: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

• In a loop, a statement block is executed several times in succession. There are four kinds of loops in ABAP:

•Unconditional loops using the DO statement.•Conditional loops using the WHILE statement.• Loops through internal tables and extract

datasets using the LOOP statement.• Loops through datasets from database tables

using the SELECT statement.

DO. Statements IF <abort_condition>. EXIT. END IFENDDO.

DO n TIMES. StatementsENDDO.

WHILE <condition>. StatementsENDWHILE.

SELECT … FROM <adtab> … StatementsENDSELECT.

LOOP AT <internal table> … StatementsENDLOOP.

Loop countersy-index

Loop countersy-index

Loop countersy-index Loops

Page 31: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•To process a statement block several times unconditionally, use the following control structure:

•DO [n TIMES] ... [statement_block]ENDDO.

•Use the TIMES addition to restrict the number of loop passes to n.• If you do not specify any additions, the statement block is repeated until

it reaches a termination statement such as EXIT or STOP.

Unconditional Loops

Page 32: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•To repeat a statement block for as long as a certain condition is true, use the following control structure:

•WHILE log_exp [statemaent_block]ENDWHILE.

• log_exp can be any logical expression.•The statement block between WHILE and ENDWHILE is repeated as long

as the condition is true or until a termination statement such as EXIT or STOP occurs.

Conditional Loops

Page 33: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

Terminating Loops•ABAP contains termination statements that allow you to terminate a

loop prematurely.•There are two categories of termination statement:• 1- those that only apply to the loop,• 2- and those that apply to the entire processing block in which the loop

occurs•The termination statements that apply only to the loop in which they

occur are CONTINUE, CHECKand EXIT.•The STOPand REJECT statements terminate the entire processing block.

Page 34: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•DO 4 TIMES. IF sy-index = 2. CONTINUE. ENDIF. WRITE sy-index.ENDDO.

•The list output is: 1 3 4The second loop pass is terminated without the WRITE statement being processed.

Terminating a Loop Pass Unconditionally

Page 35: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•DO 4 TIMES. CHECK sy-index BETWEEN 2 and 3. WRITE sy-index.ENDDO.

•The list output is: 2 3•The first and fourth loop passes are terminated without

the WRITE statement being processed, because sy-index is not between 2 and 3.

Terminating a Loop Pass Conditionally

Page 36: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•DO 4 TIMES. IF sy-index = 3. EXIT. ENDIF. WRITE sy-index.ENDDO.

•The list output is: 1 2• In the third loop pass, the loop is terminated before the WRITE statement is

processed.

Exiting a Loop

Page 37: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•You can have several nested WHILE or DO loops together.

•Several nested loops may affect your program performance. ->

Page 38: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•You use the MESSAGE statement to send dialog messages to the users of your Program.

•When you do this, you must specify the three digit message number and the message class.

Dialog Messages

Page 40: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•Message number and message class clearly identify the message to be displayed.

•You use the message type to specify where the message is to be displayed.

•You can test the display behavior for using the different message types by means of the DEMO_MESSAGES demo program that is shipped in the SAP standard.

Page 41: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•For further information on the syntactical alternatives to the MESSAGE statement, refer to the keyword documentation.

Page 43: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•You are to process your own first data structures.

Business Example

Page 44: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

• In ABAP, you can define structured data objects (called structure variables or simply structures).

•This allows you to combine values that belong together logically into one data object.

•Structures can be nested.•This means that components can be made up of more structures or

even internal tables.• In the program, structure variables are defined with the DATA

statement, in the same way as elementary data objects.

Page 45: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•A Dictionary structure.

•A transparent table (that is then used as a structure type)

•a structure type that is declared locally in the program

When you set the types, you can refer to:

Page 46: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•The following graphic shows the definition of a structure variable using a locally declared structure type.

Declaration of a Local Structure

Type

Definition of a structure variable

Page 47: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•You can use the TYPES statement to define local structure types. Here the components are enclosed by

BEGIN OF structure_type_name, ... , END OF structure_type_name.

•You can assign any type you want to each component by using the TYPE addition. For more details, refer to the keyword documentation for the TYPES statement. ->

Page 48: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

• If necessary, you can also define a structured data object directly. To do so, all you have to do is replace the leading key word TYPES with DATA.

DATA: BEGIN OF structure_name, ... , END OF structure_name.

Page 49: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•Components of a structure are always addressed using a hyphen: structure_name-component_name.

•For this reason, you should not use hyphens in names.

Page 50: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•The MOVE-CORRESPONDING statement copies the contents of the source structure to the target structure one component at a time.

•Here, only those components are considered that are available under the same name in both the source and the target structure.

•All other components of the structures remain unchanged.•The individual value assignments can each be executed using MOVE.->

MOVE-CORRESPONDING

Page 51: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

Create a Structure in the ABAP Dictionary

Create a Nested Structure in the ABAP Dictionary

Page 52: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•Define structured data objects (structure variables)

•Use basic ABAP statements for structured data objects

•Create a structure in the ABAP Dictionary

You should now be able to:

Page 53: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•The input help (F4 help) is a standard function of the R/3 System.•The user can display the list of all possible input values for a screen field

with the input help•The possible input values can be enhanced with further information.•This standard process can be completely defined by creating a search

help in the ABAP Dictionary.•There are two types of search help:•Elementary Search Helps•Collective Search Helps

Overview of Search Helps

Page 55: Unit 4 - Basic ABAP statements, ABAP Structures and ABAP Logical Expressions

•Your assignment is to:•Modify the “Flight Report” created earlier so that it shows the Airline

Code, No. Flight, Flight Date, Total amount of bookings, Total occupied seats, and Total free seats.

•Create a structure for the report fields. •Make it possible to filter by Airline Code and Flight No.•Attach a search help to the input fields filters.

Unit 4: Case Study: Flight Information Report Summary