SAP/ABAP

ABAP Dynamic Internal Table 을 Read Table 하기

그녀는애교쟁이 2014. 7. 16. 14:04
반응형

최근 Dynamic Internal Table 을 이용한 프로그램을 많이 만들었다. ( 된장찌게 엄청 빡세고 내용만 엄청 길어져서 다 갈아내고 싶다. ) 이전에 Dynamic Internal Table 을 생성하는 포스팅을 했었다.



[SAP/ABAP] - 동적 인터널 테이블을 만들때 deep structure 로 생성하기


그런데 프로그램을 개발하도 보니 Internal Table 의 최대 장점인 Read Table 을 사용하기에 애매한 부분이 생겼다. 그냥 선언해서 사용하는 Internal Table 의 경우 Field 명을 그냥 with key Field = 'XXX' 이런식으로 사용이 가능한데 Dynamic 하게 생성한 Internal Table 은 Field 자체를 고정 할 수 없어서 with Key~ 식의 코드를 사용 할 수가 없기 때문이다. 


외국에도 이러한 질문이 많이 올라왔는데 오늘 참고한 사이트는 개발자들의 성지 Stackoverflow 이다. 이전에 웹개발했을때는 참 많이 참고 했었는데, SAP로 오고나서 부터는 관련내용이 별로 없는거 같아 많이 사용하지 않았는데 오랜만에 이러한 내용이 발견되어 참 기쁘다. 


http://stackoverflow.com/questions/10802336/abap-reading-dynamic-internal-table-cannot-specify-key


질문자는 Dynamic Internal Table 을 어떻게 읽느냐? 이다. 중간에 답변을 보면 직접 필드를 지정은 안되니, 변수를 선언하고 변수에 필드명을 넣고 with key (변수명) 이런식으로 처리하라고 되어 있다.실제로 해보니 잘된다.. 아주 잘 된다.. 물론 질문자의 의도에 맞는 해답은 아니었지만 내가 찾던 내용이었다. 


답변자가 남긴 예제 코드를 남기면서 이번 포스팅을 마쳐야겠다.


DATA: field type string.

field = 'MANDT'.

READ TABLE <any_tab> ASSIGNING <any_wa> WITH KEY (field) = '800'. 
IF sy-subrc = 0.
  "do stuff with <any_wa>...
ENDIF.

- 끗 -