Para fazer a validação de CPF utilize a FM CONVERSION_EXIT_CPFBR_INPUT e para fazer a validação de CNPJ utilize a FM CONVERSION_EXIT_CGCBR_INPUT.
Basta passar somente os números no parâmetro input e veriifcar o sy-subrc.
segunda-feira, 13 de agosto de 2012
domingo, 27 de maio de 2012
Usando SAP OLE para validar inscrição estadual
A validação de inscrição estadual é um problema, ja que a formula varia de estado para estado, mas felizmente o Sintegra disponibiliza uma dll para fazer essa validação.
Dessa forma você pode criar um executável que utiliza essa dll e chamá-lo a partir do ABAP ou utilizar o ABAP OLE Automation Controller.
Nesse post vou mostrar como registrar uma dll, configurá-la no SAP e chamá-la a partir do código ABAP.
A dll do Sintegra não tem uma camada OLE, então não pode ser chamada diretamente pelo ABAP.
Para solucionar isso eu criei uma segunda dll com OLE em VB6 que chamava a dll do Sintegra. No link abaixo você pode obter essa dll e o código fonte da mesma em vb6.
http://www.4shared.com/rar/k71qc_ZA/Sintegra-VB6.html
Com a dll do Sintegra e a dll OLE criada no VB em mãos, basta fazer o seguinte:
Copiar as dlls para a pasta C:\Windows\System32 (SysWOW64 em sistemas 64 bits) do servidor SAP.
Registrar a dll criada no VB6 utilizando o comando regsvr32 SapIntegra.dll (substituir pelo nome da sua dll). Atenção para sistemas como o windows 7 e server 2008 é necessário executar o console com privilégios de Administrador.
Apos o registro é necessário obter as informações da dll, para isso você pode utilizar o programa RegDllVew.
Com as informações da dll em mãos basta acessar a transação SOLE no SAP e criar um nova entrada conforme abaixo.
Agora que está tudo configurado basta utilizar as classes OLE para fazer a validação. Abaixo você pode ver um exemplo de utilizaçao da dll.
Dessa forma você pode criar um executável que utiliza essa dll e chamá-lo a partir do ABAP ou utilizar o ABAP OLE Automation Controller.
Nesse post vou mostrar como registrar uma dll, configurá-la no SAP e chamá-la a partir do código ABAP.
A dll do Sintegra não tem uma camada OLE, então não pode ser chamada diretamente pelo ABAP.
Para solucionar isso eu criei uma segunda dll com OLE em VB6 que chamava a dll do Sintegra. No link abaixo você pode obter essa dll e o código fonte da mesma em vb6.
http://www.4shared.com/rar/k71qc_ZA/Sintegra-VB6.html
Com a dll do Sintegra e a dll OLE criada no VB em mãos, basta fazer o seguinte:
Copiar as dlls para a pasta C:\Windows\System32 (SysWOW64 em sistemas 64 bits) do servidor SAP.
Registrar a dll criada no VB6 utilizando o comando regsvr32 SapIntegra.dll (substituir pelo nome da sua dll). Atenção para sistemas como o windows 7 e server 2008 é necessário executar o console com privilégios de Administrador.
Apos o registro é necessário obter as informações da dll, para isso você pode utilizar o programa RegDllVew.
Com as informações da dll em mãos basta acessar a transação SOLE no SAP e criar um nova entrada conforme abaixo.
Agora que está tudo configurado basta utilizar as classes OLE para fazer a validação. Abaixo você pode ver um exemplo de utilizaçao da dll.
terça-feira, 27 de março de 2012
Substituindo Sun Base64Encoder com Apache Commons Codec
Nesse post eu ensinei assinar o RPS da prefeitura de São Paulo, na época eu utilizei a API Sun Base64Encoder para codificar a assinatura em Base64, mas como ela é uma API proprietária da Sun pode ser que não esteja disponível em futuras versões do Java, então você pode substituí-la pelo Apache Base64, basta fazer o seguinte:
Primeiro baixe o Apache Commons Codec.
Coloque o jar do commons codec no classpath da sua aplicação, ou se você utiliza o Netbeans, crie uma nova biblioteca e inclua no seu projeto.
Importe o Apache Commons Codec:
Altere o método signASCII:
A biblioteca Apache Commons Codec implementa outros encoders e decoders, vale a pena utilizá-la para outras situações.
Primeiro baixe o Apache Commons Codec.
Coloque o jar do commons codec no classpath da sua aplicação, ou se você utiliza o Netbeans, crie uma nova biblioteca e inclua no seu projeto.
Importe o Apache Commons Codec:
Altere o método signASCII:
A biblioteca Apache Commons Codec implementa outros encoders e decoders, vale a pena utilizá-la para outras situações.
sábado, 25 de fevereiro de 2012
Lendo tabelas de outros programas da sessão
Algumas vezes quando estamos implementando alguma exit, nos deparamos com uma situação em que precisamos de dados que estão declarados globalmente no programa principal mas que não estão disponíveis na interface da exit.
Para acessar basta você fazer uma referencia no formato (AAA)BBB onde AAA é o nome do programa e BBB o nome da tabela, estrutura ou campo a ser acessado, utilize field-symbols para fazer as referências.
Teste simples
Acesse a transação VA03 e ative o debug.
Na tela de debug insira o campo (SAPMV45A)XVBPA[] e você conseguirá visualizar os dados da tabela.
Acesse esse post para informações mais detalhadas a respeito.
Esse outro post também pode te ajudar bastante.
Para acessar basta você fazer uma referencia no formato (AAA)BBB onde AAA é o nome do programa e BBB o nome da tabela, estrutura ou campo a ser acessado, utilize field-symbols para fazer as referências.
Teste simples
Acesse a transação VA03 e ative o debug.
Na tela de debug insira o campo (SAPMV45A)XVBPA[] e você conseguirá visualizar os dados da tabela.
Acesse esse post para informações mais detalhadas a respeito.
Esse outro post também pode te ajudar bastante.
Cuidados com a formatação de emails HTML
No post anterior eu ensinei como enviar emails em formato HTML, mas há alguns cuidados que você deve tomar com relação a formatação da mensagem, pois o suporte a css não é o mesmo entre os diferentes clientes de email e pode ser que o belo design da sua mensagem não fique tão belo assim quando chegar ao destinatário.
Nesse post há um guia completo de suporte CSS em vários clientes de email.
Nesse post há um guia completo de suporte CSS em vários clientes de email.
Importando self-certificate para o servidor
Nesse post eu ensinei como configurar um certificado SSL no PSE, mas quando estamos trabalhando no ambiente de testes os servidores podem utilizar certificados selfssl, para economizar grana é claro. Como o certificado não foi emitido por AC autorizada, são necessários alguns passos adicionais para importá-lo para o PSE.
Volte ao post anterior e após clicar em confirmar na tela de importação do certificado e antes de clicar no botão incluir faça o seguinte.
Certifique se que os dados do certificado estão visíveis no quadro certificados.
Clique no botão exportar ao lado do botão importar.
Na tela de exportação clique na guia BD, informe um nome breve começando com Z, selecione CA usuário, informe uma descrição e confirme.
Agora você pode clicar em incluir e continuar com as demais etapas do post anterior.
Volte ao post anterior e após clicar em confirmar na tela de importação do certificado e antes de clicar no botão incluir faça o seguinte.
Certifique se que os dados do certificado estão visíveis no quadro certificados.
Clique no botão exportar ao lado do botão importar.
Na tela de exportação clique na guia BD, informe um nome breve começando com Z, selecione CA usuário, informe uma descrição e confirme.
Agora você pode clicar em incluir e continuar com as demais etapas do post anterior.
Resolvendo o problema de histórico do SAP GUI
Por uma ou duas vezes eu tive um problema com relação ao histórico do meu SAP Gui, e nada do que digitava era gravado no histórico, assim o SAP Gui não fazia nenhum sugestão para preenchimento de campos.
Parece ser um problema relacionado ao MDAC, já que o SAP Gui utiliza uma base access para gravar o histórico local. Eu consegui resolver o problema através desse post.
Parece ser um problema relacionado ao MDAC, já que o SAP Gui utiliza uma base access para gravar o histórico local. Eu consegui resolver o problema através desse post.
Assinar:
Postagens (Atom)