본문 바로가기

ABAP

[ABAP] 프로그램에서 유지보수뷰 호출 시, 화면 조회조건 적용하기

🚩 코드

DATA: GT_SELTAB TYPE TABLE OF VIMSELLIST,
      GS_SELTAB LIKE LINE OF GT_SELTAB.


  CLEAR: GT_SELTAB, GS_SELTAB.

  DEFINE __ADD_PAR.
    IF &2 IS NOT INITIAL.
      GS_SELTAB-VIEWFIELD = &1.
      GS_SELTAB-VALUE = &2.
      GS_SELTAB-AND_OR = 'AND'.
      GS_SELTAB-OPERATOR = 'EQ'.

      APPEND GS_SELTAB TO GT_SELTAB.
      CLEAR: GS_SELTAB.
    ENDIF.
  END-OF-DEFINITION.

  DEFINE __ADD_SEL.
    CALL FUNCTION 'VIEW_RANGETAB_TO_SELLIST'
      EXPORTING
        FIELDNAME                = &1
       APPEND_CONJUNCTION       = 'AND'
      TABLES
        SELLIST                  = GT_SELTAB
        RANGETAB                 = &2[].
  END-OF-DEFINITION.

* GT_SELTAB에 조회조건 값을 넣는다.
  __ADD_PAR 'BUKRS'   P_BUKRS. 	"파라미터 호출 시 사용.
  __ADD_SEL 'SETNAME' S_NAME.   "셀렉트 옵션 호출 시 사용.

  CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
    EXPORTING
      ACTION                       = 'U' <---------------'S' 조회모드, 'U' 변경모드
      VIEW_NAME                    = '호출할 뷰 티코드'
      COMPLEX_SELCONDS_USED        = 'X'
    TABLES
      DBA_SELLIST                  = GT_SELTAB <---------넣어준 조회조건을 뷰 호출할 때 적용
    EXCEPTIONS
      CLIENT_REFERENCE             = 1
      FOREIGN_LOCK                 = 2
      INVALID_ACTION               = 3
      NO_CLIENTINDEPENDENT_AUTH    = 4
      NO_DATABASE_FUNCTION         = 5
      NO_EDITOR_FUNCTION           = 6
      NO_SHOW_AUTH                 = 7
      NO_TVDIR_ENTRY               = 8
      NO_UPD_AUTH                  = 9
      ONLY_SHOW_ALLOWED            = 10
      SYSTEM_FAILURE               = 11
      UNKNOWN_FIELD_IN_DBA_SELLIST = 12
      VIEW_NOT_FOUND               = 13
      MAINTENANCE_PROHIBITED       = 14
      OTHERS                       = 15.

 

 

반응형