0% found this document useful (0 votes)
117 views7 pages

ZLOGLO99TOP

This document defines constants, data types, data objects, and macros used to process XML documents and display data in an ALV grid. It includes constants for file paths, job parameters, and status codes. Data types are defined for tables to store processing results, material and document reference data, and XML records. Methods are defined to handle toolbar, grid cell, and user command events, and macros are created to perform common tasks like reading status codes, clearing tables, and downloading/uploading files.

Uploaded by

Breno Coelho
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
117 views7 pages

ZLOGLO99TOP

This document defines constants, data types, data objects, and macros used to process XML documents and display data in an ALV grid. It includes constants for file paths, job parameters, and status codes. Data types are defined for tables to store processing results, material and document reference data, and XML records. Methods are defined to handle toolbar, grid cell, and user command events, and macros are created to perform common tasks like reading status codes, clearing tables, and downloading/uploading files.

Uploaded by

Breno Coelho
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 7

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

*& Include ZLOGLO99TOP *

*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&- Includes
INCLUDE zimacros.

*&---------------------------------------------------------------------*
*&- Estruturas
TABLES: ekko, zlog_trnsf_merc, sscrfields, zlog_xml_ag.

*&---------------------------------------------------------------------*
*&- Constantes
CONSTANTS c_dir_request_xml TYPE filename-fileintern VALUE 'ZNFE_ENTRADA'.
CONSTANTS c_dir_response_xml TYPE filename-fileintern VALUE 'ZNFE_SAIDA'.
CONSTANTS c_job TYPE btcjob VALUE 'LO_I_PROC_BOL_AG_150'.
CONSTANTS c_secao TYPE char10 VALUE 'LO_AG_150 '.
CONSTANTS c_docmat TYPE j_1breftyp VALUE 'MD'.
CONSTANTS c_header TYPE char1 VALUE '1'.
CONSTANTS c_detail TYPE char1 VALUE '2'.
CONSTANTS c_segundos TYPE i VALUE 15.
CONSTANTS c_separator TYPE i VALUE 3.
CONSTANTS c_button_normal TYPE i VALUE 0.

*&---------------------------------------------------------------------*
*&- Tipos
TYPE-POOLS: slis, rmdi, icon, abap.

TYPES:
BEGIN OF y_saida,
werks TYPE werks,
ebeln TYPE ebeln,
matnr TYPE matnr,
dt_ini TYPE sydatum,
dt_fim TYPE sydatum,
qtd_ped TYPE bstmg,
qtd_dst TYPE bstmg,
st_proc TYPE z_sit_proc_it_ped_dep,
st_atd TYPE z_sit_atend_it_ped,
tx_proc TYPE rmdi_domvl-ddtext,
tx_atd TYPE rmdi_domvl-ddtext,
refkey TYPE j_1brefkey,
docnum TYPE j_1bdocnum,
nfenum TYPE j_1bnfnum9,
maktx TYPE maktx,
status TYPE char4,
acckey TYPE j_1b_nfe_access_key_dtel44,
mark TYPE char1,
baixado TYPE char4, "suhett
END OF y_saida,
ty_saida TYPE STANDARD TABLE OF y_saida,

BEGIN OF y_mat,
matnr TYPE mara-matnr,
maktx TYPE makt-maktx,
END OF y_mat,
ty_mat TYPE STANDARD TABLE OF y_mat,

BEGIN OF y_ekbe,
ebeln TYPE ebeln,
gjahr TYPE mjahr,
belnr TYPE mblnr,
END OF y_ekbe,
ty_ekbe TYPE STANDARD TABLE OF y_ekbe,

BEGIN OF y_nfdoc,
docnum TYPE j_1bdocnum,
nfenum TYPE j_1bnfnum9,
END OF y_nfdoc,
ty_nfdoc TYPE STANDARD TABLE OF y_nfdoc,

BEGIN OF y_nflin,
docnum TYPE j_1bdocnum,
maktx TYPE maktx,
refkey TYPE j_1brefkey,
END OF y_nflin,
ty_nflin TYPE STANDARD TABLE OF y_nflin,

BEGIN OF y_nfact,
docnum TYPE j_1bnfe_active-docnum,
code TYPE j_1bnfe_active-code,
regio TYPE j_1bnfe_active-regio,
nfyear TYPE j_1bnfe_active-nfyear,
nfmonth TYPE j_1bnfe_active-nfmonth,
stcd1 TYPE j_1bnfe_active-stcd1,
model TYPE j_1bnfe_active-model,
serie TYPE j_1bnfe_active-serie,
nfnum9 TYPE j_1bnfe_active-nfnum9,
docnum9 TYPE j_1bnfe_active-docnum9,
cdv TYPE j_1bnfe_active-cdv,
END OF y_nfact,
ty_nfact TYPE STANDARD TABLE OF y_nfact,

BEGIN OF y_nf,
docnum TYPE j_1bnfe_active-docnum,
nfenum TYPE j_1bnfnum9,
acckey TYPE j_1b_nfe_access_key_dtel44,
mark TYPE char1,
baixado TYPE char4, " suhett
END OF y_nf,
ty_nf TYPE STANDARD TABLE OF y_nf,

t_rg_numdoc TYPE RANGE OF z_num_doc_orig_trnsf_merc,

BEGIN OF y_zlog_xml_ag, " suhett


ebeln TYPE ebeln, " suhett
nfenum TYPE j_1bnfnum9, " suhett
werks TYPE werks, " suhett
END OF y_zlog_xml_ag, " suhett

ty_zlog_xml_ag TYPE SORTED TABLE OF y_zlog_xml_ag " suhett


WITH UNIQUE KEY ebeln nfenum werks. " suhett

*&---------------------------------------------------------------------*
*&- OO
DATA obj_dcontainer TYPE REF TO cl_gui_docking_container.
DATA obj_balvgrid TYPE REF TO cl_gui_alv_grid.

*&---------------------------------------------------------------------*
*&- Variveis
DATA gt_detail TYPE ty_saida.
DATA gt_header TYPE ty_saida.
DATA gt_nfact TYPE ty_nfact.
DATA gt_nf TYPE ty_nf.
DATA gt_zlog_xml_ag TYPE ty_zlog_xml_ag. " Suhett
DATA gt_proc TYPE rmdi_domvl_t.
DATA gt_atd TYPE rmdi_domvl_t.
DATA gt_fcat_nf TYPE lvc_t_fcat.
DATA gs_domain TYPE rmdi_domvl.
DATA gs_header TYPE y_saida.
DATA g_dock_cons TYPE char1.
DATA g_txt TYPE tline-tdline.
DATA g_result TYPE abap_bool.

*&---------------------------------------------------------------------*
*&- Macros
DEFINE _read_status_proc.
read table gt_proc into gs_domain with key domvalue_l = &1.
if sy-subrc = 0.
&2 = gs_domain-ddtext.
endif.
END-OF-DEFINITION.

DEFINE _read_status_atd.
read table gt_atd into gs_atd with key domvalue_l = &1.
if sy-subrc = 0.
&2 = gs_atd-ddtext.
endif.
END-OF-DEFINITION.

DEFINE _clear_table.
clear &1.
refresh &1.
END-OF-DEFINITION.

DEFINE _select_dir.
call method cl_gui_frontend_services=>directory_browse
changing
selected_folder = &1
exceptions
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
others = 4.

if sy-subrc <> 0.
message e001 display like 'I' with 'Destino invlido!'.
exit.
endif.
if not &1 is initial.
concatenate &1 '\' into &1.
endif.
END-OF-DEFINITION.
DEFINE _inc.
&1 = &1 + 1.
END-OF-DEFINITION.

DEFINE _add_xml.
refresh &1.
append '<NeoGridConsultaSped compressed="false">' to &1.
append '<xServ>DOWNLOAD</xServ>' to &1.
append '<filtroDownload>' to &1.
append '<tipo>1</tipo>' to &1.
concatenate '<chave>' &2 '</chave>' into g_txt.
append g_txt to &1.
append '</filtroDownload>' to &1.
append '</NeoGridConsultaSped>' to &1.
END-OF-DEFINITION.

DEFINE _get_dir_request_xml.
clear &1.
* if sy-sysid = 'PRD'.
call function 'FILE_GET_NAME'
exporting
logical_filename = c_dir_request_xml
importing
file_name = &1
exceptions
file_not_found = 08.
* else.
* &1 = 'Y:\Request\'.
* &1 = '52.31.152.210\TESTE\RETRIEVENFE\REQUEST\'.
* endif.
dir_exist &1.
END-OF-DEFINITION.

DEFINE _get_dir_response_xml.
clear &1.
* if sy-sysid = 'PRD'.
call function 'FILE_GET_NAME'
exporting
logical_filename = c_dir_response_xml
importing
file_name = &1
exceptions
file_not_found = 08.
* else.
** &1 = 'Y:\Response\'.
* &1 = '52.31.152.210\TESTE\RETRIEVENFE\response\'.
* endif.
dir_exist &1.
END-OF-DEFINITION.

DEFINE _download_file.
call function 'GUI_DOWNLOAD'
exporting
filename = &2
tables
data_tab = &1
exceptions
others = 17.
END-OF-DEFINITION.
DEFINE _upload_file.
refresh &1.
call function 'GUI_UPLOAD'
exporting
filename = &2
tables
data_tab = &1
exceptions
others = 17.
END-OF-DEFINITION.

*&- Download do arquivo xml para o servidor de entrada


DEFINE request_xml.
_download_file &1 &2.
END-OF-DEFINITION.

*&- Download do arquivo xml para o diretorio definido pelo usurio


DEFINE response_xml.
_upload_file &1 &2.
_download_file &1 &3.
END-OF-DEFINITION.

*&- Barra de progresso


DEFINE _progressbar.
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
text = &1.
END-OF-DEFINITION.

DEFINE _int_to_char.
write &1 to &2 left-justified.
END-OF-DEFINITION.

DEFINE dir_exist.

call method cl_gui_frontend_services=>directory_exist


exporting
directory = &1
receiving
result = g_result
exceptions
cntl_error = 1
error_no_gui = 2
wrong_parameter = 3
not_supported_by_gui = 4
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.
elseif g_result = abap_false.
message e001 display like 'I' with 'Diretrio inexistente. Contacte o
suporte.'.
exit.
endif.

END-OF-DEFINITION.
*&---------------------------------------------------------------------*
*&- OO
CLASS cl_event DEFINITION DEFERRED.

*----------------------------------------------------------------------*
* CLASS cl_event DEFINITION
*----------------------------------------------------------------------*
CLASS cl_event DEFINITION.

PUBLIC SECTION.

CLASS-METHODS:
handle_toolbar
FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object e_interactive,

handle_hotspot_click
FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING e_column_id es_row_no,

handle_user_command
FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm.

PRIVATE SECTION.

ENDCLASS. "cl_event DEFINITION

*----------------------------------------------------------------------*
* CLASS cl_event IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS cl_event IMPLEMENTATION.

METHOD handle_toolbar.
DATA ls_toolbar TYPE stb_button.

CLEAR ls_toolbar.
MOVE 'XML' TO ls_toolbar-function.
MOVE icon_xml_doc TO ls_toolbar-icon.
MOVE ' Download do XML' TO ls_toolbar-text.
MOVE 'Download do XML' TO ls_toolbar-quickinfo.
MOVE c_button_normal TO ls_toolbar-butn_type.
MOVE space TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.

MOVE c_separator TO ls_toolbar-butn_type.


APPEND ls_toolbar TO e_object->mt_toolbar.

CLEAR ls_toolbar.
MOVE 'CLOSE' TO ls_toolbar-function.
MOVE 'Fechar Janela' TO ls_toolbar-quickinfo.
MOVE c_button_normal TO ls_toolbar-butn_type.
MOVE space TO ls_toolbar-disabled.
MOVE 'Fechar' TO ls_toolbar-text.
APPEND ls_toolbar TO e_object->mt_toolbar.

ENDMETHOD. "handle_toolbar

METHOD handle_hotspot_click.
FIELD-SYMBOLS <fs> TYPE y_nf.

CHECK e_column_id = 'DOCNUM'.


READ TABLE gt_nf ASSIGNING <fs> INDEX es_row_no-row_id.
CHECK NOT <fs>-docnum IS INITIAL.
SET PARAMETER ID 'JEF' FIELD <fs>-docnum.
CALL TRANSACTION 'J1B3N' AND SKIP FIRST SCREEN.

ENDMETHOD. "handle_hotspot_click

METHOD handle_user_command.

CASE e_ucomm.
WHEN 'XML'.
PERFORM download_xml TABLES gt_nf USING gs_header.
PERFORM busca_baixados TABLES gt_header gt_detail.
PERFORM refresh_alv.
WHEN 'CLOSE'.
PERFORM close_alv_oo CHANGING g_dock_cons.
ENDCASE.

CLEAR e_ucomm.

ENDMETHOD. "handle_user_command

ENDCLASS. "lcl_event_receiver IMPLEMENTA

You might also like