quarta-feira, 10 de dezembro de 2014

Criando relatórios SALV

As classes SALV são uma verdadeira mão na roda quando se trata da criação de reports em ABAP, esqueça as funções REUSE_XXX_DISPLAY e as classes cl_gui_alv_xxx, pois o SALV é muito mais fácil e prático.
O SALV é wrapper dessas funções e classes que permite utilizar a mesma sintaxe para todos eles, a melhor parte é que não há a necessidade de manipular fieldcats, nade de perform fieldcat ou LVC_FIELDCATALOG_MERGE, basta apenas passar a sua tabela interna e ele cuidará do fieldcat a partir dos campos dela. Há diversos exemplos muito bons, procure pelos programas SALV_DEMO*.
Se você der uma olhada no programa SALV_DEMO_TABLE_REAL_SIMPLE vai ver o quão simples é criar um ALV com o SALV. São necessárias apenas três instruções para criar um ALV Fullscreen (o mesmo da funçaõ REUSE_ALV_GRID_DISPLAY ):

1 - Declarar o objeto:  
datagr_table  type ref to cl_salv_table.

2 -  Instanciar o objeto a partir da factory do SALV
  call method cl_salv_table=>factory
    IMPORTING
      R_SALV_TABLE gr_table
    changing
      t_table      gt_outtab.


3 - Exibir o ALV
gr_table->display). 



Agora é possivel otimizar a largura das colunas  de forma adequada
 

É possivel configurar uma barra de ferramentas básica sem precisar manipular a tabela interna da toolbar.
 

É possivel declarar um campo na tabela interna para ser utilizado apenas internamente. 



 

Procurar trechos de código em programas ABAP

Embora não seja uma boa prática colocar valores fixos no meio do código ao inves de parametrizá-los, muitos programadores fazem isso e pode ser que você acabe com a ardua tarefa de substitui-los em vários programas, mas como encontrar so programas a serem atualizados?
Felizmente a SAP disponibiliza o programa RS_ABAP_SOURCE_SCAN para fazer isso, com esse report você pode por exemplo localizar a sentença LGORT = 'ABCD' em todos os programas Z.
O report permite fazer busca tanto usando sentenças quanto expressões regulares e se você ainda não conhece essas expressões corra aprender porque elas agilizam muito o dia a dia.
Vamos a alguns exemplos:

Procurar todas as comparações de depósito

 Resultado:





Procurar todos os selects nos programas MB51,MB52, etc.
Resultado:


terça-feira, 23 de abril de 2013

Resolvendo o problemas de proxy no ValidadorFCI da receita

Há alguns dias atrás eu tentei utilizar o software ValidadorFCI da receita federal para testar o envio de FCIs e tive vários problemas devido ao fato de estar utilizando uma conexão via proxy.
O ValidadorFCI, utiliza a internet para validar o certificado digital que você selecionou,então libere o acesso aos endereço www.fazenda.sp.gov.br/* (HTTP e HTTPS).
Se o seu proxy exigir autenticação, navegue até a pasta onde o ValidadorFCI está instaladado, abra o arquivo Br.Gov.Sp.Fazenda.CCI.ValidadorFCI.Presenter.exe.config,  e inclua a tag defaultproxy usedefaultcredentials="true" para que o aplicativo utilize as credenciais do usuário conforme abaixo:

sexta-feira, 8 de fevereiro de 2013

Adicionando uma bilblioteca ao Netbeans



Existem várias IDEs para trabalhar com Java como Eclipse, Netbeans, intelliJ IDEA, entre outras. Todas são excelentes, mas a que eu mais utilizo é o Netbeans, devido aos muitos assistentes e ferramentas que essa Ide possui.
Nesse post eu vou mostrar como configurar uma biblioteca no Netbeans para que você possa utilizá-la nas suas aplicações. Eu estou utilizando o Netbeans 7.2 em inglês - para saber como mudar o idioma do Netbeans clique aqui.

Clique em Tools->Ant Libraries:

Na janela Ant Libraries Manager, clique em New Library:

Na janela New Library, informe o nome da biblioteca que sendo adicionada (eu costumo colocar o nome e versão) e certifique-se de que a opção Class Libraries está selecionada:

Na guia classpath clique em Add JAR/Folder e selecione a o arquivo jar da biblioteca (em, alguns casos são mais de um):

Na guia sources, clique e adicione o código fonte da biblioteca caso esteja disponível (geralmente vem na pasta src), isso permitirá fazer o debug dentro dos métodos da biblioteca:
Na guia Javadoc, clique e adicione a pasta ou o jar com a documentação da biblioteca, isso permitirá visualizar a documentação da classe ou método através da ferramenta Code Completion do Netbeans (Control + Space):

Pronto a biblioteca está adicionada. Para utilizá-la na sua aplicação, basta fazer o seguinte:
Abra as propriedades da sua aplicação (botão direito na aplicação e em seguida properties), clique em Add Library, selecione a biblioteca criada e em seguida Add Library:

Feche a janela de propriedades, expanda o nó Libraries na sua aplicação e você poderá visualizar a biblioteca recém-adicionada e seus pacotes e classes.

Alterando o idioma do Netbeans para inglês



Algumas vezes as traduções deixam a desejar e acabam te deixando perdido, principalmente se traduzirem algum termo técnico. Infelizmente o Netbeans não possui uma opção para que você possa selecionar o idioma da IDE, nesse post vou mostrar como deixa-lo em inglês.

Abra o arquivo netbeans.conf que fica dentro da pasta etc do diretório de instalação do Netbeans:

Inclua o parâmetro -J-Duser.language=en na variável netbeans_default_options:

Agora é só abrir o Netbeans novamente e ele já vai estar em inglês.

segunda-feira, 13 de agosto de 2012

Validar CPF ou CNPJ em ABAP

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.

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.