Histórico da Página
...
Produto: | Microsiga Protheus | ||||||
Ocorrência: | Procedimentos para ajustar o Controle de Numeração automática de Documento de saída e ALIAS diversos no Protheus | ||||||
Ambiente: | SIGAFAT - Faturamento | ||||||
Passo a passo: | NUMERAÇÃO DE PROCEDIMENTO 1 - CONTROLE DE NUMERAÇÃO AUTOMÁTICA PARA DOCUMENTO DE SAÍDA
Verifique o parâmetro MV_TPNRNFS: Indica de que forma será controlada a numeração dos documentos de saída e entrada com formulário próprio. As opções disponíveis são: 1. Controle de numeração pelo SX5 - Tabelas Genéricas. 2. Controle de numeração pelo SXE / SXF (Hardlock ou Disco System) 3. Controle de numeração dos documentos de entrada e saída por SD9 / Cadastro manual via rotina de atualização de documentos (MATA012). Ações: 1. Para controle por SX5 - Tabelas Genéricas - Verifique na rotina MATA460A(Doc. De saída) e verifique o Cód. da Ultima NOTA gerada (nota "000009" por exemplo). - Acesse o Configurador -> Tabelas Genéricas - Vá até X5_TABELA = 01 e na X5_CHAVE > localize a SERIE utilizada para gerar a nota (nesse exemplo Serie 1) X5_TABELA = 01 e X5_CHAVE 1 - Nessa mesma linha, no campo X5_DESCRI preencher = um numero maior que o valor da última nota gerada ("000009"). Ex: X5_DESCRI "000010" Assim o sistema irá recomeçar a numeração a partir da "000010".
2. Para controle por SXE / SXF - Verifique qual a maior numeração já gerada na Tabela SF2 - Exemplo: 000009 - Acesse a rotina APCFG110 - Manutenção SXE/SXF - Na tabela SXF - deixe o campo para o ALIAS SF2 com o próximo número a ser gerado - Exemplo: 000010 - Na tabela SXE - deixe o campo para o ALIAS SF2 com SXF+1 - Exemplo: 000011 - Deixe apenas uma linha para o ALIAS tanto na SXF quanto na SXE. Se houver outras linhas, delete. Inclua novos registros para validar a atribuição correta do número.
3. Para controle por SD9 O controle de numeração por SD9 foi desenvolvido baseado no modelo SD9 (Modelo de Talão de Notas). Desta forma, não é disponibilizada a opção de alterar manualmente a numeração, bem como, não reutiliza numerações já utilizadas. O ajuste de numeração, quando controlado pela SD9, é automático. Desta formaPara tanto, é necessário validar todos os pontos considerados para este tratamento, realizado pelo próprio sistema, visto que o ajuste não é manual.:
Seguem principais validações: - O MV_TPNRNFS deve estar com conteúdo = 3 - Validar na rotina MATA012 os números iniciais das notas para respectivas séries.
- Utilizar MV_FATGCGC = .T. para Controlar a numeração por CNPJ, e não por D9_FILIAL (ou seja: apenas um sequencial e numerações diferentes); ou, - Utilizar MV_FATGCGC = .F. para Controlar a numeração por D9_FILIAL, e não por CNPJ (ou seja: dois sequenciais distintos, podendo cada qual ter a mesma numeração).
Importante atentar-se: * Se a numeração de notas for exclusiva, os parâmetros também devem ser exclusivos, bem como as tabelas. * Se a numeração for compartilhada, os parâmetros também devem ser compartilhados, bem como as tabelas.
- Avaliar se foi criada a tabela AD0 em sua SX2 conforme as caracteristicas características registradas no Boletim Técnico da funcionalidade. - Validar se foram criados corretamente: os campos da SD9; os índices; e os parâmetros registrados no boletim. Obs: Devem ter sido automaticamente criados ao executar o compatibilizador UPDFAT39 (o qual é imprescindível para implementar a funcionalidade, conforme orientações do boletim). - Os CNPJs das filiais devem necessariamente estar cadastrados corretamente no cadastro da empresa.
Tendo realizado as validações, item a item: - Realize backup de sua SD9, e: - Executar a rotina de Ajuste de Numeração da tabela SD9 (MATA470 - verifique orientações do Boletim) para corrigir o controle de numeração.
Boletim Técnico:
MENSAGEM: A460FLOCK - Ocorreu algum problema na última geração de notas fiscais
O alerta "A460FLOCK - Ocorreu algum problema na última geração de notas fiscais" acontece em 3 situações:
1- Falta da tabela SX5 2- Falta do parâmetro mv_numiten 3- Arquivo SX5 corrompido
Sendo assim, 1- Acesse o Configurador e o Banco de Dados e valide se em ambas é localizada a tabela; 2- Verifique se o parâmetro MV_NUMITEN está criado e com conteúdo válido; 3- E para a última situação, será necessário realizar o procedimento abaixo:
A- Primeiramente validar que o controle de numeração é via SX5: Verifique o parâmetro MV_TPNRNFS: Indica de que forma será controlada a numeração dos documentos de saída e entrada com formulário próprio. As opções disponíveis são: 1. Controle de numeração pelo SX5 - Tabelas Genéricas. 2. Controle de numeração pelo SXE / SXF 3. Controle de numeração dos documentos de entrada e saída pelo SD9.
B- Realizar um Backup da tabela SX5 C- Abir o backup para validar o arquivo, aplicar o utilitário PACK sobre ele (para excluir registros deletados), e salvar com outro nome para manter o backup original intacto D- Aplicar um ZAP na tabela SX5 (truncate table) que irá deletar a tabela mantendo apenas a estrutura E- Executar um APPEND na SX5 do backup no qual foi aplicado PACK
Obs IMPORTANTE: *Atente-se se o SX5 é exclusivo ou compartilhado. Se SF2 e SD2 são exclusivas, ou seja, cada Filial tem seu próprio controle de Notas de saída; então, o controle de numeração da nota de saída também deve ser exclusivo. Neste caso, se o MV_TPNRNFS = 1 então o controle de numeração é via SX5, a qual também deve ser exclusiva. Se for imprescindível utilizar a SX5 compartilhada, deixando apenas a TABELA 01 exclusiva, é necessário utilizar Ponto de Entrada: CHGX5FIL - CHGX5FIL+-+Utiliza+Tabela+01+Exclusiva+em+um+SX5+Compartilhado (Utilizando SX5 compartilhado, cada filial deverá possuir um mv_numiten).
* Outra situação que deve ser levada em consideração para este tipo de problema, é se o configurador estiver aberto na tabela 01 de série notas fiscais e tentar faturar a nota, o sistema também exibe o mesmo help, sendo necessário, fechar o configurador durante o processo.
Importante : Todo procedimento deve ser primeiramente realizado em base teste. Somente realizar na base de produção após o processo ser validado pela equipe de TI da empresa juntamente com o usuário final. Havendo dúvidas ou dificuldade em relação ao procedimento, acionar um consultor Totvs.
PROCEDIMENTO 2 - CONTROLE DE NUMERAÇÃO AUTOMÁTICA PARA TABELAS (ALIAS) DIVERSAS POR SXE/SXF ou HARDLOCK PARA ALIAS DIVERSOS IMPORTANTE: PROTHEUS 12 o controle deve ser somente via Hardlock. Para validar em seu ambiente, consulte o item 4.1 abaixo.
Seguir esta ordem de verificação para acerto de numeração automática:
1 - Usuário ADMIN O usuário que inicializa o serviço do Protheus Server (que usa hardlock) deve ser o ADMINISTRADOR. Se estiver ok, passe ao item seguinte.
2 - Pasta SYSTEM
2.1. SXE e SXF / Hardlock. Mais de uma pasta System = USO OBRIGATÓRIO DE HARDLOCK. NÃO FUNCIONA com SXE e SXF para mais de um SYSTEM.
2.2. SpecialKey e X2_PATH Se utilizar hardlock, e tiver mais de um ambiente, é necessário:
a) Obrigatório uso da chave SpecialKey (detalhes em http://tdn.totvs.com/display/tec/SpecialKey). Exemplo: [ENVDBF] SourcePath=C:\Protheus10\APO\R13 RootPath=C:\Protheus10\Protheus_Data\R13 StartPath=\system\\13 x2_path= RpoDb=dbf RpoLanguage=portuguese RpoVersion=101 LocalFiles=ads Trace=0 localdbextension=.dbf SPECIALKEY=ENVDBF com a chave CheckSpecialKey [general] CheckSpecialKey=0
b) Ambientes DIFERENTES. Ambiente: DBF Se os ambientes forem DBF/CDX eles devem apontar para endereços no X2_PATH, obrigatoriamente, diferentes.
Ambiente: TOP Se os ambientes forem TOPConnect/TOTVSDBAcess, os alias dos ambientes devem ser, obrigatoriamente, diferentes.
Se 2.1 e 2.2 estiverem ok, passe ao item seguinte.
3 - Campo Para que o cadastro de clientes, por exemplo, traga na inclusão automaticamente o próximo número disponível, pode-se utilizar a seguinte sintaxe no inicializador padrão do campo A1_COD: GetSx8Num("SA1","A1_COD"). Favor validar se o X3 está com esta informação no inicializador! Obs: Na maioria das vezes o inicializador padrão do campo está cadastrado como: GetSx8Num("SA1").
Quando uma tabela tiver MAIS DE UM CAMPO com numeração automática, a função deve ficar conforme exemplo: CAMPO: A1_COD û GETSXENUM(SA1, A1_COD, A1_COD)
Se estiver ok, passe ao item seguinte.
4 - Controle:
4.1 - Como está definido o controle(ENABLENUMER)? É pelo hardlock ou pelo SXE e SXF? Para analisar como é controlada, verificar como está configurado no licenseserver: ENABLENUMBER= 0 = SXE e SXF
4.2 - Procedimento para Acerto de Numeração Automática quando utiliza HARDLOCK - RECOMENDADO PELA MICROSIGA (Obs: Se for SXE e SXF, pular para o item 4.3):
No diretório appserver, arquivo appserver.ini Na sessão [licenseserver] enablenumber=1
Para acertar a numeração pelo HARDLOCK, siga os seguintes passos: - Parar todo o serviço do Protheus que controla o HARDLOCK e, caso possua mais de um Protheus Service, para todos eles; - Subir o Protheus Server que controla a numeração pelo HardLock em MODO CONSOLE (SOMENTE EM MODO CONSOLE), ou seja, a partir de comando diretamente no DOS; - Parar o serviço que controla a numeração por HARDLOCK e desta forma será criado o arquivo isnumber.val no diretório \BIN\SERVER\ do serviço que está sendo executado (CTRL+C: YES). - Apagar o arquivo ISNUMBER.VAL. - Subir o Protheus Server que controla a numeração pelo HARDLOCK em MODO CONSOLE e acessar o módulo que deverá ser acertada a numeração. Neste ponto, como não existe nenhuma numeração de referência, o HARDLOCK irá pegar o Número MÁXIMO existente para o campo e ira incrementar em +1. - Parar o serviço que controla a numeração por HARDLOCK e desta forma será criado o arquivo LSNUMBER.VAL no diretório \BIN\SERVER\ do serviço que está sendo executado e neste arquivo será Armazenado a numeração pertinente ao campo. - A partir deste ponto, poderá subir o Protheus Server em modo SERVIÇO, através da ferramenta de controle de serviços do Windows.
Este procedimento irá acertar a numeração para a rotina e consequentemente como todas as numerações automáticas que são controladas pelo HARDLOCK serão reiniciadas.
LEMBRETE: ESTE PROCEDIMENTO DEVE SER EFETUADO EM MODO EXCLUSIVO, POIS, QUALQUER INTERVENÇÃO QUE OS PROCEDIMENTOS SOFREREM POR ACESSO DE USUÁRIOS, DEVERÁ SE REINICIAR TODO O PROCEDIMENTO NOVAMENTE DESDE O INÍCIO.
OBS: QUANDO UTILIZADO O CONTROLE DE NUMERAÇÃO AUTOMÁTICA COM MESMO SERVIDOR DE LICENÇAS (HARDLOCK) NOS AMBIENTES DE PRODUÇÃO E HOMOLOGAÇÃO E NECESSÁRIO UTILIZAR A CLAUSULA "SPECIALKEY" NO ARQUIVOS DE CONFIGURAÇÃO APPSERVER.INI (Maiores detalhes consulte o Link SpecialKey).
4.3 - Procedimento para Acerto de Numeração Automática quando utiliza SXE e SXF:
Para localizar as Tabelas SXE e SXF há duas formas: 1ª - Acessar por Fórmulas: - Cadastro de Fórmulas - rotina CFGX019 > Incluir - Digitar um Código (exemplo 001) - Digitar um Nome (Exemplo: CONTROLE DE NUMERAÇÃO) - No campo Fórmula, digitar o conteúdo: apcfg110() - Ao teclar Tab em seu teclado, o sistema abre as tabelas para ajuste.
2ª - Criar uma opção no MENU chamando programa APCFG110: - ambiente/cadastro/menu; - selecionar somente o menu no configurador clicar em OK; - adicionar o menu para a coluna "novo menu"; - selecionar onde deverá ser salva a rotina - clicar em novo item - preencher o nome em port/ ingl e esp - Em "programa" APCFG110 selecionar o módulo de configurador clicar em ok - gerar como sigacfg/ sair do configurador e entrar novamente para visualizar a nova rotina - informar a numeração atual e próximo número utilizado * Realizar este ajuste Para controle por meio de o seguinte ajuste nas tabelas SXE e SXF: - Verifique primeiramente qual a maior numeração já gerada na Tabela SA1 - Exemplo: 000100 - Na tabela SXF - deixe o campo A1_COD com o próximo número a ser gerado - Exemplo: 000101 - Na tabela SXE - deixe o campo A1_COD com SXF+1 - Exemplo: 000102 - Deixe apenas uma linha para o ALIAS SA1 tanto na SXF quanto na SXE. Se houver outras linhas, delete. * Inclua novos registros para validar a atribuição correta do número.
5 - Uso simultâneo O uso simultâneo da Tabela faz com que o sistema se comporte de forma a atender todas as chamadas de numeração. O resultado da ordem da numeração está sujeito à efetivação realizada pelo usuário que a reservou. A reserva de numeração compromete a ordem quando há mais de um usuário manipulando a tabela ao mesmo tempo, se determinado usuário já reservou a numeração e não efetivou o registro, após um segundo usuário ter reservado a numeração seguinte; podendo ocasionar em duplicidade de registros na SXF para garantir todas as reservas feitas. Desta forma, a não efetivação das reservas, compromete a numeração subsequente.
|