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.