quarta-feira, 20 de abril de 2011
Função - Básico
" A Partir de hoje estaremos postando sobre 'Functions, bem para quem não
" sabe, 'Function é uma ferramenta usada para otimizar programas como rotinas
" podendo ser usado em varios programas ao mesmo tempo.
" Na teoria eh meio complicado, mas vcs vão ver que eh mou de boua, primeira
" coisa vou mostrar um Passo a Passo de como fazer uma 'Function e depois eu
" eu dou varios exemplos de 'functions que já vem da SAP, principalmente as
" mais usadas.
" Primeiro para ter uma 'function temos que ter um 'Grupo de funções onde é
" ir no se80, colocar Grupo de funções, colocar o nome e dar Enter, nessa
" hora ele ira informar que não existe ai e só preencher os campos e pronto,
" agora pra criar uma 'Function e soh clicar com o botão direito do mouse
" sobre o grupo de funções criada agora e criar uma função, mas aki nós
" vamos trabalhar com o se37 pois é quase uma obrigação saber usar bem esta
" transação.
" Na SE37 coloque o nome da 'Function e clique em Criar, o sistema irá
" informar que não existe então aparecerá uma tela onde vc deve colocar
" o grupo de função ( que eu espero que já tenha sido criado ) e clicar em
" Gravar.
" Dentro da função existe algumas abas uma delas é a 'Importing onde vc
" deve colocar aki todas as variáveis que o seu programa irá enviar para
" a função e na aba 'Exporting colocar todas as variaveis que a função irá
" exportar depois da execução.
" Repare bem nas propriedades preenchidas de cada campo dentro das abas
" 'Importing e 'Exporting onde está "Op..." seria 'Opcional que significa
" que para o funcionamento da 'Functions ela não precisa necessariamente
" que está variavel contenha valor e onde está " Tra..." seria 'Tranferivel.
" Caso tenha alguma variável que será modificado durante a execução, colocar
" na aba 'Modify.
" Caso vc tenha alguma tabela interna no programa que vá usar na sua 'function
" declarar ela na aba 'tables, lembrando que está tabela pode ser tipo uma
" estrutura "Z como tb qualquer coisa standart.
" Em Exceções serão colocadas às mensagens que a função irá retornar.
" Em 'Texto fonte' deverá ser codificado em ABAP normalmente, onde é
" só colocar o código abaixo é ver oq acontece.
FUNCTION Z_CRIAR_FUNCAO.
*"----------------------------------------------------------------------
*"*"Interface local:
*" IMPORTING
*" REFERENCE(V_MATNR) LIKE MARA-MATNR
*" EXPORTING
*" REFERENCE(V_MAKTX) LIKE MAKT-MAKTX
*" TABLES
*" T_TELA STRUCTURE ZCRIAR_ESTRUT OPTIONAL
*" EXCEPTIONS
*" MATERIAL_INEXISTENTE
*"----------------------------------------------------------------------
REFRESH: t_tela.
CLEAR t_tela.
SELECT matnr werks
INTO TABLE t_tela
FROM marc
WHERE matnr = v_matnr.
IF sy-subrc NE 0.
RAISE Material_Inexistente.
ENDIF.
SELECT SINGLE maktx
INTO v_maktx
FROM makt
WHERE spras = sy-langu and
matnr = v_matnr.
LOOP AT t_tela.
t_tela-maktx = v_maktx.
MODIFY t_tela.
ENDLOOP.
ENDFUNCTION.
" Salve, Ative e aperte F8 para testar onde aparecerá essa tela.
" E digite um Nº de material valido, caso contrario aparece mensagem
" de retorno.
" Portanto daki por diante se precisar uma descrição de material
" pelo numero do material informado é soh usar essa função, rsrs,
" t+ e qualquer coisa comentem.
Assinar:
Postar comentários (Atom)
Muito bom cara, parabéns !
ResponderExcluirMuito bom, parabéns!!!
ResponderExcluireu gostaria de fazer uma pergunta?
Estou iniciando no abap por agora, e tenho muitas duvidas. Uma que está me quebrando a cabeça é que quando eu vou tentar ativer o meu módulo de função ele aparece o seguinte erro programa basico de função não começa com 'FUNCTION-POOL, o que isso quer dizer?? Mas quando eu mudo para "FUNCTION-POOL" ele vem com outro erro "O campo < nome do parametro de importação> desconhecido. Este campo não está contido em uma das tabelas indicadas nem foi definido mediante uma instrução "DATA".
Cara não sei como você fez isso mas a ideia é criar um 'Grupo de funções' na SE80 e depois criar uma 'Função' na SE37 informando o Grupo de Função criada anteriormente, outra coisa e não esquecer de criar os parametros de Importação, Exportação e Tabelas antes de usar no Código Fonte. Boa sorte !
ResponderExcluirEsse erro do Function-pool acontece porque você não ativou o grupo de funções. Ative ele que não irá acontecer mais esse erro. Abraços!!
ResponderExcluirEra isso mesmo! Funcionou aqui! Obrigado pela resposta! Abraços
Excluirapareceu no meu código que zcriar_estrut não existe
ResponderExcluir