sexta-feira, 4 de março de 2011

Rotinas Automáticas

Uma ferramenta importante para a integração são as rotinas automáticas. No projeto em que eu estou, toda a integração é baseada em rotinas automáticas, salvo algumas exceções em que o Protheus não disponibiliza tais rotinas como uma para gerar uma nota fiscal de saída pelo faturamento. Tive algumas dores de cabeça com algumas rotinas automáticas pois elas são bem rígidas e não deixam passar em branco alguns erros. Inclusive, alguns desses erros são bem difíceis de identificar . Irei listar abaixo alguns deles e suas soluções:


eu estava gerando Notas Fiscais de entrada através da rotina MSExecAuto({|x,y,z| mata103(x,y,z)},aCabec,aItens,3)

Conferi os dados, tudo certinho. Só que na hora de gerar a nota, a função MostraERRO() gerava o seguinte aviso:

HELP: REGNOIS
Não existe registro relacionado a este
código.

Tabela SF1 18/02/11 16:48:56
- cTipo :=N
- cFormul :=N
- cNFiscal :=102454
- cSerie :=01
- dDEmissao :=18/02/11
- cA100For :=000005
- cLoja :=01 < -- Invalido - cEspecie :=NFE - cUfOrig :=PB

Só que a loja era realmente do fornecedor e todos os outros dados estavam corretos. A não ser por um detalhe. O código do fornecedor está com tamanho igual a 6, porém o campo correspondente do Protheus estava com tamanho 14. Nada muito haver com o erro apresentado pelo Protheus, mas que causou bastante dor de cabeça. Então na linha:

aadd(aCabec,{"F1_FORNECE","000005"})

Eu fiz assim:
aadd(aCabec,{"F1_FORNECE","000005 "})
E a rotina funcionou normalmente.
Resumo da história, é altamente recomendável usar códigos com o mesmo tamanho do campo.


3 comentários:

  1. Fala meu amigo, tudo em cima!?
    Primeiramente gostaria de elogiar seu blog, hoje infelizmente temos poucos canais sobre a linguagem ADVPL...

    Enfim, materia muito boa... só um detalhe, em determinado momento você menciona que a rotina automatica "MATA103" é utilizada na geração de NF de SAÍDA, não seria ENTRADA?


    Forte abraço!
    Paulo Lima

    ResponderExcluir
  2. Verdade Paulo Lima, faz tempo que postei isso e não revisei. Mas agora está corrigido. Obrigado pelo dica.

    ResponderExcluir
  3. Gostei do blog. Muitas dicas. Quando tiver um tempo, acesse: http://microsigadvpl.blogspot.com, tem muitas dicas de ADVPL / TOTVS Protheus.

    Obrigado!

    ResponderExcluir