Procedures Dinamicas SIGACTB (Contabilidade Gerencial)

Produto:

Microsiga Protheus

Versões:

12.1.17

Ocorrência:

Realização de testes nas procedures dinâmicas do modulo contábil em banco de dados PostgreSQL.

Passo a passo:

  • Foi realizado o levantamento da quantidade de procedures dinâmicas no modulo contábil, totalizando 59

  • Em seguida através de rotina automática as funções responsáveis pela execução das querys foram chamadas, e executadas diretamente no banco de dados PostgreSQL versão 1.6

  • 47 procedures foram retornadas com sucesso após a chamada da função MsParse.

    RotinaDescrição da RotinaFunçãoDescrição da FunçãoObservaçãoConclusão
    CTBXATU.PRWRotina GenéricaCriaSP169()Cria a procedure CTB169 dinamicamenteExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 356 msec.
    CTBXSAL.PRWRotina GenéricaCriaSPMVT()Cria a procedure CTB169 dinamicamenteExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 103 msec.
    CTBA360.PRWAtualiza os saldos compostos.CTBA360H()cria CTBA360H - Ct360Flag - Atualiza flag de slds compostosExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 156 msec.


    CTBA360G()Recuperar slds anteriores a data inicial do CTYExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 164 msec.


    CTBA360F()Recuperar slds anteriores a datainicial do CTXExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 108 msec.


    CTBA360E()Recuperar slds anteriores a data inicial do CTWExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 95 msec.


    CTBA360D()SLDANTCTV - Recuperar slds anteriores a data inicial do CTVExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 95 msec.


    CTBA360C()Recuperar slds anteriores a data inicial do CTUExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 88 msec.


    CTBA360B()Apaga Slds da tabela destino ( CTU/CTV/CTW/CTX/CTY )Executar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 89 msec.


    CTBA360A()Procedure pai - Ctb360SlCmp() - Atualiza os Saldos CompostosExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 103 msec.


    CallXFilial()Funcao xFilial para uso dentro do corpo das procedures dinamicasExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 93 msec.
    CTBA370.PRWRecalcula o valor dos lancamentos em moedas fortesCTBA370A()Cria a procedure de conversao de valoresExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 103 msec.


    CTBA370Proc()Cria as procedures de atualizacao Debitos do CT7,CT3,CT4,CTIExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 95 msec.


    CallXFilial()Funcao xFilial para uso dentro do corpo das procedures dinamicasExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 93 msec.
    CTBA810.PRWRotina de Amarração de entidades contabeisCriaProc()Monta a procedure de concatenação das entidades.Testada na rotina CTBA250Query returned successfully in 113 msec. Colocar Postgres na validação: Alltrim( Upper(TcGetDb())) $ 'MSSQL7|MSSQL|ORACLE|DB2|INFORMIX' Linha 652 Função FiltraDestino()


    CTBA810Grava()Gravação de entidadesTestada na rotina CTBA250Query returned successfully in 141 msec.
    CT2SeqIDX.PRWGravacao do campo CT2_SEQIDX para lanc. c/chave duplicada.SeqIdxProc()Procedure p/ a gravacao do campo CT2_SEQIDX ch duplicadaExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 110 msec.
    CTBM300.PRWPermitir copiar saldos analiticos ou sinteticos de uma determinada conta, cc, item ou classe de valor para umsegundo tipo de saldo informado pelo usuario.CTBM300CTI()Atualiza saldos no CQ7Executar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 95 msec.


    CTBM300CT4()Atualiza saldos no CQ5Executar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 92 msec.


    CTBM300CT3()Atualiza saldos no CQ3Executar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 96 msec.


    CTBM300CT7()Atualiza saldos no CT7Executar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 104 msec.


    CTBM300DOC()Gera proxima linha, doc e loteExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 83 msec.


    CTBM300PAI()Copia dos tipos de saldos selecionadosExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 101 msec.


    CallXFilial()Funcao xFilial para uso dentro do corpo das procedures dinamicasExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 93 msec


    CTBM300LDAY()Retorna o ultimo dia do mêsExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 84 msec.


    CTBM300CTC()Insercao / Atualizacao CTCExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 93 msec.
    CTBR403.PRWRazao por entidadeR403SldAnt()Cria e instala procedure que busca o Saldo anteriorExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 116 msec.
    CTBXINT.PRWRotina GenéricaCriaManad1()Cria procedure para popular a tabela temporariaExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 83 msec.


    CriaManad2()Cria procedure para popular a tabela temporariaExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 100 msec.
    CTK811.PRWPrograma de Atualizacao do CTKProcCTK811()Programa de Atualizacao do CTK.Executar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 94 msec.
    CTBS011.PRWEscrituração Contabil - ECD/ECFCt11PtoE()Cria Procedures de ponto de entrada ECDCHVMOVExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 95 msec.


    Ct11DtLp()Cria procedure par verifcar se a data e de apuracao de Lucros e PerdasExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 81 msec.


    Ct11PopCSA()Cria procedure de gravacao de movimentos no CSAExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 90 msec.


    Ct11PopCSB()Cria procedure de gravacao de movimentos no CSBExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 89 msec.


    Ct11PopCSL()Cria procedure de gravacao de movimentos na tabela CSLExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 95 msec.


    Ct11ProcPa()Cria procedure de gravacao de movimentos no CSBExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 93 msec


    Ct11Filial()Funcao xFilial para uso dentro do corpo das procedures dinamicasExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 100 msec.


    ProcCtaRef()Cria procedure de gravacao das contas referenciaisExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 84 msec.


    Ct11PMF()Cria procedure de gravacao de movimentos no CSBExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 89 msec
    CT220DOC.PRWEx de rdmake para gerar linhas sempre diferentes no CT2.CT220DOC()Ex de rdmake para gerar linhas sempre diferentes no CT2.Executar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 94 msec.
    CTBA220.PRWAglutinação de dados. Segue o mesmo modelo do SIGACON -> Aglut mod ACt220ExecP()Copia as tabelas para empresa destinoExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 200 msec.


    Ctb220CQ7()Cria procedure p geracao de lactos de saldos inciais do CQ7Executar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 106 msec.


    Ctb220CQ5()Cria procedure p geracao de lactos de saldos inciais do CQ5Executar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 87 msec.


    Ctb220CQ3()Procedure de geracao de lactos de slds iniciais CQ3Executar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 155 msec.


    Ctb220CQ1()Cria procedure p geracao de lactos de saldos inciais do CT7Executar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 153 msec.


    Ctb220DEL()Exclui dados das tagelas de cadastros CT1/CTT/CTD/CTHExecutar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 124 msec.


    CTB220Alt()Ponto de entrada permite alteração de valor e hist na gravação da tabela CT2Executar através de uma user function e testar sintaxe direto no banco de dados.Query returned successfully in 91 msec.



  • As procedures da rotina CTBA231 (Aglutinação de dados Configurada - Modelo B) retornaram erros mesmo após a chamada da função MsParse:

Ct231ExecP()Aglutinação dos saldos/lançamentos 

ERROR: type "number" does not exist
LINE 20: vvalor NUMBER( 16 , 2 ) ;
^
********** Error **********

ERROR: type "number" does not exist
SQL state: 42704
Character: 418
MsParse não tratou o tipo Number não usado no Postgre


Correção a ser disponibilizada em Janeiro de 2018 pela área de tecnologia, onde foi ajustado a função MsParse

Ct231SlInP()Gera lançamentos de saldo inicial 

ERROR: type "number" does not exist
LINE 17: vdebito NUMBER( 16 , 2 ) ;
^
********** Error **********

ERROR: type "number" does not exist
SQL state: 42704
Character: 345
MsParse não tratou o tipo Number não usado no Postgre


Correção a ser disponibilizada em Janeiro de 2018 pela área de tecnologia, onde foi ajustado a função MsParse


  • Na rotina CTBA105 (Lançamentos Contábeis) as procedures encontradas não foram homologadas para nenhum banco de dados sendo necessário um estudo especifico de sua funcionalidade dentro do sistema, visto que atualmente estão inutilizadas:

    Ct105LOKPr()Criação da procedure de validação da linkaok(tela de contabilização) quando tmp criado direto no banco de dadosNa função CtbIniLan() a variável lUseProc está como .F. com a seguinte observação: MANTER FALSO ATE VALIDAR AS PROCEDURES NA VERSAO 12.1.16, ou seja, a procedure não é realizada. Essas alterações foram feitas na versão 12.1.16 Changeset 451481 com a data 26/05/2017, verificar o porque da anulação das execuções das procedures.
    CtbPrcAmar()Criação da procedure para verificar se a contra regra esta contido na regra quando parâmetro MV_CTBAMAR = 1 (Padrão) 
    CtbPRegra()Criação da procedure para verificar se a contra regra esta contido na regra quando parâmetro MV_CTBAMAR = 1 (Padrão)  
    Ct105PrGrv()Criação da procedure para gravação dos movimentos contábeis CT2/CV3 e TRW para atualização dos saldos e chamada da multithread para execução da procedure 
    Ct105Doc()Gera próxima linha, documento e lote  
    Ct105105CT2()PE CT105CT2 chamada na procedure de Gravação do CT2  
    Ct105CTBGRV()PE CTBGRV chamada na procedure de Gravação do CT2 
    CtPrCT2Psq()Criação da procedure Pesquisa linha, no documento e lote 
    CtbPFilial()Criação da procedure para verificar se a contra regra esta contido na regra quando parâmetro MV_CTBAMAR = 1 (Padrão)  



  • Na rotina CTBA810(Rotina de Amarração de entidades contábeis) a função A810Tools() chama a procedure StrZero / Soma1 onde a mesma é retornada com erro, sendo necessária a utilização do MsParse:



    A810Tools()Cria Procedure StrZero / Soma1Usar MsParse() erro na criação da procedure




Observações:
  • Ressaltando que as procedures foram executadas diretamente no banco de dados, testando a sintaxe da query para o banco de dados PostgreSQL 1.6.
  • As querys não foram testadas executando o Protheus no sistema operacional Astra Linux.