반응형

     

    SAP의 뷰에는 기존의 4가지와 SAP HANA 버전에 새로 주목받는 CDS View가 있습니다.

     

    Databas view :

    가장 보편적인 형태로 여러 테이블을 Join 형태로 연결하여 필요한 필드를 지정하여 생성하며 ABAP 프로그램 안에서 SELECT문 코딩으로 읽어 사용할 수 있습니다.

     

    Projection view :

    한 개의 테이블 안에서 필드를 골라서 보고 싶을 때 사용하며, 프로그램 안에서는 사용이 안되고 SE11 등에서 조회만 가능한 뷰입니다.

     

    Maintenance View :

    뷰로 구성된 테이블들에 Standard기능을 이용 데이터의 읽기, 쓰기가 가능하도록 만들 수 있는 뷰입니다. 매번 읽기/쓰기 프로그램을 만들지 않고 간단한 입출력을 할 수 있게 지원하는 기능입니다. 뷰의 대상이 되는 테이블은 Transparent table 이어야 합니다.

     

    Help View : Search Help를 만들기 위해 Selection method로만 사용 가능한 뷰입니다. 다른 것에서 사용이 불가합니다.

     

    CDS View :

    SAP가 Open SQL의 한계를 극복하고 ABAP뿐만 아니고 다른 이종 간의 데이터 교환까지 염두에 둔 SAP HANA 버전에 추가된 핵심기능 중 하나이다.

     

    모든 것을 차치하고 내가 보는 HANA DB는 그저 Open SQL이 간단명료하고 편하나 기능이 너무 제한적이라 이전 사용하던  Olacle, MS SQL 등의 Legacy DB시스템의 기능으로 회귀하여 DBMS 전기능을 사용하게 하자는 의도이고 덤으로 DB의 속도까지 개선한 버전이라 하겠습니다.

     

    물론 Legacy개발을 접한 사용자가 아니라면 이해가 안 될 수도 있겠지만 차후 SAP HANA를 다루어 보도록 하겠습니다.

     

    뷰가 여러 종류가 있으나 여기서는 자주 사용하는 Maintenance View (유지보수 뷰) 만을 다루고 넘어가고자 합니다.

     

    원칙적으로 테이블의 데이터를 임의 가공하여 변조하는 것을 막는 것이 SAP의 사상이나, 간단한 마스터 세팅 등을 위해서 매번 CBO 프로그램으로 만드는 번거로움을 없애려고 테이블에 데이타 읽기, 쓰기가 가능한 자동으로 프로그램을 만들어 주는 것이 유지보수 뷰의 목적이라 하겠습니다.

     

    상당히 헛갈리는 부분은 유지보수 뷰를 꼭 만들어야 SAP가 제공하는 입출력 프로그램을 만들 수 있느냐?

    그것은 아닙니다... 

     

    제공되는 자동 유지 보수 프로그램을 생성하기 위해서는 

    i) Table -> 테이블 유지보수 생성기(Table Maintenance Generator)로 유지보수 Dialog 생성.

    ii) Table -> 유지보수 뷰 생성 -> 테이블 유지보수 생성기(Table Maintenance Generator)로 유지보수 Dialog 생성.

     

    두 가지 모두 데이터 입출력 화면이 만들어지며 유지보수 뷰를 만드는 것은 여러 테이블을 Join 하여 보여줄 필요가 있거나

    입출력 필드의 제어가 필요할 때 주로 사용합니다.

     

    유지보수 뷰(Maintenance View)테이블 유지보수 생성기(TableMaintenance Generator)로 만든 유지보수 뷰 두 가지가 이름을 모두 유지보수 뷰라 부르다보니 간혹 혼선이 있을수 있습니다.

     

    A 테이블에 유지보수뷰 만들어줘 -> 정말 뷰를 만들라는 건지 Table Maintenance Generator로 입출력 가능한 프로그램을 만들어 달라는 건지 명확하지가 않습니다. 그래서 후자를 유지보수 Dialog이라고 부르겠습니다.

     

    전자는 우리가 말하는 뷰이고 후자는 입출력 프로그램을 자동으로 생성해주는 수단이지 뷰는 아닙니다.

     

    전 포스팅에서 테이블 생성 시에 Foreign Key(외래 키)를 지정하는 방법을 보았습니다. 여러 테이블을 Join 하여 유지보수 뷰를 만들 때 테이블 간의 Join 필드는 이 Foreign Key로 지정되어 있어야만 가능하겠습니다.

    테이블의 기본 Key 필드는 자동으로 Foreign Key 처럼 작동되니 따로 할 필요는 없습니다.

     

    샘플을 위해서 ZTMPT0003 테이블을 생성하고 BUKRS(회사코드), BKLAS(평가 클래스), KEY1(키 1)의 Key필드를 가진 테이블을 생성합니다. BKLAS는 Check Table로 T025를 지정해 줍니다. 

    1) 유지보수 뷰 생성

    i) SE80 -> Dictionary Objects -> 마우스 우클릭 -> VIew 선택하고 뷰 종류 중 유지보수 뷰를 선택하고 만들고자 하는 뷰의  이름을 지정합니다..

     

    ii) 메인테이블을 지정하고 Relationships 버튼을 눌러 Foreign Key로 연결된 테이블을 찾아줍니다. BKLAS(평가 클래스) 텍스트를 보여주기 위해 T025 -> T025T 순으로 Join을 해줍니다.

    1-1) Table/Join Conditions(테이블/결합조건 ) 탭

    밑의 Table/Join Conditions(테이블/결합조건 ) 탭의 좌우 분할 화면을 보면

     

    왼쪽은 Join 할 테이블을 불러오고 오른쪽은 그 테이블들의 연결된 Join필드 구성이 나타나게 됩니다.

     

    왼쪽에 뷰의 주가 될 테이블을 지정하고 Relationships(관계) 버튼을 누르면 주 테이블과 연결될 수 있는 Foreign Key를 가진 테이블들을 제시해 줍니다. 

     

    BKLAS 필드는 Foreign Key로 지정KEY1이라는 필드는 Foreign Key로 지정하지 않고 Relationships 버튼을 누르면

    시스템에서 제시해주는 테이블 List 중 Foreign Key가 지정된 필드는 Referenced tables(참조 테이블) 항목에서 Join 선택이 가능한 테이블로 표시되고 Foreign Key로 지정하지 않은 필드의 연관 테이블은 Relationships with unsuitable cardinality(부적합한 카디날러티와 관계)로 나오며 선택을 할 수 없게 됩니다.

     

    내가 원하는 테이블이 부적합으로 나올 경우 주 테이블의 Foreign Key지정을 살펴봐야 합니다.

     

    우리는 BKLAS를 입력하면 옆 칼럼에 BKLAS의 내역을 보여주겠습니다.

    ZTMPT0003의 관계 테이블로 T025를 선택하고 다시 T025의 관계 테이블로 T025T를 연결하여 BKLAS의 내역이 있는 테이블까지 연결을 확장해주겠습니다.

     

    1-2) View Flds(뷰 필드 ) 탭

    지정된 테이블들의 필드 중 화면에 표시할 필드를 선택하고 선택한 필드의 속성(읽기 전용, 감춤..)을 지정할 수 있습니다.

    테이블 필드 버튼을 눌러서 원하는 필드를 선택합니다. ZTMPT0003의 BUKRS, BKLAS, KEY1과 T025T의 BKBEZ을 선택합니다.

     

    그리드 항목 중 P로 되어있는 유지보수 플래그로 필드의 속성을 조절할 수 있습니다.

    SPACE : 정상적으로 사용 가능한 뷰 필드
    R        : 읽기 전용인 뷰 필드
    S        : 서식 서브 세트에서 사용 중인 뷰 필드
    H       : 유지보수 화면으로 전송하지 않은 뷰 필드

     

    테스트를 위하여 

    BUKRS 필드는 S, BKBEZ 필드는 R, KEY1 필드는 H로 설정하고 차이점을 살펴보겠습니다.

     

    1-3) Selection Conditions(선택 조건) 탭

    결합조건 이외의 조건이 필요한 테이블이 있는 경우 추가할 수 있습니다.

    보통 내역 테이블을 Join 하면 언어 키에 따라 여러 줄이 나올 수 있는데 특정 언어 키나 로그인한 언어키로 데이터를 특정해 주고 싶을 때 등.. 데이터의 범위를 특정해주고 싶을 때 사용 가능합니다.

    T025T-SPRAS EQ SY-LANGU로 세팅을 하면 로그인한 언어로 텍스트 필드를 제한할 수 있습니다.

     

    1-4) Maint. Status(유지보수 상태) 탭

    생성하는 뷰의 읽기 쓰기 속성을 설정할 수 있습니다.

    Access 항목 : 유지보수 화면이 보이면서 화면 데이터가 수정 가능한 상태로 보일지 등을 설정합니다.

     

    Data Browser/Table View Maint. 항목 : 화면이 보이기 이전에 Standard 테이블 유지보수 툴로 해당 데이터 수정 기능을 사용할 수 있는지 없는지를 세팅합니다. Access 항목보다 우선하여 적용됩니다.

     

    Display/Maintenance Allowed With Restrictions 를선택하면 해당 기능을 사용할 수 없으므로 에러를 보이고 유지보수 화면으로 접근이 되지 않습니다.

     

    2) 유지보수 플래그에 따른 화면 차이

     

     

     

    유지보수 뷰를 생성하고 테이블 유지보수 생성기(Table Maintenance Generator)로 유지보수 Dialog를 생성하였다는 가정하에 유지보수 플래그에 따른 화면 차이를 살펴보겠습니다.

     

    테이블 유지보수 생성기(Table Maintenance Generator) 기는 글이 길어져 다음 포스팅에서 별도로 다뤄보겠습니다.

     

    유지보수 뷰를 테스트하는 T-CODE는 SM30이며 메뉴로는 System->Services->Table Maintenance->Extended Table Maintenance 로도 실행이 가능합니다.

     

    실행된 화며에서 Maintain 버튼을 누르면 회사코드를 넣으라는 창이 먼저 나타나게 됩니다.

     

    이것은 BUKRS필드에 'S' 서식 서브 세트에서 사용을 넣었기 때문으로 해당 키에 데이터를 특정하고 나머지 데이터를 넣어야 할 때 사용합니다. 여러 필드를 지정할 수도 있습니다.

     

    해당 옵션은 키 필드에만 사용해야 하며 키 필드가 아니면 입력창이 뜨지 않습니다.

    테이블의 구조가 Header, Detail의 구조라 볼 때 키의 연결로 Hierarch 구조로 생성하고 Header에 BUKRS를 넣으면 Detail에 BUKRS에도 같은 값이 들어가게 구성할 수 있습니다. 이것은 Cluster View를 포스팅할 때 더 자세히 보겠습니다.

    또 먼저 입력받의 값으로 권한을 체크해야 할 때도 사용 가능합니다.

     

    값을 넣고 확인을 누르면 데이터를 보여주는 화면이 나타납니다.

    'S' 속성을 가진 필드는 위에 변경이 불가능한 상태로 나타나면 신규라인을 입력해도 같은 값이 자동으로 들어갑니다.

    New Entries를 눌러 신규라인을 넣어보겠습니다.

    신규라인을 넣을 때 BKLAS(ValCl) 필드는 입력 가능 BKBEZ(Description) 입력이 불가능하고 KEY1필드는 보이지 않습니다.

    BKBEZ(Description)는 속성 'R' 읽기 전용으로 세팅하여 BKLAS를 입력하면 JOIN 된 T025T 테이블에서 내역을 읽어 자동으로 보이며 사용자 입력이 필요 없으므로 읽기 전용 속성을 설정합니다.

     

    보일 필요가 없는 필드가 있다면 'H' 속성을 주어 감추면 되겠습니다.

     

    이상으로 유지보수 뷰에 대한 포스팅을 마치고 다음은 Table Maintenance Generator 사용한 유지보수 Dialog의 사용법을 포스팅하겠습니다.

     

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

     

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