*--------------------------------------------------------------------*
* Eae galera, sempre em nossas vidas de ABAP, vamos precisar saber
* fazer download e upload de arquivo, sabemos tambem que estas mesmas funções
* 'GUI_DOWNLOAD' e 'GUI_UPLOAD' estão obsoletas.
* Conforme o 'F1' da função o mesmo indica você usar a classe
* 'CL_GUI_FRONTEND_SERVICES' que será a classe que vamos estudar hoje.
* Tentarei mostrar alguns Metodos interessantes dessa classe que trabalham
* com arquivos e pastas.
* A ideia desse programa será bem simples, ele te possibilita criar uma
* pasta e incluir nela copias dos arquivos de uma outra pasta, e no final
* , como tudo isso é só para teste, existe a possibilidade de deletar todos
* os arquivos copiados juntamente com a pasta caso deseje. Esse programa
* não fara nenhuma alteração de algum arquivo que você já tenha no Desktop,
* irá trabalhar somente com os criados pelo proprio programa.
* Recomendo criar uma pasta qualquer, incluir um arquivo qualquer também
* e começar a brincadeira.
* Como sempre faço, existem algums Breaks no código para forçá-los a
* entender o que cada metodo faz. Abaixo a lista dos metodos usados dessa
* Classe.
* cl_gui_frontend_services=>directory_browse
* cl_gui_frontend_services=>directory_create
* cl_gui_frontend_services=>directory_exist
* cl_gui_frontend_services=>directory_delete
* cl_gui_frontend_services=>directory_list_files
* cl_gui_frontend_services=>file_copy
* cl_gui_frontend_services=>file_exist
* cl_gui_frontend_services=>file_get_attributes
* cl_gui_frontend_services=>file_delete
* Lembando que o código está simples, mais para estudos mesmo, sugestões,
* critina ou qualquer tipo de opnião estamos disponivel no final do post,
* a nomenclatura dos metodos estão bem intuitivas para não precisar comentar
* muito, mas qualquer duvida estamos aí também.
* Bons estudos aeeee.
REPORT z_cl_gui_frontend_services.
TABLES :
sscrfields.
CLASS
zcl_main DEFINITION DEFERRED.
DATA :
o_main TYPE REF TO zcl_main.
DATA :
subrc TYPE sy-subrc,
result TYPE abap_bool,
gt_file_table TYPE rstt_t_files.
* T01 - Pastas
* C01 - Processar
* T02 - Arquivos
* T03 - Deletar arquivos e pastas novas após o processo ?
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
PARAMETERS :
folder TYPE string,
n_folder TYPE string DEFAULT 'teste'.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-t02.
PARAMETERS :
folder2 TYPE string.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-t03.
PARAMETERS :
del_fold AS CHECKBOX DEFAULT abap_true,
del_file AS CHECKBOX DEFAULT abap_true.
SELECTION-SCREEN END OF BLOCK b3.
CLASS zcl_main DEFINITION.
PUBLIC SECTION.
METHODS:
*--------------------------------------------------------------------*
directory,
*--------------------------------------------------------------------*
directory_browse
IMPORTING
iv_title TYPE string
CHANGING
cv_folder TYPE string,
*--------------------------------------------------------------------*
directory_create
IMPORTING
iv_directory TYPE string
CHANGING
cv_rc TYPE sy-subrc,
*--------------------------------------------------------------------*
directory_exist
IMPORTING
iv_directory TYPE string
CHANGING
cv_result TYPE abap_bool,
*--------------------------------------------------------------------*
directory_delete
IMPORTING
iv_directory TYPE string
CHANGING
cv_rc TYPE sy-subrc,
*--------------------------------------------------------------------*
directory_list_files
IMPORTING
iv_directory TYPE string
EXPORTING
ev_count TYPE i
CHANGING
ct_file_table TYPE rstt_t_files,
*--------------------------------------------------------------------*
file
CHANGING
ct_file_table TYPE rstt_t_files,
*--------------------------------------------------------------------*
file_copy
IMPORTING
iv_source TYPE string
iv_destination TYPE string
iv_overwrite TYPE abap_bool OPTIONAL
EXPORTING
ev_rc TYPE sy-subrc,
*--------------------------------------------------------------------*
file_exist
IMPORTING
iv_file TYPE string
EXPORTING
ev_result TYPE abap_bool,
*--------------------------------------------------------------------*
file_get_attributes
IMPORTING
iv_file TYPE string
EXPORTING
ev_attributes TYPE char10,
*--------------------------------------------------------------------*
popup_to_confirm_files
CHANGING
ct_file_table TYPE rstt_t_files,
*--------------------------------------------------------------------*
popup_to_confirm
IMPORTING
iv_title TYPE string
iv_question TYPE string
EXPORTING
ev_answer TYPE char1,
*--------------------------------------------------------------------*
delete_folder,
*--------------------------------------------------------------------*
delete_file
CHANGING
ct_file_table TYPE rstt_t_files,
*--------------------------------------------------------------------*
file_delete
IMPORTING
iv_file TYPE string
EXPORTING
ev_rc TYPE sy-subrc
.
ENDCLASS.
segunda-feira, 17 de julho de 2017
quinta-feira, 6 de julho de 2017
Alterando Request já liberada - RDDIT076
* Na marioria das vezes, o transporte de request realizado de forma
* organizada, padronização de nomenclatura, destino, essas coisas,
* Mas as vezes fazemos requests fora do padrão, aguardando alguma informação
* que complete essa nomenclatura padrão, o problema é quando liberamos
* para essa mesma request transporte ( =( ), procurando na internet algo
* que resolvesse isso encontrei o programa 'RDDIT076', esse mesmo programa
* Faz a alteração de quase tudo sobre a request ( incluindo Status, caso
* queira deixar modificavel(D) novamente ). A execução dela é bem simples
* mas como tudo.... MUITO CUIDADO. Para não mexer em algo que não devesse.
* Abaixo uns prints com o processo.
* Primeiramente Com o numero da request reservada vamos na transação se38,
* colocar 'RDDIT076' e dar 'F8', apos executado informar a request.
* Irá aparaecer uma tela com dados principais da request e as tasks da mesma,
* clique duas vezes, ou seleciona a request e aperte o botão de detalhamento.
* organizada, padronização de nomenclatura, destino, essas coisas,
* Mas as vezes fazemos requests fora do padrão, aguardando alguma informação
* que complete essa nomenclatura padrão, o problema é quando liberamos
* para essa mesma request transporte ( =( ), procurando na internet algo
* que resolvesse isso encontrei o programa 'RDDIT076', esse mesmo programa
* Faz a alteração de quase tudo sobre a request ( incluindo Status, caso
* queira deixar modificavel(D) novamente ). A execução dela é bem simples
* mas como tudo.... MUITO CUIDADO. Para não mexer em algo que não devesse.
* Abaixo uns prints com o processo.
* Primeiramente Com o numero da request reservada vamos na transação se38,
* colocar 'RDDIT076' e dar 'F8', apos executado informar a request.
* Irá aparaecer uma tela com dados principais da request e as tasks da mesma,
* clique duas vezes, ou seleciona a request e aperte o botão de detalhamento.
Assinar:
Postagens (Atom)