이글은 아래 링크의 원본 글에 대한 한글 번역 입니다
https://blogs.sap.com/2014/09/26/identify-changed-data-on-screen-in-web-dynpro-abap/

Identify changed data on screen in Web dynpro ABAP

September 26, 2014 

안녕하세요,

 

입력가능 필드가 있는데 여기에 사용자가 값을 변경하였는지 확인해야 하는 경우가 있습니다. 웹딘프로에서 화면에 연결된 데이타는 모두 컨텍스트에 저장된다는 것은 분명합니다. 변경여부를 파악하는데 코딩을 많이 하지 않고 간단히 알 수 있는 방법이 있습니다. 이 글에서 차근차근 그 방법을 알아보도록 하겠습니다.

 

예제 웹딘프로 컴포넌트에는 노드 하나 그아래 어트리뷰트 하나 있습니다.

이 어트리뷰트는 화면의 입력 필드에 바인딩할 것 입니다. 컨텍스트는 만들었으니 이제 화면 레이아웃을 만들어 보겠습니다.

Capture1.PNG

뷰의 레이아웃은 이렇게 생겼습니다.

Capture5.PNG

여기 있는 버튼을 누르면 입력 필드에 입력한 값이 변경 되었는지 검사하도록 하겠습니다. 이 버튼은 나중에 실제 "저장" 버튼이 될 수 도 있겠죠.

 

변경 여부를 확인하기 위해서 WDDOINIT에서 컨텍스트 변경 로그를 활성화 하겠습니다. 예제에서는 컴포넌트 컨트롤러에서 컨텍스트를 만들었기 때문에 이곳에 WDDOINIT 메소드에 코드를 입력하는 것입니다. 만약 다른 뷰에 컨텍스트를 만들었다면 뷰의 WDDOINIT 메소드에 코드를 입력하면 됩니다.

Capture2.PNG

컴포넌트 컨트롤러에 메소드 하나를 만듭니다. 이름은 "GET_CHANGE_LOG" 이고 아래 코드를 입력합니다. 이 메소드는 뷰에서 호출할 것입니다.

 

Capture3.PNG

Capture4.PNG

테이블 IT_LIST 에는 변경된 필드의 값이 담겨 있습니다.

아래는 테스트 결과입니다:

 

어플리케이션을 실행하고 값 입력 없이 버튼을 눌러 봅니다.

 

Capture7.PNG

인터널 테이블 IT_LIST 에는 아무것도 들어 있지 않습니다.

Capture6.PNG

이번에는 값을 아무거나 입력하고 버튼을 눌러 봅니다.

Capture9.PNG

이번에는 인터널 테이블에 변경된 필드의 값이 들어 있습니다.

Capture8.PNG

 

 

이 글이 도움이 되시길 바랍니다.

 

감사합니다,

Shitanshu Sahai

"꾸준히 공부하고 젊은 감각을 유지합시다”

 

 

이글은 아래 링크의 원본 글에 대한 한글 번역 입니다
https://blogs.sap.com/2014/09/26/identify-changed-data-on-screen-in-web-dynpro-abap/

+ Recent posts