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

[SAP ABAP] ํ•„๋“œ ์‹ฌ๋ณผ<FIELD-SYMBOS> ๋ž€? ์žฅ๋‹จ์ , ์‚ฌ์šฉ๋ฒ• ์˜ˆ์ œ

by Jay Din 2025. 8. 5.
728x90
๋ฐ˜์‘ํ˜•

FIELD-SYMBOLS ๋ž€?

`FIELD-SYMBOLS` ๋Š” ABAP์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์˜ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•œ ํฌ์ธํ„ฐ(Pointer) ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.

์ฆ‰, `FIELD-SYMBOLS`๋Š” ์–ด๋–ค ๋ณ€์ˆ˜๋‚˜ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์˜ ํ–‰, ๊ตฌ์กฐ, ํ•„๋“œ ๋“ฑ์— ์ง์ ‘ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ "๋ณ„์นญ(alias)" ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

 

SAP์˜ ๊ณต์‹ ์ •์˜์— ๋”ฐ๋ฅด๋ฉด:

"Field symbols are placeholders or symbolic names for other fields."

 

์™œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

๋ชฉ์  ์„ค๋ช…
์„ฑ๋Šฅ ํ–ฅ์ƒ ๋ฐ์ดํ„ฐ ๋ณต์‚ฌ ์—†์ด ์ฐธ์กฐ๋กœ ์ ‘๊ทผํ•˜์—ฌ ์†๋„ ํ–ฅ์ƒ
์›๋ณธ ๋ฐ์ดํ„ฐ ์ˆ˜์ • ์ฐธ์กฐ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
์œ ์—ฐํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹คํ–‰ ์‹œ์ (๋Ÿฐํƒ€์ž„)์— ์–ด๋–ค ํ•„๋“œ๋ฅผ ์ฐธ์กฐํ• ์ง€ ๊ฒฐ์ • ๊ฐ€๋Šฅ
๋ณต์žกํ•œ ๊ตฌ์กฐ ๋‹ค๋ฃจ๊ธฐ ๋™์  ํ•„๋“œ๋ช…, ๋™์  ํ…Œ์ด๋ธ” ์ ‘๊ทผ ๋“ฑ์—์„œ ์œ ์šฉ

 

์„ ์–ธ ๋ฐฉ์‹

FIELD-SYMBOLS: <fs> TYPE sflight.  		 	" ๊ตฌ์กฐ ์ฐธ์กฐ
FIELD-SYMBOLS: <lv> TYPE any.      		 	" ์ž„์˜ ํƒ€์ž… ์ฐธ์กฐ
FIELD-SYMBOLS: <line> TYPE LINE OF itab. 	" ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” ํ–‰ ์ฐธ์กฐ

 

๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

1. ๋‹จ์ผ ๋ณ€์ˆ˜ ์ฐธ์กฐ

DATA LV_NAME TYPE STRING VALUE 'Lee'.

FIELD-SYMBOLS: <FS_NAME> TYPE STRING.

ASSIGN LV_NAME TO <FS_NAME>.
<FS_NAME> = 'SAP Developer'.

WRITE: <FS_NAME>.

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

 

2. ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” ํ–‰ ์ฐธ์กฐ

DATA: LT_FLIGHTS TYPE STANDARD TABLE OF SFLIGHT.
FIELD-SYMBOLS: <FS_ROW> TYPE SFLIGHT.

SELECT * INTO TABLE LT_FLIGHTS FROM SFLIGHT.

LOOP AT LT_FLIGHTS ASSIGNING <FS_ROW>.
  WRITE: / <FS_ROW>-CARRID.
ENDLOOP.

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

 

ASSIGN ๋ฌธ๋ฒ•

ASSIGN source TO <fs> [CASTING] [TYPE type] [RANGE CHECKING].

 

ASSIGN ์‹œ ์ฃผ์˜์‚ฌํ•ญ

  • ASSIGN ์‹คํŒจ ์‹œ `<FS>`๋Š” `assigned ์ƒํƒœ`๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
  • ์ด๋Ÿฐ ๊ฒฝ์šฐ ๋ฐ˜๋“œ์‹œ ๋ฐฉ์–ด ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ASSIGN lv_value TO <fs_val>.
IF <fs_val> IS ASSIGNED.
  WRITE <fs_val>.
ENDIF.

 

FIELD-SYMBOLS vs WORK AREA ๋ฐฉ์‹

`INTO` vs `ASSIGNING`

ํ•ญ๋ชฉ `INTO` ์‚ฌ์šฉ `ASSIGNING` + `FIELD-SYMBOLS`
๋™์ž‘ ๋ฐฉ์‹ ๋ฐ์ดํ„ฐ ๋ณต์‚ฌ ์ฐธ์กฐ (๋ฉ”๋ชจ๋ฆฌ ๊ณต์œ )
์„ฑ๋Šฅ ์ผ๋ฐ˜์  ๋Œ€์šฉ๋Ÿ‰์ผ์ˆ˜๋ก ์œ ๋ฆฌ
์›๋ณธ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€ ๊ฐ€๋Šฅ
์•ˆ์ •์„ฑ ๋†’์Œ ๋‚ฎ์Œ(IS ASSIGNED ์ฒดํฌ ํ•„์š”)
์‚ฌ์šฉ ๋ชฉ์  ์ฝ๊ธฐ ์ˆ˜์ • ๋˜๋Š” ๋Œ€์šฉ๋Ÿ‰ ์ฒ˜๋ฆฌ

 

ํŠน์ • ํ•„๋“œ ๋™์  ์ ‘๊ทผ ์ง์ ‘ ์ˆ˜์ •

`CARRID` ํ•„๋“œ๊ฐ€ `LH`์ธ ๊ฐ’์„ `??`์ˆ˜์ •ํ•˜๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

FIELD-SYMBOLS: <FS_DATA> TYPE SFLIGHT.

DATA: LT_DATA TYPE STANDARD TABLE OF SFLIGHT.

SELECT *
  INTO TABLE LT_DATA
  FROM SFLIGHT.


WRITE: / '- ์ˆ˜์ • ์ „: ์ „์ฒด ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ - '.
LOOP AT LT_DATA ASSIGNING <FS_DATA>.
  WRITE: / <FS_DATA>-CARRID, <FS_DATA>-CONNID .
ENDLOOP.

WRITE: / '- ์ˆ˜์ • ์ค‘ - '.
LOOP AT LT_DATA ASSIGNING <FS_DATA>.
  IF <FS_DATA>-CARRID = 'LH'.
    <FS_DATA>-CARRID = '??'.
*    WRITE: / <FS_DATA>-CARRID, <FS_DATA>-CONNID .
  ENDIF.

ENDLOOP.

WRITE: / '- ์ˆ˜์ • ํ›„: ์ „์ฒด ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ - '.

LOOP AT LT_DATA ASSIGNING <FS_DATA>.
  WRITE: / <FS_DATA>-CARRID, <FS_DATA>-CONNID .
ENDLOOP.

์ถœ๋ ฅ ๊ฒฐ๊ณผ

 

 

728x90
๋ฐ˜์‘ํ˜•