메뉴 건너뛰기

SAP 한국 커뮤니티

CBO 테이블 데이터 UPLOAD 프로그램

sapjoy 2006.12.21 09:01 조회 수 : 7955 추천:56

*&---------------------------------------------------------------------*
*& 모듈풀            ZCBO                                          *
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*

INCLUDE zCBOtop.
INCLUDE zCBOf01.

INITIALIZATION.
  CLEAR: gp_tabnm.

START-OF-SELECTION.
  IF gp_tabnm(1) <> 'Z'.
     MESSAGE s001 WITH 'CBO테이블만 작업 가능합니다.'.
     EXIT.
  ENDIF.

  PERFORM check_exist_for_table  USING gv_tabnm.

  IF gv_tabnm IS INITIAL.
     MESSAGE s001 WITH '존재하지 않는 테이블 입니다.'.
     EXIT.
  ENDIF.

  PERFORM read_stucture_of_table.
  PERFORM upload_data_from_excel.





*----------------------------------------------------------------------*
*   INCLUDE ZCBOTOP
*----------------------------------------------------------------------*
REPORT zCBO  MESSAGE-ID zpp1.
DATA: gv_tabnm            TYPE char30.

DATA: gt_ref              TYPE REF TO data,
      gt_fcat             TYPE lvc_t_fcat,
      gt_fldcat           LIKE lvc_s_fcat OCCURS 0 WITH HEADER LINE.

DATA: gw_data             TYPE REF TO data.

FIELD-SYMBOLS: <data>     TYPE table.

SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE text-000.
  PARAMETERS:      gp_tabnm    TYPE char30  OBLIGATORY.

  SELECTION-SCREEN SKIP 1.

  SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(30) text-001.
    SELECTION-SCREEN POSITION 33.
    PARAMETERS:      p_r01      RADIOBUTTON GROUP r0.
    SELECTION-SCREEN COMMENT 35(15) text-002 FOR FIELD p_r01.
    SELECTION-SCREEN POSITION 52.
    PARAMETERS:      p_r02      RADIOBUTTON GROUP r0.
    SELECTION-SCREEN COMMENT 53(18) text-003 FOR FIELD p_r02.
  SELECTION-SCREEN END   OF LINE.
SELECTION-SCREEN END   OF BLOCK blk.




*----------------------------------------------------------------------*
*   INCLUDE ZCBOF01                                                *
*----------------------------------------------------------------------*

*&---------------------------------------------------------------------*
*&      Form  check_exist_for_table
*&---------------------------------------------------------------------*
FORM check_exist_for_table  USING p_tabnm.
  SELECT SINGLE tabname
    INTO p_tabnm
    FROM dd02l
   WHERE tabname  = gp_tabnm.
ENDFORM.                    " check_exist_for_table

*&---------------------------------------------------------------------*
*&      Form  read_stucture_of_table
*&---------------------------------------------------------------------*
FORM read_stucture_of_table.
  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
       EXPORTING
            i_structure_name     = gp_tabnm
       CHANGING
            ct_fieldcat          = gt_fcat.

  IF sy-subrc <> 0.
     MESSAGE e000 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  CALL METHOD cl_alv_table_create=>create_dynamic_table
       EXPORTING
            it_fieldcatalog = gt_fcat
       IMPORTING
            ep_table        = gt_ref.

  ASSIGN gt_ref->* TO <data>.
ENDFORM.                    " read_stucture_of_table

*&---------------------------------------------------------------------*
*&      Form  upload_data_from_excel
*&---------------------------------------------------------------------*
FORM upload_data_from_excel.
  DATA: lv_filenm            TYPE rlgrap-filename.

  lv_filenm = 'C:'.

  CALL FUNCTION 'UPLOAD'
       EXPORTING
            filename = lv_filenm
            filetype = 'DAT'
       TABLES
            data_tab = <data>
       EXCEPTIONS
            conversion_error  = 1
            OTHERS            = 2.

  IF sy-subrc = 1.
     MESSAGE s001 WITH 'Data conversion 오류.'.
     RETURN.
  ELSEIF sy-subrc > 1.
     MESSAGE s001 WITH '기타 오류.'.
     RETURN.
  ENDIF.

  IF <data>[] IS INITIAL.
     EXIT.
  ENDIF.

  IF p_r01 = 'X'.              " 추가/수정
     MODIFY (gp_tabnm)  FROM TABLE <data>.
  ELSE.
     DELETE (gp_tabnm)  FROM TABLE <data>.
  ENDIF.

  COMMIT WORK.

  MESSAGE s010.
ENDFORM.                    " upload_data_from_excel




번호 제목 글쓴이 날짜 조회 수
127 Mass download version 1.4.4 [4] file 노름마치 2009.08.20 7451
126 assign 구문 [2] sapjoy 2006.12.04 7469
125 문자열에서 특정문자(열) 변경 및 삭제 [9] Delight 2008.04.23 7469
124 RFC를 이용해서 SAP에 로그온할 때 Language키 주의 [9] 꿀단지 2011.10.11 7477
123 SAP 버퍼를 다시 설정하는 방법 Wise 멘토 2013.10.04 7492
122 BAPI_DELIVERYPROCESSING_EXEC 납품문서 만들때 사용하세요 노름마치 2007.10.29 7509
121 SAP Netweaver 설치 시스템사양 Tip [1] 양키 2012.09.21 7543
120 난수발생 함수. [3] 무풍지대 2010.06.17 7552
119 SALV Webdynpro for abap tutorial [6] Wise 멘토 2011.11.15 7603
118 BAPI_RESERVATION_CREATE1 MB21의 예약생성시 사용하세요. [2] 노름마치 2007.12.10 7612
117 ALV에 아이콘 넣는 방법 [1] 푸른밤 2007.07.31 7639
116 What Are Lock Objects ? D.Y.Kim 2007.07.20 7687
115 move 구문 [4] sapjoy 2006.12.02 7730
114 온라인 스크린에서 SELECT-OPTION 사용하기 [1] sapjoy 2007.02.11 7800
113 [덤프해결] CX_SY_READ_SRC_LINE_TOO_LONG file 양키 2013.08.16 7818
112 [Function]달력 팝업창을 뛰워보자 [14] file 양키 2010.10.07 7844
111 평가영역 에서 자재 평가는 불일치성 합니다(이전전기시 에러) [1] sapjoy 2007.07.03 7886
110 유지보수 view 생성 후 Field selection 화면 나오게 하려면? [7] file 나침반친구 2007.08.08 7907
109 메세지 팝업창 뛰워주는 Function [2] file 양키 2013.08.19 7929
» CBO 테이블 데이터 UPLOAD 프로그램 [5] sapjoy 2006.12.21 7955