Skip to content

Instantly share code, notes, and snippets.

@antelio
Created August 12, 2019 20:03
Show Gist options
  • Save antelio/eed636b7327a67083e34a41f75b07422 to your computer and use it in GitHub Desktop.
Save antelio/eed636b7327a67083e34a41f75b07422 to your computer and use it in GitHub Desktop.
*&---------------------------------------------------------------------*
*& Report ZRBC003
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zrbc003.
TABLES: usr01.
TYPE-POOLS: truxs.
SELECTION-SCREEN BEGIN OF BLOCK usr WITH FRAME .
PARAMETERS:
p_bname LIKE usr01-bname DEFAULT '*'.
SELECTION-SCREEN END OF BLOCK usr.
SELECTION-SCREEN BEGIN OF BLOCK par WITH FRAME .
PARAMETERS: p_file TYPE rlgrap-filename OBLIGATORY.
PARAMETERS: p_head TYPE char01 DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK par.
SELECTION-SCREEN BEGIN OF BLOCK var.
PARAMETERS: p_vari LIKE disvariant-variant.
SELECTION-SCREEN END OF BLOCK var.
TYPES: BEGIN OF ty_excel,
col1(50) TYPE c, "Razão Social
col2(50) TYPE c, "Nome Funcionário
col3(14) TYPE c, "Data Admição
col4(50) TYPE c, "Cargo
col5(7) TYPE c, "Centro de Custo
col6(50) TYPE c, "Descrição Centro de Custo
col7(60) TYPE c, "E-Mail
col8(50) TYPE c, "Gestor Imediato
col9(15) TYPE c, "CPF
END OF ty_excel.
DATA: t_excel TYPE STANDARD TABLE OF ty_excel,
w_excel LIKE LINE OF t_excel.
DATA: it_raw TYPE truxs_t_text_data.
TYPE-POOLS: slis, sydes.
DATA: "Dynpro Control
lvc_t_fcat TYPE lvc_t_fcat,
lvc_t_sort TYPE lvc_t_sort,
lvc_w_layout TYPE lvc_s_layo,
lvc_t_filter TYPE lvc_t_filt.
DATA: BEGIN OF t_output OCCURS 0,
bname LIKE usr01,
END OF t_output.
DATA: g_save,
g_exit,
g_variant TYPE disvariant,
gx_variant TYPE disvariant.
* At selection screen
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
INITIALIZATION.
g_save = 'A'.
CLEAR g_variant.
g_variant-report = sy-cprog.
* Get default variant
gx_variant = g_variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
p_vari = gx_variant-variant.
ENDIF.
* Process on value request
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = g_variant
i_save = g_save
* it_default_fieldcat =
IMPORTING
e_exit = g_exit
es_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF g_exit = space.
p_vari = gx_variant-variant.
ENDIF.
ENDIF.
START-OF-SELECTION.
PERFORM load_excel.
PERFORM load_users.
***********************************************************************
* END-OF-SELECTION.
END-OF-SELECTION.
" For sample, Excel Data transfered to internal table is displayed with write
* LOOP AT it_datatab INTO wa_datatab.
* WRITE:/
* wa_datatab-col1,
* wa_datatab-col2,
* wa_datatab-col3,
* wa_datatab-col4,
* wa_datatab-col5,
* wa_datatab-col6,
* wa_datatab-col7,
* wa_datatab-col8,
* wa_datatab-col9.
* ENDLOOP.
* CALL FUNCTION 'HR_IT_SHOW_ANY_TABLE_ON_ALV'
* TABLES
* table = t_excel
* EXCEPTIONS
* fb_error = 1
* OTHERS = 2.
* IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* ENDIF.
*&---------------------------------------------------------------------*
*& Form LOAD_EXCEL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM load_excel .
" Convert Excel Data to SAP internal Table Data
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
* I_FIELD_SEPERATOR =
i_line_header = p_head
i_tab_raw_data = it_raw " WORK TABLE
i_filename = p_file
TABLES
i_tab_converted_data = t_excel[] "ACTUAL DATA
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " LOAD_EXCEL
*&---------------------------------------------------------------------*
*& Form LOAD_USERS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM load_users .
DATA: t_users TYPE TABLE OF bapiusname,
t_return TYPE TABLE OF bapiret2.
CALL FUNCTION 'BAPI_USER_GETLIST'
EXPORTING
* MAX_ROWS = 0
with_username = p_bname
* IMPORTING
* ROWS =
TABLES
* SELECTION_RANGE =
* SELECTION_EXP =
userlist = t_users
return = t_return.
DATA: w_user LIKE LINE OF t_users,
w_output LIKE LINE OF t_output.
CLEAR: t_output[].
LOOP AT t_users INTO w_user.
CLEAR w_output.
w_output-bname = w_user-username.
APPEND w_output TO t_output.
ENDLOOP.
ENDFORM. " LOAD_USERS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment