Automação contra o caos



O desenvolvimento moderno das tecnologias de TI tornou possível conter os enormes fluxos de dados.
A empresa possui várias ferramentas: CRM, ERP, BPM, sistemas de contabilidade ou, em casos extremos, apenas Excel e Word.

As empresas também são diferentes. Alguns são compostos de muitos ramos separados. Nesse caso, a empresa tem um problema de sincronização de dados no zoológico dos sistemas de TI. Além disso, as filiais diferem em fornecedores ou versões de software. E mudanças frequentes nos requisitos de relatórios da empresa de gestão causam ataques de "alegria" descontrolada no campo.

Esta história é sobre um projeto no qual encontrei o caos que precisava ser sistematizado e automatizado. Um orçamento modesto e prazos apertados limitavam o uso da maioria das soluções industriais, mas abriam espaço para a criatividade.

Formato universal


O cliente definiu a tarefa de coletar dados para relatórios de todas as filiais da empresa. Para entender a escala do desastre, existem dezenas de sistemas, incluindo monstros criados por si mesmos e monstros como o SAP e, é claro, 1C - onde sem ele.

Em um relatório, dados de: escrituração contábil, reparadores, especialistas em relações públicas, Ministério de Emergências e meteorologistas poderiam se cruzar.

Antes do início do projeto, a maior parte dos dados era enviada à empresa-mãe por email, na forma de anexos do Word / Excel. Além disso, o processo se assemelhava a um pôr do sol manualmente: os dados foram processados ​​por pessoas especialmente treinadas e inseridos em alguns sistemas. O resultado do trabalho foram dezenas de relatórios, com base nas quais as decisões gerenciais foram tomadas.

A escolha da abordagem foi solicitada pelo formato dos arquivos transferidos, ou seja, xlsx / docx. Mesmo os sistemas "antigos" nas filiais suportavam o upload de dados para esses formatos, bem, ou em casos extremos, ninguém cancelava copiar e colar.

Nosso plano teimoso era o seguinte:

  1. descrever a estrutura de cada relatório e as regras para sua transmissão;
  2. reduzimos os requisitos para configurar sistemas para enviar documentos por email, de acordo com os regulamentos para as filiais. Onde não há sistemas - enviando, como antes, manualmente;
  3. Estamos desenvolvendo um programa que:
    • seleciona certos documentos do correio recebido;
    • extrai dados deles;
    • grava os dados extraídos no banco de dados, além de "derrotar" os violadores dos regulamentos.




Implementação


Questões organizacionais


Na fase de coleta e formalização dos requisitos para a estrutura e regulamentação da transferência de dados, verificou-se que não havia descrição da estrutura dos relatórios. Tudo estava guardado na mente de alguns funcionários e era transmitido como contos folclóricos russos de boca em boca. Mas os problemas reais começaram mais tarde - ao configurar a troca de dados.

Problema um


A diferença entre a estrutura dos documentos da referência e a qualidade dos dados. Nos relatórios, as quantias às vezes não convergiam, as colunas eram misturadas ou tinham nomes incorretos. O problema foi observado principalmente em filiais onde os dados foram direcionados manualmente.

A solução é a implementação de uma verificação em três etapas:

  1. Criando documentos de referência do Excel com uma estrutura rígida, usando o próprio Excel. Nesses documentos, apenas as células de entrada de dados estavam disponíveis. Sobre as quais foram impostas verificações adicionais: tipo, convergência de montantes etc.
  2. Verifica ao extrair dados do relatório. Por exemplo, uma comparação da data e data atuais em um parágrafo de um documento do Word ou aritmética verifica os dados de um documento do Excel (se eles não puderem ser especificados no próprio documento).
  3. Análise profunda dos dados após a coleta. Por exemplo, a detecção de desvios significativos nos principais indicadores em comparação com períodos anteriores.

Segundo problema


Uma violação sistemática do cronograma de transferência de dados ou tentativas inescrupulosas de sabotar: "Em geral, nunca enviamos dados a ninguém, mas aqui está você mesmo ...", "Sim, enviei tudo a tempo, provavelmente é um ping ruim."

A solução é feedback. O sistema notifica automaticamente as pessoas responsáveis ​​na filial em caso de violação da programação. Posteriormente, o subsistema de feedback foi parafusado no sistema de controle de qualidade dos dados de entrada e no sistema de relatório final, para que a filial recebesse imediatamente um conjunto de dados e uma comparação com os "vizinhos". Para deixar claro por que ele faz uma varredura.

Subsistemas desenvolvidos



  1. Configurador de tipos de documentos com dados, nos quais você pode descrever rapidamente:
    • sinais para identificação do documento;
    • regulamentos de transferência;
    • algoritmo de extração de dados;
    • outros atributos, como o caminho para o código que valida e armazena os dados.

  2. Um destinatário de email que move anexos para um armazenamento isolado (sandbox) e armazena informações relacionadas sobre a carta;
  3. Um analisador de anexo que define tipos de documentos e extrai dados deles.



Configurador


Historicamente, todos os documentos com dados são enviados para o correio geral, onde estão cheios de outras cartas importantes e não tão importantes. Precisamos de sinais pelos quais os documentos necessários serão determinados. O nome do documento ou o texto no corpo do email não é confiável e inconveniente para o remetente. Portanto, foi decidido que a participação no relatório será determinada apenas pelo conteúdo do documento. Além disso, você deve determinar sem ambiguidade o tipo de relatório que o documento contém.

Eles criaram um brainstorming rábano sabe quantos sinais para identificar um documento: cor do texto em uma célula, fonte, etc. Mas o mais correto foi o sinal da presença de uma subcadeia em um determinado "slot" de célula ou uma matriz de células para Excel e um parágrafo ou cabeçalho para o Word. Uma lógica formal simples foi adicionada para o "slot": "igual", "desigual", "mais", "menos" etc. etc. Exemplo para Excel: no intervalo A2-E4, o texto da célula deve ser igual a "Resumo diário do carregamento do equipamento".



A área do documento na qual você deseja pesquisar o início e o final dos dados é configurada de maneira semelhante (aprox. Condições para encontrar o final: 2 linhas em branco seguidas).



Outras configurações úteis incluem uma lista de remetentes resolvidos, um tipo de documento (Excel / Word) e um caminho para exportar dados.

Na saída, obtemos uma estrutura JSON (modelo) que descreve o relatório.

Destinatário do correio


Um leitor de correio que coloca todos os documentos dos anexos na caixa de areia, salva os atributos da carta e coloca os documentos na fila de tarefas para análise.

Existem 2 perguntas de segurança:

  1. E se os dados forem enviados para outra filial?
  2. e se os dados forem enviados pelos atacantes?

O primeiro problema é resolvido reconciliando o endereço de email da filial remetente e a filial especificada no corpo do relatório.

O segundo está usando o SPF .

Analisador de Anexo


Quase todas as bibliotecas para analisar o Word e o Excel têm sérias limitações nas versões suportadas; portanto, para começar, o documento precisa ser convertido. O Libre Office resolve esse problema às cinco.

Após a conversão:

  1. filtramos uma matriz de modelos de acordo com as características básicas do configurador (Word / Excel, remetente ...);
  2. execute o documento com os modelos restantes;
  3. se o modelo for encontrado, extraímos os dados e transferimos para o repositório.

Sumário


Nós conseguimos!
Após dois meses de trabalho meticuloso, a sede começou a receber regularmente dados para relatórios de todas as filiais. Além disso, a qualidade e a integridade dos dados eram sem precedentes diferentes do que eram antes, e os recursos humanos liberados recuperaram os custos do projeto até o final do ano.

Aprendemos por nós mesmos que a integração nem sempre é dolorosa e destacamos os principais aspectos do sucesso:

  1. não entramos nos sistemas nas filiais;
  2. formalizou e aprovou uma estrutura única de relatórios e regulamentos para sua transmissão;
  3. criou modelos de formatos de saída geralmente disponíveis para todos os sistemas na forma de documentos Excel e Word;
  4. escolheu o método mais comum de entrega de dados - email.

E duas principais desvantagens:

  • Baixa velocidade de entrega de dados.
  • O tamanho do pacote de dados não deve exceder o tamanho de um anexo de email comum.

Source: https://habr.com/ru/post/pt421705/


All Articles