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 2If 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:
- 50 questions with answers to abap-iq.blogspot.ru
- 100 questions with answers to abap-iq.blogspot.ru
- 29 questions with answers at the end of pdf
- 16 questions with answers at the end of pdf
- 90 questions (but no answers)
- More links ...
93 more questions with answers1. If it is a table, it is ____.
A: A structure
B: Invalid
C: Client-independent
D: Not mandatory
Ans: C
2. In regard to the CALL, which is NOT a valid statement?
A: CALL FUNCTION
B: CALL SCREEN
C: CALL TRANSACTION
D: CALL PROGRAM
Ans: D
3. Name the ABAP Dictionary table that has characteristics characteristics:
Same number of fields as the database table
Same name as database table
Maps 1: 1 to database table
A: Pooled
B: Cluster
C: Transparent
D: View
Ans: C
4. An event starts with an event and ends with:
A: Program execution.
B: END-OF-EVENT.
C: Another event keyword.
D: END-EVENT.
Ans: C
5. What is the system field for the current date?
A: SY-DATUM
B: SY-DATE
C: SY-DATID
D: SY-SDATE
Ans: A
6. The following code indicates:
SELECT fld1 fld2 FROM tab1 APPENDING TABLE itab
WHERE fld1 IN sfld1.
A: Add rows to the existing rows of itab.
B: Add rows to itab after it deletes any existing rows of itab.
C: Select rows from tab1 for matching itab entries.
D: Nothing, this is a syntax error.
Ans: B
7. You can change the data on the data sheet below. 3.14.
CONSTANTS: PI type P decimals 2 value '3.1'.
PI = '3.14'.
A: True
B: False
Ans: B
8. The SAP service that ensures data integrity by handling locking is called:
A: Update
B: Dialog
C: Enqueue / Dequeue
D: Spool
Ans: C
9. GET VBAK LATE. event?
GET VBAK event is processed.
B: This event is processed after all occurrences of the GET VBAK event are completed.
C: This event will only be processed after the user has selected a basic list row.
D: This event is only processed if no records are selected from the VBAK table.
Ans:
10. Which hash is the internal table type?
A: Its key must always be UNIQUE.
B: May only be accessed by its key.
C: Response time for accessing a row.
D: Declared using internal table type HASHED TABLE.
Ans: C
11. To include database-specific SQL statements for an ABAP program, code them between:
A: NATIVE SQL_ENDNATIVE.
B: DB SQL_ENDDB.
C: SELECT_ENDSELECT.
D: EXEC SQL_ENDEXEC.
Ans: D
12. How to use the ABAP statement:
A: GET TIME.
B: SET TIME FIELD.
C: GET RUN TIME FIELD.
D: SET CURSOR FIELD.
Ans: C
13. When the secondary list is being processed, it is available by default.
A: True
B: False
Ans: B
14. Given:
DATA: BEGIN OF itab OCCURS 10,
qty type I,
END OF ITAB.
DO 25 TIMES. itab-qty = sy-index. APPEND itab. ENDDO.
LOOP AT itab WHERE qty> 10.
WRITE: / 1 itab-qty.
ENDLOOP.
This will result in:
A: Output of only those with rows of a qty field less than 10
B: Output of the first 10 itab rows with a qty field greater than 10
C: A syntax error
D: None of the above
Ans: B
15. After a DESCRIBE TABLE statement SY-TFILL will contain
A: The number of rows in the internal table.
B: The current OCCURS value.
C: Zero, if the table contains one or more rows.
D: The length of the internal table row structure.
Ans; A
16. You can declare your own internal table type using the TYPES keyword.
A: True
B: False
Ans: A
17. If you’ve avoided it’s possible.
A: True
B: False
Ans: A
18. What is the control table?
A: AT START OF
B: AT FIRST
C: AT LAST
D: AT NEW
Ans: A
19. A dictionary table is made available through the TABLES statement.
A: True
B: False
Ans: A
20. Selection of criteria for selection is
A: AT NEW SELECTION-SCREEN
B: SELECTION-SCREEN AT LINE-SELECTION
C: SUBMIT SELECTION-SCREEN
D: CALL SELECTION-SCREEN
Ans: D
21. Where does the field contain a non-initial value (as determined by its data type)?
A: ON INPUT
B: CHAIN
C: FIELD
D: ON REQUEST
Ans: A
22. The AT US-COMMAND event is triggered by functions.
A: screen painter
B: ABAP report
C: menu painter status
D: ABAP Dictionary
Ans: C
23. In regard to a function group, it’s NOT a true statement?
A: Combines similar function modules.
B: Shares global data with all its function modules.
C: Exists within the ABAP workbench as an include program.
D: Shares subroutines with all its function modules.
Ans; C
24. In regard to SET PF-STATUS, you can deactivate unwanted function codes by using ____.
A: EXCLUDING
B: IMMEDIATELY
C: WITHOUT
D: HIDE
Ans: A
25. In the case of the FIELD statement, it is NOT a true statement?
A: Fields in PBO are transported directly from PAI.
B: Fields with identical names are transported to the ABAP side.
C: Fields not defined in FIELD statements are transported first.
D: Fields that are defined in FIELD statements are transported when the corresponding module is called.
Ans; C
26. The order in which the code is processed is.
A: True
B: False
Ans: B
27. T has been given the following internal representation:
A: SSMMHH
B: HHMMSS
C: MMHHSS
D: HHSSMM
Ans: B
28. ABAP report header?
A: Date and Time
B: List title
C: Page number
D: Underline
Ans; A
29. Assuming a button with a button.
A: AT USER-COMMAND.
B: AT PFn.
C: AT SELECTION-SCREEN.
D: END-OF-SELECTION.
Ans: A
30. In regard to the field selection, what statement of the SELECT statement is required?
A: FOR ALL ENTRIES
B: WHERE
C: INTO
D: MOVE-CORRESPONDING
Ans: B
31. The following program outputs what?
report zjgtest1
write: / 1 'Ready_'.
PARAMETER: test.
INITIALIZATION.
write: / 1 'Set_'.
START-OF-SELECTION.
write: / 1 'GO !!'.
A: Set_ GO !!! (each on its own line)
B: Set_ Ready_ GO !!! (all on their own lines)
C: Ready_ GO !!! (each on its own line)
D: Ready_ Set_ GO !!! (all on their own lines)
Ans: C
32. To declare a selection screen, use it:
A: NO-DISPLAY
B: INVISIBLE
C: MODIF ID
D: OBLIGATORY
Ans: A
33. It should not contain a header line.
A: True
B: False
Ans: B
34. What is output by the following code?
DATA: BEGIN OF itab OCCURS 0, letter type c, END OF itab.
itab-letter = 'A'. APPEND itab. itab-letter = 'B'. APPEND itab.
itab-letter = 'C'. APPEND itab. itab-letter = 'D'. APPEND itab.
LOOP AT itab.
SY-TABIX = 2.
WRITE itab-letter.
EXIT.
ENDLOOP.
A: A
B: ABCD
C: B
D: BCD
Ans: A
35. To select all database entries, use
A: SELECT_INTO TABLE itab_
B: SELECT_INTO itab_
C: SELECT_APPENDING itab
D: SELECT_itab_
36. After a successful SELECT statement, what does SY-SUBRC equal?
A: 0
B: 4
C: 8
D: Null
Ans: A
37. This selection screen syntax
A: REQUIRED-ENTRY
B: OBLIGATORY
C: DEFAULT
D: SELECTION-SCREEN EXCLUDE
Ans: B
38. If the remedy is:
DATA: itab TYPE SORTED TABLE OF rec_type WITH UNIQUE KEY field1
WITH HEADER LINE.
itab-field1 = 'Company'. itab-field2 = '1234'. INSERT TABLE itab.
itab-field1 = 'Bank'. itab-field2 = 'ABC'. INSERT TABLE itab.
SORT itab.
LOOP AT itab.
write: / 1 itab-field1, itab-field2.
ENDLOOP.
A: There is no syntax error here
B: Remove the SORT statement
C: Change INSERT to APPEND
D: Add a WHERE clause to the loop
Ans:
39. The remedy is:
SELECT fld1 fld2 FROM tab1 WHERE fld3 = pfld3.
WRITE: / 1 tab1-fld1, tab1-fld2.
ENDSELECT.
A: Add a SY-SUBRC check.
B: Change the WHERE clause to use fld1 or fld2.
C: Remove the / 1 from the WRITE statement.
D: Add INTO (tab1-fld1, tab1-fld2).
Ans: D
40. When modifying an internal table within LOOP AT itab. _ ENDLOOP. you must include an index number.
A: True
B: False
Ans: A
41. Use this field for the list field, use:
A: OPEN LINE.
B: SET CURSOR FIELD.
C: WRITE fld AS INPUT FIELD.
D: FORMAT INPUT ON.
Ans: C
42. Before a function.
A: Linked
B: Authorized
C: Released
D: Active
Ans: D
43. This is not the ABAP Dictionary;
A: PBO module include program
B: TOP include program
C: PAI module include program
D: Subroutine include program
Ans: B
44. SELECT statement addition.
A: MIN
B: ORDER BY
C: DISTINCT
D: DELETE
Ans: C
45. The system internal table used for dynamic screen modification is named:
A: ITAB
B: SCREEN
C: MODTAB
D: SMOD
Ans: B
46. ​​Within the source code of the function module, errors are handled via the keyword:
A: EXCEPTION
B: RAISE
C: STOP
D: ABEND
Ans: A
47. Which system field contains the contents of a selected line?
A: SY-CUCOL
B: SY-LILLI
C: SY-CUROW
D: SY-LISEL
Ans: D
48. The following statement writes what type of data object?
WRITE: / 1 'Total Amount:'.
A: Text literal
B: Text variable
C: In-code comment
D: Text integer
Ans: A
49. For the code below, second_field is what the data type?
DATA: first_field type P, second_field like first_field.
A: P
B: C
C: N
D: D
Ans: A
50. Which is the D data object?
A: DDMMYYYY
B: YYYYDDMM
C: MMDDYYYY
D: YYYYMMDD
Ans: A
51. A BDC program is used for all of the following except:
A: Downloading data to a local file
B: Data interfaces between SAP and external systems
C: Initial data transfer
D: Entering a large amount of data
Ans: A
52. In regard to PERFORM, NOT a true statement?
A: May be used within a subroutine.
B: Requires actual parameters.
C: Recursive calls are allowed in ABAP.
D: Can call a subroutine in another program.
Ans: B
53. What is the transaction code for the ABAP Editor?
A: SE11
B: SE38
C: SE36
D: SE16
Ans: B
54. In regard to HIDE, it’s NOT a true statement?
A: Saves a line of row number.
B:
C: The HIDE area is retrieved when using the READ LINE statement.
D: The HIDE area is retrieved when it’s triggered.
Ans: B
55. Database locks are sufficient in a multi-user environment.
A: True
B: False
Ans: B
56. It’s determined by the field’s:
A: Domain
B: Field name
C: Data type
D: Data element
Ans: A
57. In regard to LEAVE, it’s NOT a true statement?
A: May be used to return immediately.
B: May be looped and get the next.
C: May be used to start a new transaction.
D: May be used to go to the next screen.
Ans: B
58. The following code indicates:
SELECT fld6 fld3 fld2 fld1 FROM tab1 INTO CORRESPONDING FIELDS OF TABLE itab
WHERE fld3 = pfld3.
A: It doesn’t matter.
B: Fill the header of itab, but not the body.
C: Table itab can only contain fields also in table tab1.
D: None of the above.
Ans: C
59. If you’re on the internal table itab:
CHECK NOT ITAB [] IS INITIAL.
A: Contains no rows
B: Contains at least one row
C: Has a header line
D: Has an empty header line
Ans: B
60. What will be output by the following code?
DATA: BEGIN OF itab OCCURS 0, fval type i, END OF itab.
itab-fval = 1. APPEND itab.
itab-fval = 2. APPEND itab.
FREE itab.
WRITE: / 1 itab-fval.
A: 2
B: 0
C: blank
D: 1
Ans: A
61. On the selection screen, use the ABAP keyword:
A: DATA.
B: RANGES.
C: PARAMETERS.
D: SELECT-OPTIONS.
Ans: D
62. If you’re a table line
A: Another internal table with a header line.
B: A work area with the internal table.
C: An internal table type using the TYPES statement.
D: A PARAMETER.
Ans: B
63. How much is the number of entries?
DELETE itab FROM 1500 TO 1700.
A: This is a syntax error.
B: 1801
C: 1800
D: 1799
Ans: A
64. To remove lines from a database table, use ____.
A: UPDATE
B: MODIFY
C: ERASE
D: DELETE
Ans: D
65. SET CURSOR except:
A: Move the cursor to a specific field.
B: Move the cursor to a specific list line.
C: Move the cursor to a specific pushbutton, activating that function.
D: Move the cursor to the list.
Ans: C
66. Function module of a function module?
A: The actual parameter is type C.
B: The formal parameter contains a default value.
C: The formal parameter's \ "Reference \" attribute is turned on.
D: It is never optional.
Ans: B
67. Coding two INITIALIZATION events will cause a syntax error.
A: True
B: False
Ans: B
68. Adding a COMMIT WORK statement between SELECT_ENDSELECT is a good method for improving performance.
A: True
B: False
Ans: B
69. If you’re on the line, it’s selected, use this keyword.
A: APPEND
B: EXPORT
C: WRITE
D: HIDE
Ans: D
70. To bypass automatic field input checks, include this in PAI.
A: AT EXIT-COMMAND
B: ON INPUT
C: ON REQUEST
D: LEAVE TO SCREEN 0.
Ans: A
71. If you’re registering, you’re not satisfied with the following:
A: SY-MSGTY
B: SY-MSGNO
C: SY-MSGV1
D: SY-MSGWA
Ans: D
72. The following code indicates:
REPORT ZLISTTST.
START-OF-SELECTION.
WRITE: text-001.
FORMAT HOTSPOT ON.
WRITE: text-002.
FORMAT HOTSPOT OFF.
AT LINE-SELECTION.
WRITE / text-003.
A: Text-002 may not be selected.
B: The value of text-002 is stored in a special memory area.
C: Text-002 may be clicked once to trigger the output of text-003.
D: None of the above.
Ans: C
73. The ABAP program using Open SQL.
A: Database view
B: Projection view
C: Help view
D: Entity view
Ans: A
74. A concrete field is associated with a field-symbol via ABAP keyword
A: MOVE
B: WRITE
C: ASSIGN
D: VALUE
Ans: C
75. The output for the following code will be:
report zabaprg.
DATA: char_field type C.
char_field = 'ABAP data'.
WRITE char_field.
A: ABAP data
B: A
C: Nothing, there is a syntax error
D: None of the above
Ans: B
76. Page footers are coded in the event:
A: TOP-OF-PAGE.
B: END-OF-SELECTION.
C: NEW-PAGE.
D: END-OF-PAGE.
Ans: D
77. The event AT SELECTION-SCREEN OUTPUT. This is the case for the selection criteria for selection criteria.
A: True
B: False
Ans: B
78. The TABLES statement declares a data object.
A: True
B: False
Ans: A
79. Assuming tab1-fld7 is not a key field, how can you prevent reading all the table rows?
SELECT fld1 fld2 fld3 FROM tab1 INTO (fld4, fld5, fld6)
WHERE fld7 = pfld7.
WRITE: / 1 fld4, fld5, fld6.
ENDSELECT.
A: Take fld7 out of the WHERE clause.
B: Create an index for the ABAP Dictionary for tab1-fld7.
C: Use INTO TABLE instead of just INTO.
D: Take the WRITE statement out of the SELECT_ENDSELECT.
Ans:
80. If you are creating an ABAP program?
A: Application
B: Title
C: Status
D: Type
Ans: A
81. When it comes to the underlying database?
A: Adding technical settings to the table
B: Checking the table syntax
C: Saving the table
D: Activating the table
Ans: D
82. Within the ABAP program attributes, Type = 1 represents:
A: INCLUDE program
B: Online program
C: Module pool
D: Function group
E: Subroutine pool
Ans: B
83. The remedy is:
SELECT fld1 SUM (fld1) FROM tab1 INTO_
A: Remove the spaces from SUM (fld1).
B: Move SUM (fld1) before fld1.
C: Add GROUP BY f1.
D: Change to SUM (DISTINCT f1).
Ans: C
84. Which keyword adds rows to an internal table while accumulated numeric values?
A: INSERT
B: APPEND
C: COLLECT
D: GROUP
Ans: C
85. Assuming itabout header line, what will be output by the following code?
READ TABLE itab INDEX 3 TRANSPORTING field1.
WRITE: / 1 itab-field1, itab-field2.
A: The contents of the third row's itab-field1.
B: The contents of the third row's itab-field1 and itab-field2.
C: The contents of the third row's itab-field2.
D: Nothing.
Ans; A
86. The following code indicates:
SELECTION-SCREEN BEGIN OF BLOCK B1.
PARAMETERS: myparam (10) type C,
Myparam2 (10) type N,
SELECTION-SCREEN END OF BLOCK.
A: Draw a box around myparam and myparam2 on the selection screen.
B: Allow myparam and myparam2 to be ready for input during an error dialog.
C: Do not display myparam and myparam2 on the selection screen.
D: Display myparam and myparam2 only if both fields have default values.
Ans: A
87. This is what it appears as follows?
FRUIT QTY PRICE
Apples 12 22.50
Apples 9 18.25
Oranges 15 17.35
Bananas 20 10.20
Bananas 15 6.89
Bananas 5 2.75
A: SORT itab DESCENDING BY QTY PRICE.
B: SORT itab BY PRICE FRUIT.
C: SORT itab.
D: SORT itab BY PRICE DESCENDING.
Ans: D
88. Which keyword adds a line to an internal table?
A: APPEND
B: MODIFY
C: ADD
D: INSERT
Ans: D
89. To use the following table, use the following:
A: LOOP AT itab. _ ENDLOOP.
B: READ ITAB.
C: SELECT SINGLE * FROM itab.
D: READ TABLE itab.
Ans: D
90. Which Open SQL statement should not be used with cluster databases?
A: UPDATE
B: MODIFY
C: DELETE
D: INSERT
Ans:
91. This is not the ABAP Dictionary;
A: PBO module include program
B: TOP include program
C: PAI module include program
D: Subroutine include program
Ans: B
92. If there is an error message or a warning message.
A: GROUP
B: FIELD-GROUP
C: CHAIN
D: LOOP AT SCREEN
Ans; C
93. Given:
PERFORM subroutine USING var.
The var field is known as the type of parameter?
A: Formal
B: Actual
C: Static
D: Value
Ans: B
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 tablesRing 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:- REPORT zre_test .
- PARAMETERS :
- p_matnr TYPE matnr , "Material
- p_werks type werks , "Plant
- p_lgort TYPE mard - lgort . " Stock
- AT SELECTION-SCREEN OUTPUT .
- LOOP AT SCREEN .
- IF screen - NAME = 'P_WERKS' AND p_matnr IS INITIAL .
- screen - INPUT = '0' .
- CLEAR p_werks .
- MODIFY SCREEN .
- ENDIF .
- IF screen - NAME = 'P_LGORT' AND p_werks IS INITIAL .
- screen - INPUT = '0' .
- CLEAR p_lgort .
- MODIFY SCREEN .
- ENDIF .
- ENDLOOP .
- AT SELECTION-SCREEN ON p_matnr .
- SELECT SINGLE matnr INTO ( p_matnr ) FROM mara WHERE matnr = p_matnr .
- IF sy - subrc NE 0 .
- p_matnr = '' .
- ELSE .
- LOOP AT SCREEN .
- IF screen - NAME = 'P_WERKS' .
- screen - INPUT = '1' .
- MODIFY SCREEN .
- ENDIF .
- ENDLOOP .
- ENDIF .
- AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_werks .
- CALL FUNCTION 'EINGABEWERTE_WERK'
- EXPORTING
- kzall = ''
- kzbew_werk = ''
- matnr = p_matnr
- IMPORTING
- werks = p_werks .
- AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_lgort .
- CALL FUNCTION 'EINGABEWERTE_LGORT'
- EXPORTING
- kzall = ''
- matnr = p_matnr
- werks = p_werks
- IMPORTING
- lagerort = p_lgort
- werks = p_werks
- EXCEPTIONS
- 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:
- Here is a screenshots and small examples on the use of each FM
- 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.comMore 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