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

REGERAR SALDOS E CUSTOS

(

- MELHORIA DE PERFORMANCE

)


Características do Requisito

Chamados Relacionados

Informe o(s) chamado(s) relacionado(s).

Requisito (ISSUE): Informe o requisito relacionado (Issue).

Linha de Produto:

RM

Segmento:

Construção e Projetos

Módulo:

Gestão de Estoque, Compras e Faturamento.

Rotina:

Rotina

Nome Técnico

Regerar Saldos e Custos

Regerar Saldos e Custos

Rotina(s) envolvida(s)

Nome Técnico

Saldo de produto

Custo de produto

Gestão de estoque

Gestão de compras

Gestão de faturamento

 

Saldo de produto

 

Custo de produto

 

Gestão de estoque

 

Gestão de compras

Gestão de faturamento

 

 

Cadastros Iniciais:

Relacione os cadastros necessários que precisam ser preenchidos antes da utilização desse requisito.

Parâmetro(s):

Informe os parâmetros utilizados.

Ponto de Entrada:

Informe o ponto de entrada relacionado (link).

EstRegerarSaldosECustosProcAction



Chamados Relacionados

TTKHBJ

País(es):

Informe o(s) Pais(es).

Brasil

Banco(s) de Dados:

Informe o(s) Banco(s) de Dados utilizado(s).

SQL e Oracle

Tabelas Utilizadas:
Informe as tabelas utilizadas.
TRELSLD

Sistema(s) Operacional(is):

Informe o(s) sistema(s) operacional(is) utilizados.

Descrição

Incluída paralelização na regeração de saldos e custos

 

Importante

(Apenas para Microsiga Protheus, versões anteriores à versão 12)

Antes de executar o compatibilizador informe o nome do compatibilizador é imprescindível:

  • Realizar o backup da base de dados do produto que será executado o compatibilizador (diretório PROTHEUS_DATA\DATA, se versão 10, ou \PROTHEUS11_DATA\DATA, se versão 11) e dos dicionários de dados SXs (diretório PROTHEUS_DATA_SYSTEM, se versão 10, ou \PROTHEUS11_DATA\SYSTEM, se versão  11).
  • Os diretórios acima mencionados correspondem à instalação padrão do Protheus, portanto, devem ser alterados conforme o produto instalado na empresa.
  • Essa rotina deve ser executada em modo exclusivo, ou seja, nenhum usuário deve estar utilizando o sistema.
  • Se os dicionários de dados possuírem índices personalizados (criados pelo usuário), antes de executar o compatibilizador, certifique-se de que estão identificados pelo nickname. Caso o compatibilizador necessite criar índices, irá adicioná-los a partir da ordem original instalada pelo Protheus, o que poderá sobrescrever índices personalizados, caso não estejam identificados pelo nickname.
  • O compatibilizador deve ser executado com a Integridade Referencial desativada*.

 

Atenção

O procedimento a seguir deve ser realizado por um profissional   qualificado como Administrador de Banco de Dados (DBA) ou equivalente!

A ativação indevida da Integridade Referencial pode alterar   drasticamente o relacionamento entre tabelas no banco de dados. Portanto,   antes de utilizá-la, observe atentamente os procedimentos a seguir:

  1. No   Configurador (SIGACFG), veja se a empresa utiliza Integridade   Referencial, selecionando a opção Integridade/Verificação   (APCFG60A).
  2. Se não   há Integridade Referencial ativa,   são relacionadas em uma nova janela todas as empresas e filiais cadastradas   para o sistema e nenhuma delas estará selecionada. Neste caso, E SOMENTE NESTE, não é necessário   qualquer outro procedimento de ativação   ou desativação de integridade, basta finalizar a verificação e aplicar   normalmente o compatibilizador, conforme instruções.
  3.  Se há Integridade Referencial ativa   em todas as empresas e filiais, é   exibida uma mensagem na janela Verificação   de relacionamento entre tabelas. Confirme a mensagem para que a   verificação seja concluída, ou;
  4.  Se   há Integridade Referencial ativa   em uma ou mais empresas, que não   na sua totalidade, são relacionadas em uma nova janela todas as empresas e   filiais cadastradas para o sistema e, somente, a(s) que possui(em)   integridade está(arão) selecionada(s). Anote qual(is) empresa(s) e/ou   filial(is) possui(em) a integridade ativada e reserve esta anotação para   posterior consulta na reativação (ou ainda, contate nosso Help Desk Framework   para informações quanto a um arquivo que contém essa informação).
  5. Nestes   casos descritos nos itens “iii” ou   “iv”, E SOMENTE NESTES CASOS, é necessário desativar tal integridade, selecionando a opção Integridade/ Desativar (APCFG60D).
  6.  Quando desativada a Integridade Referencial,   execute o compatibilizador, conforme instruções.
  7. Aplicado o compatibilizador, a Integridade   Referencial deve ser reativada, SE E   SOMENTE SE tiver sido desativada, através da opção Integridade/Ativar (APCFG60). Para isso, tenha em mãos as   informações da(s) empresa(s) e/ou filial(is) que possuía(m) ativação da   integridade, selecione-a(s) novamente e confirme a ativação.

 

Contate o Help Desk Framework EM CASO DE DÚVIDAS!

 

  1. Em Microsiga Protheus TOTVS Smart Client (se versão 10) ou ByYou Smart Client (se versão 11), digite o nome do compatibilizador no campo Programa Inicial. Descreva se o compatibilizador deve ter uma data específica ou superior para que a atualização nos dicionários seja efetuada corretamente. Importante: Para a correta atualização do dicionário de dados, certifique-se que a data do compatibilizador seja igual ou superior a ___/___/____.
  2. Clique em OK para continuar.
  3. Após a confirmação é exibida uma tela para a seleção da empresa em que o dicionário de dados será modificado ou é apresentada a janela para seleção do compatibilizador. Selecione o programa xxxx().
  4. Ao confirmar é exibida uma mensagem de advertência sobre o backup e a necessidade de sua execução em modo exclusivo.
    1. Clique em Processar para iniciar o processamento. O primeiro passo da execução é a preparação dos arquivos.
      É apresentada uma mensagem explicativa na tela.
    2. Em seguida, é exibida a janela Atualização concluída com o histórico (log) de todas as atualizações processadas. Nesse log de atualização são apresentados somente os campos atualizados pelo programa. O compatibilizador cria os campos que ainda não existem no dicionário de dados.
    3. Clique em Gravar para salvar o histórico (log) apresentado.
    4. Clique em OK para encerrar o processamento.

 

Descreva se há algum procedimento necessário após a aplicação do compatibilizador.

Procedimento para Implantação

O sistema é atualizado logo após a aplicação do pacote de atualizações (Patch) deste chamado.

  1. Aplique o patch do chamado e execute uma vez a rotina Informe o nome da rotina.
  2. No módulo informe o nome do módulo acesse informe o caminho e verifique que o parâmetro informe o nome do parâmetro é criado conforme especificações abaixo:

Nome da Variável:

Informe o Nome da Variável

Tipo:

Informe o Tipo

Descrição:

Informe a Descrição

Valor Padrão:

Informe o Valor Padrão

 

 

Atualizações do Compatibilizador

(Apenas para Microsiga Protheus, versões anteriores à versão 12)

  1. Criação ou Alteração de Perguntas no arquivo SX1 – Cadastro de Perguntes:

Pergunte

(X1_PERGUNT)

Nome

 

Grupo

(X1_GRUPO)

Ordem

(X1_ORDEM)

Tipo

(X1_TIPO)

Tamanho

(X1_TAMANHO)

 

2.    Criação ou Alteração de tabela no arquivo SX2– Tabelas:

Chave

Nome

Modo

PYME

B04

(X2_CHAVE)

Dente/Região

(X2_NOME)

C

(X2_MODO)

N

(X2_PYME)

 

3.  Criação ou Alteração de Tabelas Genéricas no arquivo SX5 – Tabelas Genéricas:

Chave

Ex.: AR

Descrição

Ex.: Tabela de IR de Aplicações Financeiras

 

4.  Criação ou Alteração (mantenha somente a instrução correspondente) de Campos no arquivo SX3 – Campos:

  • Tabela BGD - Prod x Cob x Proc x Co-Part:

 

Campo

(X3_CAMPO)

Tipo

(X3_TIPO)

Tamanho

(X3_TAMANHO)

Decimal

(X3_DECIMAL)

Formato

(X3_PICTURE)

Título

(X3_TITULO)

Descrição

(X3_DESCRIC)

Nível

(X3_NÍVEL)

Usado

(X3_USADO) Informe Sim ou Não

Obrigatório

(X3_OBRIGAT) Informe Sim ou Não

Browse

(X3_BROWSE) Informe Sim ou Não

Opções

(X3_CBOX)

When

(X3_WHEN)

Relação

(X3_RELACAO)

Val. Sistema

(X3_VALID)

Help

Descreva o conteúdo informado para Help de Campo no ATUSX

 

Importante:

O tamanho dos campos que possuem grupo pode variar conforme ambiente em uso.

 

5.  Criação ou Alteração de Consulta Padrão no arquivo SXB – Consulta Padrão:

  • Pesquisa B05PLS:

Alias

(XB_ALIAS)

Tipo

(XB_TIPO)

Sequência

(XB_SEQ)

Coluna

(XB_COLUNA)

Descrição

(XB_DESCRI)

Contém

(XB_CONTEM)

 

6.  Criação ou Alteração de Índices no arquivo SIX – Índices:

Índice

AA1

Ordem

6

Chave

AA1_FILIAL+AA1_CODVEN

Descrição

Cod. Vendedor

Proprietário

S

 

7.  Criação ou Alteração de Parâmetros no arquivo SX6 – Parâmetros:

Nome da Variável

(X6_VAR)

Tipo

(X6_TIPO)

Descrição

(X6_DESCRIC + X6_DESC1 + X6_DESC2)

Valor Padrão

(X6_CONTEUD)

 

8.  Criação ou Alteração (mantenha somente a instrução correspondente) de Gatilhos no arquivo SX7 – Gatilhos:

  • Tabela BD5 – Contas Médicas:

Campo

Informe o conteúdo do (X7_CAMPO)

Sequência

Informe o conteúdo do (X7_SEQUENC)

Campo Domínio

Informe o conteúdo do (X7_CDOMIN)

Tipo

Informe o conteúdo do (X7_TIPO)

Regra

Informe o conteúdo do (X7_REGRA)

Posiciona?

Informe o conteúdo do (X7_SEEK)

Chave

Informe o conteúdo do (X7_CHAVE)

Condição

Informe o conteúdo do (X7_CONDIC)

Proprietário

Informe o conteúdo do (X7_PROPRI)

 

 

Procedimento para Configuração

(Estes procedimentos devem ser feitos quando for necessário configurar parâmetros e/ou  rotinas no menu).

 

CONFIGURAÇÃO DE PARÂMETROS

 

  1. No Configurador (SIGACFG), acesse Ambientes/Cadastros/Parâmetros (CFGX017). Crie/configure (mantenha somente a instrução correspondente) o(s) parâmetro(s) a seguir:
    (É necessário criar uma tabela para cada parâmetro descrito no item Parâmetro(s), da tabela Características do Requisito)

Itens/Pastas

Descrição

Nome:

 

Tipo:

Informe o Tipo do parâmetro

Cont. Por.:

Informe o Conteúdo padrão

Descrição:

 

 

CONFIGURAÇÃO DE MENUS

 

2.  No Configurador (SIGACFG), acesse Ambientes/Cadastro/Menu (CFGX013). Informe a nova opção de menu do informe o nome do módulo, conforme instruções a seguir:

Menu

Informe o Menu em que estará localizada a rotina

Submenu

Informe o Submenu em que estará localizada a rotina

Nome da Rotina

Informe o Título da rotina

Programa

Informe o Fonte da rotina

Módulo

Informe o Nome do(s) produto(s) a ser utilizado ou “Todos”

Tipo

Informe a Função

 

 

Procedimento para Utilização

  • Descreva os procedimentos, passo a passo (caso de uso), que serão realizados pelos usuários para que a melhoria seja visualizada identificando as seguintes informações:
  • Localização da rotina no menu;
  • Localização dos novos campos e/ou perguntas e respectivas pastas de cadastro que são visualizadas pelo usuário;
  • Caso seja necessário ter algum cadastro feito previamente, faça uma observação.

 

 

Exemplo:

       1.            No Plano de Saúde (SIGAPLS), acesse Atualizações / Produto Saúde / Produto Saúde (PLSA800).

O sistema apresenta a janela de produtos cadastrados.

       2.            Posicione o cursor em um produto e clique em Alterar.

       3.            Na pasta Cobertura/Carências selecione a subpasta Tipo de Prestador.

       4.            Dê duplo clique no campo TP Prestador (BCW_TIPPRE).

O sistema apresenta a janela Tipo de Prestador – Coparticipação – Alterar.

       5.            Informe os dados conforme orientação do help de campo e observe o preenchimento do novo campo:

                      Som. p/Compra (BCW_SOMCOM): selecione Sim para indicar se a coparticipação cadastrada será válida somente para efeito de compra de procedimentos ou Não, caso contrário.

       6.            Confira os dados e confirme.

 

 

Vídeo

  • Vídeo hospedado no youtube e inserido no template por meio da macro Widget Connector.

** Canal do youtube e software de vídeoem definição.

 

Título do Vídeo:

Disponibilizado pelo Marketing.

Introdução:

Disponibilizado pelo Marketing.

Passo a Passo:

Capturar diretamente do sistema.

Finalização:

Disponibilizado pelo Marketing.

 

 

Windows


Descrição

Estamos implementando a partir das versões 11.82.43 e 12.1.10 do TOTVS Gestão de Estoque, Compras e Faturamento uma considerável melhoria de performance no processo "Regerar Saldos e Custos".

Anteriormente este processo trabalhava apenas de forma sequencial, ou seja, era regerado um produto de cada vez não importando qual era a capacidade do servidor de aplicação e do banco de dados.

A partir de agora a execução deste processo poderá ser paralelizada, ou seja, poderão ser regerados N produtos de uma só vez e o seu tempo de cálculo estará diretamente relacionado ao poder de processamento do ambiente onde o mesmo está sendo executado, ou seja, quanto mais processadores e memória possuir o servidor de aplicação, mais produtos serão calculados simultaneamente e consequentemente muito menos tempo levará o processo. Entretanto, é importante salientar que a execução em paralelo irá exigir mais do servidor de banco de dados, já que cada cálculo abre uma conexão.

Assim, caso o ambiente não esteja dimensionado adequadamente é possível que ao executar o cálculo de forma paralela sejam exibidas mensagens de "timeout" se o Banco de Dados estiver sobrecarregado, ou de "timeout no connection pool" no Oracle se o número de conexões simultâneas ultrapassar o pré-estabelecido. Deverão ser observados ainda, outros gargalos como o tráfego de rede e outros processos concorrentes, principalmente em bases Oracle, onde por padrão existe um número limitado de conexões simultâneas.

Recomendamos que antes que o processo seja executado, o seu servidor de banco de dados seja analisado e dimensionado corretamente para absorver todas as requisições paralelas e poder utilizar o ganho de performance proporcionado por este recurso.


Procedimento para Utilização

Após a atualização da versão 11.82.43 ou da versão 12.1.10, ao ser acessado o TOTVS Gestão de Estoque, Compras e Faturamento por um usuário que seja Supervisor, o sistema apresentará a mensagem abaixo, informando sobre a existência da nova forma de execução do processo "Regerar Saldos e Custos":

Image Added

Para executar este processo com paralelismo vá em "Estoque > Processos > Regerar Saldos e Custos".

Na primeira tela clique em "Avançar".

Image Added

Na tela de "Seleção de Produtos" informe os dados dos produtos cujos saldos e custos serão regerados e clique em "Avançar".

Image Added

Na tela de "Parâmetros Gerais" do processo marque o campo 'Execução Paralela', além dos demais parâmetros habitualmente utilizados por sua empresa na Regeração de Saldos e Custos.

Image Added

Ao passar o mouse sobre o checkbox do campo o sistema apresentará ao usuário uma dica acerca da função do campo e sobre o seu consumo de recursos:

Image Added

Ao ser selecionada a Execução Paralela o sistema habilitará um símbolo de alerta.

Image Added

Passando o mouse sobre o alerta o sistema irá informar o usuário sobre o maior consumo de recursos do banco de dados que a Execução Paralela exige.

Image Added

Dica
titleDica
A Execução Paralela também pode ser utilizada caso o processo "Regerar Saldos e Custos" seja executado através de agendamento.


Fórmulas

Um grande ofensor no processo de regeração de saldos e custos é a utilização de fórmulas complexas ou que demandam informações onde o sistema precisa realizar consulta na base de dados para obter o resultado. Com isso, criamos uma função de fórmula chamada "TABITMREG". Esta função de fórmula possui comportamento semelhante ao da "TABITM", porém quando é utilizada durante o processo de regeração, o valor retornado vem direto da memória, não sendo necessário consulta ao banco de dados, melhorando consideravelmente a performance.

Exemplo de utilização:

A fórmula "KQT * KPU" pode ser substituída pela fórmula "TABITMREG('QUANTIDADE','V') * TABITMREG('PRECOUNITARIO','V')".

Ou TABITM ('VALORTOTALITEM', 'V') por TABITMREG ('VALORTOTALITEM' , 'V').

Em testes realizados, esta alteração da fórmula foi a que demonstrou melhor ganho de performance.


Insert em Lotes

A partir da versão 12.1.25, foi criado o parâmetro Número de Registros por Lote. Ele é utilizado no processo de Regeração de Saldos e Custos para definir a quantidade de registros a ser inserida no banco a cada atualização. Por default o parâmetro é definido com o valor de 20.000, mas é possível informar valores entre 1 e 30.000. Este valor pode gerar erro de TimeOut ao inserir os registros se o mesmo tiver muito elevado para o SGBD, por isso é necessário atentar para este parâmetro que esta em Definições de Estoque e se necessário diminuir o valor.

Image Added


Otimize seu ambiente e configure o seu SGDB para que sua empresa esteja apta a realizar a Regeração de Saldos e Custos de forma paralela e possa desfrutar do enorme ganho de performance que é proporcionado por esse recurso.

Informações
titleOtimização do Banco de Dados
  • Dimensionar o pool de conexões do banco para suportar várias conexões simultâneas de forma que outros processos não sejam prejudicados. Por padrão, são liberadas apenas 100 conexões simultâneas com a base de dados para cada aplicação. Isso pode ser muito pouco dependendo do porte da base, mas não existe um número ideal para todos, é necessário acompanhar o uso através de performance counters por exemplo se necessário e dimensionar o valor mínimo conforme o uso cotidiano e o valor máximo considerando uma contingência para casos especiais. Para alterar o tamanho do pool na aplicação utilize a tag abaixo no arquivo de configuração do host (RM.Host.Service.exe.config):

<add key="DBSConnStrExtensions" value=";Min Pool Size=5;Max Pool Size=30;" />

Onde o min pool size deve ser aumentado de forma a comportar o uso regular, e o Max pool size deve ser aumentado de forma a contemplar situações de uso elevado. O valor a ser colocado no parâmetro deve ser determinado preferencialmente por alguém da T.I. em conjunto com o DBA da empresa.

Ponto de Entrada

Descrição:

Informe o Menu em que estará localizada a rotina

Localização:

Informe o Submenu em que estará localizada a rotina

Eventos:

Informe o Título da rotina

Programa Fonte:

Informe o Fonte da rotina

Função:

Informe o Nome do(s) produto(s) a ser utilizado ou “Todos”

Retorno:

Nome

Tipo

Descrição

Obrigatório

 

 

 

 

 

 

 

 

 

 

 

 

 

Exemplo:

#Include 'Protheus.ch'

User Function CN120ALT()

Local aCab:= PARAMIXB[1]

Local cTipo:= PARAMIXB[2]

If cTipo == '1'

    aCab[4][2]:= 'NF' //Validações do usuário

EndIf

Return aCab