ERP – Controle de Estoque/Inicialização de Saldos– Problemas a efetuar a inicialização dos saldo mensais de estoque - Não foi possível incluir Saldos Físicos Mensais - E210SFE
Incidente
No processo de inicialização de saldos mensais é apresentada a mensagem: Problemas a efetuar a inicialização dos saldo mensais de estoque - Não foi possível incluir Saldos Físicos Mensais - E210SFE!
Causa
Este incidente pode ocorrer quando haver produtos, derivações ou até depósitos com espaços gravados na base. Assim o sistema tenta gravar duas vezes o mesmo produto e ocorre a inconsistência, geralmente em banco de dados SQLServer que permite ter espaços sendo assim.
Solução
Para que a situação não ocorra na utilização de banco de dados Microsoft SQLServer, execute os passos abaixo:
Importante
Caso você não tenha conhecimento necessário para fazer as alterações no banco de dados (tanto com relação aos parâmetros do banco como a execução dos comandos), verifique com o DBA da sua empresa a realização deste processo.
1. Acesse as configurações do banco de dados SQLServer;
1.1. Defina o parâmetro ANSI_PADDING como "Não"/"False". Este parâmetro é responsável por determinar se o banco de dados armazenará os espaços após o texto (strings) de uma coluna ou não. Se este parâmetro não for setado, não há como garantir que problemas futuros desta natureza não voltem a ocorrer;
2. Para realizar ajustes nos cadastros que eventualmente foram afetados, execute os comandos abaixo:
2.1. Comandos selects para identificar registros que tenham espaços após a string:
- SELECT COUNT(*) FROM E210MVP WHERE CODPRO LIKE '% '
- SELECT COUNT(*) FROM E210MVP WHERE CODDER <> ' ' AND CODDER LIKE '% '
- SELECT COUNT(*) FROM E210MVP WHERE CODDEP LIKE '% '
- SELECT COUNT(*) FROM E210MVP WHERE CODLOT LIKE '% '
- SELECT COUNT(*) FROM E210DLS WHERE CODPRO LIKE '% '
- SELECT COUNT(*) FROM E210DLS WHERE CODDER <> ' ' AND CODDER LIKE '% '
- SELECT COUNT(*) FROM E210DLS WHERE CODDEP LIKE '% '
- SELECT COUNT(*) FROM E210DLS WHERE CODLOT LIKE '% '
- SELECT COUNT(*) FROM E210EST WHERE CODPRO LIKE '% '
- SELECT COUNT(*) FROM E210EST WHERE CODDER <> ' ' AND CODDER LIKE '% '
- SELECT COUNT(*) FROM E210EST WHERE CODDEP LIKE '% '
2.2. Se algum resultado for retornado, então você deve executar os comandos abaixo para ajuste, conforme necessidade:
- UPDATE E210MVP SET CODPRO = RTRIM(CODPRO) WHERE CODPRO LIKE '% '
- UPDATE E210MVP SET CODDER = RTRIM(CODDER) WHERE CODDER <> ' ' AND CODDER LIKE '% '
- UPDATE E210MVP SET CODDEP = RTRIM(CODDEP) WHERE CODDEP LIKE '% '
- UPDATE E210MVP SET CODLOT = RTRIM(CODLOT) WHERE CODLOT LIKE '% '
- UPDATE E210DLS SET CODPRO = RTRIM(CODPRO) WHERE CODPRO LIKE '% '
- UPDATE E210DLS SET CODDER = RTRIM(CODDER) WHERE CODDER <> ' ' AND CODDER LIKE '% '
- UPDATE E210DLS SET CODDEP = RTRIM(CODDEP) WHERE CODDEP LIKE '% '
- UPDATE E210DLS SET CODLOT = RTRIM(CODLOT) WHERE CODLOT LIKE '% '
- UPDATE E210EST SET CODPRO = RTRIM(CODPRO) WHERE CODPRO LIKE '% '
- UPDATE E210EST SET CODDER = RTRIM(CODDER) WHERE CODDER <> ' ' AND CODDER LIKE '% '
- UPDATE E210EST SET CODDEP = RTRIM(CODDEP) WHERE CODDEP LIKE '% '
3. Após os ajustes, você poderá executar novamente a inicialização de saldos.
Atenção! Antes de realizar qualquer alteração, analise o impacto que poderá ter em outros lançamentos/processos do sistema.