Escolar Documentos
Profissional Documentos
Cultura Documentos
Abap-Intermediario
Abap-Intermediario
J vimos que o SAP disponibiliza vrias funes que podem ser acessados por programas,
reports, classes e outras funes. As funes podem ser utilizadas tambm em programas Z,
porm antes de utiliz-las possvel tambm, test-las e verificar se atende a necessidade.
A finalidade desta funo dar o dia da semana uma determinada data, bastando apenas que
seja inserida a data no campo DATE.
Neste caso temos um parmetro de Entrada e um parmetro de Sada. Existem funes que
retornam tabelas com diversos valores, vamos testar a funo: J_1B_NF_DOCUMENT_READ.
Esta funo retornar diversos dados sobre uma Nota Fiscal, alguns valores de impostos no
so mostrados nesta funo.
Esta funo s tem um parmetro de Entrada: DOC_NUMBER, nmero do spool da Nota fiscal
no SAP. Este nmero o campo chave da Nota fiscal para o SAP, que digitado na transao
J1B3N (para visualizar uma Nota Fiscal).
Veja que depois que voc entra com o DOC_NUMBER e tecla F8 ele trar preenchida diversas
tabelas referentes a dados da Nota Fiscal, basta clicar na tabela para visualizar os dados.
Criar Funo no SAP
Especificar o nome (tem que comear com Y ou Z), digitar o nome do grupo de funo. Se j
no houver um grupo mster criar um em: Utilitrios->Admins. de Grp de funes->Criar
Grupo .
Parmetros de Importao
Toda funo, indiferente a linguagem utilizada para sua implementao, existe um mecanismo
onde se fornecem parmetros de entrada a fim de receber alguma informao processada na
sada. Se levssemos para o mundo figurado do computador, a funo seria um processador,
Parmetros de Importao seriam os dados brutos e Parmetros de Exportao seria a
informao processada.
Opcional
O resultado da nossa funo ser o total encontrado para a operao matemtica solicitada,
ento teremos apenas um Parmetro de Sada, mostrado abaixo:
Parmetros de Modificao
Nesta aba Modific. colocaremos os campos que so tanto de entrada como sada, ou seja,
so campos que so enviados como parmetro de pesquisa mas podero voltar populados
com outro valor de acordo com o cdigo fonte da funo. mais utilizando quando temos o
campo que do tipo de uma tabela onde enviamos algumas informaes da tabela e no
cdigo fonte da funo populamos os outros campos desta mesma tabela. No parmetro de
Entrada (Importao) no possvel substituir valor, sendo somente leitura, da o real uso do
parmetro de Modificao.
Parmetros Tabelas
Seria muito chato voc fazer uma chamada a uma funo ABAP ou qualquer outra linguagem e
por algum motivo, no acontecer nada. Voc fica um tempo esperando e nada... Para isso
existem mecanismos para tratar possveis erros, nas funes SAP, so as excees. D nomes
as excees que podero acontecer durante a execuo da funo, e se cair em uma destas
excees o usurio poder ter o conhecimento do que aconteceu. Nada melhor do que um
feedback de vez em quando.
No caso da nossa funo calculadora teremos no mnimo uma exceo, vamos criar a exceo
NO_ZERO para que depois possamos tratar o momento que enviaremos esta exceo ao
usurio.
Texto Fonte
Tratamento de Excees
Precisamos enviar para o programa que chamar a nossa funo alguns parmetros de acordo
com possveis tipos de erros encontrados durante a execuo do programa. No nosso caso, j
temos criado o Parametro de Exceo NO_ZERO.
Vamos acrescentar entre a declarao de variveis DATA e o nosso CASE o seguinte cdigo,
o qual enviar ao programa que chama nossa funo a exceo NO_ZERO para que possa ser
tratado o caso do usurio tentar dividir um valor por zero.
Mdulos de funo para a criao de programas (til quando voc est gerando
programas)
POPUP_TO_CONFIRM
Mostra uma janela popup com uma mensagem definida
pelo usurio para confirmao
Valores e Moeda
CALCULATE_TAX_FROM_NET_AMOUNT
As RFCs so as funes remotas. So funes que esto visveis fora do SAP, processam
informaes atravs de parmetros de entrada e retornam informaes processadas a um
programa fora do SAP, que fez a solicitao.
Veja o que diferencia uma funo normal de uma RFC dentro do SAP:
RFC (Remote Function Call) a interface standard SAP de comunicao entre sistemas SAP. No
entanto pode ser utilizado com sistemas no SAP
O RFC disponibiliza uma forma de se executar um mdulo de funo num sistema remoto
O protocolo utilizado rfc sobre tcp/ip. A autenticao feita na obteno da conexo rfc. As
autorizaes so definidas programticamente na implementao do mdulo de funo.
Tipos de RFC:
possvel publicar mdulos de funo ABAP implementados como RFC (Remote Function Call),
Grupos de funes, BAPIs, ou mensagens XI.
Os BAPIs no SAP Web Application Server so implementados como mdulos de funo que
suportam o protocolo RFC Remote Function Call, e assignados como mtodo de um SAP BO.
E se quisermos utilizar alguma funo que normalmente utilizamos dentro do SAP (no
remota) em uma chamada externa, possivel? Sim! Mas no tente mudar a funo para
remota. O caminho criar uma funo remota que acessa a funo SAP standard. Vejamos
como no passo-a-passo abaixo:
Esta funo nos d dados do cabealho de uma nota fiscal. O nico parmetro que passamos
o numero do documento (no SAP chamamos spool).
Esta funo no d pra ser transformada em remota por ser uma funo standard. Vamos
ento criar uma funo remota e a partir dela chamar a funo standard.
Verifique os parmetros da funo standard. Na nossa funo remota teremos todos estes
parmetros.
Na SE37 crie uma nova funo com o nome YXXNOTA_FISCAL.
Lembre-se: Se ainda no houver Grupo de Funes, voc dever criar; no esquecer de ativar.
Uma coisa que tem que levar em conta quando se esta gerando uma Funo Remota em
relao a uma funo SAP a opo Transf.Valores que est disponvel em cada campo dos
parmetros tanto de importao como exportao. Esta opo bem relevante em
performance quando se trata de parmetros tipo tabela pois ele faz uma copia dos dados do
parmetro sem que seja preciso toda vez que faz uma re-chamada tenha que buscar os dados
novamente.
Porm, no esquea isso, para no ter dor de cabea depois tentando saber o motivo que a
funo remota no ativa. As funes remotas precisam desta opo marcada.
Agora ficou fcil, em cdigo fonte, na sua funo remota clique no boto modelo.
Na tela que aparece digite o nome da funo SAP que voc deseja clonar para Remoto.
Ative sua funo para que possamos, de fato, transform-la em Remote Function.