메뉴 건너뛰기

SAP 한국 커뮤니티

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

sapjoy 2006.12.21 09:01 조회 수 : 7953 추천: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 Overview transport requests for all systems and clients [3] file 노름마치 2009.11.05 3676
446 새로운 Print format 추가하기 [5] file 이명환 2007.10.18 3679
445 How to read same field from D.Base into two fields of ITAB [1] sapjoy 2006.12.12 3690
444 F1 도움말 존닭 2014.12.11 3696
443 OPEN SQL 사용법인데, 내용이 정리가 잘 되어 있네요 [21] file 노름마치 2008.06.09 3712
442 <b>[완료]</b>NW04 설치시 에러 몇가지 해결법 [3] file Abap consultant 2009.03.13 3715
441 ALV 활용해 보기 [4] file 박진만 2007.06.28 3727
440 new_abap_editor [3] file Lastforone 2007.07.31 3734
439 일자에 포멧에 맞게 자동으로 처리하는 프로그램 [1] 박종갑 2007.07.13 3741
438 zebra printer 상세 사용메뉴얼입니다. 양키 2013.08.26 3744
437 Selection Screeen에서 저장버튼 Disable 처리 [3] 양키(이경환) 2014.11.13 3753
436 Picking material description from custom table in the SAP Sales Order [2] file 노름마치 2009.07.10 3757
435 SAP BEST PRACTICES BASELINE PACKAGE Link(한국어) [10] ac3mania 2009.06.23 3789
434 파트너 정보 테이블(partner) sapjoy 2007.04.10 3799
433 Internal Table 내용 PC에 저장하기 [11] 별이고픈구름 2008.05.28 3828
432 BSP 명령구절 [3] gauguin 2008.06.04 3837
431 New ABAP Editor Concept [4] file D.Y.Kim 2007.06.07 3847
430 인용부호를 변수에 저장하려면 [2] 푸른밤 2007.07.31 3847
429 HELP를 WEB으로 접속하려면,,, 이렇게 하세요 [8] 김창훈 2007.08.08 3847
428 CLUSTER 테이블 찾는법~~ [4] 첼시 2008.02.28 3853