๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿง‘‍๐Ÿ’ผ SAP/ABAP

[SAP ABAP] BAPI ๋ž€? BAPI ์˜ˆ์ œ

by Jay Din 2024. 12. 23.
728x90
๋ฐ˜์‘ํ˜•

1. BAPI(Business Application Programming Interface) ๋ž€?

BAPI๋Š” SAP์˜ ํ‘œ์ค€ํ™”๋œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ, SAP ์‹œ์Šคํ…œ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๊ฐ์ฒด(Business Object)์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ๋‹ค๋ฅธ SAP ๋ชจ๋“ˆ์—์„œ SAP ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ฝ๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

ํ•ต์‹ฌ ๊ฐœ๋…:

  1. Business Object:
    • SAP์—์„œ ํŠน์ • ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์—”ํ‹ฐํ‹ฐ. ์˜ˆ: ๊ณ ๊ฐ(Customer), ํŒ๋งค ์˜ค๋”(Sales Order), ์ž์žฌ(Material) ๋“ฑ.
  2. RFC(์›๊ฒฉ ํ•จ์ˆ˜ ํ˜ธ์ถœ):
    • BAPI๋Š” RFC ๊ธฐ์ˆ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•˜๋ฉฐ, SAP ๋‚ด์™ธ๋ถ€ ๊ฐ„์˜ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

 

2. BAPI ์ž‘๋™ ์›๋ฆฌ

์ž‘๋™ ํ๋ฆ„

  1. ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ์ค€๋น„: BAPI๊ฐ€ ์š”๊ทœํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ(์ž…๋ ฅ๊ฐ’)์„ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค.
  2. BAPI ํ˜ธ์ถœ: CALL FUNCTION์„ ํ†ตํ•ด BAPI๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ฒฐ๊ณผ ์ฒ˜๋ฆฌ: ๋ฐ˜ํ™˜๊ฐ’(Return Table)์„ ํ™•์ธํ•˜๊ณ , ํ•„์š”ํ•œ ํ›„์† ์ž‘์—…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ์š”์†Œ

  1. Exporting: ํ˜ธ์ถœ ์‹œ ์ „๋‹ฌ๋˜๋Š” ์ž…๋ ฅ๊ฐ’
  2. Importing: ํ˜ธ์ถœ ํ›„ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฒฐ๊ณผ๊ฐ’
  3. Tables: ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ์˜ ์ž…๋ ฅ/์ถœ๋ ฅ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ…Œ์ด๋ธ” ํ˜•ํƒœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ
  4. Return: BAPI ํ˜ธ์ถœ ๊ฒฐ๊ณผ ๋ฉ”์‹œ์ง€(์„ฑ๊ณต, ์˜ค๋ฅ˜ ๋“ฑ).

 

3. BAPI ์‚ฌ์šฉ๋ฒ•

BAPI ์˜ˆ์‹œ

  1. BAPI ์กฐํšŒ,๋ณ€๊ฒฝ, ์ƒ์„ฑ (T-Code:SE37)
    • SE37: ํ•จ์ˆ˜ ๋ชจ๋“ˆ์„ ์กฐํšŒ, ๋ณ€๊ฒฝ, ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์ž…๋ ฅ/์ถœ๋ ฅ ๊ตฌ์กฐ ๋ถ„์„
    • BAPI ์ธํ„ฐํŽ˜์ด์Šค์˜ Exporting, Importing, Tables, Return ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค
  3. ๋ฐ์ดํ„ฐ ์ค€๋น„
    1. ํ•„์š”ํ•œ ํ•„์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ํƒ€์ž…์„ ์ •ํ™•ํžˆ ๋งž์ถฐ์•ผ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

4. BAPI ์˜ˆ์ œ

๋‹ค์Œ์€ ๊ณ ๊ฐ์˜ ์ฃผ์†Œ๋ฅผ ์กฐํšŒํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

" ๋ณ€์ˆ˜ ์„ ์–ธ
DATA: LV_CUSTOMER_NUMBER TYPE KUNNR,            " ๊ณ ๊ฐ ๋ฒˆํ˜ธ
      LS_CUSTOMER_DATA TYPE BAPICUSTOMER_04,    " ๊ณ ๊ฐ ์ฃผ์†Œ ๋ฐ์ดํ„ฐ
      LT_RETURN TYPE TABLE OF BAPIRET2,         " ๋ฐ˜ํ™˜ ๋ฉ”์‹œ์ง€ ํ…Œ์ด๋ธ”
      LS_RETURN TYPE BAPIRET2.                  " ๋ฐ˜ํ™˜ ๋ฉ”์‹œ์ง€

" ๊ณ ๊ฐ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ
PARAMETERS: P_CUSTNO TYPE KUNNR OBLIGATORY.

START-OF-SELECTION.

  " ์ž…๋ ฅ๋ฐ›์€ ๊ณ ๊ฐ ๋ฒˆํ˜ธ๋ฅผ ๋ณ€์ˆ˜์— ์ €์žฅ
  LV_CUSTOMER_NUMBER = P_CUSTNO.

  " BAPI ํ˜ธ์ถœ
  CLEAR: LS_CUSTOMER_DATA, LT_RETURN.

  CALL FUNCTION 'BAPI_CUSTOMER_GETDETAIL2'
    EXPORTING
      CUSTOMERNO      = LV_CUSTOMER_NUMBER          " ์ž…๋ ฅ๋ฐ›์€ ๊ณ ๊ฐ ๋ฒˆํ˜ธ
    IMPORTING
      CUSTOMERADDRESS = LS_CUSTOMER_DATA.            " ๋ฐ˜ํ™˜๋œ ๊ณ ๊ฐ ์ฃผ์†Œ ๋ฐ์ดํ„ฐ
*    TABLES
*      RETURN          = LT_RETURN.                  " ๋ฐ˜ํ™˜ ๋ฉ”์‹œ์ง€ ํ…Œ์ด๋ธ”

  " ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ํ™•์ธ
  IF LS_CUSTOMER_DATA IS INITIAL.
    WRITE: '๊ฐ€์ ธ ์˜ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.'.
  ELSE.
    " ๊ณ ๊ฐ ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ
    WRITE: / 'Customer Name:', LS_CUSTOMER_DATA-NAME,
           / 'Street:', LS_CUSTOMER_DATA-STREET,
           / 'City:', LS_CUSTOMER_DATA-CITY.
  ENDIF.

์‹คํ–‰๊ฒฝ๊ณผ

 

5. BAPI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

  1. SAP ์™ธ๋ถ€์™€์˜ ํ†ต์‹ :
    • ์™ธ๋ถ€ ์‹œ์Šคํ…œ(Java, .NET, Python ๋“ฑ)์ด SAP ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์“ฐ๋Š” ๊ฒฝ์šฐ
    • ์˜ˆ: ์ „์ž์ƒ๊ฑฐ๋ž˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ SAP ์ฃผ๋ฌธ ๋ฐ์ดํ„ฐ๋ฅผ ํ˜ธ์ถœ
  2. SAP ๋‚ด๋ถ€ ๋ชจ๋“ˆ ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ:
    • SAP ๋‚ด๋ถ€ ๋‹ค๋ฅธ ๋ชจ๋“ˆ ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ
    • ์˜ˆ: SD ๋ชจ๋“ˆ์—์„œ FI ๋ชจ๋“ˆ๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ
  3. ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ:
    • ํšจ์œจ์ ์ด๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ๋•Œ
    • ์˜ˆ: ์ž์žฌ ๋ชฉ๋ก ์กฐํšŒ
  4. ํ‘œ์ค€ํ™”๋œ ํ”„๋กœ์„ธ์Šค ํ˜ธ์ถœ:
    • SAP ํ‘œ์ค€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์žฌ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ์ ˆ์•ฝ

 

6. BAPI ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์ 

  1. ์ธํ„ฐํŽ˜์ด์Šค ํŒŒ์•…
    • BAPI๊ฐ€ ์š”๊ทœํ•˜๋Š” ์ž…๋ ฅ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ํ•„์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ˆ„๋ฝ ์‹œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  2. ์„ฑ๋Šฅ ๊ณ ๋ ค
    • ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒฝ์šฐ ์ ์ ˆํžˆ ์ตœ์ ํ™”๋œ BAPI๋ฅผ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๋น„ํšจ์œจ์ ์ธ BAPI ํ˜ธ์ถœ์€ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

7. BAPI ์‚ฌ์šฉ์„ ํ”ผํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

  1. ๋‹จ์ˆœ ๋ฐ์ดํ„ฐ ์กฐ์ž‘:
    • ๋‹จ์ˆœํ•œ ๋ฐ์ดํ„ฐ ์กฐํšŒ๋‚˜ ๋ณ€๊ฒฝ ์ž‘์—…์€ ์ง์ ‘ SQL์„ ์‚ฌ์šฉํ•˜ ๊ฒƒ์ด ๋” ์ ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ๋ฐ์ดํ„ฐ ์–‘์ด ๋งค์šฐ ํฐ ๊ฒฝ์šฐ:
    • BAPI๋Š” ํŠน์ • ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ํฌํ•จํ•˜๋ฏ€๋กœ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ „์†ก์—๋Š” ๋น„ํšจ์œจ์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋Œ€๊ทœ๋ชจ ์ž‘์—…์—๋Š” IDOC์ด๋‚˜ Batch Input์„ ๊ณ ๋ คํ•ด๋ณด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  3. ํ…Œ์ด๋ธ”์„ ์ง์ ‘ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ:
    • BAPI๋Š” ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜์ง€๋งŒ, ํ‘œ์ค€ ํ…Œ์ด๋ธ”์„ ์ง์ ‘ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ์ ์ ˆํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

8. BAPI์™€ ๋‹ค๋ฅธ ๊ธฐ์ˆ ์˜ ๋น„๊ต

๊ธฐ์ˆ  ํŠน์ง• ์‚ฌ์šฉ ์‚ฌ๋ก€
BAPI SAP ํ‘œ์ค€ API, ๋น„์ฆˆ๋‹ˆ์Šค ๊ฐ์ฒด์— ํŠนํ™” ๋ฐ์ดํ„ฐ ์กฐํšŒ/์ˆ˜์ •, SAP-์™ธ๋ถ€ ํ†ต์‹ 
RFC ์›๊ฒฉ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ธํ„ฐํŽ˜์ด์Šค SAP ๊ฐ„ ๋˜๋Š” SAP-์™ธ๋ถ€ ์‹œ์Šคํ…œ ํ†ต์‹ 
IDOC ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ „์†ก, ๋น„๋™๊ธฐ ๋ฐฉ์‹ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ „์†ก ๋ฐ ํ†ตํ•ฉ
Batch Input ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ, ํ‘œ์ค€ ํŠธ๋žœ์žญ์…˜ ์‚ฌ์šฉ ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ

 

 

 

728x90
๋ฐ˜์‘ํ˜•