먼저... OK 코드를 강제로 생성시키려면 간단히 cl_gui_cfw=>set_new_ok_code 메소드를 호출하면 됩니다.
data: l_ucomm type sy-ucomm.
l_ucomm = 'DUMMY'.
call method cl_gui_cfw=>set_new_ok_code
exporting
new_code = l_ucomm.
이것의 응용은... 주로 Data changed 이벤트에서 화면과 인터널테이블과의 동기를 맞춰주기 위해 사용합니다.
예를들면 그리드 화면에 마라에 있는 자재코드 여러개를 쭉 복사해서 붙여 놓으면
관련된 디스크립션이나 수량정보 등을 가져오는 프로그램을 생각할 수가 있는데요...
이때 Ctrl + V 만으로 Data Change Event 가 발생이되고...
그러나...
화면의 붙여넣은 데이터는 Internal Table 에 존재하지 않습니다..
그래서 이것을 동기화 시켜주기위해 mt_modi_cells 를 이용하여 로직을 구현하여야 하는데...
이런 불편함을 덜기 위해..
ok_code 를 발생시키고 user_command 에서 받아 처리해 주면... 화면값과 iternal table 간의 동기화는
자동으로 되므로.. 애써 로직 구현을 하지 않아도 됩니다..
그리고 이 메소드를 사용하기 위해 그리드 생성시 application event 는 주면 안됩니다..
제가 간단히 만든 실 예제 참조.... 하세요..