advanced abap programming - best technology site · pdf filecd351 advanced abap programming...

13
CD351 Advanced ABAP Programming Visit WWW.SOFTBASIC.NET - SAP Portal

Upload: danghanh

Post on 30-Jan-2018

264 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Advanced ABAP Programming - best technology site · PDF fileCD351 Advanced ABAP Programming Visit   - SAP Portal ©

CD351

AdvancedABAP Programming

Visit WWW.SOFTBASIC.NET - SAP Portal

Page 2: Advanced ABAP Programming - best technology site · PDF fileCD351 Advanced ABAP Programming Visit   - SAP Portal ©

© SAP AG 2006, SAP TechEd ’06 / CD 351 / 2

Contributing Speakers

Ralph BenzingerDeveloper, SAP

Thomas JungProduct Manager, SAP

Björn MielenhausenDevelopment Manager, SAP

Visit WWW.SOFTBASIC.NET - SAP Portal

Page 3: Advanced ABAP Programming - best technology site · PDF fileCD351 Advanced ABAP Programming Visit   - SAP Portal ©

© SAP AG 2006, SAP TechEd ’06 / CD 351 / 3

Learning Objectives

As a result of this workshop, you will be able to:

Deploy strings for efficient handling of text-based informationHarness regular expressions to process strings effectivelyUtilize data references for type-agnostic programmingWork proficiently with internal tablesEmploy dynamic statements in your reports

Benefit from new ABAP features of NetWeaver 2004s!

Visit WWW.SOFTBASIC.NET - SAP Portal

Page 4: Advanced ABAP Programming - best technology site · PDF fileCD351 Advanced ABAP Programming Visit   - SAP Portal ©

Internal Tables

Dynamic Statements

Strings and Regular Expressions

Data References

Visit WWW.SOFTBASIC.NET - SAP Portal

Page 5: Advanced ABAP Programming - best technology site · PDF fileCD351 Advanced ABAP Programming Visit   - SAP Portal ©

© SAP AG 2006, SAP TechEd ’06 / CD 351 / 5

Sequential Data Types in ABAP

Business information = sequences of bytes or charactersCustomer names, addressesProduct numbers, dates, currenciesXML dataNatural language

Overview of sequential data types in ABAP

Character Special

C D, T, N

STRING

Byte

Fixed Size X

Variable Size XSTRINGCSEQUENCE CLIKE

Visit WWW.SOFTBASIC.NET - SAP Portal

Page 6: Advanced ABAP Programming - best technology site · PDF fileCD351 Advanced ABAP Programming Visit   - SAP Portal ©

© SAP AG 2006, SAP TechEd ’06 / CD 351 / 6

Comparison of Strings and Fixed-Sized Fields

Some benefits that ABAP strings provideEfficient management of string storage spaceAutomatic garbage collectionAutomatic value sharing with copy-on-write

Strings Fields

Length adjusted dynamically at runtime

Length fixed and preallocated

Max length of 2,000,000,000 Max length of 65,000

Backquote literals `stringlit` Straight quote literals 'fieldlit'

Substring idiom +offset(length)for read access only

Subfield idiom +offset(length)for read and write access

Trailing blanks are significant Trailing blanks are ignored

Visit WWW.SOFTBASIC.NET - SAP Portal

Page 7: Advanced ABAP Programming - best technology site · PDF fileCD351 Advanced ABAP Programming Visit   - SAP Portal ©

© SAP AG 2006, SAP TechEd ’06 / CD 351 / 7

String values are stored separately from variables in memory

Decoupling of value and reference allows forEfficient resizing of stringsSharing of string values

Strings Values

DATA: BEGIN OF struc1,a(3) TYPE n,b(10) TYPE c,c(3) TYPE n,

END OF struc1.

DATA: BEGIN OF struc2,a(3) TYPE n,b TYPE string,c(3) TYPE n,

END OF struc2.

1 2 3 A B C D E F 4 5 6H I JG 1 2 3 string reference 4 5 6

A B C D E F G H I J

struc2 is deepstruc1 is flat

string value

a b c a b c

Visit WWW.SOFTBASIC.NET - SAP Portal

Page 8: Advanced ABAP Programming - best technology site · PDF fileCD351 Advanced ABAP Programming Visit   - SAP Portal ©

© SAP AG 2006, SAP TechEd ’06 / CD 351 / 8

String Storage Allocation

Memory allocation during a typical program run

string reference (8 bytes)DATA str TYPE string.

str = 'first'.

str = 'second value'.

SHIFT str BY 5 PLACES.

str = 'another try'.

str = 'a final value!'.

f i r s t

s e c o n d v a l u e

a f i n a l v a l u e !

string header (16-32 bytes)

string value (variable)

d v a l u ea n o t h e r t r y

main memory

Visit WWW.SOFTBASIC.NET - SAP Portal

Page 9: Advanced ABAP Programming - best technology site · PDF fileCD351 Advanced ABAP Programming Visit   - SAP Portal ©

© SAP AG 2006, SAP TechEd ’06 / CD 351 / 9

String Sharing

Values may be shared by multiple string references

Unsharing copy-on-write / lazy copyDelays costly copying as long as possible

references + headersDATA: str1 TYPE string,str2 TYPE string,str3 TYPE string.

str1 = 'common'.

str2 = str1.

str3 = str2.

SHIFT str2 BY 2 PLACES.

c o m m o n

o n

str1str2

str3

Visit WWW.SOFTBASIC.NET - SAP Portal

Page 10: Advanced ABAP Programming - best technology site · PDF fileCD351 Advanced ABAP Programming Visit   - SAP Portal ©

© SAP AG 2006, SAP TechEd ’06 / CD 351 / 10

Restrictions on Substrings

+offset(length)cannot be used to modify strings

Use REPLACE instead

Field symbols cannot be used for substring accessValue changes would necessitate updating all assigned field symbols

FIELD-SYMBOLS <fs> TYPE any.

ASSIGN str+3(4) TO <fs>.SHIFT str RIGHT BY 2 PLACES. " shifts char positions

DATA str TYPE string VALUE `strvalue`.

WRITE / str+3(4). " OKstr+3(4) = `x`. " would modify value

REPLACE SECTION OFFSET 3 LENGTH 4 OF str WITH `x`.

Visit WWW.SOFTBASIC.NET - SAP Portal

Page 11: Advanced ABAP Programming - best technology site · PDF fileCD351 Advanced ABAP Programming Visit   - SAP Portal ©

© SAP AG 2006, SAP TechEd ’06 / CD 351 / 11

Advantages of character fieldsEasy to access (+off(len), flat structures)No internal overhead for accessing value

Advantages of stringsStorage allocated dynamically

Common values are shared

Trailing blanks are significant (may increase performance)

Which Data Type to Choose

DATA custname TYPE c LENGTH ??.READ DATASET dset INTO line.

DATA c80 TYPE c LENGTH 80 VALUE 'hello'.CONCATENATE c80 'world' INTO c80.

DATA customers TYPE TABLE OF cust_record." cust_record = ( name, street, city )

Checks 75 trailing blanks for finding

end of text

Visit WWW.SOFTBASIC.NET - SAP Portal

Page 12: Advanced ABAP Programming - best technology site · PDF fileCD351 Advanced ABAP Programming Visit   - SAP Portal ©

© SAP AG 2006, SAP TechEd ’06 / CD 351 / 12

String Diagnostics

Display list oflargest strings

Goto ->

Display condition ->

Memory use

...deleted pages from 13 to 79

Visit WWW.SOFTBASIC.NET - SAP Portal

Page 13: Advanced ABAP Programming - best technology site · PDF fileCD351 Advanced ABAP Programming Visit   - SAP Portal ©

- This is preview version -

Read more about the complete SAP TechED 2006 Books at

WWW.SOFTBASIC.NET

Visit WWW.SOFTBASIC.NET - SAP Portal