Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

CONTEÚDO

  1. Visão Geral
  2. Identificação 
  3. Escolha do Mecanismo para Remoção do Semáforo
  4. Pontos de atenção das funções escolhidas e nas formas de bloqueio de registros
    1. Ca100Incl e SimpleLock
    2. StarJob e RpcSetEnv
    3. Mensagem Única
  5. Tabelas Contábeis Envolvidas
  6. Parâmetros do Semáforo Contábil
  7. Funções de Semáforo
  8. Rotinas chamadoras das funções de Semáforo Contábil
  9. Rotinas chamadoras da função GravaLanc
  10. Fluxograma
  11. Possíveis Soluções
    1. Retirada do Changequery
    2. Utilizar FWPreparedStatement
    Rotinas chamadoras da função Ca100incl

01. Visão Geral

Identificado baixa performance na rotina de Apuração de resultado.

02.Identificação

Identificado pelo log enviado que a demora ocorre pelo numero de chamadas que tem o changequey da rotina SALDOCQ.

Na Apuração de Resultados essa função é chamada para realizar a gravação do arquivo temporariotemporário, para cada tipo de moeda, tipo de saldo e contas contábeis.

03. 

...

Fluxograma

Image Added

Aviso
titleIMPORTANTE
  • As funções SALDOCT(X) chama a função SALDOCQ (CTBXSALA).
  • Se a apuração for por movimento será chamado a SALDOCT duas vezes, saldo anterior e saldo atual.


04. Possíveis Soluções 


a. Retirada do Changequery

...

Após discussões das questões de performance, concorrência, perda de dados, funções dentro de transações, fomos orientados a adotar a solução abaixo que serão feitos em dois pontos.

Na função de contabilização Ca100Incl, na contabilização de integrações, receber do módulo origem o vetor aFlagCTB preenchidos com as devidas posições, aFlagCTB{  'campo da tabela a ser marcado', 'string a gravar', 'alias da tabela a marcar', 'recno a ser marcado' }  para todos os registros de origem a serem contabilizados. Também não alterar o local da chamada dessa função dentro do ERP, podendo algumas chamadas ficarem dentro de transação.  

Outro ponto é na chamada da função que gera o número do próximo documento contábil, ProxDoc.  Como esta função pode estar dentro de uma transação, caso ela não consiga pegar um número de documento contábil disponível, utilizar a função Starjob para gerar 5 ( definido em conjunto com time TEC ) números de documento contábil e novamente tentar pegar um número de documento disponível e bloquear e marcar como usado.

...

a. Ca100Incl e SimpleLock

Na primeira situação em que a função Ca100Incl é chamada recebendo o vetor aFlagCTB, os elementos do vetor devem ser bloqueados para serem no final atualizados na origem.  O conteúdo de alguns campos da tabela CTK também deverão ser bloqueados, como o CTK_TABORI e CTK_RECORI, pois nem sempre o conteúdo destes campos da tabela CTK são os mesmos do vetor aFlagCTB.  Na grande maioria das vezes serão,  neste caso, se utilizarmos a função SimpleLock ou uma outra que não utilize o LockByName ocultamente, duas vezes, devemos certificar que não ocorrerá nenhum problema. Também devemos certificar que  uma outra conexão não consiga pegar esses registros.

...

Este é um outro ponto que necessitará de muito estudo e conhecimento das funcionalidades do processo de integração de mensagens únicas. Pois a inclusão de lançamentos contábeis, pode vir de outras marcas que não seja Protheus.

05. Tabelas Contábeis Envolvidas

CTF - Capa do Lote Contábil

CTK - Tabela de Contraprova gerada pela função Detprova 


06. Parâmetros do Semáforo Contábil

MV_CTBSER    - “1” -  ligado; “2” desligado; “3” modo teste.

...

MV_CTBNFSE -  “1”- ligado, “2”- desligado

07. Funções do Semáforo Contábil

CtbSerialI

CtbSerialF

CtbFimSemaforo

CtbIniSemaforo

CanProcItvl

FreeProcItvl

08. Rotinas chamadoras das funções do Semáforo Contábil

ATFA371.PRX – Contabilização Off line do Ativo

...

CTBANFS.PRW – Processamento da Contabilização Off Line de Documentos de Saída.


09. Rotinas chamadoras da função GravaLanc

CTBA211.PRW

CTBA220.PRW

CTBA231.PRW

...

CTBM300.PRW

CTBXATU.PRW

CTBXFUNC.PRW



10. Rotinas chamadoras da função Ca100incl

AR_C200A.PRX

AR_C230A.PRX

ATFA010A.PRW

...