ABAP Implimentation (๐Ÿ› ๏ธ์‹ค๋ฌด)/ALV

|ALV| cl_salv_bs_runtime_info์œผ๋กœ ํƒ€ ํ”„๋กœ๊ทธ๋žจ ALV Data ๊ฐ€์ ธ์˜ค๊ธฐ ( feat. SUBMIT )

two_ssun 2023. 11. 14. 22:51

ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋‹ค ๋ณด๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

 

ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์ด Function์ด๋‚˜ Method ๋กœ ๋ชจ๋“ˆํ™”๊ฐ€ ์ž˜ ๋˜์–ด ์žˆ๋‹ค๋ฉด ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์™€ ์•ฝ๊ฐ„์˜ ์ˆ˜์ •์œผ๋กœ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋ถ„์„์กฐ์ฐจ ํž˜๋“  ๋ณต์žกํ•˜๊ณ  ๊ธด ๋กœ์ง์ด๋ผ๋ฉด ์‰ฝ์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค. ABAP MEMORY( EXPORT / IMPORT )๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ๋„ ํ•˜๋Š”๋ฐ, ๊ธฐ์กด ํ”„๋กœ๊ทธ๋žจ์—๋„ Export ๋กœ์ง์„ ์ถ”๊ฐ€ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ๋‹ค. 

 

๋งŒ์•ฝ ๋ ˆํฌํŠธ ๊ฒฐ๊ณผ๋ฌผ์ด ALV ๋กœ ๋ณด์—ฌ์ง„๋‹ค๋ฉด, CLASS cl_salv_bs_runtime_info ์™€ SUBMIT์„ ์ด์šฉํ•ด ์‰ฝ๊ฒŒ ALV์˜ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์Šค๋ƒ…์ƒท ํ•ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค.  

 


 

์‚ฌ์šฉ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

 

Step 1.  ALV ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ์™€ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ( ALV์˜ Fieldcatalog๋‚˜ Layout ์ •๋ณด ๋“ฑ ), Display ์—ฌ๋ถ€ ์„ค์ •

   Display ์—ฌ๋ถ€ ( Display Parameter ) 

   ALV ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ฌ์ง€ ์—ฌ๋ถ€ ( DATA Parameter ),

   ALV ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ฌ์ง€ ์—ฌ๋ถ€ ( METADATA Parameter ),

   

cl_salv_bs_runtime_info=>set(  EXPORTING
                                                          display     = abap_off                        

                                                          metadata  = abap_on
                                                          data          = abap_on ).        

 

Step 2.  ALV ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ ์ž ํ•˜๋Š” ๋ ˆํฌํŠธ ํ”„๋กœ๊ทธ๋žจ ํ˜ธ์ถœ

SUBMIT  report program AND RETURN 

 

Step 3.  Step 1์—์„œ metadata๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์œผ๋กœ(  =  'X' ) ์„ค์ •ํ–ˆ๋‹ค๋ฉด METHOD get_metadata ํ˜ธ์ถœ

             : Return ๊ฐ’์œผ๋กœ ALV metadata ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. 

DATA(ls_meta) = cl_salv_bs_runtime_info=>get_metadata( ).

 

Step 4. Step 1์—์„œ ALV output data๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์œผ๋กœ(  =  'X' ) ์„ค์ •ํ–ˆ๋‹ค๋ฉด METHOD get_data_ref ํ˜ธ์ถœ 

             : ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋Š” ๋ฐ์ดํ„ฐ ์ฐธ์กฐ ๋ณ€์ˆ˜๋กœ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ํ•„๋“œ ์‹ฌ๋ณผ์— ํ• ๋‹นํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

cl_salv_bs_runtime_info=>get_data_ref( IMPORTING r_data = DATA(lr_data) ).     
ASSIGN lr_data->* TO <fs_itab>.

 

Step 5.  ๊ฐ€์ ธ์™”๋˜ ALV ๋ฐ์ดํ„ฐ๋ฅผ ํด๋ฆฌ์–ด

cl_salv_bs_runtime_info=>clear_all( ).

 


 

์žฅ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

1.  ๊ธฐ์กด ๋ ˆํฌํŠธ์˜ ๋กœ์ง ๋ถ„์„ ์—†์ด ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
2.  ๋งˆ์ง€๋ง‰ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์Šค๋ƒ…์ƒทํ•˜๋ฏ€๋กœ ๊ธฐ์กด ๋ ˆํฌํŠธ์˜ ๋กœ์ง ๋ณ€๊ฒฝ์‹œ์— ๋กœ์ง ์ด์›ํ™”์— ๋Œ€ํ•œ ๋ฆฌ์Šคํฌ๊ฐ€ ์—†๋‹ค. 
3.  ๊ธฐ์กด ๋ ˆํฌํŠธ์—๋„ ์ˆ˜์ •์ด ํ•„์š”ํ–ˆ๋˜  ABAP MEMORY ๋ฐ์ดํ„ฐ ์ธํ„ฐํŽ˜์ด์Šค ๋ฐฉ์‹์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 


 

์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋‹ค์Œ๊ณผ ์ œ์•ฝ์‚ฌํ•ญ์„ ์ฒดํฌํ•ด ๋ด์•ผ ํ•œ๋‹ค. 

1.  Background ์ˆ˜ํ–‰์‹œ ๊ธฐ์กด ๋ ˆํฌํŠธ๊ฐ€ CLASS ALV ๊ฒฝ์šฐ์—” ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Œ.
     ( CNTL_ERROR dump - Screen Container issue )

2.  ๊ธฐ์กด ๋ ˆํฌํŠธ๊ฐ€ ALV ๋ ˆํฌํŠธ๊ฐ€ ์•„๋‹Œ ๋ ˆํฌํŠธ์—๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ.