1. BAPI COMMIT๊ณผ ROLLBACK ์ฌ์ฉ ์ด์
SAP์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋์ญ์ ์ ์ฒ๋ฆฌํ ๋ BAPI(Business Application Programming Interface)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
SAP BAPI๋ฅผ ํธ์ถํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ, ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅ(Commit)ํ ์ง ๋๋ ๋๋๋ฆด(Rollback)์ง ๊ฒฐ์ ํด์ผ ํฉ๋๋ค.
์ด๋ BAPI_TRANSACTION_COMMIT๊ณผ BAPI_TRANSACTION_ROLLBACK์ ์ฌ์ฉํฉ๋๋ค.
2. `BAPI_TRANSACTION_COMMIT`๋?
SAP์์ BAPI๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ ํ, ํด๋น ๋ณ๊ฒฝ ์ฌํญ์ ์๊ตฌ์ ์ผ๋ก ์ ์ฅ(Commit)ํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
- BAPI๋ฅผ ์คํํ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ฆ์ ์ ์ฅ๋์ง ์์ผ๋ฉฐ, ๋ช ์์ ์ผ๋ก `BAPI_TRANSACTION_COMMIT`์ ํธ์ถํด์ผ ์ต์ข ์ ์ฅ๋จ.
- ์ฌ๋ฌ ๊ฐ์ BAPI๋ฅผ ์คํํ ํ ์ต์ข ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ผ์ ๋ฐ์ํ๊ณ ์ถ์ ๋ ์ฌ์ฉ.
- `WAIT = 'X' `์ต์ ์ ์ฌ์ฉํ๋ฉด ๋๊ธฐ์ ์ปค๋ฐ(Synchronous Commit)์ด ์ํ๋จ.
์ฌ์ฉ ์์
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2' " ํ๋งค ์ค๋ ์์ฑ
EXPORTING
ORDER_HEADER_IN = LV_ORDER_HEADER
TABLES
ORDER_ITEMS_IN = LT_ITEMS
RETURN = LT_RETURN.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'. " ๋ณ๊ฒฝ ์ฌํญ ์ฆ์ ๋ฐ์
- `BAPI_SALESORDER_CREATEFROMDAT2`๋ฅผ ์ฌ์ฉํ์ฌ ํ๋งค ์ค๋(SO)๋ฅผ ์์ฑ.
- ๋ฐ์ดํฐ๊ฐ ์ค์ ์ ์ฅ๋์ง ์๊ณ ์ธ์ ๋ด์์๋ง ์ ์ง๋จ.
- `BAPI_TRANSACTION_COMMIT`์ ํธ์ถํด์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ต์ข ๋ฐ์๋จ.
3. `BAPI_TRANSACTION_ROLLBACK` ๋?
- ์คํ๋ BSPI์ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ทจ์(Undo) ํ๋ ์ญํ ์ ํจ.
- ํน์ BAPI๋ฅผ ์คํํ ํ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด, ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์๋์ง ์๋๋ก ๋กค๋ฐฑ(Rollback) ์ฒ๋ฆฌ.
- ์๋ฅผ ๋ค์ด, ๊ณ ๊ฐ์ ์์ฑํ๊ณ ๋งค์ถ์ ์์ฑํ๋ ๋ ๊ฐ์ BAPI๊ฐ ์คํ๋์๋๋ฐ, ๋งค์ถ ์์ฑ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ๊ณ ๊ฐ ์์ฑ๋ ์ทจ์ํด์ผ ํ ๋ ์ฌ์ฉ.
์ฌ์ฉ ์์
CALL FUNCTION 'BAPI_CUSTOMER_CREATE' " ๊ณ ๊ฐ ์์ฑ
EXPORTING
CUSTOMERDATA = LV_CUSTOMER_DATA
TABLES
RETURN = LT_RETURN.
IF LT_RETURN[] IS NOT INITIAL.
" ์ค๋ฅ ๋ฐ์ ์ ๋กค๋ฐฑ ์คํ
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
WRITE: / '๊ณ ๊ฐ ์์ฑ ์ค๋ฅ๋ก ์ธํด ๋กค๋ฐฑ๋์์ต๋๋ค.'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
WRITE: / '๊ณ ๊ฐ์ด ์ฑ๊ณต์ ์ผ๋ก ์์ฑ๋์์ต๋๋ค.'.
ENDIF.
- ` BAPI_CUSTOMER_CREATE`๋ฅผ ํธ์ถํ์ฌ ๊ณ ๊ฐ์ ์์ฑ.
- `LT_RETURN[]`์ ์ค๋ฅ ๋ฉ์์ง๊ฐ ์์ผ๋ฉด ๋กค๋ฐฑ(`BAPI_TRANSACTION_ROLLBACK`) ์คํํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ์ทจ์.
- ์ค๋ฅ๊ฐ ์์ผ๋ฉด ์ปค๋ฐ(`BAPI_TRANSACTION_COMMIT`) ์คํํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์.
4. ๋ฐ๋์ ์ฌ์ฉํด์ผ ํ๋ ์ด์
`BAPI_TRANSACTION_COMMIT`๊ณผ `BAPI_TRANSACTION_ROLLBACK`์ ๋ฐ๋์ ์ฌ์ฉํด์ผ ํ๋ ์ด์ .
SAP BAPI๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณ๊ฒฝ์ ์๋์ผ๋ก ์ปค๋ฐ(Commit)ํ์ง ์์.
์ฆ, `BAPI_TRANSACTION_COMMIT`์ ํธ์ถํ์ง ์์ผ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ง ์๊ณ ์ธ์ ์ด ์ข ๋ฃ๋๋ฉด ์ฌ๋ผ์ง.
๋ฐ๋๋ก, ์ค๋ฅ ๋ฐ์ ์ `BAPI_TRANSACTION_ROLLBACK`์ ํธ์ถํ์ง ์์ผ๋ฉด ์๋ชป๋ ๋ฐ์ดํฐ๊ฐ ๋ฐ์๋ ์ํ์ด ์์.
์ํฉ | `BAPI_TRANSACTION_COMMIT` ํธ์ถ |
`BAPI_TRANSACTION_ROLLBACK` ํธ์ถ |
๊ฒฐ๊ณผ |
์ ์ ์ฒ๋ฆฌ | โ ์คํ | โ ์คํ ์ํจ | ๋ฐ์ดํฐ๊ฐ ์ ์์ ์ผ๋ก ์ ์ฅ๋จ |
์ค๋ฅ ๋ฐ์ | โ ์คํ ์ํจ | โ ์คํ | ์ค๋ฅ๊ฐ ๋ฐ์ํ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ฌํญ์ด ์ทจ์๋จ |
์๋ฌด๊ฒ๋ ์คํ ์ ํจ | โ ์คํ ์ํจ | โ ์คํ ์ํจ | ์ธ์ ์ด ์ข ๋ฃ๋๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ด ์ฌ๋ผ์ง |
5. `BAPI_TRANSACTION_COMMIT`๊ณผ `WAIT = 'X'`์ ์ฐจ์ด
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
์ต์ | ์ค๋ช |
`WAIT = 'X'` | ๋๊ธฐ์ ์ปค๋ฐ(Synchronous Commit). ์ฆ, ์ปค๋ฐ์ด ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ ํ ๋ค์ ํ๋ก์ธ์ค๋ฅผ ์คํํจ. |
`WAIT` ์์ | ๋น๋๊ธฐ์ ์ปค๋ฐ(Asynchronous Commit). ์ปค๋ฐ์ ์์ฒญํ๊ณ ๋ฐ๋ก ๋ค์ ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณ๊ฒฝ์ด ์ฆ์ ๋ฐ์๋์ง ์์ ์ ์์. |
- ์ฆ, `WAIT = 'X'`๋ฅผ ์ฌ์ฉํ๋ฉด ํธ๋์ญ์ ์ด ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ฏ๋ก, ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ์ ์ฉ.
6. `BAPI_TRANSACTION_COMMIT`๊ณผ `COMMIT WORK` ์ฐจ์ด์
๋น๊ต ํญ๋ชฉ | BAPI_TRANSACTION_COMMIT | COMMIT WORK |
์ฌ์ฉ ๋์ | BAPI ์คํ ํ ์ฌ์ฉ | SAP ํ์ค ABAP ํธ๋์ญ์ ์์ ์ฌ์ฉ |
ํธ๋์ญ์ ์ฒ๋ฆฌ | BAPI๋ฅผ ํตํด ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ง ์ปค๋ฐ | ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ปค๋ฐ |
WAIT ์ต์ | `WAIT = 'X'` ์ฌ์ฉ ๊ฐ๋ฅ | `AND WAIT` ์ฌ์ฉ ๊ฐ๋ฅ |
- BAPI๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ `BAPI_TRANSACTION_COMMIT`์ ์ฌ์ฉํด์ผ ํจ.
- ์ผ๋ฐ์ ์ธ ๋ด๋ถ ํ ์ด๋ธ ์กฐ์ ๋ฑ์์๋ `COMMIT WORK` ์ฌ์ฉ ๊ฐ๋ฅ.
7. ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
- `BAPI_TRANSACTION_COMMIT`์ ํธ์ถํ์ง ์์ผ๋ฉด?
- ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋์์ด๋ ์ธ์ ์ด ์ข ๋ฃ๋๋ฉด ๋ฐ์๋์ง ์์.
- ์๋ฅผ ๋ค์ด, `BAPI_GOODSMVT_CREATE`๋ก ์ ๊ณ ๋ฅผ ํ๋๋ฐ ์ปค๋ฐ์ ํ์ง ์์ผ๋ฉด ์ค์ ๋ก ์ ๊ณ ๋์ง ์์.
- `BAPI_TRANSATION_ROLLBACK`์ ํธ์ถํ์ง ์์ผ๋ฉด
- ์ค๋ฅ ๋ฐ์ ์ ์๋ชป๋ ๋ฐ์ดํฐ๊ฐ ๋ฐ์๋ ๊ฐ๋ฅ์ฑ์ด ์์.
- ์๋ฅผ ๋ค์ด, ๊ณ ๊ฐ์ ์์ฑํ ํ ์ค๋ฅ๋ก ์ธํด ๊ฑฐ๋๊ฐ ์คํจํ๋๋ฐ, ๋กค๋ฐฑ์ ํ์ง ์์ผ๋ฉด ์๋ชป๋ ๊ณ ๊ฐ์ด ๋ฑ๋ก๋ ์๋ ์์.
8. ์ ๋ฆฌ
ํญ๋ชฉ | BAPI_TRANSACTION_COMMIT | BAPI_TRANSACTION_ROLLBACK |
๊ธฐ๋ฅ | ๋ณ๊ฒฝ ์ฌํญ์ **ํ์ (Commit)**ํ์ฌ DB์ ๋ฐ์ | ๋ณ๊ฒฝ ์ฌํญ์ **์ทจ์(Rollback)**ํ์ฌ DB ๋ฐ์ ๋ฐฉ์ง |
์ฌ์ฉ ๋ชฉ์ | BAPI ์คํ ํ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅ | ์ค๋ฅ ๋ฐ์ ์ ์ด์ ์ํ๋ก ๋ณต๊ตฌ |
ํธ์ถ ์์ | BAPI ์คํ ํ ๋ฐ์ดํฐ ์ ์ฅ์ด ํ์ํ ๋ | BAPI ์คํ ์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๋ |
์ฌ์ฉํ์ง ์์ผ๋ฉด? | ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฐ์๋์ง ์์ | ์๋ชป๋ ๋ฐ์ดํฐ๊ฐ ๋ฐ์๋ ์ ์์ |
'๐งโ๐ผ SAP > ABAP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SAP ABAP] ํ๋ก๊ทธ๋จ(๋ ํฌํธ) ์คํ ์์ (0) | 2025.02.06 |
---|---|
[SAP ABAP] T-CODE: SE38 (ABAP Editor) ์์ธ ์ค๋ช (0) | 2025.02.06 |
[SAP ABA] Pattern ์ฌ์ฉ๋ฒ CALL FUNCTION ํธ์ถ ๊ฐํธํ๊ฒ ์์ฑํ๊ธฐ (0) | 2025.01.24 |
[SAP ABAP] BAPI_REPMANCONF1_CREATE_MTS ์ฌ์ฉ ๋ฐฉ๋ฒ (0) | 2025.01.24 |
[SAP ABAP] ๊ด๊ณ ์ฐ์ฐ์ CO, CN, CA, NA, CS, NS, CP, NP ์์ ํฌํจ (0) | 2025.01.24 |