π§πΌ SAP/ABAP
[SAP ABAP] CALL FUNCTION μ΄λ? (CALL FUNCTION μμ± λ°©λ², μμ ν¬ν¨)
Jay Din
2024. 7. 19. 16:49
728x90
λ°μν
CALL FUNCTION μ΄λ?
` CALL FUNCTION ` μ λ€λ₯Έ ν¨μ λͺ¨λμ νΈμΆνλλ° μ¬μ©λλ λͺ λ Ήλ¬Έμ λλ€.
ν¨μ λͺ¨λμ SAP μμ€ν μμ νΉμ μμ μ μννλλ‘ μ μλ λ 립μ μΈ μ½λ λΈλ‘μ λλ€.
μ΄λ₯Ό ν΅ν΄ ABAP νλ‘κ·Έλ¨μ λ€λ₯Έ ν¨μ λͺ¨λμ κΈ°λ₯μ μ¬μ¬μ©ν μ μμ΅λλ€.
CALL FUNCTION 기본 ꡬ쑰
CALL FUNCTION 'ν¨μ λͺ¨λ μ΄λ¦'
EXPORTING
νλΌλ―Έν°1 = κ°1
νλΌλ―Έν°2 = κ°2
IMPORTING
κ²°κ³Ό νλΌλ―Έν°1 = λ³μ1
κ²°κ³Ό νλΌλ―Έν°2 = λ³μ2
TABLES
λ΄λΆ ν
μ΄λΈ1 = itab1
λ΄λΆ ν
μ΄λΈ2 = itab2
CHANGING
λ³μ1 = λ³μ1
λ³μ2 = λ³μ2
EXCEPTIONS
μμΈ1 = λ²νΈ1
μμΈ2 = λ²νΈ2.
- FUNCTION_MODULE_NAME: νΈμΆν ν¨μ λͺ¨λμ μ΄λ¦μ λλ€.
- EXPORTING: νΈμΆν ν¨μμ μ λ¬λλ λ§€κ°λ³μ(Parameter)λ€μ μ μν©λλ€.
- IMPORTING: νΈμΆλ ν¨μλ‘λΆν° λ°νλλ κ²°κ³Όλ₯Ό λ°μ λ³μλ₯Ό μ μν©λλ€.
- TABLES: μΈν°λ ν μ΄λΈμ ν¨μ λͺ¨λμ μ λ¬νκ±°λ ν¨μ λͺ¨λμμ λ°νλ ν μ΄λΈμ μμ νλ κ²½μ° μ¬μ©ν©λλ€.
- CHANGING: ν¨μ λͺ¨λμ μ λ¬λ κ°μ λ³κ²½ν μ μλ νλΌλ―Έν°λ₯Ό μ§μ ν©λλ€.
- EXCEPTIONS: νΈμΆλ ν¨μκ° λ°μμν€λ μμΈ μν©μ λν μ²λ¦¬λ₯Ό μ μν©λλ€.
- OTHERS: ` EXCEPTIONS ` μΉμ μμ μ μν μμΈ μ€μμ λ€λ₯Έ λͺ¨λ μμΈμ λν μ²λ¦¬λ₯Ό μ μν©λλ€.
CALL FUNCTION μμ
κ°λ¨ν μμ λ‘ λ§μ Function Moduleμ λ§λ€μ΄ λ³΄κ² μ΅λλ€.
1. CALL FUNCTION ν¨μ λͺ¨λ λ§λ€κΈ°
λ¨Όμ SAP GUIμμ Function Moduleμ μμ±ν©λλ€.
- νΈλμμ μ½λ SE37 μ€ν
- Function Module μ΄λ¦ μ λ ₯: Z_ADD_NUMBERS
- Create ν΄λ¦
- Function Group μ λ ₯: μλ₯Όλ€μ΄, ZFUNCTION_GROUP
- Short Text μ λ ₯: Add two numbers
- Import Parameters
- I_NUM1: νμ I (μ μν)
- I_NUM2: νμ I (μ μν)
- Export Parameters
- E_SUM: νμ I (μ μν)
- Exceptions
- INVALID_INPUT: μμΈμ²λ¦¬
- ν¨μ λͺ¨λ Z_ADD_NUMBERS κ° μμ±λμμ΅λλ€.
- I_NUM1 λλ I_NUM2κ° μ΄κΈ° κ°(λΉ κ°)μ΄λ©΄ INVALID_INPUT μμΈλ₯Ό λ°μμν΅λλ€.
- ν΄λΉ ν¨μ λͺ¨λμ Active ν΄μ€λλ€.
2. Function Module νΈμΆ μμ
μ΄μ μμ±ν ν¨μ λͺ¨λμ νΈμΆνλ νλ‘κ·Έλ¨μ μμ±νκ² μ΅λλ€.
DATA: lv_num1 TYPE i,
lv_num2 TYPE i,
lv_sum TYPE i.
lv_num1 = 5.
lv_num2 = 10.
CALL FUNCTION 'Z_ADD_NUMBERS'
EXPORTING
i_num1 = lv_num1
i_num2 = lv_num2
IMPORTING
e_sum = lv_sum
EXCEPTIONS
invalid_input = 1
others = 2.
IF sy-subrc = 0.
WRITE: / 'Answer:', lv_num1, '+', lv_num2, '=', lv_sum.
ELSEIF sy-subrc = 1.
WRITE: / 'Error: Invalid input provided.'.
ELSE.
WRITE: / 'Error occurred:', sy-subrc.
ENDIF.
3. μ€ν νλ©΄
- ν¨μ λͺ¨λ νΈμΆμ΄ μ±κ³΅νλ©΄ λ μ«μμ ν©μ μΆλ ₯ν©λλ€.
*lv_num1 = 5. " μ£ΌμμΌλ‘ lv_num1 λΉκ° μ²λ¦¬
- lv_num1 μ μ£Όμμ²λ¦¬νλ©΄ μμΈμ²λ¦¬μ λ°λΌ μμ κ°μ΄ μΆλ ₯λ©λλ€.
728x90
λ°μν