Este documento descreve o processo de conversão de dados do sistema RM Classis para o sistema TOTVS Educacional, incluindo a estrutura do conversor, controle do processo, execução em paralelo, log de erros e otimizações possíveis.
000047 como fazer totvs - v 4.0.0 - entenda o rm conversor de classis para totvs educacional
1. Produto: RM Conversor Versão: 4.0.0
Processo: Conversor de base de dados do RM Classis para o TOTVS Educacional (RM Classis Net)
Antes de você ler este documento é interessante que veja o Como Fazer sobre o processo de
conversão do RM Classis para o TOTVS Educacional.
Aqui você poderá conferir informações técnicas. É uma forma de aprofundar sobre os processos
internos que acontecem quando o Conversor do RM Classis para o TOTVS Educacional é executado.
Portanto, é interessante que você já tenha uma noção sobre este procedimento.
1. Conversor
A ferramenta de conversão é composta por um grupo de conversores. Cada conversor realiza a
conversão de um determinado grupo de dados.
Exemplo: O conversor de matrícula (ConvMatricula) converte os dados da matrícula. O conversor de
contratos (ConvContrato) converte os dados referentes à contrato e parcelas.
Os conversores possuem dependências, pois para converter determinada informação pode ser
necessária a informação gerada em uma conversão anterior.
Exemplo: É necessário converter o curso para obter o código novo do curso que será necessário na
conversão da grade.
2. Controle do conversor.
O conversor utiliza uma tabela de controle chamada CONTROLECONVERSOR para registrar quais
conversores estão pendentes ou foram executados ou estão em conversão. Nesta tabela é
armazenado o código da coligada, código do sistema (básico ou superior) o nome técnico do
conversor, o código do status da conversão (1 = convertido, 2 = convertendo e 3 = pendente) e o
usuário que realizou a conversão.
Caso seja necessário interromper a conversão o usuário deverá alterar o status do registro
referente ao conversor que estava convertendo para o status de conversor pendente na tabela
CONTROLECONVERSOR para que ele continue a conversão corretamente.
Caso seja necessário executar novamente um conversor, é necessário alterar o status do registro
referente ao conversor desejado para pendente na tabela CONTROLECONVERSOR.
3. Conversão em paralelo.
O conversor também pode ser executado em paralelo. Basta clicar no botão “mais” (caso as
configurações não estejam sendo exibidas) e marcar a opção “Execução simultânea em outras
RM Conversor v.4.0.0. RM Classis – TOTVS Educacional 1
Data de produção: 07/03/2012 por Lucas Torres
2. máquinas”. Não é necessário marcar os conversores para a execução, pois o próprio conversor
decidirá a ordem da conversão de acordo com as dependências.
Ao executar o conversor em mais de uma máquina os conversores irão buscar o conversor que
estiver livre de dependências para ser executado.
Conversores que convertem um grande número de dados (matrículas e financeiro, por exemplo)
são executados em lotes. O conversor cria um campo (LOTECONVERSAO) em uma tabela de origem
dos dados onde ele faz o controle dos registros que estão em processo de conversão.
Por exemplo: Caso duas máquinas estejam convertendo os contratos de uma base de dados em
paralelo, a primeira cria a coluna LOTECONVERSAO na tabela EALUSERV e marca os primeiros 25000
registros com o nome da máquina e usuário logado concatenado com o caractere 1 (RM0004084-
lucas.torres-1), indicando que está convertendo aqueles registros. A segunda máquina vê que a
coluna já está criada e marca os primeiros 25000 registros disponíveis (que estejam com valor nulo)
indicando que está convertendo. E continuam neste processo até completar a conversão desta
tabela.
Caso seja necessário executar novamente um conversor que utilize lotes de conversão, além de
alterar a tabela de controle do conversor, o usuário precisará limpar a coluna LOTECONVERSAO da
tabela que aquele conversor utiliza. O usuário também poderá remover esta coluna, pois o
conversor criará novamente durante o processo.
4. Tabelas temporárias
Alguns conversores criam tabelas temporárias para auxiliar no processo. Geralmente quando novos
códigos são criados e são relacionados a registros que serão convertidos posteriormente então o
conversor cria uma tabela temporária para que seja possível associar facilmente o registro do
ensino básico ou do ensino superior com o registro do TOTVS Educacional.
Por exemplo, ao converter os horários, a tabela TEMPHORARIO é criada. Esta tabela armazena o
código antigo do horário (CODHOR) e o novo código de horário criado (CODHORNOVO). Desta
forma é possível trabalhar a informação de horário nas próximas tabelas a serem convertidas.
As tabelas temporárias não são excluídas após o processo de conversão e é importante que sejam
mantidas sem alterações. Caso ocorra alguma falha, estas tabelas são muito importantes para a
análise.
5. Log de migração na base de dados
A partir da versão 4.0.0.19 o conversor cria a tabela SLOGMIGRACAO. Nesta tabela são
armazenadas informações para auxiliar na análise da conversão. Você pode verificar qual tabela
recebe os registros processados por um determinado conversor, ou quantos registros foram
selecionados na origem e qual a consulta foi utilizada para realizar a seleção dos dados a serem
processados.
O log guarda o registro da tabela principal de cada conversor e, na maioria dos casos, também as
tabelas temporárias. Caso alguma tabela não tenha sido registrada será necessário solicitar que o
conversor seja alterado para disponibilizar esta informação.
6. Log de migração em arquivo texto
RM Conversor v.4.0.0. RM Classis – TOTVS Educacional 2
Data de produção: 07/03/2012 por Lucas Torres
3. Durante o processo de conversão, a ferramenta registra em um arquivo texto (log) as mensagens
ocorridas. Geralmente, as mensagens ocorrem por algum tipo de inconsistência na base,
impossibilitando a inserção do registro novo. É importante que o usuário que está realizando a
conversão observe os detalhes do log, pois pode esclarecer o motivo da não inserção de alguns
registros.
O log pode exibir mensagens tratadas que exibem informações sobre casos mais comuns.
No caso da mensagem acima, indica que não faz sentido ter uma disciplina filha com o mesmo
código da disciplina pai e por este motivo o registro não foi inserido.
O log também pode exibir mensagens que não são tratadas que exibem informações retornadas
pelo banco de dados ou informações retornadas por alguma falha de tratamento pela aplicação.
A mensagem acima é retornada pela aplicação, que recebeu um valor diferente do esperado e não
conseguiu realizar o tratamento. Neste caso foi um valor string que tentou ser inserido em um
campo numérico.
Mensagens deste tipo podem ocorrer por alguma falha na integridade da tabela de origem dos
dados ou porque há a necessidade de ajustar o conversor, pois recebeu uma informação diferente
dos casos previstos.
A mensagem acima é retornada pelo banco de dados, que não conseguiu inserir o registro por
regras de integridade do banco de dados. A tabela SBOLSAALUNO possui uma coluna chamada
CODUSUARIO que iria receber um valor que não exista na tabela GUSUARIO. O banco de dados
bloqueou a inserção porque existe uma chave estrangeira que não permite este tipo de situação.
Provavelmente o usuário que realizou a operação foi excluído da GUSUARIO. Caso o registro
realmente deva ser inserido, é necessário que a base de dados seja corrigida.
RM Conversor v.4.0.0. RM Classis – TOTVS Educacional 3
Data de produção: 07/03/2012 por Lucas Torres
4. A mensagem acima é retornada pela aplicação, indicando que houve uma falha na conexão com o
banco de dados. Neste caso, o serviço do banco de dados caiu durante a conversão.
7. Tuning
O tempo de conversão depende do volume de dados que a base de dados do cliente possui. Muitas
tabelas temporárias são criadas e utilizadas em relacionamentos durante os processos de
conversão. Em alguns casos este relacionamento pode não ser indexado. Também pode haver
consultas que relacionam tabelas do TOTVS Educacional com tabelas do Ensino básico e superior.
Portanto, caso seja necessário, criar índices ou atualizar estatísticas do banco de dados pode dar
mais agilidade ao processo de conversão.
Caso um processo de conversão esteja muito demorado, um usuário avançado em banco de dados
poderá verificar na tabela SLOGMIGRACAO a consulta que está sendo executada e analisar se há a
necessidade de criar algum índice para agilizar o processo.
Quando uma conversão está sendo processada, mas a barra que exibe o percentual concluído
daquele conversor está crescendo lentamente, certamente é devido ao grande volume de dados e
um processo de tuning seria desnecessário. Este procedimento é útil para os casos em que o
conversor aparenta estar travado, mas está “processando” alguma consulta pesada.
RM Conversor v.4.0.0. RM Classis – TOTVS Educacional 4
Data de produção: 07/03/2012 por Lucas Torres