You are on page 1of 4

*&---------------------------------------------------------------------*

*& Report ZFIAA_R_PROVISAO


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zfiaa_r_carga_provisao.
DATA: BEGIN OF t_prov OCCURS 0,
bukrs TYPE bdcdata-fval,
zuonr TYPE bdcdata-fval,
xblnr TYPE bdcdata-fval,
newko50 TYPE bdcdata-fval,
wrbtr TYPE bdcdata-fval, "bseg-wrbtr,
END OF t_prov.
DATA: BEGIN OF t_upload OCCURS 0,
linha(1000) TYPE c,
END OF t_upload.
DATA: t_msg LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
PARAMETERS: p_file TYPE string LOWER CASE,
p_mode LIKE apqi-putactive DEFAULT 'N',
p_ignora AS CHECKBOX.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM f_localizar_arquivo CHANGING p_file.
START-OF-SELECTION.
PERFORM ler_arquivo.
PERFORM executar.
*&---------------------------------------------------------------------*
*&
Form f_localizar_arquivo
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_FILE
text
*----------------------------------------------------------------------*
FORM f_localizar_arquivo CHANGING p_file TYPE string.
"#EC *
DATA: vl_diretorio TYPE string.
DATA:
lt_filetable
ls_file_line
lv_filename
lv_action
lv_rc

TYPE
TYPE
TYPE
TYPE
TYPE

filetable,
file_table,
string,
i,
sysubrc.

CALL METHOD cl_gui_frontend_services=>file_open_dialog


EXPORTING
window_title
= 'Arquivo de Carga de Provises'
default_extension
= cl_gui_frontend_services=>filetype_excel
file_filter
= cl_gui_frontend_services=>filetype_excel
CHANGING

file_table
rc
user_action
EXCEPTIONS
file_open_dialog_failed
cntl_error
error_no_gui
not_supported_by_gui
OTHERS

= lt_filetable
= lv_rc
= lv_action
=
=
=
=
=

1
2
3
4
5.

IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
READ TABLE lt_filetable INTO ls_file_line INDEX 1.
p_file = ls_file_line-filename.
ENDIF.
ENDFORM.
"f_localizar_arquivo
*&---------------------------------------------------------------------*
*&
Form LER_ARQUIVO
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM ler_arquivo .
DATA: i_filename TYPE rlgrap-filename.
i_filename = p_file.
CALL FUNCTION 'FAA_FILE_UPLOAD_EXCEL'
EXPORTING
i_filename
= i_filename
i_delimiter
= ';'
TABLES
et_filecontent
= t_upload
EXCEPTIONS
error_accessing_file = 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.
CLEAR: t_prov, t_prov[].
LOOP AT t_upload.
SPLIT t_upload AT ';' INTO t_prov-bukrs
t_prov-zuonr
t_prov-xblnr
t_prov-newko50
t_prov-wrbtr.
APPEND t_prov.
ENDLOOP.
ENDFORM.

" LER_ARQUIVO

*&---------------------------------------------------------------------*
*&
Form EXECUTAR
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM executar .
DATA: msgid LIKE sy-msgid,
msgno LIKE sy-msgno,
msgv1 LIKE sy-msgv1,
msgv2 LIKE sy-msgv2,
msgv3 LIKE sy-msgv3,
msgv4 LIKE sy-msgv4,
w_text(100) TYPE c.
FORMAT COLOR COL_GROUP.
WRITE: 'LOG DE PROCESSAMENTO'.
WRITE: text-000, text-001, 20 text-002, 45 text-003, 60 text-004, 75 text-005.
LOOP AT t_prov.
IF p_ignora = 'X'.
CHECK sy-tabix > 1.
ENDIF.
CONDENSE: t_prov-bukrs NO-GAPS,
t_prov-wrbtr NO-GAPS,
t_prov-newko50 NO-GAPS.
CLEAR: t_msg, t_msg[].
CALL FUNCTION
EXPORTING
mode
=
bukrs =
xblnr =
wrbtr =
zuonr =
newko50 =
TABLES
messtab =

'ZFIAA_F_PROVISAO'
p_mode
t_prov-bukrs
t_prov-xblnr
t_prov-wrbtr
t_prov-zuonr
t_prov-newko50
t_msg.

FORMAT COLOR COL_KEY INTENSIFIED.


WRITE: / t_prov-bukrs(4) UNDER text-000,
t_prov-zuonr(10) UNDER text-001,
t_prov-xblnr(30) UNDER text-002,
t_prov-newko50(10) UNDER text-003,
t_prov-wrbtr(16) UNDER text-004.
LOOP AT t_msg.
msgid
msgno
msgv1
msgv2

=
=
=
=

t_msg-msgid.
t_msg-msgnr.
t_msg-msgv1.
t_msg-msgv2.

msgv3 = t_msg-msgv3.
msgv4 = t_msg-msgv4.
CALL FUNCTION 'TB_MESSAGE_BUILD_TEXT'
EXPORTING
langu = sy-langu
msgid = msgid
msgno = msgno
msgv1 = msgv1
msgv2 = msgv2
msgv3 = msgv3
msgv4 = msgv4
IMPORTING
text = w_text.
IF t_msg-msgtyp = 'E'.
FORMAT COLOR COL_NEGATIVE.
ELSEIF t_msg-msgtyp = 'W'.
FORMAT COLOR COL_TOTAL.
ELSEIF t_msg-msgtyp = 'S'.
FORMAT COLOR COL_NORMAL.
ENDIF.
WRITE: / t_msg-msgtyp, ':', w_text(72).
ENDLOOP.
ENDLOOP.
ENDFORM.

" EXECUTAR

You might also like