ABAP Concept (๐Ÿ“๊ฐœ๋…)/Basic

|ABAP ๊ฐœ๋…์ •๋ฆฌ| AT NEW, AT LAST, AT FIRST, AT END OF

two_ssun 2022. 7. 4. 22:48

 

์ด๋ฒˆ์— ์„ค๋ช…ํ•  AT ~ ENDAT ๊ตฌ๋ฌธ์€ LOOP AT ๊ตฌ๋ฌธ ๋‚ด์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ,

์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์˜ ์‹œ์ž‘๊ณผ ๋งˆ์ง€๋ง‰ ํ–‰, ํŠน์ • ํ•„๋“œ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์˜ ์‹œ์ž‘๊ณผ ๋งˆ์ง€๋ง‰ ํ–‰์„ Catch ํ•˜์—ฌ ์›ํ•˜๋Š” ๋กœ์ง์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค. 

 

์‹ค๋ฌด์—์„œ๋Š” ์ฃผ๋กœ ์ด๋Ÿฐ ๊ฒฝ์šฐ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. 

  • ํŠน์ • ํ•„๋“œ ๊ธฐ์ค€์œผ๋กœ ์ค‘๊ฐ„ ํ•ฉ๊ณ„ ๋˜๋Š” ์ดํ•ฉ๊ณ„ ์‚ฐ์ถœ ์‹œ
  • ํŠน์ • ํ•„๋“œ ๊ธฐ์ค€์œผ๋กœ Summary ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” ์žฌ๊ตฌ์„ฑ์‹œ
  • ์—‘์…€ ์—…๋กœ๋“œ ์‹œ Row์™€ Col์œผ๋กœ ๊ตฌ์„ฑ๋œ ์—‘์…€ ๋ฐ์ดํ„ฐ๋ฅผ ํŠน์ • ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”๋กœ ์ด๊ด€ ์‹œ

 


 LOOP AT ๊ตฌ๋ฌธ ๋‚ด์— ์‚ฌ์šฉ๋˜๋Š” AT ~ ENDAT ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด 4๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•˜๋ฉฐ,

ํ•ด๋‹น AT๊ตฌ๋ฌธ์— ๋งž๋Š” ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์˜ ํ–‰์ด Catch ๋˜๋ฉด, ๊ทธ ์•ˆ์˜ ์ž‘์„ฑํ•œ ๋กœ์ง์ด ์ˆ˜ํ–‰์ด ๋˜๋Š” ๊ตฌ์กฐ๋‹ค. 

 

  AT FIRST.  ~  ENDAT. ์ธํ„ฐ๋„ํ…Œ์ด๋ธ”์˜ ์ฒซ๋ฒˆ์งธ ํ–‰ ( SY-TABIX = '1' )
  AT LAST.  ~  ENDAT. ์ธํ„ฐ๋„ํ…Œ์ด๋ธ”์˜ ๋งˆ์ง€๋ง‰ ํ–‰ 
  AT NEW ํ•„๋“œ๋ช….  ~  ENDAT. ์ธํ„ฐ๋„ํ…Œ์ด๋ธ”์—์„œ ๋ช…์‹œํ•œ ํ•„๋“œ์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ์ด ์‹œ์ž‘๋œ ํ–‰
  AT END OF ํ•„๋“œ๋ช….  ~  ENDAT. ์ธํ„ฐ๋„ํ…Œ์ด๋ธ”์—์„œ ๋ช…์‹œํ•œ ํ•„๋“œ์˜ ๋ณ€๊ฒฝ๋œ ๊ฐ’์ด ๋๋‚˜๋Š” ํ–‰

 

< AT ๊ตฌ๋ฌธ ์˜ˆ์ œ >

๋‹ค์Œ์€ GT_ITAB์— ํ‘œ์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ๋•Œ, AT ~ ENDAT ๊ตฌ๋ฌธ์—์„œ Catch ๋˜๋Š” ํ–‰์„ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๋‹ค. 

CARRID ํ•„๋“œ ๊ฐ’์ด 'AC', 'AF', 'SQ'์ธ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๊ฐ€ 1๊ฑด๋งŒ ์กด์žฌํ•˜๋ฏ€๋กœ ๊ฐ ํ–‰๋งˆ๋‹ค at new CARRID์™€ at end of CARRID ๋‘˜ ๋‹ค ์ˆ˜ํ–‰๋˜๋ฉฐ, 'LH'์ธ ๊ฒฝ์šฐ ์‹œ์ž‘ํ•˜๋Š” 3ํ–‰์—์„œ at new CARRID๊ฐ€, ๋๋‚˜๋Š” 7ํ–‰์—์„œ at end of CARRID๊ฐ€ ์ˆ˜ํ–‰๋œ๋‹ค. at first๋Š” ์ฒซ์งธ ํ–‰์—์„œ, at last๋Š” ๋งˆ์ง€๋ง‰ ํ–‰์ธ 8ํ–‰์—์„œ ์ˆ˜ํ–‰๋œ๋‹ค. 

 

์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ ์˜ˆ์‹œ ๋ฐ์ดํ„ฐ ๊ธฐ์ค€์œผ๋กœ ๋งŒ์•ฝ at new CONNID ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด, 2ํ–‰์ด 1ํ–‰๊ณผ ๋™์ผํ•œ '820' ๊ฐ’์ž„์—๋„ at new CONNID ๊ตฌ๋ฌธ์ด ์ˆ˜ํ–‰๋œ๋‹ค๋Š” ์ ์ด๋‹ค. ์ด๊ฒƒ์€ at new CONNID ๊ตฌ๋ฌธ์ด CONNID ํ•„๋“œ๋งŒ ๋ณด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ทธ ์•ž์— ์„ ์–ธ๋œ ํ•„๋“œ(๋“ค) ๋˜ํ•œ ๊ธฐ์ค€ ํ•„๋“œ๋กœ ์ธ์‹ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ฆ‰, at new CONNID๋Š” ์•ž ํ•„๋“œ๊นŒ์ง€ ํฌํ•จํ•œ at new CARRID + CONNID ์˜๋ฏธ๋กœ ๋ณด๋ฉด ๋œ๋‹ค.

 

๋”ฐ๋ผ์„œ at new ~์™€ at end of ~ ์‚ฌ์šฉ ์‹œ์—๋Š” ๋‹ค์Œ ์‚ฌํ•ญ์„ ๊ผญ ์ฒดํฌํ•˜๋„๋ก ํ•˜์ž.

  • ๋ช…์‹œํ•œ ํ•„๋“œ ๊ธฐ์ค€์œผ๋กœ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์„ ์ •๋ ฌํ•  ๊ฒƒ
  • ๋ช…์‹œ๋œ ํ•„๋“œ๊ฐ€ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” ํ•„๋“œ ์ค‘ ๋ช‡ ๋ฒˆ์งธ ์ˆœ์„œ์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‚ฌ์šฉํ•  ๊ฒƒ

 


AT ~ ENDAT ๊ตฌ๋ฌธ ๋‚ด์—์„œ LOOP AT ๊ตฌ๋ฌธ์˜ Work area๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŠน๋ณ„ํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋ฏ€๋กœ ์ฝ”๋”ฉ ์‹œ ์œ ์˜ํ•ด์•ผ ํ•œ๋‹ค. 

  • AT ๊ตฌ๋ฌธ ๋‚ด์—์„œ๋Š” Work area ํ•„๋“œ ์ค‘ Character-type ํ•„๋“œ๋Š” ์ž๋ฆฟ์ˆ˜๋งŒํผ ' * ' ๋กœ ๋ณ€ํ™˜๋จ.
  • AT ๊ตฌ๋ฌธ ๋‚ด์—์„œ๋Š” Work area ํ•„๋“œ ์ค‘ Character-type ์™ธ ํ•„๋“œ๋Š” ์ดˆ๊ธฐ ๊ฐ’(Initial Value)์œผ๋กœ ๋ณ€ํ™˜๋จ.
  • at new ~ , at end of ~ ์—์„œ๋Š” ๋ช…์‹œํ•œ ํ•„๋“œ ํฌํ•จํ•˜์—ฌ ๋จผ์ € ์„ ์–ธ๋œ ํ•„๋“œ๋“ค์€ ๊ธฐ์กด ๊ฐ’ ์œ ์ง€. (๋ณ€ํ™˜ ์—†์Œ)
  • LOOP AT ๊ตฌ๋ฌธ ์•ˆ์—์„œ Work area ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด๋„ AT ๊ตฌ๋ฌธ์„ ๋“ค์–ด๊ฐ”๋‹ค ๋‚˜์˜ค๋ฉด ๋‹ค์‹œ ๊ธฐ์กด ๊ฐ’์œผ๋กœ ์›๋ณต ๋จ.

< at new CARRID ์—์„œ Catch ๋œ Work area( GS_ITAB ) >

์ด๋Ÿฌํ•œ ์ œ์•ฝ(?) ์‚ฌํ•ญ์œผ๋กœ ์‹ค๋ฌด์—์„œ๋Š” Work area์™€ ๋™์ผํ•œ ๊ตฌ์กฐ์ฒด๋ฅผ ๋ณ„๋„๋กœ ์„ ์–ธ ํ›„  AT ๊ตฌ๋ฌธ ์ „์— Work area์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด๋‹น ๊ตฌ์กฐ์ฒด์— ๋‹ด์•„ AT๊ตฌ๋ฌธ ๋‚ด์—์„œ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

ํ•˜๋‚˜ TIP์ด ์žˆ๋‹ค๋ฉด LOOP AT ๊ตฌ๋ฌธ์— Work area๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ASSIGNING <Field symbol>์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด AT ~ ENDAT ๊ตฌ๋ฌธ์—์„œ ์ด๋Ÿฐ ์ œ์•ฝ์‚ฌํ•ญ ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

์ถ”๊ฐ€๋กœ AT ~ ENDAT ๊ตฌ๋ฌธ ๋‚ด์— ๋ฐ์ดํ„ฐ ํ•ฉ๊ณ„ ์‹œ ์‚ฌ์šฉ๋˜๋Š” " SUM. " ๋‹จ๋… ๊ตฌ๋ฌธ์ด ์žˆ๋‹ค.  at first ~, at last ~ ๋Š” ์ „์ฒด ๋ฐ์ดํ„ฐ ๊ธฐ์ค€์œผ๋กœ, at new ~, at end of ~ ๋Š” ๋ช…์‹œํ•œ ํ•„๋“œ์˜ ๋ฐ์ดํ„ฐ ๊ธฐ์ค€์œผ๋กœ Numeric-type ํ•„๋“œ๊ฐ€ ํ•ฉ์‚ฐ๋˜์–ด ํ˜„์žฌ Work area์— ๋ฐ˜์˜๋œ๋‹ค. ๋ฌผ๋ก  ์•ž์„œ ๋งํ•œ ๊ฒƒ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐ๋œ ๊ฐ’์€ at ๊ตฌ๋ฌธ์„ ๋น ์ ธ๋‚˜์˜ค๋ฉด ๊ธฐ์กด ๊ฐ’์œผ๋กœ ๋Œ์•„์˜จ๋‹ค.

 

๋˜ํ•œ LOOP AT ๊ตฌ๋ฌธ์— WHERE ์กฐ๊ฑด์„ ๋„ฃ์—ˆ์„ ๊ฒฝ์šฐ์—” AT ๊ตฌ๋ฌธ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ”ผํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. AT ๊ตฌ๋ฌธ์€ ํ•ด๋‹น ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์˜ ์ „์ฒด ๋ฐ์ดํ„ฐ ๊ธฐ์ค€์œผ๋กœ ๋ผ์ธ์„ ์ฒดํฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— WHERE ์กฐ๊ฑด์œผ๋กœ ์ธํ•ด AT ๊ตฌ๋ฌธ์— ํ•ด๋‹นํ•˜๋Š” ํ–‰์ด SKIP ๋  ์ˆ˜ ์žˆ๋‹ค.