Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
SAP ABAP Advanced Cookbook
SAP ABAP Advanced Cookbook

SAP ABAP Advanced Cookbook: Featuring over 80 sophisticated recipes, this is a superb tutorial for ABAP developers and consultants. It teaches you advanced SAP programming using the high level language through diagrams, step-by-step instructions, and real-time examples.

Arrow left icon
Profile Icon Rehan Zaidi
Arrow right icon
€18.99 per month
Full star icon Full star icon Full star icon Full star icon Half star icon 4.9 (7 Ratings)
Paperback Dec 2012 316 pages 1st Edition
eBook
€32.99
Paperback
€41.99
Subscription
Free Trial
Renews at €18.99p/m
Arrow left icon
Profile Icon Rehan Zaidi
Arrow right icon
€18.99 per month
Full star icon Full star icon Full star icon Full star icon Half star icon 4.9 (7 Ratings)
Paperback Dec 2012 316 pages 1st Edition
eBook
€32.99
Paperback
€41.99
Subscription
Free Trial
Renews at €18.99p/m
eBook
€32.99
Paperback
€41.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
Table of content icon View table of contents Preview book icon Preview Book

SAP ABAP Advanced Cookbook

Chapter 1. ABAP Objects

In this chapter, we start with recipes for ABAP objects. This chapter is designed to provide useful recipes related to the storage of ABAP objects in shared memory and the database (persistent objects), as well as some useful design patterns. In this chapter, we will look at ways of:

  • Creating a shared memory object

  • Creating a persistent object

  • Creating classes based on factory methods

  • Creating classes based on singleton design pattern

  • Creating classes based on adapter pattern

Introduction


This chapter explores recipes related to ABAP objects. Two useful features of the object-oriented ABAP are storage options in the shared memory as shared objects, and in the database as objects of persistent classes. The details about both the prerequisites as well as the necessary steps needed to created shared memory-enabled objects and persistent objects will be discussed later in this chapter.

Moreover, design patterns are very important in object-oriented programming. In this chapter, we will see how to implement three of them using ABAP objects, namely the adapter, singleton, and the factory design. We will create a class with a factory method design. Later, we will show how this class may be modified in order to behave like a singleton class. Finally, we will see how an object of one class may be converted to that of another using an adapter class. The examples are kept simple in order to emphasize on the design pattern concept.

For this chapter, we assume that the reader has basic knowledge of the ABAP objects, and is familiar with the class-builder transaction.

Creating a shared memory object


This recipe shows how to store the instances of your classes in the shared memory of the application server. A number of programs may access these objects that reside on the application server shared memory.

Two classes are necessary for shared memory, namely the area class and the area root class. The root class is necessary for storing (encapsulating) the data that are to be stored in the shared memory. An area class may comprise of various instances that may consist of a number of versions.

An important concept shown in this recipe is the CREATE OBJECT statement with the addition AREA HANDLE. This will create the object in the application server that is shared memory pointed to by the area handle myarea.

Getting ready

Prior to writing the code for storing objects in shared memory, an area root class must be created and a shared memory area be defined using transaction SHMA.

The steps required for creating a root class are:

  1. Call transaction SE24; enter a suitable name to your root class, as shown in the following screenshot. On the Properties tab, we need to make sure that the Shared-Memory checkbox is switched on.

    Tip

    Downloading the example code

    You can download the example code files for all Packt books you have purchased from your account at http://www.packtpub.com . If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you

  2. We have named it ZCL_MY_ROOT. We will then define two Instance Attributes, NUMBER and NAME, having private visibility, as shown in the following screenshot:

  3. Two suitable methods, SET_DATA and GET_DATA, are also added to the class. The SET_DATA method contains code that imports number and name and assigns to the attributes NUMBER and NAME of the class. The GET_DATA method does just the opposite, that is, it exports the NUMBER and NAME attribute for a given shared memory object.

  4. Next, the shared memory area should be created. This is done via transaction SHMA.

  5. Enter a suitable name and click on the Create button. We have typed the name ZCL_MY_EMP_AREA. On the screen that appears, enter the description of the area. Also, enter the name of the root class created earlier in the Root Class field. You may leave the Client-Specific Area checkbox unchecked as it is not required for our recipe. Now, save your entries. Refer to the following screenshot:

  6. This will also generate an area class by entering the same name ZCL_MY_EMP_AREA.

  7. This area class will contain the necessary methods used for reading, changing, and creating the area, such as ATTACH_FOR_UPDATE, ATTACH_FOR_READ, and ATTACH_FOR_WRITE.

How to do it...

For creating the set of code that writes object's contents to the shared memory, follow these steps:

  1. Two object references my_handle and my_root are defined, one for area class and the other for root class.

  2. The static method attach_for_write of the area class zcl_my_emp_area is called.

  3. The CREATE OBJECT with the area handle, my_handle must then be called.

  4. The root and the created area instance must be linked using the set_root method of the handle.

  5. The set_data method is called with the relevant number and name.

  6. The detach_commit method of the area class is then called.

How it works...

In the shared memory-writing program, the statements collectively make the writing of object in the shared memory. Let us see how the program code works.

An area instance version needs to be created before any data may be written in the shared memory on the application server. The attach_for_write static method is used for this purpose and returns a handle to the area instance created in the application server memory. This imposes write lock on the version.

The CREATE OBJECT statement is then called with the name of the created handle. This creates a root object in the area instance of the shared memory. The link between the area instance and the root class is created using the set_root method. The set_data method is then called for the root reference my_root and supplied with the name and number of the employee, which are then stored in the shared area. Finally, the detach_commit method is called and the write lock is released.

Once the program has run successfully, you may see the created object in the shared memory using the shared memory transaction SHMM. This will appear as your area class name ZCL_MY_EMP_AREA. Refer to the following screenshot:

Double-click on the name of area to view the details, as shown in the following screenshot:

There's more...

The read program is somewhat similar. However, instead of the attach_for_write method used earlier, we will use attach_for_read. The same instance name is passed and the handle is received. The method imposes a read lock on the area instance. Then, the get_data method of the root object is called using the area handle, my_handle. This returns the employee name and number stored earlier into the variables name and number respectively.

Finally, the detach method is called and the read lock is released.

While creating the shared memory area, if we select the Transactional Area checkbox, the area becomes transactional. In this case, the modifications to the area instance versions are not active immediately after the call of detach_commit method. Rather, they become active when the next database commit is executed.

Creating a persistent object


ABAP objects provide a persistent object service that allows the developer to store objects in the database. The values of the attributes of the object are stored in appropriate fields of the database table specified. This recipe shows how to define persistent classes and then how to call them in your application programs.

Getting ready

Prior to storing objects in the database, a suitable database table with the name ZEMP_TABLE is created to store the values of the objects' attributes. Two fields are defined, NUMBER1 and NAME (the field name NUMBER was not allowed, so NUMBER1 has been used as the field name). Refer to the following screenshot:

How to do it...

Once the database table is defined, a persistence class must be defined. In order to define persistent classes, follow these steps:

  1. Call transaction SE24. Enter a suitable name of the persistent class to be created. We will create a class by entering the name ZCL_MY_PERSIST. Enter the name in the Class field and click on the Create button.

  2. Enter a suitable description in the field provided. Make sure that the Persistent Class indicator is selected, and click on Save.

  3. The programmer may only modify the methods HANDLE_EXCEPTION and INIT.

  4. Click on the Persistence button. Then, enter the name of the table that was created for storage of data( in our case, we will enter the name ZEMP_TABLE). Refer to the following screenshot:

  5. This will take you to the mapping editor. The lower part of the screen will show Table/Fields. Double-click each of the field that is to be included and stored as attributes of the persistent class. The selected field appears in the area earlier (for example, the NUMBER1 field as shown in the following screenshot). Click on the Set attribute values button to include the field.

  6. This will transfer the selected field in the topmost area of the editor.

  7. Similarly, the NAME field must be included.

  8. All the mapped fields will appear at the top area of the mapper. The Number1 field will appear as a business key, as show in the following screenshot:

  9. Upon activation of the persistence class, the system asks for activation of the actor class as well. Click on Yes, as shown in the following screenshot:

  10. The class ZCL_MY_PERSIST is created and necessary methods needed for the persistence service are included. An actor class is also created with the class. The agent class has been generated by the name ZCA_MY_PERSIST. There is one base agent class generated as a result. In total, three classes are generated, the persistent class, the agent class, and the base class of the agent.

  11. The class ZCL_MY_PERSIST contains methods for setting and getting the values of the attributes NAME and NUMBER1. Note that no SET method is generated for the key field, in our case NUMBER1.

  12. The agent class provides number of useful methods related to the persistent property. Important methods, such as create_persistent, delete_persistant, and get_persistent are provided. The methods are implemented in the superclass zcb_my_persist of the agent class zca_my_persist.

How it works...

During the generation of the persistent class zcl_my_persist, two additional classes are generated. These are the actor (agent) and the base agent classes having the names zca_my_persist and zcb_my_persist respectively. The base agent class is generated as abstract (that is, no instance can be constructed from it), and cannot be modified. It is created in a separate pool class from zcl_my_persist. The agent class zca_my_persist may be extended, as well as the loading and saving methods may be modified.

The instantiation mode of the persistence class may be set as abstract or protected. In our recipe, we have chosen the instantiation mode as protected (which means that only instances may be created from within the class or its subclasses). However, making the instantiation mode of a persistent class as protected makes the generated base agent class a friend of the persistent class (in the world of ABAP objects, a friend or its subclasses may create instances of the class in question).

The coding for this recipe declares two references, emp and agent, to the persistent class zcl_my_persist and the agent class zca_my_persist, respectively. Next, the static factory method agent is called for the class zca_my_persist (agent class). The reference returned is stored in the variable agent.

The agent class contains the method create_persistent required for storing the data into the database (this is analogous to the concept of insertion in database table).

The most important part is the calling of the create_persistent method that is passed the number and name that is to be stored. The employee with the number 00000017 and name John Reed is created and reference is returned in emp. Finally, the COMMIT WORK method stores the data of the emp object into the table created earlier in this recipe. One row with the number and a name is added to the table ZEMP_TABLE.

For reading the stored value related to the employee number 00000017, a number variable is declared and assigned the value 00000017. The static method agent of the zca_my_persist class is called in order to get a reference to the agent. The get_persistent method is then called and the number (in our case, 00000017) is passed. This method returns the entire object emp pertaining to the employee number. You may then call the get_name method of the zcl_my_persist class for the emp object in order to retrieve the employee name.

Creating classes based on factory methods


One important design pattern that is used in object-oriented ABAP is the factory design. This allows you to create objects of a particular class either via a factory class or via factory method defined within the class. The emphasis of this recipe is to design a class that supports the creation of its objects via a factory method, rather than direct instantiation outside the class via CREATE OBJECT statement.

A factory method is a static method that creates and then returns (as a parameter) a reference to the object of the class it belongs to. The code for the creation of the object is contained within the factory method. This recipe shows the factory design. You may further modify to enhance the structure in order to suit your needs

We have referred to the coding of the standard cl_salv_table class factory method for creating the class shown in this recipe. The class created in this recipe will be used in the subsequent recipes of singleton and adapter design pattern.

Getting ready

For the sake of this recipe and the ones that follow, we will focus on an employee and name example. The class will encapsulate an eight-character number (in numeric form) for the employee number 00000014 and a 30-character field for the employee name. For example, there can be an employee John Reed with number. This will be stored in the private attributes of the class as Name and Number.

How to do it...

For creating a class as a factory method design, follow these steps:

  1. Create a class definition for fac_meth_class in the program. The factory method is a static method for the class and is defined via CLASS-METHODS. The class definition contains the addition create private in order to stopthe instantiation of the class from outside via CREATE OBJECT. A constructor is defined that allows setting the value of the number and the employee name.

  2. The private attributes employee number and name are defined, as it is based on the dictionary data elements persno and smnam respectively.

  3. The static method factory imports the name and number of the employee to be created and returns the employee object employee_obj of the object reference fac_meth_class. The constructor takes as input the number and the employee name.

  4. The implementation of the fac_meth_class object reference is then created. The code for the factory and the constructor is written here. The factory method receives the number and the name of the employee to be created. It includes the CREATE OBJECT statement for creation of the employee object.

  5. The constructor assigns the number and employee name to the corresponding private attributes of the newly constructed object. A WRITE statement is also included that outputs the name and number of the successful created employee.

  6. Finally, the call for the factory method is included. The static method of the fac_meth_class=>factory object is included and passed with the number and name of the employee to be created. A code shows two such method calls for object references emp1 and emp2, that is, employee 00000012 and 0000014.

How it works...

When the program calls the static factory method, the code within the factory method is called for each of the two objects emp1 and emp2. The factory method triggers CREATE OBJECT statement, which creates a new object and calls the constructor.

The constructor is called twice, once for each of the two instantiated objects emp1 and emp2. This prints the message successful creation for emp1 and emp2.

Creating classes based on singleton design pattern


A singleton class is a class that can have only one instance at a time. Any attempt to create a second or more instances should not be allowed. This recipe shows how to create a class based on the singleton design.

Getting ready

We will use the same class created in the last recipe of factory method. We will make few changes to the class so that we can prevent the creation of multiple instances of the class. We will make a copy of the class (program) shown in the previous recipe and modify it. The name of the copy is singleton_class.

How to do it...

For creating a singleton class, follow these steps:

  1. Make sure the CREATE PRIVATE addition is included in the singleton class definition.

  2. Within the definition, a static attribute number_of_instances having type integer is added to the private section.

  3. The implementation of the class is then written. The factory method has to be slightly modified in order to force the singleton characteristic.

  4. In the implementation of the singleton class, the factory method now contains an IF statement that first checks the number of instances already there when the factory call is made. If the first instance is being created (that is, number_of_instances equals 0), the employee object is created and number_of_instances is set as 1. An ELSE condition is included to output a message if one instance already exists.

How it works...

Similar to the previous recipe, we try to instantiate two objects emp1 and emp2, having number 0000012 and 00000014 respectively. However, in our singleton class, we have added an attribute number_of_instances, which keeps track of the number of class instances that already exist. Upon creation of the first object, the factory method increments this static attribute to 1. On the second object creation attempt, the IF statement does not allow the CREATE OBJECT statement to be called a second time. The result is that the second object is not created. No further attempts of object creation will be allowed. Rather, a message saying that only one object instantiation is allowed is outputted for the second object creation attempt.

Creating classes based on adapter pattern


Another important design pattern is the adapter design. As the name suggests, the adapter design is used for conversion of one object into another object belonging to a different class. An adapter class will have a method that takes as input the object reference that is to be converted and outputs it into the other object reference format.

We have referred to the cl_salv_tree_adapter standard class while making of this recipe.

Getting ready

In order to demonstrate the adapter, we need two classes (input class and output class). The input class will be the fac_meth_class created earlier. For the output, we will create another class fac_meth_class2. This will serve as the class, into the format of which the input object will be converted.

It is without a factory method for sake of simplicity. It contains employee number and employee name but the format of these two is different from the classes shown in the previous recipes. The employee name of this class is based on data element emnam, whereas the number is a character without zeros having length as eight. The name is of the form (firstname lastname), meaning John Reed will be stored as John Reed and not Reed John as in the previous recipes. The constructor outputs the message, Converted employee created.

We will use the same class used previously as the input object for the adapter method.

How to do it...

For creating a singleton class, follow these steps:

  1. Create a deferred definition of the adapter class adapter_meth_class that we are going to create in the next step.

  2. Specify the adapter_meth_class as a friend of our fact_meth_class class in the definition via the FRIENDS addition.

  3. The adapter class is then defined. It contains a static adapter method adapter that imports an object based on fac_meth_class and returns one in the fac_meth_class2 format.

  4. The implementation of the adapter class is then created. It contains the code of the adapter method. The adapter method will convert the incoming number of the employee from numeric to character format. In addition, the name of the employee is converted to the firstname lastname format. The new object based on the second class fac_meth_class2 is then created and returned as an exporting parameter of the method.

  5. While calling the adapter method, you first create an object based on the fac_meth_class class that is a factory method (for illustrative purpose), similar to the previous recipe for the object reference EMP. This is then passed on to the static adapter method of the adapter_meth_class. The adapter class returns the converted object in the second format.

How it works...

When the program calls the static method adapter of the class adapter_meth_class , the code in the adapter method is executed. The adapter method calls the necessary code for converting the number into the character format and any zeros are removed from the number. In addition, the SPLIT statement is called for converting name of the employee in the (first name last name) format such as converting Reed John into John Reed. Finally the CREATE OBJECT is called in order to create the object in the converted class format . This triggers the constructor for the converted class fac_meth_class2 that outputs the message "Converted: Employee Created having number 1234" and name John Reed. Since we called the factory method of the original fac_meth_class before the adapter method call, the original constructor was also called and message printed also.

See also

  • Design Patterns in Object-Oriented ABAP published by SAP-Press

Left arrow icon Right arrow icon

Key benefits

  • Full of illustrations, diagrams, and tips with clear step-by-step instructions and real time examples
  • Get to grips with solving complicated problems using Regular Expressions in ABAP
  • Master the creation of common Design Patterns using ABAP Objects
  • Enhance SAP applications through the use of ABAP programming
  • Covers the newest topics of Adobe Interactive Forms

Description

ABAP (Advanced Business Application Programming) is SAP's proprietary 4th Generation Language (4GL). SAP core is written almost entirely in ABAP.ABAP is a high level programming language used in SAP for development and other customization processes."SAP ABAP Advanced Cookbook"ù covers advanced SAP programming applications with ABAP. It teaches you to enhance SAP applications by developing custom reports and interfaces with ABAP programming. This cookbook has quick and advanced real world recipes for programming ABAP.It begins with the applications of ABAP Objects and ALV tips and tricks. It then covers Design Patterns and Dynamic Programming in detail.You will also learn the usage of quality improvement tools such as transaction SAT, SQL Trace, and the Code Inspector.Simple transformations and its application in Excel Downloading will also be discussed, as well as the newest topics of Adobe Interactive Forms and the consumption and creation of Web services. The book comes to an end by covering advanced usage of Web Dynpro for ABAP and the latest advancement in Floorplan Manager.

Who is this book for?

If you are an ABAP developer and/or consultant looking forward to building advanced SAP programming applications with ABAP, then this is the best guide for you. Basic knowledge of ABAP programming is required.

What you will learn

  • Master the advanced features of Web Dynpro programming
  • Experience the latest advancements in FloorPlan Manager design
  • Learn how to use transaction SAT and secondary internal table indexes for performance improvement
  • Explore the world of Simple Transformations and how they solve problems
  • Get step-by-step instructions to create and consume Web Services
  • Optimize program code and find datasource of fields using SQL Trace
  • Get valuable tips and tricks for Smart Forms and Adobe Interactive Forms

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Dec 26, 2012
Length: 316 pages
Edition : 1st
Language : English
ISBN-13 : 9781849684880
Category :
Languages :
Concepts :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

Publication date : Dec 26, 2012
Length: 316 pages
Edition : 1st
Language : English
ISBN-13 : 9781849684880
Category :
Languages :
Concepts :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 132.97
Software Development on the SAP HANA Platform
€48.99
SAP ABAP Advanced Cookbook
€41.99
SAP HANA Cookbook
€41.99
Total 132.97 Stars icon

Table of Contents

15 Chapters
ABAP Objects Chevron down icon Chevron up icon
Dynamic Programming Chevron down icon Chevron up icon
ALV Tricks Chevron down icon Chevron up icon
Regular Expressions Chevron down icon Chevron up icon
Optimizing Programs Chevron down icon Chevron up icon
Doing More with Selection Screens Chevron down icon Chevron up icon
Smart Forms – Tips and Tricks Chevron down icon Chevron up icon
Working with SQL Trace Chevron down icon Chevron up icon
Code Inspector Chevron down icon Chevron up icon
Simple Transformations Chevron down icon Chevron up icon
Sending E-mail Using BCS Classes Chevron down icon Chevron up icon
Creating and Consuming Web Services Chevron down icon Chevron up icon
SAP Interactive Forms by Adobe Chevron down icon Chevron up icon
Web Dynpro for ABAP Chevron down icon Chevron up icon
Floorplan Manager Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.9
(7 Ratings)
5 star 85.7%
4 star 14.3%
3 star 0%
2 star 0%
1 star 0%
Filter icon Filter
Top Reviews

Filter reviews by




Piotr Stasierski Jan 10, 2014
Full star icon Full star icon Full star icon Full star icon Full star icon 5
It helped me in my office work, gave me few tricks I didn't know them.For me the form of this book is attractive
Amazon Verified review Amazon
Kumar Feb 09, 2014
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Hi !Super Buch. Ich habe intensiv das Buch gelesen und die Themen sind exakt so wie in der Industrie auftauchen!Kumar Mitra-Endres
Amazon Verified review Amazon
Gordon Du Mar 21, 2013
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Although I am just starting to use ABAP and am a beginner, I reallyappreciate the simplicity found in the SAP ABAP Advanced Cookbook.This book is probably one of the most helpful and most easily understandableguides for any SAP ABAP user. The book has over 80 advanced "recipes" whichillustrate some excellent programming techniques. The book is able to covera broad range of topics which commonly challenges the beginning and thesomewhat experienced ABAP developer; really helps in avoiding some of theheadaches in learning ABAP.The screenshots used in the book are quite intuitive. You can follow theillustrated steps easily to get the job done.No matter if the topic is on ABAP Objects or on ALV tips and tricks or thetopic relates to Design Patterns and Dynamic Programming, this book givesyou all kinds of recipes to work on. You can bypass anything you knowalready, but you are sure to love the tricks which you have not masteredyet.Simple transformations and its application in Excel Downloading will be goodfor you to link SAP with other commonly used applications.I give the book a 5 star rating for its simplicity and usefulness.
Amazon Verified review Amazon
F. Wacker Jun 28, 2014
Full star icon Full star icon Full star icon Full star icon Full star icon 5
very helpful and good. The Author uses very easy to understand code examples, that can be adopted to any other problem
Amazon Verified review Amazon
Ralf Wenzel Jun 05, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Zunächst: Das ist KEINE Übersetzung des ABAP-Kochbuches von Enno Wulff, sondern ein eigenständiges, sehr gutes Werk (sage ich mal nach über 15 Jahren SAP-Erfahrung). Verständlich geschrieben, mit witzigen Pointen drin, fachlich korrekt
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.