📜 ⬆️ ⬇️

SAP ERP / ABAP useful resources

Frankly speaking, I am writing this article even more for myself - in order to systematize the information on the internal programming language ABAP / 4 of the SAP R / 3 system in one place. Nevertheless, I will be very happy if someone else will find it useful and will save time. At once I will make a reservation that the article is aimed at beginners who are just beginning to learn ABAP / 4 (whom, to some extent, I myself am).

I was immediately interested in "/ 4" and "/ 3" in the names of the product and programming language (hereinafter referred to as YAP) for it. However, everything is very trite. According to Wikipedia, the letter R from R / 3 is the initial letter of the word “Realtime” and means immediate posting and updating of data that are immediately available to all departments of the enterprise as part of the integration. The number 3 means that the system has a client / server application / database management system (three-tier model), in contrast to R / 2, which worked on mainframes. And the name ABAP stands for Advanced Business Application Programming, and the number “4” symbolizes the attitude to the fourth generation of software. The language was created in 1980 to work with the SAP R / 2 system, later inherited from SAP R / 3. More detailed information can be found directly on the wiki .

A little more detailed information in comparison with the wiki can be found here . In addition, on the same site you can find a book with which I would recommend to start studying the material. Despite the fact that it was released 17 (!) Years ago, most of the information in it remains relevant. In addition, its essential plus is that it is one of the few books on sabzh, translated into Russian. Of course, the fact that the YaP almost did not change over such a period of time and still remains relevant to this day has caused considerable surprise (at least for me), but at least its “fundamental” is felt. However, there is a list of functional modules (FM) in the system, which are considered obsolete. You can get acquainted here .

Actually, my career was such that suddenly I had to retrain from a C # programmer to “abapers”. In many ways, this happened because of the crisis (they reduced me from my previous position), but, oddly enough, the development for SAP turned out to be in demand. For the provincial city where I live, most of the factories and 1C are considered luxury, and here is SAP ... However, quite lyric.
')
In general, it is usually recommended to start studying with courses BC400, BC401, BC402, etc. I have translated into Russian 400 and 402. Those who wish can be dropped by mail. Translated 401 course found in electronic form here: Part 1 ______ Part 2
If it suits English as well (in fact, this is even better - all the same, translators often play the role of a “broken phone”), then there is a large list of different courses; all can be downloaded from direct links.

Also useful for beginners, I would take this resource . Here the author consistently, step by step, teaches how to work in the system (according to him, this is the necessary minimum for Junior ABAP programmer). The last article was written there on June 7, 2015, and just about alv. At first it is very useful, but, of course, I would like the site not to be “abandoned”. By the way, some of the links I mentioned are in a similar topic , as well as basic information on the syntax of the language.

Small clear examples can be found here (although there are not so many of them, but they are neatly decorated): abapmaster.com .

I want to immediately notice that now they try not to use the method of displaying information on the screen using the keyword WRITE - it is almost completely supplanted by the so-called ALV reports .
Official ALV certificate .

By the way, here you can see a list of all keywords used in the YAP AVAR / 4. And here everything is the same, only with brief examples, but not so convenient for viewing. In general, there are a lot of information on alv (I started from here ) and most of the time the developer will deal with this. Users always have desires like, “Can I have such a z-report so that in xxx transactions, only simpler with other tables?”

(Note: In SAP R / 3, all programs, tables, etc. created by users must begin with the letters y or z ).

Many examples with source codes can be taken from here . This resource offers to learn everything for 21 days ... Very optimistic, but the articles are really good. Everything is in English.

Here and here blogs of AVAR-developers; You can find some useful tips.
By the way, for those who do not want to understand all these matters for a long time, there is a special magic link . For those who are very serious and decisive, it is not necessary to go over it. There are a lot of goodies for novice developers here, well, and in general there are some useful things on the site - hiding source codes, checking source codes for “hardcode”, and so on.

Further, there are already big sites - not only for beginners, but also for experienced “sappers”. About ABAP in general and about ALV in particular . A little about BADI and WebDyn technology is written here (English). Here, too, found useful things, but the resource is English-speaking.
From here I took a lot of examples (in particular, small tricks to work with transactions). Responsive forum . Good resources in Russian.

Official information on ABAR . Those who want to check themselves or prepare for certification can download the application or read the book . Here are random questions with relatively detailed answers.
Examples of certification questions:



Also in SAP, they like to give “non-speaking” names to tables and variables, but they invented

mnemonic rhyme in English to remember the names of some basic tables
Ring the bells of all SAP tables.
Remember Bank tables start with B, say "BKNF, BKPF".
Remember Customer tables start with K, say "KNA1, KONV".
Remember Material tables start with M, say "MARA, MAKT, MARC".
Remember Master data tables start with T, say "T001, T001W".
Remember Purchasing tables start with E, say "EKKO, EKPO"
Remember Sales table start with V, say "VBAK, VBAP".
Remember Vendor tables start with L, say "LFA1".
Ring the bells of all SAP tables.
Six main FI tables, six important FI tables.
They contain an item.
They contain an A if it is a closed item.
They contain a GL account for "BSIS, BSAS".
Ring the bells of all SAP tables.
As i was remembering the table of billing, delivery, sales and purchasing.
Each table had a K if it is a header data, say "VBAK, VBAP, LIKP, VBRK, EKKO".
Each table had a P, if it was an item, data, say "VBAP, LIPS, VBRP, EKPO".
Ring the bells of all SAP tables.
With a d
The table is a Vendor.
TSTC tables for all transaction codes
Ring the bells of all SAP tables.

In addition, there is a lot of information in the system itself:
Transaction ABAPDOCU - ABAP documentation and examples.
Transaction ABAPHELP - Keyword documentation.
Transaction BIBS - examples of user interface for ABAP programs.
Transaction DWDM - demo examples using Enjoy controls.
Transaction SE83 is a library of REUSE examples with ALV and other controls.
Program ADBC_DEMO - demo program ADBC ​​API (for connecting to external databases).
The program BALVBT01 - demonstration of the multiple use of ALV.
SHOWICON program - a list of all icons.
Program SHOWCOLO - all colors used in WRITE or ALV.
SHOWLINE program - all kinds of lines in write reports.
Program SHOWSYMB - characters.
Program RPR_ABAP_SOURCE_SCAN - search in source codes.
Program RSBDCOS0 - execution of system commands on the server.
The REPTRAN program is a massive source upload.
Program RSINCL00 - receive external calls FM, transactions, and so on.

An example of a convenient method of sequential selection of parameters:
  1. REPORT zre_test .
  2. PARAMETERS :
  3. p_matnr TYPE matnr , "Material
  4. p_werks type werks , "Plant
  5. p_lgort TYPE mard - lgort . " Stock
  6. AT SELECTION-SCREEN OUTPUT .
  7. LOOP AT SCREEN .
  8. IF screen - NAME = 'P_WERKS' AND p_matnr IS INITIAL .
  9. screen - INPUT = '0' .
  10. CLEAR p_werks .
  11. MODIFY SCREEN .
  12. ENDIF .
  13. IF screen - NAME = 'P_LGORT' AND p_werks IS INITIAL .
  14. screen - INPUT = '0' .
  15. CLEAR p_lgort .
  16. MODIFY SCREEN .
  17. ENDIF .
  18. ENDLOOP .
  19. AT SELECTION-SCREEN ON p_matnr .
  20. SELECT SINGLE matnr INTO ( p_matnr ) FROM mara WHERE matnr = p_matnr .
  21. IF sy - subrc NE 0 .
  22. p_matnr = '' .
  23. ELSE .
  24. LOOP AT SCREEN .
  25. IF screen - NAME = 'P_WERKS' .
  26. screen - INPUT = '1' .
  27. MODIFY SCREEN .
  28. ENDIF .
  29. ENDLOOP .
  30. ENDIF .
  31. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_werks .
  32. CALL FUNCTION 'EINGABEWERTE_WERK'
  33. EXPORTING
  34. kzall = ''
  35. kzbew_werk = ''
  36. matnr = p_matnr
  37. IMPORTING
  38. werks = p_werks .
  39. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_lgort .
  40. CALL FUNCTION 'EINGABEWERTE_LGORT'
  41. EXPORTING
  42. kzall = ''
  43. matnr = p_matnr
  44. werks = p_werks
  45. IMPORTING
  46. lagerort = p_lgort
  47. werks = p_werks
  48. EXCEPTIONS
  49. ERROR_MESSAGE = 1 .


The standard IDE themes in the SAP GUI do not imply a dark theme, but I prefer to use it.

Here you can download the settings.

Link to the article about how it should, and how not to program (relevant not only for AVAR). Well, in continuation of the topic, here are some examples of the implementation of the “design patterns” on AVAR / 4:


More about the templates (and not only) can be found here .

A couple of links on functional modules (FM), to display pop-up windows in AVAR:

  1. Here is a screenshots and small examples on the use of each FM
  2. Here is a listing of a complex example with various kinds of pop-ups.

The link contains more materials related to the administration of the system (compiled by the author of the site), but there are also things about programming.

A small program for importing / exporting SAP tables to text files - I found it useful a couple of times.

An example of the implementation of the selection screen (selection screen) and alv-report within a single screen.

In general, the presentation turned out a bit crumpled, but, to be honest, I'm not a writer. Once again, almost all links will be of interest only to beginners (I would be happy if I found a similar article in my time). Those who have been studying the subject for at least six months, most likely, have already found all the material on their own on the Internet. I will be glad to any of your corrections / additions in the comments. Thank.

I will update the article a little. Found another resource, looks good: sapbrainsonline.com

More links from comments:

irvil November 6, 2015 at 20:08:
On sapland.ru are often useful articles on ABAP. There is also a Russian-language forum sapforum.biz .

amok November 7, 2015 at 09:38:
Official help updated to version 7.50

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


All Articles