메뉴 건너뛰기

SAP 한국 커뮤니티

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

sapjoy 2006.12.21 09:01 조회 수 : 7951 추천: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




번호 제목 글쓴이 날짜 조회 수
447 <img src=b.gif>계속 남아있는 Debugger창 없에기(New Debugger)[추천:e-abap][추천:보나][추천:버미!] [14] 해처리 2011.01.07 8164
446 Number Range Object 변경/삭제 [4] file MadMax 2010.12.07 8159
445 BAPI_PO_CHANGE [1] 노름마치 2009.09.03 8139
444 Dynamic Internal Table [5] sapjoy 2007.02.11 8092
443 요약파일1 [7] file 밤의화신 2013.09.11 8039
442 Internal Table 알아보기 [15] file 양키 2010.12.20 8000
441 색상 정리 파일. [15] file 공백 2012.03.08 7973
» CBO 테이블 데이터 UPLOAD 프로그램 [5] sapjoy 2006.12.21 7951
439 메세지 팝업창 뛰워주는 Function [2] file 양키 2013.08.19 7892
438 유지보수 view 생성 후 Field selection 화면 나오게 하려면? [7] file 나침반친구 2007.08.08 7892
437 평가영역 에서 자재 평가는 불일치성 합니다(이전전기시 에러) [1] sapjoy 2007.07.03 7867
436 [Function]달력 팝업창을 뛰워보자 [14] file 양키 2010.10.07 7825
435 [덤프해결] CX_SY_READ_SRC_LINE_TOO_LONG file 양키 2013.08.16 7790
434 온라인 스크린에서 SELECT-OPTION 사용하기 [1] sapjoy 2007.02.11 7785
433 move 구문 [4] sapjoy 2006.12.02 7730
432 What Are Lock Objects ? D.Y.Kim 2007.07.20 7686
431 ALV에 아이콘 넣는 방법 [1] 푸른밤 2007.07.31 7607
430 BAPI_RESERVATION_CREATE1 MB21의 예약생성시 사용하세요. [2] 노름마치 2007.12.10 7602
429 SALV Webdynpro for abap tutorial [6] Wise 멘토 2011.11.15 7601
428 SAP Netweaver 설치 시스템사양 Tip [1] 양키 2012.09.21 7541