Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
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. Para nosso teste utilizaremos a funo: DATE_TO_DAY Na transao: SE37 digite a funo acima e tecle F8.
A finalidade desta funo dar o dia da semana uma determinada data, bastando apenas que seja inserida a data no campo DATE. Como resultado, teremos:
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.
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. Em parmetros de importao so criados os campos que estaro disponveis na funo como parmetros de entrada. Digitar os parmetros abaixo:
Opcional
Se no houver a obrigatoriedade de ser enviada informao em um dos campos de entrada marque como opcional. Quando no marcado ser obrigatrio o envio de informao no campo parmetro.
Parmetros de Exportao
Nesta aba voc precisa disponibilizar os parmetros de Sada, ou seja, o resultado do processamento da funo, que estar disponvel a sua aplicao. 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
Como o sugestivo nome diz, so parmetros em forma de tabela. A grande sacada do parmetro Tabelas que pode, assim como o Modificao ser alterado. No somente leitura. bem utilizado quando a funo recebe ou retorna diversos parmetros em diversas linhas. Seria muito chato ter que fazer um loop e fazer diversas chamadas a funo a cada nova linha. Neste parmetro voc j receber a tabela populada com, talvez, o resultado de um select.
Parmetros Excees
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
Nesta aba temos toda a lgica da funo, puro cdigo ABAP. No nosso caso, para nossa calculadora, escreveremos o cdigo abaixo, nada de assustar, para iniciarmos.
*DEFINIO VARIVEIS LOCAIS DATA: vl_resultado TYPE p DECIMALS 2. *DEFINIO DAS OPES DE CLCULO CASE operacao. WHEN '+'. vl_resultado = valor1 + valor2. WHEN '-'. vl_resultado = valor1 - valor2. WHEN '/'. vl_resultado = valor1 / valor2. WHEN '*'. vl_resultado = valor1 * valor2. ENDCASE.
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.
IF operacao = '/' AND valor2 = 0. RAISE no_zero. ENDIF.
Pronto, temos nossa primeira funo. Para test-la tecle F8, entre com valores e operao desejada. Se quiser salvar os parmetros entrados para testes clique em Salvar. Isso facilitar que na prxima vez, para testar, voc no precise digitar os valores novamente.
ALINK_CALL_TRANSACTION
Mdulos de funo para a criao de programas (til quando voc est gerando
programas)
RS_PROGRAM_CHECK_NAME Para verificar nomes de programas, se voc estiver gerando-os.
RS_CORR_INSERT
REPS_OBJECT_ACTIVATE
RS_DELETE_PROGRAM
RS_ACCESS_PERMISSION
DATE_TO_DAY
DATE_COMPUTE_DAY
DATE_GET_WEEK
RP_CALC_DATE_IN_INTERVAL
DAY_ATTRIBUTES_GET
MONTHS_BETWEEN_TWO_DATES
END_OF_MONTH_DETERMINE_2
HR_HK_DIFF_BT_2_DATES
FIMA_DAYS_AND_MONTHS_AND_YEARS
MONTH_NAMES_GET
Obter os nomes do ms
WEEK_GET_FIRST_DAY
HRGPBS_HESA_DATE_FORMAT
SD_CALC_DURATION_FROM_DATETIME
L_MC_TIME_DIFFERENCE
HR_99S_INTERVAL_BETWEEN_DATES
LAST_DAY_OF_MONTHS
DATE_CHECK_PLAUSIBILITY
DATE_2D_TO_4D_CONVERSION
DAY_IN_WEEK
SD_DATETIME_DIFFERENCE
FACTORYDATE_CONVERT_TO_DATE
DATE_CONVERT_TO_FACTORYDATE
POPUP_TO_SELECT_MONTH
POPUP_TO_GET_VALUE
SAPGUI_PROGRESS_INDICATOR
Exibe uma barra de progresso com um texto para indicar a porcentagem de concluso e status
FILENAME_GET
Mostra uma janela pop-up para obter o nome de um arquivo no servidor de apresentao (local)
F4_DATE
POPUP_TO_SELECT_MONTH
GET_PRINT_PARAMETERS
Parmetros de impressora
F4IF_INT_TABLE_VALUE_REQUEST
F4IF_FIELD_VALUE_REQUEST
RFC_GET_SYSTEM_INFO
{+}Mdulos de Funo relacionados com ler/escrever arquivos no servidor de aplicao (nomeado abaixo como AS) ou Frontend +
FILE_READ_AND_CONVERT_SAP_DATA Faz o upload de um arquivo tanto no servidor de aplicao como no de apresentao e retorna em uma tabela interna
SUBST_GET_FILE_LIST
ALSM_EXCEL_TO_INTERNAL_TABLE
WS_FILE_DELETE
Deleta arquivos no AS
PFL_COPY_OS_FILE
Copia arquivos no AS
EPS_GET_DIRECTORY_LISTING
FILENAME_GET
Mostra uma janela de popup que retorna o nome do arquivo no AS (Transao FILE)
GUI_UPLOAD
GUI_DOWNLOAD
SO_NEW_DOCUMENT_SEND_API1
Valores e Moeda
CURRENCY_AMOUNT_SAP_TO_IDOC Converter a moeda para o formato IDOC
CLOI_PUT_SIGN_IN_FRONT
Move o sinal negativo do lado esquerdo de um nmero para o lado direito do nmero. Observe que o resultado vai ser justificado esquerda (como todos os campos de caracteres), e no justificado a
CONVERT_TO_FOREIGN_CURRENCY
CONVERT_TO_LOCAL_CURRENCY
CONVERT_AMOUNT_TO_CURRENCY
Converter um valor de uma moeda para outra (taxa de cmbio tomadas a partir de tabelasdo banco de dados)
CONVERT_CURRENCY_BY_RATE
Converter um valor de uma moeda para outra, de acordo com a taxa de cmbio passada
BAPI_CURRENCY_CONV_TO_EXTERNAL
BAPI_CURRENCY_CONV_TO_INTERNAL
CALCULATE_TAX_FROM_NET_AMOUNT
SPELL_AMOUNT
HR_IN_CHG_INR_WRDS
VC_I_GET_CONFIGURATION
SD_PRINT_TERMS_OF_PAYMENT
SD_PRINT_TERMS_OF_PAYMENT_SPLI
J_1B_NF_DOCUMENT_READ
L os detalhes da NF
J_1B_NF_VALUE_DETERMINATION
HR_READ_INFOTYPE
Este mdulo de funo l os registros de dados de um infotipo de HR que existem para funcionrios e candidatos.
HR_INFOTYPE_OPERATION
CU_READ_RGDIR
PYXX_READ_PAYROLL_RESULT
Esse mdulo de funo l a folha de pagamento completa das verses de todos os pases, do arquivo de cluster PCL2.
HR_GET_PAYROLL_RESULTS
Este mdulo de funo usado para buscar os resultados da folha de pagamento para os funcionrios.
HR_RELATION_MAINTAIN
Este mdulo de funo usado para manter a relao entre empregado e posio.
BAPI_HRMASTER_SAVE_REPL_MULT
Este mdulo de funo para criar uma posio ou unidade organizacional, etc.
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 No existe suporte para transaes distribuidas no R/3. Os RFCs so executados em transaces locais (SAP R/3), sendo no entanto possvel executar varios RFCs na mesma transao. 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:
Sncrono O RFC executado no momento da sua invocao e o cliente bloqueado at a concluso da chamada.
Transacional O RFC executado 1 e 1 s vez assincronamente depois da transaco do cliente terminar. No caso de suceder algum erro na execuo do RFC este reprocessado. No garantida que a ordem de chamada dos RFCs mantida aquando da sua execuo. Queued Semelhante ao Transaccional, mas com garantia de ordenao. 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.
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.
Lembre-se: Se ainda no houver Grupo de Funes, voc dever criar; no esquecer de ativar.
Na funo J_1B_NF_READ_HEADER esto todos os parmetros que voc precisa. Copie-os e cole na sua funo remota. Primeiro v a Parmetros de Importao, faa este processo; depois v at Parmetros de Exportao, faa o mesmo. E assim com os outros parmetros.
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.
S precisa de uma ajudinha agora relacionando os campos de entrada e retorno com os parmetros que voc criou na sua funo, ficando assim:
Ative sua funo para que possamos, de fato, transform-la em Remote Function.
V aba Caractersticas e ative: , ative e ponto final. Agora s testar no prprio SAP e depois atravs de um programa externo. Utilize seus dons em Java ou .NET.