anthyiaconsulting

ABAP Tutorial

2 Modularisation

a Funktionsbaustein aufrufen
1
2 DATA: lv_result       TYPE int4 .
3
4 WRITE: ' Erster       aufruf ' .
5 CALL FUNCTION 'Z_OB_FM_000'
6      EXPORTING
7        ip_basis = 5
8        ip_exponent = 7
9      IMPORTING
10        ep_result   = lv_result .
11 ∗    ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
12 WRITE: ' Zweiter       aufruf ' .
13 CALL FUNCTION 'Z_OB_FM_000'
14     EXPORTING
15        ip_basis = 5
16        ip_exponent = 7
17     IMPORTING
18        ep_result   = lv_result .
19
20 WRITE: / ' 5 hoch 7 ist            ' ,   lv_result .
21 ∗    ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
22 CALL FUNCTION 'Z_OB_FM_000'
23     EXPORTING
24        ip_basis = 2
25        ip_exponent = 2
26     IMPORTING
27        ep_result   = lv_result .
28
29 WRITE: / ' 2 hoch 2 ist            ' ,   lv_result .
30 ∗    ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
31 ∗    ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
32 ∗ Here comes the        function   as    defined   by
33 ∗ CTRL N function       group

Here comes the function as defined by CTRL N function group

1 FUNCTION z_ob_fm_007
2 IMPORTING
3    ip_basis TYPE i
4 ip_exponent TYPE i
5 EXPORTING
6    ep_result    TYPE int4 .
7
8
9
10    ep_result    = ip_basis   ∗∗ ip_exponent .
11 ENDFUNCTION.

**********************************

1 DATA: lv_sequence TYPE string .
2
3 CALL FUNCTION 'Z_OB_FM_FIBONACCI_000'
4   EXPORTING
5     ip_amount = 5
6   IMPORTING
7      ep_result   = lv_sequence .
8
9 WRITE: lv_sequence .

b Unterprogramm
1 "PERFORM zum aufruf eines            Unterprogrammes
2
3 PERFORM z_sub_welcome.
4 PERFORM z_sub_welcome_user USING 'Teach−000' .
5
6 DATA: lv_zahl TYPE i.
7 PERFORM z_sub_add_three CHANGING lv_zahl.
8 WRITE lv_zahl .
9
10 DATA: ls_mara TYPE mara.
11 PERFORM z_sub_mara USING 'ORHB1223' CHANGING ls_mara.
12 cl_demo_output => display ( ls_mara ) .
13
14 DATA: lv_result       TYPE int1 .
15 PERFORM z_ob_bigger USING 5 15 CHANGING lv_result .
16 WRITE lv_result .
17 ∗    ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
18 "FORM zum definieren        eines     Unterprogrammes
19
20 FORM z_sub_welcome.
21     WRITE: / ' Willkommen , ich bin ein Unterprogramm ' .
22 ENDFORM.
23
24 FORM z_sub_add_three CHANGING i_input TYPE i."CHANGING um einen Wert zu ändern
25     i_input += 3.
26 ENDFORM.
27
28 FORM z_sub_welcome_user USING i_input TYPE string . " Using um einen Wert zu übergeben
29     WRITE: / ' Willkommen ' ,      i_input    , ' ich bin ein Unterprogramm ' .
30 ENDFORM.
31
32 FORM z_sub_mara USING i_matnr TYPE matnr
33     CHANGING i_mara TYPE mara.
34     SELECT SINGLE
35     FROM mara
36     FIELDS
37     WHERE matnr = @i_matnr
38     INTO CORRESPONDING FIELDS OF @i_mara.
39 ENDFORM.
40 ∗    ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
41 DATA: lt_ TYPE mara.
42 PERFORM z_mara IN PROGRAM z_ob_009_fb CHANGING lt_.
43 cl_demo_output => display ( lt_ ) .
44
45 FORM z_ob_bigger
46      USING number_1 TYPE int1
47              number_2 TYPE int1
48      CHANGING result TYPE int1 .
49      IF number_1 > number_2.
50         result   = number_1.
51      ELSE.
52         result   = number_2.
53      ENDIF.
54 ENDFORM.