SAP ABAP κ°λ° λλ λΆμμ νλ€ λ³΄λ©΄ νΉμ λ³μμ κ°μ΄ μΈμ λ³κ²½λλμ§, μ΄λ€ 쑰건μμ λ³κ²½λλμ§ μΆμ ν΄μΌ νλ μν©μ΄ μμ£Ό λ°μν©λλ€.
μ΄λ΄ λ μ μ©ν κ²μ΄ λ°λ‘ Watchpoint μ λλ€.
μΌλ° λΈλ μ΄ν¬ν¬μΈνΈκ° "νΉμ λΌμΈ"μμ μ μ§νλ κ²κ³Ό λ¬λ¦¬, Watchpointλ "νΉμ κ°μ λ³ν"λ₯Ό κ°μ§νμ¬ μ μ§νλ λλ²κΉ λꡬμ λλ€.
1. Watchpoint λ?
Watchpointλ νλ‘κ·Έλ¨ μ€ν μ€ νΉμ λ³μμ κ°μ΄ λ³κ²½λκ±°λ νΉμ 쑰건μ λ§μ‘±νλ μκ° μλμΌλ‘ μ€νμ μ μ§μν€λ λλ²κΉ κΈ°λ₯μ λλ€.
μΌλ° λΈλ μ΄ν¬ ν¬μΈνΈμμ μ°¨μ΄
| κ΅¬λΆ | Breakpoint (μΌλ°) | Watchpoint (κ°μμ ) |
| μ μ§ κΈ°μ€ | νΉμ μ½λ λΌμΈ | λ³μ κ° λ³κ²½ or 쑰건 λ§μ‘± |
| μ¬μ© μμ | νΉμ λ‘μ§ μμΉ νμ μ | κ° λ³κ²½ μμ μΆμ μ |
| μμΉ μ§μ | λΌμΈ λ²νΈ μ§μ | λ³μλͺ μ§μ |
| μ€ν μλ | μν₯ μμ | λ§€ μ€ν λ§λ€ κ° μ²΄ν¬ (λ€μ λλ¦Ό) |
| μ μ₯ μ¬λΆ | νλ‘κ·Έλ¨μ μ μ₯ κ°λ₯ | μΈμ μ’ λ£ μ μμ |
Watchpointκ° μ μ©ν μν©
- λ³μ κ°μ΄ μ΄λμ μλͺ» λ³κ²½λλμ§ λͺ¨λ₯Ό λ
- νΉμ κ°μ λλ¬νλ μμ μ μ°Ύκ³ μΆμ λ
- μ¬λ¬ κ³³μμ κ°μ΄ λ°λμ΄ μ°λμΈ νμ μ΄ μ΄λ €μΈ λ
- LOOP μμμ νΉμ 쑰건 λ§μ‘± μμ λ§ νμΈνκ³ μΆμ λ
2. Watchpoint μμ± λ°©λ²
λλ²κΉ
λͺ¨λ μ§μ
ν
↓
μλ¨ λ©λ΄: [Breakpoints] → [Create Watchpoint]
λλ λ¨μΆν€: [Shift + F4]
↓
Create Watchpoint λ€μ΄μΌλ‘κ·Έ νμ
3. Watchpoint κ° νλ μμΈ μ€λͺ

3-1) Variable (λ³μ)
νλ μμΉ: νλ©΄ μ΅μλ¨
μλ―Έ: κ°μν λ³μλͺ μ μ λ ₯νλ νλ
Variable: [ lv_pspnr ]
μ λ ₯ κ°λ₯ νν:
| νν | μμ | μ€λͺ |
| λ¨μ λ³μ | lv_count | λ¨μΌ λ³μ κ°μ |
| ꡬ쑰체 νλ | ls_data-status | ꡬ쑰체μ νΉμ νλ κ°μ |
| μΈν°λ ν μ΄λΈ | gt_result | ν μ΄λΈ μ 체 κ°μ |
| μ μ λ³μ | gv_flag | μ μ λ³μ κ°μ |
| μμ€ν λ³μ | sy-subrc | μμ€ν λ³μ κ°μ |
μ£Όμμ¬ν:
- λμλ¬Έμ κ΅¬λΆ μμ (ABAPμ κΈ°λ³Έμ μΌλ‘ λμλ¬Έμ 무μ)
- μ€μ½νμ μ‘΄μ¬νλ λ³μλ§ κ°μ κ°λ₯
- μ€ν μ μ€λ₯ λ°μ
3-2) Program Name (νλ‘κ·Έλ¨λͺ )
μλ―Έ: Watchpointκ° μ μ©λ νλ‘κ·Έλ¨λͺ (μλμΌλ‘ νμ¬ νλ‘κ·Έλ¨λͺ μ΄ μ λ ₯λ¨)
Program Name: [ ZTEST ]
μλμ리:
- μ§μ λ νλ‘κ·Έλ¨ λ΄μμλ§ Watchpointκ° νμ±ν
- λ€λ₯Έ νλ‘κ·Έλ¨μΌλ‘ μ΄λνλ©΄ Watchpointκ° μ€λ¨λμ§ μνλ§, ν΄λΉ λ³μκ° μμΌλ©΄ μλ 무μ
- μλΈλ£¨ν΄, Function Module λ± λ€λ₯Έ 컨ν μ€νΈμμλ κ°μ μ΄λ¦μ λ³μκ° μμΌλ©΄ κ°μ
3-3) Watchpoint Type
β Watchpoint at Variable (λ³μ κ°μμ )
μλ―Έ: νλ‘κ·Έλ¨ μ€ν μ€ λ³μμ κ°μ΄ λ³κ²½λλ μκ° μ μ§
β Watchpoint at Variable
- Monitor the Variable During the Program Run
- Stop Immediately When Value of Variable Changes
μλ μ리:
- ABAP λ°νμμ΄ λ§€ μ€ν λ§λ€ μ§μ λ λ³μμ κ°μ 체ν¬
- μ΄μ κ°κ³Ό νμ¬ κ°μ λΉκ΅
- κ°μ΄ λ¬λΌμ§ μκ° μ¦μ μ μ§
β‘ Watchpoint at Object Attribute (κ°μ²΄ μμ± κ°μμ )
μλ―Έ: κ°μ²΄(Object) μΈμ€ν΄μ€μ μμ±(Attribute) κ°μ΄ λ³κ²½λλ μκ° μ μ§
β Watchpoint at Object Attribute
- Monitor the Object During the Program Run
- Stop Immediately When One of the Selected Attributes
of the Objects Changes or Vanishes
μλ μ리:
- νΉμ κ°μ²΄ μΈμ€ν΄μ€μ μ¬λ¬ μμ±μ λμ κ°μ
- κ°μ λμ μμ± μ€ νλλΌλ λ³κ²½λλ©΄ μ μ§
- κ°μ²΄κ° μλ©Έ(CG)λ λλ κ°μ§ κ°λ₯
μΈμ μ¬μ©?
- ν΄λμ€ κΈ°λ° νλ‘κ·Έλ¨ λλ²κΉ
- κ°μ²΄μ μν λ³ν μΆμ
- λ€μ€ μμ± λμ κ°μ νμ μ
3-4) Additional Type Dependent Specifications
Variable Type (λ³μ νμ )
μλ―Έ: κ°μ λμ λ³μμ λ°μ΄ν° νμ μ§μ
Variable Type: [ ]
μλ μ리:
- μ§μ νμ§ μμΌλ©΄ μλ μΈμ
- νΉμ νμ λ§ κ°μνκ³ μΆμ λ λͺ μμ μ§μ
- λμΌ μ΄λ¦μ λ³μκ° μ¬λ¬ νμ μΌλ‘ μ‘΄μ¬ν λ ꡬλΆμ©
3-5) All Module Instances (κΈ°λ³Έκ°)
μλ―Έ: μ§μ λ μ§μ λ³μλ₯Ό λͺ¨λ λͺ¨λ μΈμ€ν΄μ€μμ κ°μ
β All Module Instncs.
μλ μ리:
- Form/Methodκ° μ¬λ¬ λ² νΈμΆλλ©΄ κ° νΈμΆλ§λ€ μλ‘μ΄ μΈμ€ν΄μ€ μμ±
- μ΄ μ΅μ μ λͺ¨λ μΈμ€ν΄μ€μ μ§μ λ³μλ₯Ό κ°μ
- LOOP μμμ λ°λ³΅ νΈμΆλλ μλΈλ£¨ν΄ λλ²κΉ μ μ μ©
β‘ Only Current Module Instance
μλ―Έ: νμ¬ μ€ν μ€μΈ λͺ¨λ μΈμ€ν΄μ€μΌ μ§μ λ³μλ§ κ°μ
β Only Current Module Instance
μλ μ리:
- νμ¬ μ»¨ν μ€νΈμ μΈμ€ν΄μ€λ§ κ°μ
- λ€λ₯Έ μΈμ€ν΄μ€μμ λ°μνλ κ° λ³κ²½μ 무μ
- νΉμ νΈμΆ 컨ν μ€νΈλ§ μΆμ μ μ μ©
μΈμ μ¬μ©?
- μ¬κ· νΈμΆ λλ²κΉ
- νΉμ μλΈλ£¨ν΄ νΈμΆλ§ μΆμ νκ³ μΆμ λ
- λ°λ³΅ νΈμΆ μ€ νΉμ μΈμ€ν΄μ€λ§ κ΄μ¬ μμ λ
3-6) Condition (쑰건)
Watchpointμ μ μ§ μ‘°κ±΄μ μΈλ°νκ² μ§μ ν μ μλ μμμ΄λΉλ€.
Free Condition Entry (μμ 쑰건 μ λ ₯)
μλ―Έ: μ μ§ μ‘°κ±΄μ μμ λ‘κ² ABAP ννμμΌλ‘ μ λ ₯
Condition:
Free Condition Entry: [ lv_pspnr = '1234' ]
μλ μ리:
- λ³μ κ°μ΄ λ³κ²½λ λλ§λ€ μ΄ μ‘°κ±΄ νκ°
- μ‘°κ±΄μ΄ TRUEμΌ λλ§ μ μ§
- μ‘°κ±΄μ΄ FALSEλ©΄ κ³μ μ€ν
ννμ μμ:
| 쑰건 ννμ | μλ―Έ |
| lv_pspnr = '1234' | κ°μ΄ '1234'μΌ λ μ μ§ |
| lv_count > 100 | κ°μ΄ 100 μ΄κ³Ό μ μ μ§ |
| ls_data-status = 'E' | μνκ° 'E'μΌ λ μ μ§ |
| lv_flag = 'X' AND lv_type = 'A' | μ¬λ¬ 쑰건 λμ λ§μ‘± μ |
| sy-tabix = 10 | 10λ²μ§Έ λ°λ³΅ μ μ μ§ |
μ£Όμμ¬ν:
λ¬Έμμ΄μ λ°λμ νλ°μ΄νλ‘ κ°μΈμΌ ν©λλ€.
β
μ¬λ°λ¦: lv_pspnr = 'abcd'
β μ€λ₯: lv_pspnr = abcd
μ«μλ νλ°μ΄ν μμ΄ μ λ ₯ν©λλ€.
β
μ¬λ°λ¦: lv_count > 100
β μ€λ₯: lv_count > '100'
4. Watchpoint λ΄λΆ μλ μ리
4-1) κ° Watchpoint λ©μ»€λμ¦
[νλ‘κ·Έλ¨ μ€ν]
β
βΌ
βββββββββββββββββββββββββββββ
β ABAP λ°νμ μ€ν
μ€ν β
βββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββ
β λ§€ μ€ν
λ§λ€ κ°μ λ³μ κ° β
β μ΄μ κ°κ³Ό λΉκ΅ β
βββββββββββββββββββββββββββββ
β
βΌ
<κ° λ³κ²½?>
β
βββββ΄ββββ
YES NO → κ³μ μ€ν
β
βΌ
<Free Condition μμ?>
β
ββββ΄βββ
YES NO → μ¦μ μ μ§
β
βΌ
<쑰건 νκ° TRUE?>
β
ββββ΄βββ
YES NO → κ³μ μ€ν
β
βΌ
[λλ²κ±° μ μ§]
4-2) κ°μ λμλ³ μ²λ¦¬ λ°©μ
λ¨μ λ³μ κ°μ:
μ΄μ κ° μ μ₯ → λ§€ μ€ν
λΉκ΅ → λ€λ₯΄λ©΄ μ μ§
ꡬ쑰체 νλ κ°μ:
ꡬ쑰체μ νΉμ μ€νμ
κ°λ§ λΉκ΅
→ λ€λ₯Έ νλκ° λ³κ²½λμ΄λ κ°μ λμ νλκ° κ·Έλλ‘λ©΄ μ μ§ μν¨
μΈν°λ ν μ΄λΈ κ°μ:
ν
μ΄λΈ μ 체 λ΄μ© λΉκ΅
→ APPEND, INSERT, DELETE, MODIFY λͺ¨λ κ°μ§
→ λμ©λ ν
μ΄λΈμ μ±λ₯ μ ν μ¬ν¨
κ°μ²΄ μμ± κ°μ:
νΉμ μΈμ€ν΄μ€μ μμ± λ©λͺ¨λ¦¬ μ£Όμ κ°μ
→ μΈμ€ν΄μ€ μλ©Έ μμλ κ°μ§ κ°λ₯
5. Watchpointμ νΉμ§
5-1) νλ°μ± (Session-based)
Watchpointλ λλ²κΉ μΈμ λ΄μμλ§ μ ν¨ν©λλ€.
λλ²κ±° μ’
λ£ → Watchpoint μλ μμ
μ μΈμ
μμ → λ€μ μ€μ νμ
μΌλ° λΈλ μ΄ν¬ν¬μΈνΈμ²λΌ SAP μμ€ν μ μꡬ μ μ₯ν μ μμ΅λλ€.
5-2) μ±λ₯ μν₯
Watchpointλ₯Ό λ§μ΄ μ€μ νλ©΄ μ€ν μλκ° λλ €μ§λλ€.
Watchpoint κ°μ ↑
→ λ§€ μ€ν
λ§λ€ 체ν¬ν λ³μ κ°μ ↑
→ μ€ν μλ ↓
→ λλ λ°μ΄ν° μ²λ¦¬ μ νΉν λλ¦Ό
κΆμ₯ μ¬ν:
- λμμ μ¬λ¬ κ° μ€μ μ§μ
- μ¬μ© ν μ¦μ μμ
- νμν λΆλΆλ§ κ΅μμ μΌλ‘ μ¬μ©
5-3) μ€μ½ν μ ν
νμ¬ μ€ν 컨ν
μ€νΈμμ μ κ·Ό κ°λ₯ν λ³μλ§ κ°μ κ°λ₯
→ λ€λ₯Έ νλ‘κ·Έλ¨μ μ§μ λ³μ κ°μ λΆκ°
→ μ μ λ³μλ μ΄λμλ κ°μ κ°λ₯