Mostrando postagens com marcador validar cep. Mostrar todas as postagens
Mostrando postagens com marcador validar cep. Mostrar todas as postagens

quarta-feira, 25 de janeiro de 2012

Criando uma field-exit

A criação de uma field-exit é uma tarefa básica para um desenvolvedor ABAP, mas se você não ainda não sabe fazer isso não se preocupe, nesse post vou ensinar como criar e ativar uma field-exit para verificação do CEP na transação XD02, o procedimento é o mesmo para outras telas. 

Primeiro visualize a tela onde está o campo para o qual a field-exit será criada, nesse exemplo XD02, dados de endereço: 

Transação XD02
Endereço do cliente

Visualize as informações técnicas do campo, basta clicar no campo, pressionar F1 e clicar em Informação Técnica. Anote o nome do programa, número da tela e nome do elemento de dados.

Informações técnicas
Abap F1 - Informações técnicas do campo

Execute o report RSMODPRF e informe o elemento de dados do passo anterior. Na próxima tela clique em criar, informe o grupo de funções, uma descrição e confirme.

Report  RSMODPRF

Módulo de função da field-exit
Código do módulo de função da field exit

O parâmetro input traz o que está sendo informado no campo da tela e output permite passar um valor para o campo. 
 Volte a tela do report RSMODPRF, não informe nenhum parâmetro, então você irá visualizar todas as exits criadas no sistema.

Field-exit criada
Field exits do sistema (RSMODPRF)

Localize o elemento de dados da sua exit, marque-o e clique em atribuir programa ou tela, informe o programa e o número da tela do passo 1 e confirme. 

Atribuir programa e tela
Tela para atribuir a exit a um programa e tela

Agora clique no menu exit de campo em seguida ativar, informe a uma request e confirme. 

Ativar field-exit
Menu para ataivação da field exit

Pronto agora ao entrar novamente na XD02 você verá que sua validação está ativa. 

XD02 com field-exit ativa
Cadastro do cliente com a field exit ativada

domingo, 22 de janeiro de 2012

Validando expressões regulares em ABAP com javascript

As expressões regulares são a melhor forma de validar strings, aos invés de substrings e instruções IF. Infelizmente as versões anteriores ao Netweaver não dispoem de rotinas validação de expressões regulares, mas podemos contornar isso utilizando javascript.
O SAP contém uma classe chamada cl_java_script que permite executar códigos javascript dentro ABAP, mais do que isso, permite trocar dados entre o ABAP e o javascript.
Dentre os métodos dessa classe podemos destacar dois principais, o BIND que permite associar variavés ABAP a variáveis JS e o EVALUATE que permite executar o código JS.
Nesse post vou mostrar como utilizar o processador javascript do SAP para validar um CEP através de expressão regular.

Primeiro inclua a chamada da rotina que faz a validação do CEP dentro do local apropriado do seu programa:


Onde P_CEP deve ser substituido pelo campo que contém o CEP a ser validado.
Após a execução da rotina lv_match vai estar com o valor true se o CEP for válido ou false se for inválido.


Agora inclua o form para validação de CEP.

O código javascript utiliza o método match da classe RegExp para fazer a validação, se ocorrer algum erro durante a execução do código javascript, a mensagem de erro vai estar em l_return.
Agora você pode adaptar o código para outros tipos de vlidações como CPF, CNPJ, etc.