Upload
gourav-jena
View
225
Download
0
Embed Size (px)
Citation preview
8/2/2019 02 Introduction to ABAP Programming Student Version
1/12
1/23/20
Spring 2011 Enterprise Programming
INTRODUCTIONTO ABAPPROGRAMMING: SYNTAX
FUNDAMENTALS
From the textbook
Chapter TwoABAP Workbench
Object Navigator (SE80)
Forward navigation
Packages
Transports
Creating database tables
Field names, data elements, and data types
Data element: object that describes the data type and semantic
meaning of a table field (SAP online glossary)
Domain: defines valid value ranges for fields. Similar fields can be
grouped into a domain. Changing that domain changes all the
fields.
Keyword Documentation
8/2/2019 02 Introduction to ABAP Programming Student Version
2/12
1/23/20
ABAP Variables and Data Types
Data type: description of the kind of data a variable may hold and the
range of acceptable values based on storage allocated.
Technical and (potentially) semantic meaning
Data object: actual variable or constant (of a stated type) that has
been defined.
Complete Data Types
Fixed size, specified format data storage.
Incomplete Data Types
Storage size can vary, so must be set upon variable declaration.
ABAP Standard Data Typesi integer 4 byte whole number +/- 2.1 billion
f float 8 bytes, 15-16 significant digits
c string up to 65k characters
n numeric string up to 65k characters (non-math number)
string string dynamic length up to 2 GB long!
xstring hex string dynamic length byte sequence
x byte sequence up to 65k bytes
d date 8 characters in form YYYYMMDD
t time 6 characters in from HHMMSS
p packed number precise whole or floating number up to 16
bytes
Bold italics indicate incomplete data types (size set on declaration)
8/2/2019 02 Introduction to ABAP Programming Student Version
3/12
1/23/20
Variable Declarations
DATA varname TYPE [type specification]
Use of chained statements (more typical):
Other variations (considered obsolete) exist.
LIKE can be used to declare a variable based on a prior declaration
DATA age TYPE i. "complete data typeDATA siblings TYPE i VALUE 7. "w/ initialization
DATA state TYPE c LENGTH 2 VALUE 'TN'. "incomplete
DATA: age TYPE i,siblings TYPE i VALUE 7.
When specifying default values for numeric data with decimals, the
value must be placed within single quotes.
DATA state2 LIKE state. "only data type 'copied'
Declaring your own data types
program localTYPES allows declaring local data types that are more specific than
standard types.
TYPES typename TYPE [type specification]
This can be used to give a standard type a more descriptive name for
your application or to more specifically define variable composition.
TYPES cannot have a user-specified default value.
TYPES declarations are local to program. Global type declarations are
possible through use of the ABAP Dictionary, allowing type
management across entire system.
TYPES: userval TYPE i,usercode TYPE n LENGTH 10,
rate TYPE p LENGTH 3 DECIMALS 2.
8/2/2019 02 Introduction to ABAP Programming Student Version
4/12
1/23/20
Declaring your own data typesglobal
ABAP Dictionary (SE11)
Enter name of type to be created in Data type field.To avoid name collision for class, start your type names with Znn_
Select Create and choose the class of data type.
Describe the data type and provide its technical specification.
Specify how the field will be labeled in reports.
Activate.
Use in programs.
Can generate a list of all repository elements that use the data type.Choose Where-Used List icon from SE11 initial screen.
What is the value of defining and using global data types?
Quick Practice
8/2/2019 02 Introduction to ABAP Programming Student Version
5/12
1/23/20
Constants
CONSTANTS allows specification of fixed data objects.
CONSTANTS name TYPE type VALUE value.
A number of system-maintained constants exists. These are all within
structure SYST. Can see list through dictionary, data type SYST.
Reference values by using the identifier SY-COMPONENT. For example,
SY-MANDT will display the current client number.
CONSTANTS a_const TYPE d VALUE '19681214'.
CONSTANTS b_con TYPE p LENGTH 3 DECIMALS 2 VALUE'37.46'.
Arithmetic and assignmentValid arithmetic operators: +, -, *, /, ** (exponentiation), DIV (integer
division), MOD.
Parenthesis can be used to set order of precedence.
Operators and parentheses are keywords and must be separated
from other statement elements by at least one space .
Assignment syntax:
MOVE var2 TO var1.
var1 = var2.
varx = 3 + 7 * 2.
If variables of different type, automatic type conversion attempted.
CLEAR varx. Resets varx to default type-related value.
8/2/2019 02 Introduction to ABAP Programming Student Version
6/12
1/23/20
Writing output
WRITE is used for basic output.
WRITE 10 'Output'.
Output is written beginning in column 10.
WRITE (3) 'Output'.
Output is written in field of size 3. * used to show number truncation(if any). String truncation note noted.
WRITE (*) 'Output'
Output is written in field of sufficient size, without extra spacing.
WRITE 10(3) 'Output'.
Combination of above techniques.
WRITE / 'Output'.
Output written on the next lineWRITE /10(3) 'Output'.
Combination of above techniques.
ParametersPARAMETERS prompts the user for runtime value at program start.
(Called a selection screen.) Syntax is the same as DATA.
Parameter name must be 8 characters or less.
User is prompted with the parameter name.
DEFAULT can be used to specify a default value in the field.
PARAMETERS age TYPE i.PARAMETERS: var1 TYPE c LENGTH 8,
var2 TYPE i.
PARAMETERS var1 TYPE c LENGTH 8 DEFAULT 'NONE'.
8/2/2019 02 Introduction to ABAP Programming Student Version
7/12
1/23/20
Quick Practice
Literal textABAP is multilingual. Coding in string literals (prompting, etc.) defeats
language independence and should only be done in testing.
The solution for this is text symbols.
Text symbols belong to each program in the text pool for that program.
The various texts are placed in the text pool and assigned a 3-character
alphanumeric code (xxx).
This code is then used by specifying either
TEXT-xxx instead of the literal.
literal(xxx) where literal is the message in the native language.
Access the text pool to define text symbols by either:
From editor select Goto Text Elements Text Symbols
Using the syntax above to reference a text symbol in coding. Then double
click on the text symbol entered.
Goto Translation will translate the text symbols.
8/2/2019 02 Introduction to ABAP Programming Student Version
8/12
1/23/20
Logical Expressions
Logical expressions evaluate to true or false.
In ABAP, logical expression cannot be assigned to variables (noboolean data type).
Logical expressions are used in conditional code sequences.
Relational Operators
Operator Operation
=, EQ Is equal to
, NE Is not equal to
, GT Is greater than
=, GE Is greater than or equal to
Boolean Operators
Operator Operation
AND Logical and
OR Logical or
NOT Logical not
NOT is placed before an expressionto negate its result.
NOT var_a LT var_b.
Conditional code execution: IF, ELSEIF, ELSEIF logical_expression.
1 or more statements.
ENDIF.
IF logical_expression.
1 or more statements.
ELSE.
1 or more statements.
ENDIF.
IF logical_expression.
1 or more statements.
ELSEIF logical_expression.
1 or more statements.
ENDIF.
IF var_a LT var_b.
WRITE / var_a.
ENDIF.
IF var_a LT var_b.
WRITE / var_a.
ELSE.
WRITE / var_b.
ENDIF.
IF var_a LT var_b.
WRITE / var_a.
ELSEIF var_b LT var_c.
WRITE / var_b.
ENDIF.
8/2/2019 02 Introduction to ABAP Programming Student Version
9/12
1/23/20
Conditional code execution: CASE
CASE data_object.
WHEN value.
1 or more statements.
WHEN value.
1 or more statements.
WHEN OTHERS.
1 or more statements.
ENDCASE.
CASE var_a.
WHEN 1.
WRITE \ 'uno'.
WHEN 2.
WRITE \ 'dos'.
WHEN OTHERS.
WRITE \ 'other'.
ENDCASE.
Quick Practice
8/2/2019 02 Introduction to ABAP Programming Student Version
10/12
1/23/20
Using the Debugger to test programs
Program must be saved and activated before debugging.
Set a breakpoint indicating where you want the program to stop inthe execution and display the debugger.
Use Direct Processing to begin execution. Program runs to
breakpoint.
In the source code display, double click any variable you wish to
watch.
Add/remove additional breakpoints by single clicking to left of line.
Step through code using controls in upper leftsingle step, execute,
return, continue (runs until next breakpoint).
Watched variable values can be changed.
A watchpoint can be set of a variable and the program will run until
that variable's value changes
Looping
DO value TIMES.
1 or more statements.
ENDDO.
WHILE condition.
1 or more statements.
ENDWHILE.
DO.
1 or more statements.
IF abort_condition.
EXIT.
ENDIF.
ENDDO.
DO var_a TIMES.
WRITE / 'Hi'.
ENDDO.
WHILE var_a < 10.
var_a = var_a * 2.
ENDWHILE.
DO.
var_a = var_a * 2.
IF var_a > 200.
EXIT.
ENDIF.
ENDDO.
ABAP supports definite iteration, pre-test iteration, and post-test
iteration.
Within loops sy-index is a system managed loop counter.
8/2/2019 02 Introduction to ABAP Programming Student Version
11/12
1/23/20
Exiting Loops
EXIT: Loop exits immediately. Jump to statement that follows loop
block.
CONTINUE: Restart next loop iteration.
CHECK condition: Restart next loop iteration (continue) if false.
WHILE sy-index < 10.WRITE / sy-index.IF sy-index < 3.CONTINUE.
ENDIF.WRITE 'After ENDIF'.ENDWHILE.
WHILE sy-index < 10.WRITE / sy-index.CHECK sy-index < 3.WRITE 'After CHECK'.ENDWHILE.
Quick Practice
8/2/2019 02 Introduction to ABAP Programming Student Version
12/12
1/23/20
Copyrights
Microsoft, Windows, Excel, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation.
IBM, DB2, DB2 Universal Database, System i, System i5, System p, System p5, System x, System z, System z10, System z9, z10, z9, iSeries, pSeries,xSeries, zSeries, eServer, z/VM, z/OS, i5/OS, S/390, OS/390, OS/400, AS/400, S/390 Parallel Enterprise Server, PowerVM, Power Architecture, POWER6+,POWER6, POWER5+, POWER5, POWER, OpenPower, PowerPC, BatchPipes, BladeCenter, System Storage, GPFS, HACMP, R ETAIN, DB2 Connect, RACF,Redbooks, OS/2, Parallel Sysplex, MVS/ESA, AIX, Intelligent Miner, WebSphere, Netfinity, Tivoli and Informix are trademarks or registered trademarks ofIBM Corporation.
Linux is the registered trademark of Linus Torvalds in the U.S. and other countries.
Oracle is a registered trademark of Oracle Corporation.
HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C, World Wide Web Consortium, Massachusetts Institute of Technology.
Java is a registered trademark of Sun Microsystems, Inc.
JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape.
SAP, R/3, SAP NetWeaver, Duet, PartnerEdge, ByDesign, SAP Business ByDesign, and other SAP products and services mentioned herein as well as theirrespective logos are trademarks or registered trademarks of SAP AG in Germany and other countries.
Business Objects and the Business Objects logo, BusinessObjects, Crystal Reports, Crystal Decisions, Web Intelligence, Xcelsius, and other BusinessObjects products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of Business Objects S.A. in theUnited States and in other countries. Business Objects is an SAP company.
Other products mentioned in this presentation are trademarks of their respective owners.
Presentation prepared by and copyright of Dr. Tony
Pittarese, East Tennessee State University, Computer and
Information Sciences Dept. ([email protected])
Podcast lecture related to this presentation available via
ETSU iTunesU.