Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Cross Segmento - Backoffice (Linha Protheus) - SIGAEST - Tratamento correto para controle de numeração B1_COD

time.png Tempo aproximado para leitura: 06:00 min

Ocorrência
Ao tentar incluir ou copiar um produto na rotina Cadastro de Produtos (MATA010), a rotina apresenta extrema lentidão para abrir a tela de inclusão, ou trava e não abre a mesma.

Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) - Estoque/Custos - Todas as versões.

Causa

A rotina MATA010 foi concebida para ser digitada a numeração (B1_COD) manualmente. No momento de gravação há uma validação que verifica a possível existência de cadastro já gravado com a mesma numeração, exibindo então o help "Código" ao usuário (caso exista) e solicitando a troca da numeração, de modo a evitar duplicidade.

O cadastro de produto (MATA010), de forma nativa, não possui controle de numeração.

 

Por que hoje o código de produto não tem controle de numeração de maneira nativa?
É fundamental destacar que não há exigência de controle automático de numeração para o código de produto. Isso se deve, em grande medida, às diversas regras de negócios adotadas por cada cliente, o que possibilita o tratamento genérico do código.

 

A título de exemplo:

- É possível ter produtos que comecem com a letra "M" - MaterialA001 e outros com a letra "P" - PA001;

- Ou ainda, que seja configurado com base no grupo de produtos acrescido do código desejado, como por exemplo: Grupo 001, então o código será 001MaterialA001

- Como também, produtos do tipo MO (mão de obra), que tem como regra estabelecida, para o cadastro no B1_COD, que caso inicie com a sigla MOD é obrigatório relacionar ao centro de custo.

Detalhes na Doc referencia: SIGAEST - Processo de configuração de MOD e GGF com e sem integração contábil

 

Com isso, inserir um sequencial automático de numeração não seria viável, podendo ocorrer falhas ainda não mapeadas, dada a extensiva variedade de regras possíveis.

Portanto, atualmente, o campo não trata nativamente o controle de numeração.

 

RECOMENDAÇÃO para implementar um controle de numeração personalizado:

A decisão de personalizar um controle automático de numeração, utilizando das recomendações apresentadas a seguir, fica a critério do cliente.

Caso haja de fato interesse em implementar uma personalização para o controle automático de numeração, deve ser estudado a fundo e bem elaborado o código personalizado, contemplando os diferentes cenários de uso. Por exemplo, a reserva simultânea de numeração no License Server, por usuários distintos. O uso por múltiplos usuários ocasiona a concorrência entre obter uma numeração e gravação. Para que dois usuários não locken a mesma numeração a personalização deve prever e tratar a recuperação de um novo número. Assim como também, no caso de um cadastro ser cancelado sem efetivar a gravação, a personalização deveria tratar liberando a numeração lockada. Dentre outros cenários, como por exemplo existência de lacunas nas numerações já gravadas no banco.

Por isso é altamente recomendável a consulta a um especialista Protheus, a fim de garantir a conformidade com as diretrizes estabelecidas para o controle automático, uma vez que a rotina não é nativamente preparada para tal, visando minimizar problema de performance, erros por duplicidades, travamento e consequentes manutenções no controle de numeração.

 

Ciente dos possíveis impactos que podem ocasionar, caso opte por acionar um especialista para de fato elaborar a personalização, por ser essencial à sua regra de negócio, é importante considerar algumas recomendações:

 

- Sugerimos que sejam utilizadas as funções NEXTNUMERO ou SOMA1.

Com isso é necessário o desenvolvimento de uma UserFunction (linkados exemplos em cada função) considerando os diferentes cenários, como explicado acima, evitando falhas.

 

 

Principais falhas mapeadas com a utilização do controle de numeração personalizado no B1_COD através do dicionário X3_VLDUSER ou X3_RELACAO

Há clientes que optam por personalizar o controle de numeração de forma simplista, diretamente no Dicionário de dados (X3_VLDUSER ou X3_RELACAO), ao invés de através da chamada de uma UserFunction, não se atentando a todos os critérios e cenários de lock da numeração no License Server.

Exemplo, utilizando-se da função GETSXENUM no Inicializador padrão

Porém, essa função trabalha em conjunto com as funções padrões ConfirmSX8 e RollBackSX8 de modo que pode ocasionar falhas, uma vez que a rotina padrão não trata esse conceito de numeração sequencial, conforme explicado em detalhes acima. Algumas ocorrências mapeadas:

  • Lentidão na inclusão do cadastro;
  • Travamento na própria utilização do cadastro de produto, uma vez que a numeração se perde no License Server;
  • Perda de referência do código sequencial utilizado (gerando a necessidade de efetuar manutenções frequentes no controle de numeração);
  • Problemas de sequencial já gravados nativamente;
  • Em cenários em que mais de um usuário pode cadastrar produtos, gerando assim reservas simultâneas de numeração, pode ocorrer da numeração de perder.

Por isso ressaltamos mais uma vez que, havendo o interesse em automatizar o controle de numeração sequencial, é muito importante que a personalização seja bem elaborada por um especialista, evitando estas, dentre outras falhas não mapeadas.

 

 

Como sanar problemas relacionados a utilização do controle de numeração personalizado:

 

Devido a impactos possivelmente ocasionados com a utilização das funções GETSXENUM ou GETSX8NUM, por vezes é necessário ajustar a numeração através da rotina de Controle de Numeração APCFG110 pelo módulo Configurador - SIGACFG, onde podem haver dois cenários:

 

Primeiro cenário: ao localizar na chave Alias SB1, o número que consta na seção "Números em uso" é um número que já possui cadastrado na SB1 de seu ambiente.

Seria necessário informar manualmente o número correto na aba "Números em uso" e sua sequência na aba "Próximos Números".

Exemplo:

Número em uso/liberado já cadastrado na SB1:

 

Segundo cenário: ao localizar linhas duplicadas para a mesma chave - Alias SB1 - (com numerações diferentes ou iguais), tanto na aba "Próximos Números" quanto na aba "Números em uso":

Veja também um How To orientando no ajuste de controle de numeração: https://youtu.be/BhEo-9FFUIQ?si=hFMX9f6ACiSOWFKF

 

IMPORTANTE: Suporte e Manutenção

Problemas ocasionados pelo uso de controle automático de numeração personalizado para o Cadastro de Produtos no campo B1_COD não recebem atendimento de Suporte / Manutenção uma vez que não se tratam de soluções padrões nativas (conforme conceito explicado acima). Independente de quais funções foram utilizadas (GETSXENUM/ GETSX8NUM/ NEXTNUMERO/ SOMA1/ etc).

É necessário acionar um consultor Protheus programador para mapear os impactos, conforme sua regra de uso, e personalizar o controle de numeração atendendo à todos os critérios e boas práticas.

Caso não disponha de analista programador em seu dpto de TI, para realizar a análise e elaboração da personalização, deixamos sugestão da área HUB Plataformas (hub.plataformas@totvs.com.br), a qual dispõe de consultores TOTVS, e pode ser acionada para obtenção de orçamento. Além também de poder acionar seu ESN solicitando orçamento para alocação de um recurso.

Caso possua dúvidas/inconsistências pontuais sobre a proposta oficial de Funções ADVPL liberadas pra uso, você também pode entrar em contato com nossa equipe de Suporte ADVPL.

Conheça também a plataforma colaborativa DEVFORUM da TOTVS para trocar recomendações entre programadores Protheus.

 

Para mais informações: Ajuste de Numeração automática dos Formulários (Tabelas / ALIAS) no Protheus

 

Saiba mais:

Como realizar o ajuste no controle de numeração

Clique aqui e veja mais artigos sobre Cadastros e Configurações Gerais no Estoque

Esse artigo foi útil?
Usuários que acharam isso útil: 1 de 1

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _