ABAP κ°λ°μ νλ€ λ³΄λ©΄ μ΄λ° μκ°μ νλ²μ―€ ν΄λ³΄μμ κ²μ΄λ€.
COMMIT WORK λ¬Έμ₯μ λ£μ§ μμλλ°, μ λ°μ΄ν°λ² μ΄μ€μ μ μ₯(commit)μ΄ λμ§?
μ²μμλ λ²κ·ΈμΈκ° μΆμ΄ μμ¬λ ν΄λ³΄κ³ , νΈλμμ
μ΄ κΌ¬μΈ κ±ΈκΉ νκ³ λ‘κ·Έλ λ€μ Έλ³΄μ§λ§, μ¬μ€ μ΄κ±΄ SAP μμ€ν
λ΄λΆμ μ μμ μΈ λμμ΄λ€. λ°λ‘ Implicit Database Commit, μ¦ μλ 컀λ°( Auto Commit ) λλ¬Έμ΄λ€.
μ΄λ² ν¬μ€ν
μμλ SAP ABAPμμ μ μ΄λ° μΌμ΄ λ°μνλμ§, μ΄λ€ κ²½μ°μ μλμΌλ‘ 컀λ°μ΄ λ°μνλμ§λ₯Ό μ 리ν΄λ³΄λλ‘ νκ² λ€.
1. Implicit Commit( Auto Commit )μ΄λ?
SAPμ AS ABAP(Application Server ABAP) μν€ν μ²μμλ ν Work Process(μμ νλ‘μΈμ€) κ° νλμ Database LUW(Logical Unit of Work) λ§ μ²λ¦¬ν μ μλ€. κ·Έλ¦¬κ³ νλμ ABAP νλ‘κ·Έλ¨μ μ€ν λμ€μ μ¬λ¬ Work Processλ‘ μ νλ μ μκΈ° λλ¬Έμ, μμ νλ‘μΈμ€κ° λ³κ²½λκΈ° μ μ νμ¬ μμ μ 컀λ°(Commit)μ΄ λμ΄μΌ νλ€..
μ¦, μμ νλ‘μΈμ€ μ νμ΄ λ°μνλ νΉμ μν©μμ, λͺ μμ μΌλ‘ COMMIT WORK ꡬ문μ λ£μ§ μμλ SAP μμ€ν μ΄ μλμΌλ‘ 컀λ°μ μ€ννλ κ²μ΄λ€.
π Database LUW λ?
Database LUW (Logical Unit of Work)λ νλμ λ Όλ¦¬μ μΈ λ°μ΄ν°λ² μ΄μ€ νΈλμμ λ¨μμ΄λ©°, "μ΄ μμ λ€μ ν λ¬ΆμμΌλ‘ μ±κ³΅ν΄μΌ νλ€!"λ λΆκ°λΆμ μ°μ° μ§ν©μ λ§νλ€.
β‘οΈ Database LUW = νλμ νΈλμμ
2. Implicit Commit( Auto Commit )μ κ·ΈλΌ μΈμ μλνλ?
ABAP νλ‘κ·Έλ¨ μ€ν μ€ μλμΌλ‘ λ°μ΄ν°λ² μ΄μ€ Commitμ΄ μΌμ΄λλ μ£Όμ μΌμ΄μ€μ΄λ€. μμμΉ λͺ»ν λ°μ΄ν° μ μ₯μ λ§κΈ° μν΄ λ°λμ μμλμ.
β Dialog Step μ’ λ£ μ
κ°λ°μ κ°μ₯ λΉλ²νκ² λ°μνλ μμ μΌλ‘ μ¬μ©μμ μ‘μ μ κΈ°λ€λ¦¬λ μκ°, νμ¬ Work Processλ λ°νλκ³ λ€μ Dialog Step(π)μμλ μλ‘μ΄ Work Processκ° λ°°μ λλ€. ν΄λΉ νλ©΄μ PAI μ’ λ£ ν λ€μ νλ©΄μ PBOκ° μ€νλκ³ μ’ λ£ λμ μ νλ©΄μ΄ νμλ λκ° Dialog Stepμ μ’ λ£ μμ μ΄μ Auto Commitμ΄ λ°λλλ μμ μ΄λ€.
π Dialog Stepμ΄λ?
μ¬μ©μκ° νλ©΄(GUI)μμ λ²νΌ ν΄λ¦, μν° μ λ ₯ λ±μ νλμ μ·¨ν ν, SAP μμ€ν μ΄ ν΄λΉ μ λ ₯μ λ°λΌ νλ©΄μ λ€μ κ·Έλ €μ€ λκΉμ§μ νλμ μ²λ¦¬ λ¨μλ₯Ό λ§ν¨.
μ½κ² μ€λͺ νμλ©΄:
1οΈβ£μ¬μ©μκ° μ΄λ€ νλ©΄( Dynpro )μμ κ°μ μ λ ₯νκ³ "μ μ₯" λ²νΌμ λλ₯΄λ©΄,
2οΈβ£μμ€ν μ μ΄ λμμ μ²λ¦¬νκΈ° μν΄ PAI( Process After Input ) μ΄λ²€νΈλ₯Ό μ€ννκ³ ,
3οΈβ£κ·Έ κ²°κ³Όμ λ°λΌ λ€μ νλ©΄μ PBO( Process Before Output ) λ‘μ§μ μ€λΉν ν,
4οΈβ£μ νλ©΄μ μ¬μ©μμκ² λ€μ 보μ¬μ£Όκ² λλ€.
μ΄ μ 체 νλ¦μ΄ νλμ Dialog Stepμ΄λΌκ³ μ΄ν΄νλ©΄ λλ€.
π μ°Έκ³ λ‘, μ΄λ° μν©μ μμ§ Dialog Step μ’ λ£ μμ μ΄ μλ.
- ν΄λΉ νλ©΄μ PAIμμ λ‘μ§ μ²λ¦¬ μ€μΌ λ
- λ€μ νλ©΄μ΄ κ²°μ λμμ§λ§ PBO μ€ν μ
- νλ©΄μ΄ μμ§ νμλμ§ μκ³ λ‘μ§μ΄ κ³μ μ§ν μ€μΌ λ
β WAIT λͺ λ Ήμ΄ μ΄ν
- ABAP νλ‘κ·Έλ¨μ νλμ μν¬ νλ‘μΈμ€(work process)μμ μ€νλλλ°, WAIT λͺ λ Ήμ΄λ₯Ό μ¬μ©νλ μκ°, νμ¬ μν¬ νλ‘μΈμ€λ₯Ό λ°λ©νκ³ μ€λ¨νκ² λλ€. μ΄ λ μλ 컀λ°μ μννλ€.
- WAIT UP TO n SECONDS, WAIT FOR ASYNCHRONOUS TASKS λ±μ΄ μλ€.
β RFC(Remote Function Call) νΈμΆ ν
- RFC νΈμΆμ νμ¬ μν¬ νλ‘μΈμ€μ μ μ΄κΆμ λ€λ₯Έ νλ‘μΈμ€λ‘ λκΈ°λ μμ μΌλ‘, μ΄ μμ μ νμ¬ DB νΈλμμ μ μ 리(=컀λ°)νμ§ μμΌλ©΄ μΌκ΄μ± λ¬Έμ κ° μκΈ°λ―λ‘ μλ 컀λ°μ μννλ€.
| RFC μ ν | μ€λͺ | μλ μ»€λ° μμ |
| sRFC (Synchronous) | λκΈ° λ°©μ, νΈμΆ μλ£κΉμ§ κΈ°λ€λ¦Ό | νΈμΆμ΄ λλκ³ νΈμΆν μͺ½μΌλ‘ λμμ¬ λ μν¬ νλ‘μΈμ€ μ ν λ°μ κ°λ₯ → μ»€λ° λ°μ |
| aRFC (Asynchronous) | λΉλκΈ° λ°©μ, νΈμΆ ν λ°λ‘ λ¦¬ν΄ | νΈμΆ μ§ν, μν¬ νλ‘μΈμ€ λ°λ© μ μ»€λ° |
| tRFC/qRFC (Transactional) |
νΈλμμ νμ λ±λ‘ | λ±λ‘ ν λ³λ μ λ°μ΄νΈ μμ μμ μ€νλ¨ |
| CALL FUNCTION ... STARTING NEW TASK |
λ³λ ¬ μ²λ¦¬λ₯Ό μν aRFC νμ₯ | νμ¬ νλ‘μΈμ€κ° λ°λ©λλ©΄μ μ»€λ° |
β CALL TRANSACTION USING μ κ²½μ° ( BDC νλ‘κ·Έλ¨ )
- CALL TRANSACTION USINGμΌλ‘ νΈλμμ μ μ€ννλ©΄, κ·Έ νΈλμμ λ΄λΆμμ COMMIT WORKκ° νΈμΆλλ©΄ Batch Input μΈμ μ΄ λλλ μν©μ΄ λ°μν¨
- BDC μ΅μ νλΌλ―Έν°μ RACOMMIT νλ ( default RACOMMIT = 'X' ) λ‘ μλ 컀λ°μ μ μ΄ν μ μλ€.
β νλ‘κ·Έλ¨ μ’ λ£ λͺ λ Ήμ΄ νΈμΆ λ λ
- LEAVE PROGRAM, LEAVE TO TRANSACTION κ³Ό κ°μ νλ‘κ·Έλ¨ μ’ λ£ μ μΈμ λͺ μμ μΌλ‘ commit workκ° μμΌλ©΄ μλ 컀λ°μ μνν¨.
β οΈ Internal Session( λ΄λΆ μΈμ ) μ’ λ£λ§ λ΄€μ λλ Auto Commitμ΄ μλμν¨
- SAPμμ λ΄λΆ μΈμ μ΄ μ’ λ£λλλΌλ, 그건 λ°μ΄ν°λ² μ΄μ€ μ»€λ° νΈλ¦¬κ±°κ° μλμ μλ―Ένλ€.
λ΄λΆ μΈμ μμ INSERT / UPDATEλ₯Ό μ€ννκ³ , κ·Έ μΈμ μ΄ CALL FUNCTION, CALL TRANSACTION, SUBMIT λ±μ λ°©μμΌλ‘ μ’ λ£λμ΄λ COMMIT WORKλ₯Ό λͺ μμ μΌλ‘ νΈμΆνμ§ μμΌλ©΄ Databaseμλ μ μ₯λμ§ μλλ€. λ¨ νΈμΆ νλ νλ‘κ·Έλ¨μμ μμμ μΈκΈνλ κ²½μ°κ° μλ€λ©΄, (λ€μ΄μΌλ‘κ·Έ μ€ν μ΄ μ’ λ£, BDC...) μ€ν 컀λ°μ΄ μνλμ΄ μ§ μ μλ€.
μ¦, λ΄λΆ μΈμ (π)μ λ Όλ¦¬μ μΈ νλ‘κ·Έλ¨ μ€ν λ¨μμ΄μ§, DB νΈλμμ μ μ’ λ£ μ‘°κ±΄μ΄ μλκΈ° λλ¬Έμ΄λ€.
π Internal Session( λ΄λΆ μΈμ ) μ΄λ?
SAP ABAPμμ νλ‘κ·Έλ¨μ΄ μ€νλ λ, κ° ABAP νλ‘κ·Έλ¨μ νλμ λ΄λΆ μΈμ (Internal Session)μμ μ€νλλ€. μλ₯Ό λ€μ΄, CALL TRANSACTION, SUBMIT, CALL FUNCTION (STARTING NEW TASK μ΅μ μ μ μΈ) λ±μ νμ¬ μμ μμμ μλ‘μ΄ Internal Sessionμ μμνκ±°λ μ’ λ£ν μ μλ€.
β‘οΈ Internal Session = λ 립λ νλ‘κ·Έλ¨ μ€ν 곡κ°
βΉοΈ κ°μ΄ μ½μΌλ©΄ μ’μ ν¬μ€ν
π [ABAP Concept (πκ°λ )/Advanced] - SAP LUW ( Logical Unit of Work ) μ½κ² μ΄ν΄νκΈ°
SAP LUW ( Logical Unit of Work ) μ½κ² μ΄ν΄νκΈ°
ABAP κ°λ°μ μμνκ³ μ΄λ μ λ μ΅μν΄μ§ μ¦μ, ν λ²μ―€ μ€μ³κ°λ κ°λ μ€μ νλκ° λ°λ‘ LUW(Logical Unit of Work)μ΄λ€.μ²μ μ΄ μ©μ΄λ₯Ό μ νλ©΄, λ§μΉ μ΄λ€ νΉμν νΈλμμ μ²λ¦¬ λ°©μ, νΉμ μ¬νλ DB
twossun.tistory.com
'ABAP Concept (πκ°λ ) > Advanced' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| μ΄λ²€νΈ λΈλ‘ / λ€μ΄μΌλ‘κ·Έ λͺ¨λλ³ MESSAGE νμ λμ μ°¨μ΄ (0) | 2025.05.15 |
|---|---|
| ABAP μμ Auto Rollbackμ λ체 μΈμ μ€νλλ κ±ΈκΉ? (0) | 2025.04.23 |
| SAP LUW ( Logical Unit of Work ) μ½κ² μ΄ν΄νκΈ° (0) | 2025.04.21 |
| Append Structureμ Include Structure ( + CI_* ) νμ₯μ μ°¨μ΄ (0) | 2025.04.15 |
| Internal Tableμ default key λ° κ΄λ ¨ μ΅μ ( with key ) (0) | 2025.04.14 |