Você está na página 1de 6

Batch Input - Bsico

" Vamos agora tentar explicar um Batch Input, sabe quando tem aquele
" funcionrio que tem um monte de dados dentro de um arquivo externo como
" um arquivo .xls ou .txt ou qualquer outro formato fora do SA e este
" funcinrio fala que os dados est!o dentro de um arquivo e que pra
" cadastrar todos dentro da SA demoraria dias, nessa hora o funcional
" escuta em sua mente sombria a palavra BA"#$ I%&", a primeira coisa
" que o funcional fala ' organi(e todos os dados em um )nico arquivo
" pulando uma linha por registro e separando os dados por *+* ou *Space*
" recomendo *+* pois as ve(es contem dados com espa,o dentro e isso pode
" atrapalhar o processo de Input no Sistema.
" #rie um arquivo que servir como entrada de dados com as informa,-es.
" /000000001+nome teste1+rua teste1+S!o aulo1+12345671
" /000000002+nome teste2+rua teste2+S!o aulo2+12345672
" 8embrando que a ordem ' muito importante pois eh gravado na ordem.
" "em um outro arquivo muito importante tb, o famoso S$9B contendo o
" mapeamento do processo por este arquivo vc consegue ver quais s!o os
" dados necessrios para reali(ar com sucesso o processo qualque d)vida
" http.::abap;uniores.blogspot.com:2011:04:shdb<basico.html.
" Segue abaixo um programa comentado bsico para um batch imput funciona.
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
?@A?" (m;Bbatch.
" "ipos ....
"C@S.
" 9ados que ser!o informados pelo arquivo.
B@DI% AE tFBarqui,
cliente "C@ rf02d<Gunnr, " #Hdigo do #liente
nome "C@ Gna1<name1, " %ome do cliente
rua "C@ Gna1<stras, " ?ua do cliente
end "C@ Gna1<ort01, " @ndere,o do cliente
tel "C@ Gna1<telf1, " telefone do cliente
@%9 AE tFBarqui,
" Batch input nova estrutura do campo de tabela
B@DI% AE tFBbdcdata,
program "C@ bdcdata<program, " ool de mHdulos B9#
dFnpro "C@ bdcdata<dFnpro, " %Imero de tela B9#
dFnbegin "C@ bdcdata<dFnbegin, " InJcio B9# de uma tela
fnam "C@ bdcdata<fnam, " %ome do campo
fval "C@ bdcdata<fval, " Valor do campo B9#
@%9 AE tFBbdcdata,
" ?ela,!o informativa do log
B@DI% AE tFBmessage,
cliente "C@ rf02d<Gunnr, " #Hdigo do cliente
msgtF "C@ message<msgtF, " "ipo da mensagem
msgno "C@ message<msgno, " %umero da mensagem
msgtx "C@ message<msgtx, " 9escri,!o da mensagem
@%9 AE tFBmessage
.
" "abelas Internas ....
9A"A. itBarqui "C@ "AB8@ AE tFBarqui,
itBbdcdata "C@ "AB8@ AE tFBbdcdata,
itBmsg "C@ "AB8@ AE bdcmsgcoll KI"$ $@A9@? 8I%@,
itBmessage "C@ "AB8@ AE tFBmessage
.
" "abela que recebe as informa,-es crua do arquivo que ser tratado
9A"A. B@DI% AE tBline A##&?S 0,
linhaL10/M "C@ c,
@%9 AE tBline
.
" @struturas ...
9A"A. stBarqui "C@ tFBarqui,
stBbdcdata "C@ tFBbdcdata,
stBmessage "C@ tFBmessage
.
" Variaveis ....
9A"A. vgBmodeL1M "C@ c VA8&@ *%*, " informa o Nodo do #all "ransaction
vgBtextoL100M "C@ c, " "exto para o Indicator
vgBs "C@ c VA8&@ *S*, " Informa o &pdate do call "ransaction
mensg 8IO@ message VA8&@ IS I%I"IA8, " variavel que recebe retorno
msgno 8IO@ sF<msgno
.
" "ela de Sele,!o ....
" texto L
S@8@#"IA%<S#?@@% B@DI% AE B8A#O a KI"$ E?AN@ "I"8@ text<001.
A?AN@"@?S. pBdest "C@ string, " "exto L Arquivo txt. M
pBlog "C@ string " "exto L Arquivo log. M
.
S@8@#"IA%<S#?@@% @%9 AE B8A#O a.
" Puando for requisitado um valor no *arameter fa,a ...
A" S@8@#"IA%<S#?@@% A% VA8&@<?@P&@S" EA? pBdest.
@?EA?N (BbuscaBarquivo.
" Puando for requisitado um valor no *arameter fa,a ...
A" S@8@#"IA%<S#?@@% A% VA8&@<?@P&@S" EA? pBlog.
@?EA?N (BmostraBlocal.
" #ome,a aGi ...
S"A?"<AE<S@8@#"IA%.
@?EA?N. (BbaixaBarquivo,
(BtrataBarquivo,
(BmontaBshdb,
(BmandaBarquivo
.
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
=> Eorm (BbuscaBarquivo
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
" ega o valor contido no parameters e add o texto *.txt* no final assim o
" o nome do arquivo fica com a extens!o dese;ada.
EA?N (BbuscaBarquivo.
#A%#A"@%A"@ pBdest *.txt* I%"A pBdest.
#A88 E&%#"IA% *KSBEI8@%AN@BD@"*
@QA?"I%D
defBfilename R * *
defBpath R *#.S*
masG R *,"exto,=.txt,"odos,=.=.*
mode R *A*
title R *Arquivo de @ntrada*L004M
INA?"I%D
filename R pBdest
@Q#@"IA%S
A"$@?S.
@%9EA?N. " (BbuscaBlocal
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
=> Eorm (BmostraBlocal
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
" Nostra o local onde ser gravado o arquivo de 8og.
EA?N (BmostraBlocal .
#A88 N@"$A9 clBguiBfrontendBservicesRTdirectorFBbroUse
@QA?"I%D
UindoUBtitle R *Informar o caminho para gerar o arquivo*
initialBfolder R *#.S*
#$A%DI%D
selectedBfolder R pBlog
@Q#@"IA%S
cntlBerror R 1
errorBnoBgui R 2
notBsupportedBbFBgui R 3
A"$@?S R 4.
" %ome do Arquivo do 8og contendo o endere,oV%AN@1V$A?AV."Q".
#A%#A"@%A"@ pBlog *S* sF<uname *B* sF<u(eit *."Q"* I%"A pBlog
.
@%9EA?N. " WBNAS"?AB8A#A8
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
=> Eorm WBNA%"ABA?P&IVA
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
" ega o arquivo externo relacionado e coloca os dados na *"B8I%@
EA?N (BbaixaBarquivo.
#A88 E&%#"IA% *D&IB&8AA9*
@QA?"I%D
filename R pBdest
"AB8@S
dataBtab R tBline
@Q#@"IA%S
A"$@?S R 17.
@%9EA?N. " WBNA%"ABA?P&IVA
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
=> Eorm WB"?A"ABA?P&IVA
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
" Ser os dados conforme sequencia de campos e add na tabela principal
EA?N (BtrataBarquivo.
8AA A" tBline.
" o Split quebra a linha e separa por delimitador *+* colocando cada dado
" em cada campo sequencialmente.
S8I" tBline A" *+* I%"A. stBarqui<cliente
stBarqui<nome
stBarqui<rua
stBarqui<end
stBarqui<tel
.
" Add registro na tabela.
A@%9 stBarqui "A itBarqui.
@%98AA.
@%9EA?N. " WB"?A"ABA?P&IVA
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
=> Eorm (BmontaBshdb
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
EA?N (BmontaBshdb.
8AA A" itBarqui I%"A stBarqui.
" cria uma variavel pra informar qual cliente est porcessando no
" perform (BsapguiBprogressBindicator.
#A%#A"@%A"@ *rocessando o #liente <* stBarqui<cliente
I%"A vgBtexto S@A?A"@9 BC space.
" informa o processo atual
@?EA?N (BsapguiBprogressBindicator &SI%D vgBtexto.
" X aGi que o bixo pega, lembra daGele arquivo S$9B que enviaram pra vc
" ' aGi que ele come,a a fa(e sentido, oq nHs estamos fa(endo aGi e criando
" uma tabela com as informa,-es conforme o S$9B sH mundando a informa,!o
" que vc quer que mude conforme o registro.
" 9epois de terminar os performs (BpreencheBbdc vc vai dar uma olhada
" na tabela itBbdcdata pq ela vai estar igual(inha com o S$9B que
" enviaram pra vc.
" #rie um *erform pra cada tela que tiver no S$9B.
@?EA?N (BpreencheBbdc &SI%D.
*Q* *SANE029* *0101*,
* * *B9#B#&?SA?* *?E029<90110*,
* * *B9#BAO#A9@* *:00*,
* * *?E029<O&%%?* stBarqui<cliente,
* * *?E029<90110* *Q*.
@?EA?N (BpreencheBbdc &SI%D.
*Q* *SANE029* *0110*,
* * *B9#B#&?SA?* *O%A1<"@8E1*,
* * *B9#BAO#A9@* *:00*,
* * *O%A1<%AN@1* stBarqui<nome,
* * *O%A1<S"?AS* stBarqui<rua,
* * *O%A1<A?"01* stBarqui<end,
* * *O%A1<"@8E1* stBarqui<tel.
@?EA?N (BcarregaBtransacao.
@?EA?N (BimprimeBmensagem.
#8@A? itBbdcdata.
@%98AA.
@%9EA?N. " (BmontaBshdb
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
=> Eorm WB?@@%#$@BB9#
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
" Se 9Fnbegin R *Q* ele preenche as informa,-es da tela, sen!o ele preenche
" o campo e o dado dela. prontio.
EA?N (BpreencheBbdc &SI%D dFnbegin
name
value.
IE dFnbegin R *Q*.
NAV@. name "A stBbdcdata<program,
value "A stBbdcdata<dFnpro,
dFnbegin "A stBbdcdata<dFnbegin.
A@%9 stBbdcdata "A itBbdcdata.
@8S@.
NAV@. name "A stBbdcdata<fnam,
value "A stBbdcdata<fval.
A@%9 stBbdcdata "A itBbdcdata.
@%9IE.
" prepara a estrutura para o 8oop.
#8@A? stBbdcdata.
@%9EA?N. " WB?@@%#$@BB9#
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
=> Eorm WB#A??@DAB"?A%SA#AA
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
EA?N (BcarregaBtransacao .
" #hama a trasa,!o informada usando a tabela *I"BB9#9A"A que na verdade
" ' um shdb que vai automti(a o processo at' o ultimo registro, existe
" dois metodos de ver o processo, no *NA9@ se colocar *%* vc n!o visuali(a
" o processo, agora se vc coloca *A* no *NA9@ vc ter que apertar *@nter
" por processo e depois de efetuar o processo por registro ele popula a
" tabela *I"BNSD com os dados de retorno,se foi reali(ado com exito, ou se
" deu algum problema.
#A88 "?A%SA#"IA% *Q902* &SI%D itBbdcdata
NA9@ vgBmode
&9A"@ vgBs
N@SSAD@S I%"A itBmsg
.
@%9EA?N. " WB#A??@DAB"?A%SA#AA
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
=> Eorm WBIN?IN@BN@%SAD@N
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
EA?N (BimprimeBmensagem.
" 9 *8oop na tabela de retorno da chamada da transa,!o e alimenta outra
" tabela com a retorno referenciado com o #liente
8AA A" itBmsg.
msgno R itBmsg<msgnr.
" Eunction que fa( mostrar a mensagem
#A88 E&%#"IA% *K?I"@BN@SSAD@*
@QA?"I%D
msgid R itBmsg<msgid
msgno R msgno
msgtF R itBmsg<msgtFp
msgv1 R itBmsg<msgv1
msgv2 R itBmsg<msgv2
msgv3 R itBmsg<msgv3
msgv4 R itBmsg<msgv4
msgv5 R * *
INA?"I%D
= @??A? R
messg R mensg
= NSD8% R
.
@%98AA.
stBmessage<cliente R stBarqui<cliente.
stBmessage<msgtF R mensg<msgtF.
stBmessage<msgno R mensg<msgno.
stBmessage<msgtx R mensg<msgtx.
" popula a tabela principal de mensagem que ser o 8og de erro.
A@%9 stBmessage "A itBmessage.
= K?I"@. : , stBarqui<cliente ,
= mensg<msgtx,
= mensg<msgtF
= .
@%9EA?N. " WBIN?IN@BN@%SAD@N
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
=> Eorm WBNA%9ABA?P&IVA
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
EA?N (BmandaBarquivo .
" #ria um arquivo externo conforme *Eilename com as informa,-es da *9ataBtab
#A88 E&%#"IA% *D&IB9AK%8AA9*
@QA?"I%D
filename R pBlog
"AB8@S
dataBtab R itBmessage
@Q#@"IA%S
A"$@?S R 17.
@%9EA?N. " WBNA%9ABA?P&IVA
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
=> Eorm WBSAD&IB?AD?@SSBI%9I#A"A?
=><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=
EA?N (BsapguiBprogressBindicator &SI%D texto.
#A88 E&%#"IA% *SAD&IB?AD?@SSBI%9I#A"A?*
@QA?"I%D
percentage R 10
text R texto.
@%9EA?N. " WBSAD&IB?AD?@SSBI%9I#A"A?
" 9ebugem isso, estudem, fa,am de outra forma pois n!o eh t!o facil assim,
" apertem E1, muda o *NA9@ no *#A88 "?A%SA#"IA% pra ver processo por processo
" abusem deste programa, olhem abaixo o S$9B possivel para este Batch input,
" provavelmente deve ter mais campo mostrando valores mas nHs n!o precisavamos
" cadatrar outros campos, e qualquer d)vida e soh fala, tV.
" " Q902 BS AA Q E
"SANE029 0101 Q
" B9#B#&?SA? ?E029<90110
" B9#BAO#A9@ :00
" ?E029<O&%%? /000000001
" ?E029<90110 Q
"SANE029 0110 Q
" B9#B#&?SA? O%A1<"@8E1
" B9#BAO#A9@ :00
" O%A1<%AN@1 teste
" O%A1<S"?AS rua teste
" O%A1<A?"01 S!o aulo
" O%A1<"@8E1 1234567/

Você também pode gostar