Professional Documents
Culture Documents
"
"
"
"
"
*&---------------------------------------------------------------------*
*&
Form z_busca_arquivo
*&---------------------------------------------------------------------*
" Pega o valor contido no parameters e add o texto '.txt' no final assim o
" o nome do arquivo fica com a extenso desejada.
FORM z_busca_arquivo.
CONCATENATE p_dest '.txt' INTO p_dest.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = ' '
def_path
= 'C:\'
mask
= ',Texto,*.txt,Todos,*.*.'
mode
= 'O'
title
= 'Arquivo de Entrada'(004)
IMPORTING
filename
= p_dest
EXCEPTIONS
OTHERS.
ENDFORM.
" z_busca_local
*&---------------------------------------------------------------------*
*&
Form Z_MONTA_ARQUIVO
*&---------------------------------------------------------------------*
" Pega o arquivo externo relacionado e coloca os dados na 'T_LINE
FORM z_baixa_arquivo.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p_dest
TABLES
data_tab = t_line
EXCEPTIONS
OTHERS = 17.
ENDFORM.
*&---------------------------------------------------------------------*
*&
Form Z_TRATA_ARQUIVO
*&---------------------------------------------------------------------*
" Ser os dados conforme sequencia de campos e add na tabela principal
FORM z_trata_arquivo.
LOOP AT t_line.
" o Split quebra a linha e separa por delimitador ';' colocando cada dado
" em cada campo sequencialmente.
SPLIT t_line AT ';' INTO: wa_cliente-cpf
wa_cliente-RG
wa_cliente-NOME
wa_cliente-DATANASC
wa_cliente-ENDERECO
wa_cliente-NUMERO
wa_cliente-BAIRRO
wa_cliente-CIDADE
wa_cliente-cep
wa_cliente-TELEFONE
wa_cliente-EMAIL.
" Add registro na tabela.
APPEND wa_cliente TO it_cliente.
ENDLOOP.
ENDFORM.
O
" Z_TRATA_ARQUIVO
" Z_MONTA_ARQUIV
FORM z_monta_shdb.
LOOP AT it_cliente INTO wa_cliente.
" cria uma variavel pra informar qual cliente est porcessando no
" perform z_sapgui_progress_indicator.
CONCATENATE 'Processando o Cliente -' wa_cliente-cpf
INTO v_gtexto SEPARATED BY space.
" informa o processo atual
PERFORM z_sapgui_progress_indicator USING v_gtexto.
" aki que o bixo pega, lembra dakele arquivo SHDB que enviaram pra vc
" aki que ele comea a faze sentido, oq ns estamos fazendo aki e criando
" uma tabela com as informaes conforme o SHDB s mundando a informao
" que vc quer que mude conforme o registro.
" Depois de terminar os performs z_preenche_bdc vc vai dar uma olhada
" na tabela it_bdcdata pq ela vai estar igualzinha com o SHDB que
" enviaram pra vc.
" Crie um 'Perform pra cada tela que tiver no SHDB.
PERFORM z_preenche_bdc USING:
'X'
' '
' '
' '
' '
'SAPMF02D'
'BDC_CURSOR'
'BDC_OKCODE'
'RF02D-KUNNR'
'RF02D-D0110'
'0101',
'RF02D-D0110',
'/00',
wa_cliente-cpf,
'X'.
'SAPMF02D'
'BDC_CURSOR'
'BDC_OKCODE'
'KNA1-NAME1'
'KNA1-STRAS'
'KNA1-ORT01'
'0110',
'KNA1-TELF1',
'/00',
st_arqui-nome,
st_arqui-rua,
st_arqui-end,
' '
'KNA1-TELF1'
st_arqui-tel.
PERFORM z_carrega_transacao.
PERFORM z_imprime_mensagem.
CLEAR it_bdcdata.
ENDLOOP.
ENDFORM.
" z_monta_shdb
*&---------------------------------------------------------------------*
*&
Form Z_PREENCHE_BDC
*&---------------------------------------------------------------------*
" Se Dynbegin = 'X' ele preenche as informaes da tela, seno ele preenche
" o campo e o dado dela. prontio.
FORM z_preenche_bdc USING dynbegin
name
value.
IF dynbegin = 'X'.
MOVE: name
TO st_bdcdata-program,
value
TO st_bdcdata-dynpro,
dynbegin TO st_bdcdata-dynbegin.
APPEND st_bdcdata TO it_bdcdata.
ELSE.
MOVE: name TO st_bdcdata-fnam,
value TO st_bdcdata-fval.
APPEND st_bdcdata TO it_bdcdata.
ENDIF.
" prepara a estrutura para o Loop.
CLEAR st_bdcdata.
ENDFORM.
" Z_PREENCHE_BDC
*&---------------------------------------------------------------------*
*&
Form Z_CARREGA_TRANSACAO
*&---------------------------------------------------------------------*
FORM z_carrega_transacao .
" Chama a trasao informada usando a tabela 'IT_BDCDATA que na verdade
" um shdb que vai automtiza o processo at o ultimo registro, existe
" dois metodos de ver o processo, no 'MODE se colocar 'N' vc no visualiza
" o processo, agora se vc coloca 'A' no 'MODE vc ter que apertar 'Enter
" por processo e depois de efetuar o processo por registro ele popula a
" tabela 'IT_MSG com os dados de retorno,se foi realizado com exito, ou se
" deu algum problema.
CALL TRANSACTION 'XD02' USING it_bdcdata
MODE vg_mode
UPDATE vg_s
MESSAGES INTO it_msg
.
ENDFORM.
" Z_CARREGA_TRANSACAO
http://codigofonte.uol.com.br/codigos/batch-input