📜 ⬆️ ⬇️

How to learn on ABAPer?

Hi, Habr!

I'll start with the main thing - ABAP-developers are needed. And for those who doubt, over the past month and a half , over 100 vacancies have appeared on HH , including from leading Russian and international brands.

ABAP originated in the 80s of the twentieth century and continues to evolve. For three decades, it has incorporated many programming paradigms - here it is procedural, and event-oriented and object-oriented - all within the framework of structured programming in the Deikstra style (with indispensable ENDIF, ENDCASE, various other ENDPHOTOTS and even ENDSELECT, unaccustomed to SQL experts). The abundance of paradigms greatly broadens the mind, but slightly complicates the study of language.
')
In principle, if you have enthusiasts among you, they can learn it from standard documentation. Although it is not so simple: you need to write your programs, you need a system that does not stand on any hardware and do not forget about licenses, but the saddest thing is that it takes a long time. There is a lot of documentation, and not from dampness - the language for three decades has absorbed a lot, but it is not easy to throw out the old one: there is such a “sacred cow” - version compatibility. To study ABAP SAP, a special program of courses was developed, which, on the one hand, is somewhat superior to the Academy for TAW10 / TAW20 consultants, on the other hand, successful learning is sufficient for an Associate development consultant certification. What courses are needed and why? I will try to answer these questions, briefly describe what and, most importantly, in what order, newcomers will have to go through, and, of course, I am ready to answer questions. With you, I am an ABAP trainer, since 1998.

So, let's begin! If you are not familiar with the SAP device of the platform as a whole, then you need to start with an ABC book. The course is codenamed “SAPTECE. An introduction to the SAP NetWeaver architecture is needed to understand how SAP works. It provides general information about the architecture of the SAP NetWeaver technology platform: what is the application server instance, what does it do, what is the workflow, what are they and why so much, what is development, client, system landscape, transport system and what does it do? The most general information about integration opportunities.

The next stage is “BC400E. ABAP Tools: The Basics . Learning materiel! Unfortunately, you will not become an ABAPer after this course, but you can already write simple programs: calculations, database accesses, simple dialogs. The course provides an introduction to the developer’s toolkit and general information about the ABAP language, data declaration, basic operators, modularization (and ABAP has five categories of processing units, two of them cannot be called from under ABAP), as well as initial information about working with the database, programming user interfaces and the most basic information about the technologies of system expansion. In the course of the course, about a quarter of hundreds of programs are written: for example, an arithmetic calculator (do not be afraid, not a button) is written many times and everything is different, several dialog transactions are created, for example, like this, two-screen:



On-site, we find out what a transaction is in the sense of ABAP (think atomicity, consistency, isolation, and durability? ... mmm, by no means), and what they are, other than interactive ones. The course is intended for developers, but in general it is suitable for future administrators and will be useful to those who plan to specialize in the field of integration technologies and those who, by the nature of their activities, have to communicate with ABAPers.

Of course, simple reports can be written in procedural or event-oriented styles. However, object-oriented programming is used everywhere in new SAP designs. In particular, many classes have been created that provide elegant presentation of data. It is much easier to use these ready-made classes than to reinvent the wheel every time. In addition, new extension technologies make extensive use of object-oriented programming. And in general, this is now the main direction in ABAP, so if you want, you don’t want, but you have to know. Course "BC401E. ABAP Objects ” covers the features of object-oriented programming on ABAP: syntax constructs, tools and some uses are considered. Object-oriented ABAP does not have multiple inheritance, instead of which interfaces are used, so this course will be more understandable to java-developers. This is, for example, the class diagram of the final exercise:



It is easy to guess that it is much easier to determine the necessary data types with the interactivity appropriate to them centrally, at the level of creating descriptions, than to program each time. SAP systems contain a central place where various types of data are described and frequently used interactive services - Vocabulary. Its declarations simplify further programming many times. If we save on something, it is not on studying the dictionary, since the imperative programming languages ​​are still more or less similar, and the Dictionary is a separate “highlight”. On the course “BC430E. Dictionary-reference data ” covers definitions of domains, data elements, structures, table types, tables in a database, database views and reference, cluster maintenance, search mechanisms and mechanisms to ensure data integrity: fixed domain values ​​and foreign keys.

Slowly but surely, we are moving towards our goal - we are getting close to the course “BC402E. In-depth ABAP programming ” on how to write not very bad programs. This raises subtle questions that are important for writing effective programs: a memory device, a program call, a declaration and transfer of data and parameters, dynamic programming constructs, dynamic type definition and dynamic data creation, also provides additional information on Open SQL operators and some other goodies.
Why do we need dynamism? Well, there is such a table, BSEG, it contains the positions of financial documents. In it, for example, about 340 fields. It is clear that the average user needs the values ​​of not all fields. You can get data into the internal table of the full structure, but such a structure will be redundant, because the user does not need all the data, and storing empty space is too wasteful from memory. It would be possible to define in advance several structures combining the necessary fields in the necessary order. But such combinations (the number of subsets of the set of 340 elements) will be 2 ^ (340-1) - 1 ~ 10 ^ (329). This is a very large number. For comparison, the number of atoms in the observable universe is estimated as ~ 10 ^ (81). That is, it is almost impossible to create all possible descriptions in advance. In this case, it is necessary to dynamically create the type of data necessary for this sample to save memory.

Moving on. Classic screens are the basis of the visual interface of SAP systems. There are several ways to create different ways to convert them to html. But until now the basis of the standard dialogues is them. And in general, you need to know how to create dialogues. The course "BC410. Developing Dialog Programs ” highlights the technology of standard Dynpro dialog screens. This course is necessary for all those who will create dialogues. Among other things, programming of subscreens, card files and screen tables, programming of error response will be considered. All week one single-screen dialogue transaction will be written. About here with this screen.



Has something similar been already posted on the BC400E? There was a grid, the navigation through which is processed locally at the client workstation, so the application server (and the ABAP program running on it) does not know anything about navigation. Here is the screen table, the navigation through which is processed on the application server. Accordingly, transactions using screen tables may be suitable for batch input. Plus programming of card files, input validation checks, and other gadgets.

Of course, the owners of SAP-systems have the opportunity and the right to modify the program in accordance with the specific requirements of their business. But when a new version of the software comes from SAP, the modification adjustment begins. Make a decision is required for each of the modifications. SAP has provided a set of technologies that allows you to modify the work of standard software in such a way that modification modifications are not required. This is called an extension. The course "BC425E. Extensions and Modifications ” considers classical extension technologies: dictionary definitions, user exit-extensions and BAdI extensions. In addition to expanding programs, extensions of menus and screens are considered, modifications are also considered, including user exits. The course is needed by all who will enrich the standard with their own extensions.

To access standard SAP functionality using classic screens described in the BC410E course, you need special client software — the SAP GUI. Such software is installed in the workplace of employees. But it is difficult to expect that any client who wants to see, for example, the company's price list, will install this very SAP GUI. But Web browsers - a thing that is prevalent almost everywhere. The Web Dynpro interface allows you to access SAP functionality directly from a web browser. So the course “NET310E. The Basics of ABAP Web Dynpro provides basic information about the technology and teaches you to create quite advanced applications. The following topics are considered: architecture components, external format definition, controller programming, Web Dynpro modularization, dynamic modification, configuration, personalization, extensions. Here is an example of a Web Dynpro application from this course:



In general, I described the basic courses on ABAP, all of them entering the program "ABAP2 Certified ABAP" . There are other trainings on narrower and vice versa broad issues with distance learning.

Successes!

Source: https://habr.com/ru/post/260873/


All Articles