2021-10-14 수정

abap2xlsx helper 를 만들었습니다. 더 쉽고 편리합니다.

https://boy0.tistory.com/173

 

abap2xlsx helper

취미로 개발중인 프로그램... https://github.com/boy0korea/ABAP2XLSX_HELPER ZCL_ABAP2XLSX_HELPER=>EXCEL_DOWNLOAD 인터널 테이블 내용을 엑셀 파일로 다운로드 합니다. ZCL_ABAP2XLSX_HELPER=>EXCEL_EMAIL 인..

boy0.tistory.com

**********************************************************************

안녕하세요.

 

ABAP2XLSX 를 활용한 엑셀 다운로드 입니다. (설치방법: http://boy0.tistory.com/95)

인터널 테이블을 넣으면 엑셀 파일 다운로드를 시작합니다.

옵션 파라미터 4개가 있는데,

IV_FOR_UPLOAD    : 나중에 업로드를 위한 다운로드 파일로 DATE와 TIME을 엑셀포맷이 아닌 일반문자로 바꿔줍니다.

IT_FIELD_CATALOG    : 필드 레이블을 변경할 수 있습니다. zcl_excel_common=>get_fieldcatalog( ) 호출하여 생성.

IV_FILENAME    : 파일명 (기본 export.xlsx)

IV_SHEET_TITLE    : 시트명 (기본 Export)

 

FUNCTION ZWD_EXCEL_DOWNLOAD.
*"--------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     REFERENCE(IV_FOR_UPLOAD) TYPE  FLAG OPTIONAL
*"     REFERENCE(IT_FIELD_CATALOG) TYPE  ZEXCEL_T_FIELDCATALOG
*"         OPTIONAL
*"     REFERENCE(IV_FILENAME) TYPE  CSEQUENCE OPTIONAL
*"     REFERENCE(IV_SHEET_TITLE) TYPE  CSEQUENCE OPTIONAL
*"     REFERENCE(IV_AUTO_COLUMN_WIDTH) TYPE  FLAG DEFAULT ABAP_TRUE
*"  EXPORTING
*"     REFERENCE(EV_ERROR_TEXT) TYPE  STRING
*"  TABLES
*"      IT_TABLE TYPE  TABLE
*"--------------------------------------------------------------------
* 오픈소스 abap2xlsx 설치가 필요합니다. http://www.abap2xlsx.org
  DATA: lo_excel             TYPE REF TO zcl_excel,
        lo_writer            TYPE REF TO zif_excel_writer,
        lo_worksheet         TYPE REF TO zcl_excel_worksheet,
        ls_table_settings    TYPE zexcel_s_table_settings,
        lt_field_catalog     TYPE zexcel_t_fieldcatalog,
        ls_field_catalog     TYPE zexcel_s_fieldcatalog,
        lv_xstring           TYPE xstring,
        lo_zcx_excel         TYPE REF TO zcx_excel,
        lv_sheet_title       TYPE zexcel_sheet_title,
        lv_filename_string   TYPE string,
        lv_filename_path     TYPE string,
        lv_filename_fullpath TYPE string,
        lv_bin_filesize      TYPE i,
        lt_temptable         TYPE w3mimetabtype,
        lv_index             TYPE i.
  CLEAR ev_error_text.

  TRY.

      " Creates active sheet
      CREATE OBJECT lo_excel.

      " Get active sheet
      IF iv_sheet_title IS NOT INITIAL.
        lv_sheet_title = iv_sheet_title.
      ELSE.
        lv_sheet_title = 'Export'.
      ENDIF.
      lo_worksheet = lo_excel->get_active_worksheet( ).
      lo_worksheet->set_title( ip_title = lv_sheet_title ).

      ls_table_settings-table_style       = zcl_excel_table=>builtinstyle_medium2.
      ls_table_settings-show_row_stripes  = abap_true.
      ls_table_settings-nofilters         = abap_true.

      IF it_field_catalog IS NOT INITIAL.
        lt_field_catalog = it_field_catalog.
        SORT lt_field_catalog BY position fieldname.
        LOOP AT lt_field_catalog INTO ls_field_catalog.
          lv_index = sy-tabix.
          IF ls_field_catalog-position <> lv_index.
            ls_field_catalog-position = lv_index.
            MODIFY lt_field_catalog FROM ls_field_catalog INDEX lv_index TRANSPORTING position.
          ENDIF.
        ENDLOOP.
      ELSE.
        lt_field_catalog = zcl_excel_common=>get_fieldcatalog( ip_table = it_table[] ).
      ENDIF.

      IF iv_for_upload EQ abap_true.
        ls_field_catalog-dynpfld = abap_true.
        MODIFY lt_field_catalog FROM ls_field_catalog TRANSPORTING dynpfld WHERE dynpfld EQ abap_false.
        ls_field_catalog-abap_type = 'C'.
        MODIFY lt_field_catalog FROM ls_field_catalog TRANSPORTING abap_type WHERE abap_type EQ 'D'.  "Date -> Char
        MODIFY lt_field_catalog FROM ls_field_catalog TRANSPORTING abap_type WHERE abap_type EQ 'T'.  "Time -> Char
      ENDIF.

      lo_worksheet->bind_table( ip_table          = it_table[]
                                it_field_catalog = lt_field_catalog
                                is_table_settings = ls_table_settings ).
*                                iv_no_header = iv_no_header
*                                iv_no_table_setting = iv_no_table_setting ).

      IF iv_auto_column_width EQ abap_true.
        LOOP AT lt_field_catalog INTO ls_field_catalog WHERE dynpfld = abap_true.
          lo_worksheet->set_column_width(
            EXPORTING
              ip_column         = zcl_excel_common=>convert_column2alpha( ls_field_catalog-position )
              ip_width_autosize = abap_true
          ).
        ENDLOOP.
      ENDIF.

      lo_worksheet->freeze_panes( ip_num_rows = 1 ). "freeze column headers when scrolling

*** Create output
      CREATE OBJECT lo_writer TYPE zcl_excel_writer_2007.
      lv_xstring = lo_writer->write_file( lo_excel ).


    CATCH zcx_excel INTO lo_zcx_excel.    " Exceptions for ABAP2XLSX
      ev_error_text = lo_zcx_excel->error.
      RETURN.
*      IF NOT MSG IS INITIAL.
**Raise exception message
*      ENDIF.
  ENDTRY.


  lv_filename_string = iv_filename.
  IF iv_filename IS INITIAL.
    lv_filename_string = |export_{ sy-datum }_{ sy-uzeit }.xlsx|.
  ENDIF.
  IF wdr_task=>application_name IS NOT INITIAL.
    CALL METHOD cl_wd_runtime_services=>attach_file_to_response
      EXPORTING
        i_filename  = lv_filename_string
        i_content   = lv_xstring
        i_mime_type = 'xlsx'
*       i_in_new_window = ABAP_FALSE
*       i_inplace   = ABAP_FALSE
      .
  ELSE.
    CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
      EXPORTING
        buffer        = lv_xstring
      IMPORTING
        output_length = lv_bin_filesize
      TABLES
        binary_tab    = lt_temptable.
    cl_gui_frontend_services=>file_save_dialog(
      EXPORTING
*        window_title              = window_title      " Window Title
*        default_extension         = default_extension " Default Extension
        default_file_name         = lv_filename_string " Default File Name
*        with_encoding             = with_encoding
        file_filter               = '*.xlsx'       " File Type Filter Table
*        initial_directory         = initial_directory " Initial Directory
*        prompt_on_overwrite       = 'X'
      CHANGING
        filename                  = lv_filename_string          " File Name to Save
        path                      = lv_filename_path              " Path to File
        fullpath                  = lv_filename_fullpath          " Path + File Name
*        user_action               = user_action       " User Action (C Class Const ACTION_OK, ACTION_OVERWRITE etc)
*        file_encoding             = file_encoding
      EXCEPTIONS
        OTHERS                    = 5
    ).
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
        WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    IF lv_filename_fullpath IS NOT INITIAL.
      cl_gui_frontend_services=>gui_download(
         EXPORTING
           bin_filesize = lv_bin_filesize
           filename     = lv_filename_fullpath
           filetype     = 'BIN'
         CHANGING
           data_tab     = lt_temptable
         EXCEPTIONS
           file_write_error          = 1
           no_batch                  = 2
           gui_refuse_filetransfer   = 3
           invalid_type              = 4
           no_authority              = 5
           unknown_error             = 6
           header_not_allowed        = 7
           separator_not_allowed     = 8
           filesize_not_allowed      = 9
           header_too_long           = 10
           dp_error_create           = 11
           dp_error_send             = 12
           dp_error_write            = 13
           unknown_dp_error          = 14
           access_denied             = 15
           dp_out_of_memory          = 16
           disk_full                 = 17
           dp_timeout                = 18
           file_not_found            = 19
           dataprovider_exception    = 20
           control_flush_error       = 21
           not_supported_by_gui      = 22
           error_no_gui              = 23
           OTHERS                    = 24
      ).
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDIF.
  ENDIF.

ENDFUNCTION.

 

 

 

참고로 업로드 펑션은 여기 있습니다.

http://boy0.tistory.com/107

 

2021-10-14 수정

abap2xlsx helper 를 만들었습니다. 더 쉽고 편리합니다.

https://boy0.tistory.com/173

 

abap2xlsx helper

취미로 개발중인 프로그램... https://github.com/boy0korea/ABAP2XLSX_HELPER ZCL_ABAP2XLSX_HELPER=>EXCEL_DOWNLOAD 인터널 테이블 내용을 엑셀 파일로 다운로드 합니다. ZCL_ABAP2XLSX_HELPER=>EXCEL_EMAIL 인..

boy0.tistory.com

**********************************************************************

안녕하세요.

 

ABAP2XLSX 를 활용한 엑셀 업로드 입니다. (설치방법: http://boy0.tistory.com/95)

WDA용 엑셀 업로드 예제 프로그램은 http://boy0.tistory.com/106 에서 확인하시고,

이를 더 발전시켜서 모듈화 시켜서 사용하기 쉽게 펑션을 제작해 보았습니다.

엑셀 파일을 넣으면 인터널 테이블로 변환시켜 줍니다. 웹딘프로 아닌 일반 ABAP에도 사용가능합니다.

 

FUNCTION ZWD_EXCEL_UPLOAD.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     REFERENCE(IV_EXCEL) TYPE  XSTRING
*"     REFERENCE(IV_BEGIN_ROW) TYPE  I
*"     REFERENCE(IV_SHEET_NO) TYPE  INT1 DEFAULT 1
*"  EXPORTING
*"     REFERENCE(EV_ERROR_TEXT) TYPE  STRING
*"  TABLES
*"      ET_TABLE TYPE  TABLE
*"----------------------------------------------------------------------
* 오픈소스 abap2xlsx 설치가 필요합니다. http://www.abap2xlsx.org
  DATA: lv_xstring        TYPE xstring,
        lo_excel          TYPE REF TO zcl_excel,
        lo_reader         TYPE REF TO zif_excel_reader,
        lo_worksheet      TYPE REF TO zcl_excel_worksheet,
        lv_highest_column TYPE zexcel_cell_column,
        lv_highest_row    TYPE int4,
        lv_column         TYPE zexcel_cell_column,
        lv_col_str        TYPE zexcel_cell_column_alpha,
        lv_row            TYPE int4,
        lv_value          TYPE zexcel_cell_value,
        lv_date           TYPE datum,
        lv_time           TYPE uzeit,
        lv_char_col       TYPE string,
        lv_char_row       TYPE string,
        lv_style_guid     TYPE zexcel_cell_style,
        ls_stylemapping   TYPE zexcel_s_stylemapping,
        lo_root           TYPE REF TO cx_root,
        lo_zcx_excel      TYPE REF TO zcx_excel.
  FIELD-SYMBOLS: <lv_data> TYPE data.

  CLEAR:          ev_error_text, et_table[].

  lv_xstring = iv_excel.

  TRY.
      CREATE OBJECT lo_reader TYPE zcl_excel_reader_2007.
      lo_excel = lo_reader->load( lv_xstring  ). "Load data into reader
      lo_excel->set_active_sheet_index( iv_sheet_no ).
      lo_worksheet = lo_excel->get_active_worksheet( ).

      lv_highest_column = lo_worksheet->get_highest_column( ).
      lv_highest_row    = lo_worksheet->get_highest_row( ).
      lv_row = iv_begin_row.
      lv_column = 1.

      WHILE lv_row <= lv_highest_row.
        WHILE lv_column <= lv_highest_column.
          lv_col_str = zcl_excel_common=>convert_column2alpha( lv_column ).
          lo_worksheet->get_cell(
            EXPORTING
              ip_column = lv_col_str
              ip_row    = lv_row
            IMPORTING
              ep_value  = lv_value
              ep_guid   = lv_style_guid ).
*&---------------------------------------------------------------------*
*&■ Add : Excel Date style Conv
*&---------------------------------------------------------------------*
          IF lv_style_guid IS NOT INITIAL AND lv_value IS NOT INITIAL.
            " Read style attributes
            ls_stylemapping = lo_excel->get_style_to_guid( lv_style_guid ).
            CASE ls_stylemapping-complete_style-number_format-format_code.
              WHEN zcl_excel_style_number_format=>c_format_date_ddmmyyyy
                OR zcl_excel_style_number_format=>c_format_date_ddmmyyyydot
                OR zcl_excel_style_number_format=>c_format_date_dmminus
                OR zcl_excel_style_number_format=>c_format_date_dmyminus
                OR zcl_excel_style_number_format=>c_format_date_dmyslash
                OR zcl_excel_style_number_format=>c_format_date_myminus
                OR zcl_excel_style_number_format=>c_format_date_std
                OR zcl_excel_style_number_format=>c_format_date_xlsx14
                OR zcl_excel_style_number_format=>c_format_date_xlsx15
                OR zcl_excel_style_number_format=>c_format_date_xlsx16
                OR zcl_excel_style_number_format=>c_format_date_xlsx17
                OR zcl_excel_style_number_format=>c_format_date_xlsx22
                OR zcl_excel_style_number_format=>c_format_date_xlsx45
                OR zcl_excel_style_number_format=>c_format_date_xlsx46
                OR zcl_excel_style_number_format=>c_format_date_xlsx47
                OR zcl_excel_style_number_format=>c_format_date_yymmdd
                OR zcl_excel_style_number_format=>c_format_date_yymmddminus
                OR zcl_excel_style_number_format=>c_format_date_yymmddslash
                OR zcl_excel_style_number_format=>c_format_date_yyyymmdd
                OR zcl_excel_style_number_format=>c_format_date_yyyymmddminus
                OR zcl_excel_style_number_format=>c_format_date_yyyymmddslash.
                " Convert excel date to ABAP date
                lv_date = zcl_excel_common=>excel_string_to_date( lv_value ).
                lv_value = lv_date.
              WHEN zcl_excel_style_number_format=>c_format_date_time1
                OR zcl_excel_style_number_format=>c_format_date_time2
                OR zcl_excel_style_number_format=>c_format_date_time3
                OR zcl_excel_style_number_format=>c_format_date_time4
                OR zcl_excel_style_number_format=>c_format_date_time5
                OR zcl_excel_style_number_format=>c_format_date_time6
                OR zcl_excel_style_number_format=>c_format_date_time7
                OR zcl_excel_style_number_format=>c_format_date_time8
                OR 'h:mm:ss;@'.
                " Convert excel time to ABAP time
                lv_time = zcl_excel_common=>excel_string_to_time( lv_value ).
                lv_value = lv_time.
            ENDCASE.
          ENDIF.
*&---------------------------------------------------------------------*
          CONDENSE lv_value.
          IF lv_value IS NOT INITIAL.
            ASSIGN COMPONENT lv_column OF STRUCTURE et_table TO <lv_data>.
            IF sy-subrc <> 0.
              EXIT.
            ENDIF.
            <lv_data> = lv_value.
          ENDIF.
          lv_column = lv_column + 1.
        ENDWHILE.
        IF NOT et_table IS INITIAL .
          APPEND et_table.
        ENDIF.
        CLEAR et_table .
        lv_column = 1.
        lv_row    = lv_row + 1.
      ENDWHILE.
    CATCH cx_root INTO lo_root.    " Exceptions for ABAP2XLSX
      ev_error_text = lo_root->get_text( ).
      lv_char_col = lv_column. CONDENSE lv_char_col NO-GAPS.
      lv_char_row = lv_row.    CONDENSE lv_char_row NO-GAPS.
      ev_error_text = ev_error_text && '(Col:' && lv_char_col && ',Row:' && lv_char_row && ')'.
*      IF NOT MSG IS INITIAL.
**Raise exception message
*      ENDIF.
  ENDTRY.





ENDFUNCTION.

 

 

참고로 다운로드 펑션은 여기 있습니다.

http://boy0.tistory.com/108

 

이글은 아래 링크의 원본 글에 대한 한글 번역 입니다 (+약간의 내용 추가)

https://scn.sap.com/community/web-dynpro-abap/blog/2012/04/05/upload-xlsx-file-in-webdynpro-abap-and-view-its-content

더 발전된 코드 웹딘프로아밥 XLSX 엑셀파일 업로드 펑션: https://boy0.tistory.com/107

 

웹딘프로아밥 XLSX 엑셀파일 업로드 예제

Posted by Ashish Shah in Web Dynpro ABAP on Apr 5, 2012 2:20:52 PM

Upload XLSX file in WebDynpro ABAP and view its content

 

웹딘프로아밥 게시판에는 엑셀 파일을 읽어서 그 내용을 화면에 테이블로 보여주기를 원하는 많은 글이 있습니다. 그런데 대부분은 답변이 없는 상태로 남아있죠. 그 이유는 스탠다드 기능만으로 바로 엑셀파일을 다룰 수 있는 방법이 없기 때문입니다.

 

새로운 해결 방법은 바로 ABAP2XLSX 프로젝트를 통해서 가능합니다!!!


준비:

  1. SAPlink 최신버전 설치 https://boy0.tistory.com/96
  2. SAPlink 플러그인 설치
  3. ABAP2XLSX 설치 https://boy0.tistory.com/95
  4. 샘플 데이터를 입력한 XLSX 엑셀파일
  5. (필수는 아님) 개선사항을 업데이트 받기위해 ABAP2XLS 와 SAPLINK 그룹에 가입하기
    https://cw.sdn.sap.com/cw/groups/saplink and https://cw.sdn.sap.com/cw/groups/abap2xlsx


파일업로드 UI 엘리먼트가 있는 웹딘프로아밥 만들기:

  1. 티코드 SE80에서 웹딘프로아밥 컴포넌트를 생성합니다.
  2. 뷰의 context 탭에서 "upload_content" 노드를 만들고 그 아래에 타입이 XSTRING인  "file_content" 어트리뷰트를 만듭니다.
  3. layout 탭에서 파일업로드 UI 엘리먼트를 추가 하고 data 속성에 XSTRING 어트리뷰트를 바인딩합니다. WD View.jpg
  4. 버튼을 추가하고 action: upload를 지정합니다.
  5. 아래 코드를 사용하여 엑셀 2007포맷의 .xlsx 파일을 읽을 수 있습니다.

 

Method OnActionUpload.
METHOD onactionupload .
DATA lo_nd_upload_content    TYPE REF TO if_wd_context_node.
DATA lo_el_upload_content    TYPE REF TO if_wd_context_element.
DATA ls_upload_content       TYPE wd_this->element_upload_content.
DATA: lo_componentcontroller  TYPE REF TO ig_componentcontroller,
lo_current_controller   TYPE REF TO if_wd_controller,
lo_view_controller      TYPE REF TO if_wd_view_controller,
lo_message_manager      TYPE REF TO if_wd_message_manager .
DATA: excel                   TYPE REF TO zcl_excel,
lo_excel_writer         TYPE REF TO zif_excel_writer,
  reader                  TYPE REF TO zif_excel_reader.
DATA: worksheet               TYPE REF TO zcl_excel_worksheet,
highest_column          TYPE zexcel_cell_column,
highest_row             TYPE int4,
column                  TYPE zexcel_cell_column VALUE 1,
col_str                 TYPE zexcel_cell_column_alpha,
row                     TYPE int4               VALUE 1,
value                   TYPE zexcel_cell_value.
DATA: ex                      TYPE REF TO zcx_excel,
msg                     TYPE string,
lv_highest_row          TYPE string,
lv_highest_column       TYPE string,
lv_rowdata              TYPE string,
lv_rownumber            TYPE string.

lo_current_controller ?= wd_this->wd_get_api( ).
lo_message_manager = lo_current_controller->get_message_manager( ).
lo_view_controller = wd_this->wd_get_api( ).

*   navigate from  to  via lead selection
lo_nd_upload_content = wd_context->get_child_node( name = wd_this->wdctx_upload_content ).

*   get element via lead selection
lo_el_upload_content = lo_nd_upload_content->get_element( ).

*   get all declared attributes
  lo_el_upload_content->get_static_attributes(
IMPORTING
static_attributes = ls_upload_content ).

TRY.
CREATE OBJECT reader TYPE zcl_excel_reader_2007.
excel = reader->load( ls_upload_content-file_content ).

worksheet = excel->get_active_worksheet( ).
highest_column = worksheet->get_highest_column( ).
MOVE highest_column TO lv_highest_column.
highest_row    = worksheet->get_highest_row( ).
MOVE highest_row TO lv_highest_row.
CONCATENATE 'Highest column: ' lv_highest_column  'Highest row: '  lv_highest_row INTO msg.
CALL METHOD lo_message_manager->report_message
EXPORTING
message_text = msg.

CLEAR lv_rowdata.

WHILE row <= highest_row.
WHILE column <= highest_column.
col_str = zcl_excel_common=>convert_column2alpha( column ).
worksheet->get_cell(
EXPORTING
ip_column = col_str
ip_row    = row
IMPORTING
ep_value = value
).
CONCATENATE lv_rowdata value INTO lv_rowdata SEPARATED BY space.
column       = column + 1.
ENDWHILE.
CLEAR msg.
MOVE row TO lv_rownumber.
CONCATENATE 'Row# ' lv_rownumber ' Data = ' lv_rowdata INTO msg.
CLEAR lv_rowdata.
CALL METHOD lo_message_manager->report_message
EXPORTING
message_text = msg.
column = 1.
row = row + 1.
ENDWHILE.

CATCHzcx_excel INTO ex.    ” Exceptions for ABAP2XLSX
CLEAR msg.
msg = ex->error.

*  report message
CALL METHOD lo_message_manager->report_message
EXPORTING
message_text = msg.

ENDTRY.
ENDMETHOD.

 

샘플 엑셀 파일 내용

Excel File.jpg

 

엑샐 파일을 업로드 하는 웹딘프로아밥 프로그램 예:

WDA Application.jpg


결과 :

WDA Application Output.jpg

 

행복하세요!!!!

관심있는 댓글 환영합니다.

 

 

 

 

이글은 아래 링크의 원본 글에 대한 한글 번역 입니다 (+약간의 내용 추가)

https://scn.sap.com/community/web-dynpro-abap/blog/2012/04/05/upload-xlsx-file-in-webdynpro-abap-and-view-its-content

더 발전된 코드 웹딘프로아밥 XLSX 엑셀파일 업로드 펑션: https://boy0.tistory.com/107

2021-07-07 수정

이제 abapGit 을 사용합시다. 더 쉽고 편리합니다.

https://boy0.tistory.com/176

 

abapGit 활용 - 패키지(개발클래스) 전체 다운로드

오른쪽 상단의 도구 모양 아이콘 누르고 Package to ZIP 끝. 다른곳에 설치하는 방법은 아래 링크를 참고하세요. https://boy0.tistory.com/174 abapGit 으로 프로그램 설치하기 간단하게 설명 자세한 설명은

boy0.tistory.com

**********************************************************************

SAPlink 사용법 입니다.

패키지(개발클래스) 전체를 다운로드 받고 업로드 할 수 있습니다.

백업 용도나 다른 사이트에 복사할때도 쓸 수 있겠죠.

 

우선 SE38 에서 ZSAPLINK를 실행합니다.

탭 Nugget에서 라디오버튼 Create New Nugget 을 선택합니다.

Nugget Nmae 에는 저장할 파일이름을 입력합니다.

아래 그림처럼 입력하고 실행합니다

 

 

빈 너겟(nugget) 파일이 생성 됩니다. 열어보면 XML 파일로 2줄 내용이 없습니다.

 

너겟 파일에 개발오브젝트를 넣는 방법은 3가지가 있습니다.

Add Object to Nugget    :    Slinkee 처럼 하나의 개발오브젝트를 선택하여 너겟파일에 추가 합니다.

Add Objects from a Package    :    패키지(개발클래스) 전체 개발오브젝트를 너겟파일에 추가 합니다.

Add Objects from a Transport    :    transport(CTS)에 등록된 개발오브젝트를 너겟파일에 추가 합니다.

이중 Add Objects from a Package 를 선택합니다.

Nugget File Name 에는 바로 전에 새로 만든 너겟파일을 선택합니다.

 

이미 전체 선택이 되어 있으므로 확인 버튼을 누르면 다운로드를 시작합니다.

 

실행 결과 입니다.

초록불이면 저장된것이고 빨간불이거나 비어있으면 저장이 안된것입니다.

나중에 빠진걸 파악하려면 이걸 엑셀파일로 저장해두는것이 좋습니다.

 

스크롤을 내려보면 플러그인이 없는 종류의 개발오브젝트는 다운로드가 안되는 것을 확인할 수 있습니다.

그중 특히 패키지 자체도 다운로드가 안된다는 것 기억하세요.

 

이제 다시 파일을 열어보면 내용이 XML 형태로 채워져 있는것을 볼 수 있습니다.

 

파일을 가져가서 다른 서버에 업로드(Import Nugget) 합니다.

그럼 업로드 된건 로컬에 비활성 상태로 들어가므로,

패키지 생성하고 패키지 이동 및 활성화 작업이 필요합니다.

 

.

SAPlink 사용법 입니다.

테이블 데이터를 다운로드 받고 업로드 할 수 있습니다.

운영서버에서 개발서버로 데이터 가져와서 테스트하는 용도로 유용합니다.

백업 용도나 다른 서버로 데이터 마이그레이션에도 쓸 수 있겠죠.

 

우선 SE38 에서 ZSAPLINK를 실행합니다.

탭 Slinkee로 이동합니다.

라디오버튼 Export ... 을 선택합니다. (Import는 업로드, Export는 다운로드)

Object Type에 TABU를 선택합니다.

 

아래 그림처럼 입력하고 실행합니다.

 

다운로드 받은 파일을 열어보면 XML 형태로 되어 있습니다.

값이 XML attibute 로 저장되어 있습니다.

이 파일을 가지고 업로드할 다른 서버에 가서 Import ... 으로 업로드 합니다. 

 

XML 관련 프로그램으로 보면 이렇게 테이블(그리드) 형태로 보며 편집도 가능합니다.

 

SE11 에서 보는것과 동일하죠.

 

 

 

끝.

SAPlink 사용법 입니다.

모듈풀이나 리포트 관계없이 모든 ABAP 프로그램을 다운로드 받고 업로드 할 수 있습니다.

 

우선 SE38 에서 ZSAPLINK를 실행합니다.

탭 Slinkee로 이동합니다.

라디오버튼 Export ... 을 선택합니다. (Import는 업로드, Export는 다운로드)

Object Type에 PROG를 선택합니다.

아래 그림처럼 입력하고 실행합니다.

 

다운로드 받은 파일을 열어보면 XML 형태로 되어 있습니다.

텍스트 요소가 있고, 화면(스크린) 0100 에 그려둔것도 다운로드 된것이 확인됩니다.

이 파일을 가지고 업로드할 다른 서버에 가서 Import ... 으로 업로드 합니다.

 

화면 0100 이 잘 복사 되었네요.

 

텍스트 요소도 잘 복사 되었습니다.

 

끝.

+ Recent posts