반응형

    이전 포스팅에서 Maintenance View와 Maintenance Dialog를 생성하여 데이터를 유지보수하는 방법을 살펴보았습니다.

    가장 흔하게 사용하는 21번 Events를 이용하여 필드에 값을 채우는 예제 또한 보았습니다. 

     

    이번에는 Maintenance Dialog가 있는 펑션그룹에 자동으로 생성되는 화면과 소스를 수정하여 회사코드에 따른 권한을 체크하는 로직을 추가하는 예제를 살펴보는 것으로 Maintenance View와 Maintenance Dialog 포스팅을 마무리하겠습니다.

     

    1) 회사코드 BUKRS 가 포함된 유지보수뷰를 하나 생성합니다.

     

    회사코드 필드에 'S' View field is used to form subsets 세팅을 하면 Maintenance Dialog 실행 시 해당 필드를 먼저 입력하게 할 수 있습니다.

     

    2) 유지보수 Dialog를 생성하고 01, 05, 25번 이벤트를 사용 가능하게 코딩합니다.

    이번 예제에서는 01, 05가 꼭 필요하지는 않으나 범용으로 세팅해 두겠습니다.

     

    필자는 보통 이벤트를 위한 Form 문을 이벤트 번호를 붙여 생성하고 그것이 들어가는 Include명을 뷰나 테이블 명을 사용하여 나중에 이 include에 모여있는 코딩이 어느 Object 것인지 구분할 수 있게 합니다만. 필수가 아닌 취향입니다.

    3) 01, 05, 25번 Form 문에 권한을 체크하는 코딩을 해줍니다.

    회사코드를 체크하는 권한 오브젝트에 입력받은 회사코드를 파라미터로 넣어 체크하면 되겠습니다.

     

    여기서 핵심사항은 25번에서 'S' 세팅을 한 필드의 값을 어떻게 읽어오느냐가 되겠습니다. 이전 글 중 

    Search Help Exit을 보면 그 값을 가진 테이블들을 찾아 사용하는 것을 보았습니다. 

    2020.12.18 - [ABAP] - [SAP ABAP 강좌 10] Search Help - Exit

     

    [SAP ABAP 강좌 10] Search Help - Exit

    이전 글에서는 기본적인 Search Help의 생성과 각 항목이 가지는 의미를 살펴보았다. 기본적인 Elementay Search Help의 경우 Table, View 등의 제공되는 데이터를 보여주는 기능이라면, 사용자가 생성한 임

    stepwith.tistory.com

     

    유지보수 뷰 펑션 그룹도 그러한 값을 가진 오브젝트를 찾아 사용하여야 합니다.

    LSVIMDAT include 안의 <vim_auth_sellist> Field Symbol이 입력한 데이터 값을 가지고 있습니다. 여기 있는 Value  값을 사용하면 됩니다.

    4) SCREEN의 PBO에 권한 체크 MOUDLE 넣어주기.

    지난 포스팅에서 유지보수 Dialog가 모여있는 펑션 그룹도 수정이 가능하다 했으니 해당 Screen으 직접 수정하여 보겠습니다. 만약 Maintenance Dialog를 삭제하고 다시 만들면 이 코딩은 사라지니 다시 찾아 넣어야 합니다. 남이 만들어둔 Maintenance Dialog를 무심코 재생성하면 안되는 이유입니다.

     

    일치하는 회사코드로 데이터가 읽혀 진후 화면에 그려질 때 체크가 가능하게 PBO 부분에 FORM문을 하나 넣어 불리워지는 데이터까지 다중으로 체크가 가능하게 하겠습니다.

     

    Type-M 프로그램의 화면 구성을 다룰 때 살펴보겠으나 PBO는 데이터를 읽어와 화면에 그리는 부분을 말합니다.

     

    Maintenance Dialog는 Table Control을 사용하도록 되어 있는데, 이것이 Loop도는 부분에 코딩을 추가하여 전체 데이터가 체크되도록 합니다.

     

    PBO는 펑션 그룹 전체가 공통으로 사용하게 Include명도 제사한 값을 그냥 사용하겠습니다.

    권한 오브젝트 코딩을 넣어줍니다.

    5) 테스트

    T-CODE를 부여하고 실행시키면 'S' 세팅을 한 필드 값을 먼저 입력받는 화면이 나옵니다. 여기에 권한이 없는 회사코드를 넣으면 아래와 같은 에러 메시지가 출력됨을 알 수 있습니다.

     

    이번은 회사코드 필드에 'S'값을 주어 사전에 권한이 없는 진입을 차단을 하였습니다. 회사코드 필드에 'S'값을 주지 않고 Maintenance Dialog를 생성한 경우에는 어느 부분 이벤트가 타는지는 디버깅으로 확인해 보시면서 사용하면 될 거 같습니다.

     

    이렇게 자주 사용하는 이벤트의 예제를 살펴보았습니다.

     

    다음은 Cluster View에 대하여 포스팅해볼까  합니다.

     

    긴 글 읽어주셔서 감사합니다.

     

    728x90
    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기