Qualidade de dados e recomendações nas migrações
A migração de dados da v9 para a v10 implica um conjunto de requisitos que devem ser cumpridos para evitar incongruências na base de dados, nomeadamente relacionados com os stocks, lotes e números de série. Recomendamos a leitura atenta de todas as áreas descritas e a execução das querys disponibilizadas para acelerar a migração de dados e evitar erros no sistema. Antes do processo de migração, deverá garantir que todos os exercícios que já tenham o Apuramento de Resultados concluído estão bloqueados. Para conhecer todos os passos necessários para migrar corretamente para a versão 10, sugere-se a consulta dos seguintes artigos de apoio, consoante o cenário aplicável: Na V9, era comum a existência de casos onde a quantidade em stock diferia do número de série ativas em sistema. Na V10, podem surgir dois cenários distintos: Deverá identificar o cenário e, de seguida, efetuar a respetiva correção: Deverá primeiramente validar se existem estes cenários na base de dados. Para tal, deverá executar a query que retornará todos os artigos em que existem diferenças quer por excesso de números de série ativos em sistema, quer por defeito. Este é o cenário mais complexo, em que é necessário realizar primeiramente uma análise física aos números de série existentes em stock para posteriormente descartar os outros números de série que não existem fisicamente em stock. Depois de identificar os números de série que devem ser inativados, deverá executar a seguinte query com a devida indicação dos respetivos números de série. Nota: Na query, deverá preencher os valores entre aspas com os valores pretendidos. Neste caso, deverá criar os números de série de sistema para igualar a quantidade em stock aos números de série ativos no sistema. Para tal, deve ser executada a seguinte query que irá criar os respetivos números de série automáticos e autogerados. Se pretender substituir os números de série automáticos pelos números de série reais, poderá fazê-lo através das seguintes opções: É possível identificar e corrigir as inconsistências de dados entre as linhas da tabela "linhasstk" e o cabeçalho do documento de stock. Deverá primeiramente identificar as inconsistências e, de seguida, efetuar a respetiva correção selecionando uma das opções disponíveis. Para identificar as inconsistências entre a tabela "linhasstk" e os respetivos cabeçalhos (tabela "cabecstk"), deverá executar a seguinte query. Após identificá-las, poderá utilizar duas opções para as corrigir: Caso opte por corrigir primeiramente os dados na versão 9 e posteriormente migrar para a versão 10, deverá executar a seguinte query para efetuar a reconstrução dos identificadores do cabeçalho nas linhas de stock. Após executar a script de correção dos dados, poderá migrar para a v10. Para corrigir os identificadores do cabeçalho na base de dados da v10 com auxílio da v9, é necessário preparar o ambiente de aplicação da solução tendo ambas as bases de dados (v9 e v10) na mesma instância SQL. Para cada documento identificado, deverá efetuar o seguinte procedimento. Reforçamos que esta operação é mais trabalhosa e arriscada, uma vez que a criação dos registos na nova infraestrutura do módulo de inventário é mais complexa na versão 10, existindo um maior número de tabelas associadas onde é necessário intervir. Na v9, quando existem campos de utilizador presentes nas tabelas de stock (CabecStk e LinhasStk), esses campos não são migrados durante o processo de migração da base de dados para a versão 10 dado que é impossível perceber quais os campos que são para afetar às respetivas tabelas na nova infraestrutura. Esta situação verifica-se porque, enquanto na v9 os documentos são alocados como documentos de stock, na v10 passam a ser distribuídos por documentos internos, documentos de transferência de armazém e documentos de composição e decomposição. Atendendo a esta situação, a migração dos campos do utilizador e dos respetivos dados implica a identificação de quais os campos que deverão ficar alocados a cada tipo de transação. A criação dos campos poderá ser realizada pelo processo habitual. Para garantir os dados dos campos do utilizador na versão 10 e simplificar a cópia dos dados, no processo de migração estes dados são copiados para duas tabelas: Para simplificar o processo descrito anteriormente poderá ser utilizada a seguinte query. A execução desta query é muito simples, bastando indicar nos locais indicados os campos a migrar (CabecStk e LinhasStk), bem como o tipo de movimento de destino dos mesmos na v10 (documentos internos, documentos de transferência de armazém e documentos de composição e decomposição). A query cria automaticamente os campos do utilizador, caso não existam, e copia os dados. Em algumas situações, são detetadas diferenças de valores entre o inventário e a contabilidade que podem não ser facilmente identificadas na aplicação. Para detetar essas diferenças, podem ser utilizados os seguintes diagnósticos: Para identificar estas diferenças, é necessário saber quais são as contas de inventário e a respetiva contrapartida a contemplar para a análise. Após a correta identificação das contas, é necessário incluí-las na respetiva query de análise. Outro processo que por vezes pode provocar resultados com diferenças entre o inventário e a contabilidade, corresponde à existência de serviços de inventário pendentes de execução pelo ECHO. Estes serviços são apresentados no monitor de operações do ECHO. Para identificar as diferenças, poderá utilizar a seguinte query. A query não deteta diferenças em documentos de composição e decomposição e, por isso, podem aparecer como falsos positivos. Para identificar as diferenças, poderá utilizar a seguinte query como exemplo. Existem duas tabelas onde são registados os serviços de inventário: uma na própria infraestrutura do ECHO e outra já na estrutura da base de dados da empresa. Também poderá visualizar estes registos no monitor de operações do ECHO no ERP. Para identificar serviços pendentes de execução pelo ECHO, deverá executar a seguinte query. --Substituir PRIEMPRE pelo correto, assim como o nome da Base de Dados da Empresa select * from PRIEMPRE.Bot.BotWorkQueueItems where state <> 2 and scope like '%NOME_BD_EMPRESA%' Para identificar serviços de inventário pendentes de execução no BAS, deverá executar: select * from BAS_IntegrationServiceQueue where state <> 1 Nos cenários em que são introduzidos movimentos em inventário e custeio via extensibilidade ou, por exemplo, através do carregamento de stocks iniciais, é necessário ter em atenção que esses movimentos podem ter impacto nos movimentos anteriores. Ou seja, podem provocar inconsistências nas quantidades e na valorização uma vez que a aplicação necessita sempre que a integração seja realizada corretamente, para que seja possível criar as respetivas tarefas de inventário e para que o ECHO as execute. Deste modo, é importante que esses movimentos sejam corrigidos. Caso contrário, é necessário forçar a execução do cálculo das quantidades em stock ou até do custeio. Para efetuar esses cálculos, é necessário ter em atenção que deverá filtrar os registos a impactar no cálculo para que, por exemplo, não sejam apresentadas diferenças em meses já fechados ou mesmo para que a aplicação efetue os cálculos de forma mais célere. Neste sentido, deverá ter sempre em consideração os seguintes filtros: Para forçar a execução do cálculo de quantidades, deverá utilizar a seguinte query. Para forçar a execução do cálculo de custos, deverá utilizar a seguinte query. Para identificar se um lote é ou não de sistema, é efetuada uma comparação com o lote de sistema, identificado como: Na migração de dados da v9 para a v10, foram reportados problemas relacionados com a reintegração de todos os movimentos de inventário na nova infraestrutura, uma vez que foram detetadas as seguintes situações: Deverá primeiramente identificar os artigos que estão nesta situação e, de seguida, efetuar a respetiva correção. Para identificar artigos com lotes de sistema errados, deverá executar a seguinte query. Para corrigir artigos com lotes errados, deverá executar a seguinte query. Nota: Após efetuar a correção, e uma vez que são efetuados updates diretamente na base de dados que podem interferir tanto no cálculo de quantidades como no cálculo de custos, será necessário efetuar a reconstrução dos movimentos de inventário. Para tal, deverá executar o procedimento descrito área Reconstrução de movimentos de stock e de custeio.
Números de Série ativos no Stock
Identificar cenários
Corrigir números de série ativos por excesso
Corrigir números de série ativos por defeito
Linhas de Stock e Cabeçalho de Documento de Stock
Identificar inconstistências entre linhas e respetivos cabeçalhos
Efetuar correção utilizando apenas a base de dados da v9
Efetuar correção na base de dados da v10 com auxílio da base de dados v9
Migração de Campos de Utilizador
Query de apoio à migração de campos do utilizador de stocks
Contabilização Inventário Permanente
Identificar diferenças de valores entre o que foi registado no inventário face ao que foi registado na contabilidade
Identificar lançamentos na contabilidade em contas de inventário que não tiveram origem no módulo de inventário
Identificar serviços de inventário pendentes de execução pelo ECHO
Reconstrução de Movimentos de Stock e de Custeio
Forçar execução do cálculo de quantidades
Forçar execução do cálculo de custos
Artigos com Tratamento de Lotes
Identificar artigos com lotes de sistema errados
Efetuar correção aos artigos com lotes errados