Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

 

Reestruturação dos Saldos Contabeis.

Os saldos contábeis foram

reinscrito

reinscritos, pois

,  as

as rotinas de saldo com lançamento retroativo de um grande período demandavam muito processamento e tempo do sistema

por este motivo esta rotina foi reescrita

.

 

Exemplo  : Se tivéssemos que fazer um lançamento retroativo pela versão Protheus 11 o tempo de processamento  é bem maior que na versão Protheus 12. 

Conforme pode ser visto na tela abaixo na Na versão 11 do Protheus, tínhamos 11 tabelas e 8 campos como, saldo atual, saldo anterior, movimento e movimento por período que totalizavam 88 operações distintas isto para cada transição. 

Na Versão 12 do Protheus,  passamos a não ter saldo tem  saldo a cada dia, passo a passou  a ter 2 tabelas 8 tabelas, gravando dois valores Debito e Crédito, que são (:

  • 4 tabelas mensais
e
  • 4 quatro tabelas diárias

A reestruturação das tabelas de saldo possui os seguintes objetivos:

  • Composição de saldos de forma mais simples;
  • Tabelas normalizadas;
  • Ganho de desempenho para leitura/escrita nos bancos;
  • Diminuição do tempo de inclusão de lançamentos contábeis.


Aviso

A premissa para essa reestruturação é a versão 12 que não terá mais tratamento para bancos não relacionais (Codebase).


Versão P11 - Estrutura de tabelas) para as quatro entidades, gravo dois valores Debito e Crédito

TABELA DE SALDOS BÁSICOS
- Versão 11 (MV_ATUSAL - Define Gravação lançamento/ Reprocessamento - on line)
Tabela

Versão

Descrição

CT2

P11

Lançamentos

Contabeis

Contábeis

CT3P11Saldos de Centro de Custos
CT4P11Saldos de Item contábil
CT6P11Totais de Lotes
CT7P11Saldos de Planos de Contas

CTI

P11Saldos da Classe de Valores
CTCP11Saldos do Documento

 

TABELA DE SALDOS COMPOSTOS
- Versão 11 (MV_SLDCOMP - Define gravação de consultas / saldos compostos / Reprocessamento - on line)
Tabela

Versão

Descrição

CTU
 
P11Grupos Contábeis
CTVP11Saldo Itens X Centro de Custo
CTWP11Saldos Cl Valor X Centro de Custo

CTX

P11Saldos Cl Valor X Item
CTYP11Saldos Ccusto X Item X Cl Valor

 

 

TABELA DE SALDOS
BÁSICOS - Versão 12 (MV_ATUSAL - Define Gravação lançamento/ Reprocessamento - on line)
DAS NOVAS ENTIDADES CONTÁBEIS
Tabela

Versão

Descrição

CT2

CVX

P12
P11
Lançamentos Contábeis
Saldos Diários
CT3
CVY
P12Saldos de Centro de CustosCT4P12Saldos de Item contábilCT6P12Totais de Lotes

CT7

P12

Saldos de Planos de Contas

CTI

P12Saldos da Classe de ValoresCTCP12Saldos do Documento

 

 

P11Saldos Mensais


Todas as tabelas de saldo possuem os seguintes conceitos em suas estruturas:

  • Registro do saldo diário.
  • Quando não tiver movimento no dia, não é gravada a informação saldo.
  • Em todas as linhas de registros constam os seguintes valores:
    • Saldo Débito (D): Soma dos valores de débito no dia para a entidade.
  • Saldo Crédito (C): Soma dos valores de crédito no dia para a entidade.
  • Saldo Atual Débito(D): Soma de todos os valores de débitos até o dia (inclusive o dia) para a entidade.
  • Saldo Atual Crédito(C): Soma de todos os valores de crédito até o dia (inclusive o dia) para a entidade.

Saldo Anterior a Débito(D): Soma de todos os valores de débito até o dia anterior para a entidade.

  • Saldo Anterior a Crédito(C): Soma de todos os valores de crédito até o dia anterior para a entidade.


A estrutura atual foi concebida com o objetivo de priorizar a consulta das informações utilizando os métodos de pesquisa codebase que consiste da pesquisa direta do registro utilizando a sua chave de busca (comando dbseek), porém, essa estrutura colocava a maior carga de processamento na operação de gravação, principalmente no processamento dos campos de saldo atual D/C e saldo anterior D/C.


Um exemplo dessa situação:

  • Uma empresa possui os seguintes lançamentos contábeis no sistema:

DATA

CONTA DEBITOCONTA CREDITOVALORHISTORICO
01/01/20131100123001100.000,00Constituição da Empresa
02/01/2013120011100110.000,00Compra de Imobilizado para Operações
15/01/201331003110015.000,00Pagamento de Conta de Luz
25/01/2013110014100250.000,00Prestação de Serviços



  • O sistema irá calcular os saldos das contas e os registrará na tabela CT7 - Saldos por conta. O registro da conta Caixa (11001) ficará conforme o quadro a seguir:

Data

Conta

 Saldo a Débito

 Saldo a Crédito

 Saldo Atual Débito

 Saldo Atual Crédito

 Saldo Anterior Débito

 Saldo Anterior Crédito

01/01/2013

11001

100.000,00

0

100.000,00

0

0

0

02/01/2013

11001

0

10.000,00

100.000,00

10.000,00

100.000,00

0

15/01/2013

11001

0

5.000,00

100.000,00

15.000,00

100.000,00

10.000,00

25/01/2013

11001

50.000,00

0

150.000,00

15.000,00

100.000,00

15.000,00


Em uma situação aonde o usuário incluiria um lançamento no dia 26/01 o sistema processa o cálculo de 6 campos de valores para incluir um novo registro na tabela de saldo por conta.

Em outra situação que o usuário precise incluir um lançamento retroativo no dia 03/01/2013, o sistema precisa realizar o mesmo cálculo de 6 campos para incluir o registro do saldo nesse dia. Porém ele precisa recalcular e atualizar os registros de saldos dos dias 15/01 e 25/01, pois os campos de saldo atual D/C e saldo anterior D/C estarão desatualizados.

Nessa situação de gravação de lançamento o sistema precisa realizar mais 8 operações totalizando 14 operações.


Se adicionarmos as outras entidades contábeis e em um lançamento retroativo de 90 dias temos a seguinte quantidade de operações:

  • Atualização 11 tabelas
  • 6 campos por tabelas
  • 90 dias
  • Total aproximando de 5940 operações.


Em uma realidade de milhares de registros de lançamento contábeis, verificamos que a estrutura atual não é escalável, provocando 

perda de desempenho e serialização da gravação no banco de dados (no caso de múltiplos usuários estarem gravando ao mesmo tempo).


Versão P12 - Estrutura de tabelas

Ao  alterar a estrutura atual da  P11  de saldos contábeis tem  como o objetivo  diminuir a quantidade de operações na gravação de saldos contábeis, e consequente a normalização das tabelas, garantindo uma melhor utilização dos recursos dos bancos de dados relacionais. Com a evolução do sistema na versão 12, não teremos  mais a codificação para bases codebase.

Sendo assim simplificaremos  os códigos fontes atuais de consulta e gravação de saldos e utilizando melhor os recurso dos banco de dados relacionais.

Abaixo  a estrutura das tabelas na versão P12

TABELAS DE SALDOS BÁSICOS  
Novas tabelas  de  saldos - P12 
Tabela

Versão

Descrição

CQ1P12Saldo por Conta no Dia
CQ0P12Saldo por Conta no Mês
CQ3
 
P12Saldo por Centro de Custo no Dia
CQ2
 


P12Saldo por Centro de Custo no Mês
CQ5P12Saldo Item Contábil no Dia
CQ4P12Saldo Item Contábil no Mês
CQ6P12Saldo Classe de Valor no Mês
CQ7P12Saldo Classe de Valor no Dia
TABELAS DE SALDOS COMPOSTOS
Tabela

Versão

Descrição

CQ9P12Saldo por Entidade no Dia
CQ8P12Saldos por Entidade no Mês
TABELA PROCESSAMENTO EM FILA

 

Importante : Na versão 12 as tabelas  CTU, CTV, CTW,  CTX e CTY não recebem mais informações.

 

 

Opcional

Protótipo de Tela

 

<Caso necessário inclua protótipos de telas com o objetivo de facilitar o entendimento do requisito, apresentar conceitos e funcionalidades do software>.

 

Protótipo 01 

 

 Image Removed

 

 

 

 

 

 

Opcional

Fluxo do Processo

 

<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>. 

Opcional

Dicionário de Dados

 

Arquivo ou Código do Script: AAA – Negociação Financeira / *Versao=CP.2014.12_03*/

  

Índice

Chave

01

<FI9_FILIAL+FI9_IDDARF+FI9_STATUS>

02

<FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF>

03

<FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO>

Campo

<AAA_PERESP>

Tipo

<N>

Tamanho

<6>

Valor Inicial

<Varia de acordo com o tipo informado. Por exemplo, quando o campo “tipo” for date, neste campo pode ser informado uma data>. 

Mandatório

Sim (  ) Não (  )

Descrição

<Referência Mínima para Cálculo>

Título

<Ref.Calc.>

Picture

<@E999.99>

Help de Campo

<Informar o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação>

 

(Opcional)

Grupo de Perguntas

 

<Informações utilizadas na linha Protheus>.

 

Nome: FINSRF2

X1_ORDEM

01

X1_PERGUNT

Emissão De

X1_TIPO

D

X1_TAMANHO

8

X1_GSC

G

X1_VAR01

MV_PAR01

X1_DEF01

Comum

X1_CNT01

'01/01/08'

X1_HELP

Data inicial do intervalo de emissões das guias de DARF a serem consideradas na seleção dos dados para o relatório 

 

(Opcional)

Consulta Padrão

<Informações utilizadas na linha Protheus>

 

Consulta: AMB

Descrição

Configurações de Planejamento

Tipo

Consulta Padrão

Tabela

“AMB”

Índice

“Código”

Campo

“Código”; ”Descrição”

Retorno

AMB->AMB_CODIGO

 
Tabela

Versão

Descrição

CQAP12Fila de Saldos


As novas tabelas de saldos terão os seguintes conceitos na sua estrutura :

  • Registro do saldo diário nas tabelas de saldos diários
  • Registro do saldo mensal nas tabelas de saldos mensais, somando os valores dos saldos diários no período.
    • Para facilitar na montagem das queries e procedures, as tabelas de saldos mensais terão o campo que identifica o período com o tipo data e terá como conteúdo sempre o primeiro dia do mês.

  • Quando não tiver movimento no dia, não será gravada a informação de saldo no dia.
  • Em todas as linhas de registros constarão os seguintes valores:
    • Saldo Débito (D): Soma dos valores de débito no dia para a entidade.
    • Saldo Crédito (C): Soma dos valores de crédito no dia para a entidade.


Nota

Importante : A partir da versão 12 as  tabelas abaixo  serão descontinuadas:

Table Filter
id1636720399407_395775996
Tabela de Saldos Básicos
Tabela Descrição
CT7Saldo por Conta
CT3Saldo por Centro de Custo
CT4Saldo por Item Contábil
CTISaldo por Classe de Valor
CT6Saldo por Lote
Tabela de Saldos Compostos
TabelaDescrição
CTUSaldo por Entidade Gerencial
CTVSaldo Item + Centro de Custo
CTWSaldo Classe Valor + Centro de Custo
CTXSaldo Classe de Valor + Item Contábil
CTYSaldo Centro de Custo + Item Contábil + Classe de Valor 

Tabela para processamento em Fila

TabelaDescrição
CVOFila de Saldos


A tabela de saldos por documento contábil será mantida e terá o papel de tabela de cabeçalho do lançamento contábil (CT2).

As tabelas de saldos das Novas Entidades Contábeis serão mantidas e não terão alteração na sua gravação/consulta.


Para ilustrar o ganho com essa nova estrutura, vamos utilizar o exemplo anterior:

Uma empresa possui os seguintes lançamentos contábeis no sistema:


Data

Conta Débito

Conta Crédito

 Valor

Histórico

01/01/2013

11001

23001

   100.000,00

Constituição da empresa

02/01/2013

12001

11001

     10.000,00

Compra de Imobilizado para operações

15/01/2013

31003

11001

       5.000,00

Pagamento de conta de Luz

25/01/2013

11001

41002

     50.000,00

Prestação de serviços


O sistema irá calcular os saldos das contas e os registrará na tabela CQ0 - Saldo por conta no Mês e CQ1 – Saldo por Conta No Dia. O registro da conta Caixa (11001) ficará conforme os quadros a seguir:

CQ0 - Saldo por conta no Mês

Data

Conta

 Saldo a Débito

 Saldo a Crédito

01/01/2013

11001

   150.000,00

   15.000,00

CQ1 – Saldo por Conta No Dia

Data

Conta

 Saldo a Débito

 Saldo a Crédito

01/01/2013

11001

   100.000,00

                  -  

02/01/2013

11001

                    -  

   10.000,00

15/01/201311001                    -  5.000,00
25/01/20131100150.000,00                  -  


Em uma situação aonde o usuário incluiria um lançamento no dia 26/01 o sistema irá processar o cálculo de 4 campos de valores para incluir um novo registro na tabela de saldo por conta no Dia e no Mês.

Em outra situação que o usuário precise incluir um lançamento retroativo no dia 03/01/2013, o sistema realizará o mesmo cálculo 

de 4 campos para incluir os registros do saldo nesse dia. Com a estrutura proposta o sistema não precisará realizar o cálculo ou atualização de nenhum outro dia.


Se adicionarmos as outras entidades contábeis e em um lançamento retroativo de 90 dias temos a seguinte quantidade de operações:

  • Atualização 10 tabelas
  • 2 campos por tabelas
  • 90 dias
  • Total de 20 operações, pois será necessário atualizar o saldo somente do dia e do mês que foi incluído o registro.


Na estrutura proposta, independentemente da quantidade de dias para o lançamento retrocedente, a quantidade de operações se manterá a mesma.


A lógica para consulta de saldos nessa nova estrutura deverá ser alterada utilizando query para retornar os valores de saldo de uma conta.


  1. Será realizada uma query utilizando a função SUM para trazer a soma de todos os saldos mensais até o mês anterior do saldo que se deseja a consulta.
  2. Será realizada uma query utilizando a função SUM para trazer a soma dos saldos diários do primeiro dia do período até o dia do saldo que se deseja a consulta.


  1. saldo atual D/C será a soma do resultado do passo 1 com o passo 2


  1.      Será realizada uma query utilizando a função SUM para trazer a soma dos saldos diários do primeiro dia do período até o dia anterior do saldo que se deseja a consulta.
  2. saldo anterior D/C será a soma do resultado do passo 1 com o passo 4


Utilizando os dados do exemplo anterior, para a consulta do saldo da conta no dia 15/01/13, o sistema irá realizar os seguintes procedimentos:

  • Soma dos saldos mensais até o mês de dezembro de 2012

Importante : Na nova estrutura proposta, apenas teremos como tabelas de saldos compostos a CQ8 e CQ9 que corresponde na estrutura antiga à tabela CTU - Saldo por Entidade Gerencial.


  • Total de 20 operações, pois será necessário atualizar o saldo somente do dia e do mês que foi incluído o registro.


Na estrutura proposta, independentemente da quantidade de dias para o lançamento retrocedente, a quantidade de operações se manterá a mesma.

            

(Opcional)

Estrutura de Menu

 

<Informações utilizadas na linha Datasul>.

 

Procedimentos

 

Procedimento

 

 

 

Descrição

(Max 40 posições)

(Max 40 posições)

(Max 40 posições)

Módulo

 

 

 

Programa base

 

 

 

Nome Menu

(Max 32 posições)

(Max 32 posições)

(Max 32 posições)

Interface

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

Registro padrão

Sim

Sim

Sim

Visualiza Menu

Sim/Não

Sim/Não

Sim/Não

Release de Liberação

 

 

 

 

 

 

Programas

 

Programa

 

 

 

Descrição

(Max 40 posições)

(Max 40 posições)

(Max 40 posições)

Nome Externo

 

 

 

Nome Menu/Programa

(Max 32 posições)

(Max 32 posições)

(Max 32 posições)

Nome Verbalizado[1]

(Max 254 posições)

(Max 254 posições)

(Max 254 posições)

Procedimento

 

 

 

Template

(Verificar lista de opções no man01211)

(Verificar lista de opções no man01211)

(Verificar lista de opções no man01211)

Tipo[2]

Consulta/Manutenção/ Relatório/Tarefas

Consulta/Manutenção/ Relatório/Tarefas

Consulta/Manutenção/ Relatório/Tarefas

Interface

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

Categoria[3]

 

 

 

Executa via RPC

Sim/Não

Sim/Não

Sim/Não

Registro padrão

Sim

Sim

Sim

Outro Produto

Não

Não

Não

Visualiza Menu

Sim/Não

Sim/Não

Sim/Não

Query on-line

Sim/Não

Sim/Não

Sim/Não

Log Exec.

Sim/Não

Sim/Não

Sim/Não

Rotina (EMS)

 

 

 

Sub-Rotina (EMS)

 

 

 

Localização dentro da Sub Rotina (EMS)

 

 

 

Compact[4]

Sim/Não

Sim/Não

Sim/Não

Home[5]

Sim/Não

Sim/Não

Sim/Não

Posição do Portlet[6]

0 – Top Left

1 – Top Right

2 – Bottom Left

3 – Bottom Right

0 – Top Left

1 – Top Right

2 – Bottom Left

3 – Bottom Right

0 – Top Left

1 – Top Right

2 – Bottom Left

3 – Bottom Right

Informar os papeis com os quais o programa deve ser vinculado

 

 

 

 

Cadastro de Papéis

<O cadastro de papéis é obrigatório para os projetos de desenvolvimento FLEX a partir do Datasul 10>.

<Lembrete: o nome dos papeis em inglês descrito neste ponto do documento, devem ser homologados pela equipe de tradução>.

 

Código Papel

(máx 3 posições)

Descrição em Português*

 

Descrição em Inglês*

 

[1] Nome Verbalizado é obrigatório para desenvolvimentos no Datasul 10 em diante.

[2] Tipo é obrigatório para desenvolvimento no Datasul 10 em diante

[3] Categorias são obrigatórias para os programas FLEX.

[4] Obrigatório quando o projeto for FLEX

[5] Obrigatório quando o projeto for FLEX

[6] Obrigatório quando o projeto for FLEX

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.