A integração entre várias lojas é um projeto que está sendo desenvolvido pela Intelliware desde 2012, e inicialmente foram divididas em 3 etapas, Cadastro, Movimentação e Financeiro.
Antes de entrar em cada etapa, é preciso entender sua arquitetura. Inicialmente é bom ressaltar que para existir qualquer tipo de integração, é preciso de um meio para interligar as empresas, esse meio pode ser Público (internet), ou Privado (rede local) quando a distâncias entre as empresas são próximas.
Devido ao custo de se criar uma rede privada com apenas alguns poucos quilômetros de distância, tomamos como base que seria usado em grande maioria o meio público, entretanto esse meio apresenta muitas dificuldades, a iniciar pela heterogenia das topologias (Fibra Ótica, Cabo, DSL, Radio, etc), e principalmente pela baixa latência, o que compromete muito a comunicação entre as empresas.
Seguindo essas limitações, inicialmente foi definido que não seria possível fazer uma base de dados centralizada onde as outras empresas se conectam para pode trabalhar.
Como podemos visualizar na arquitetura acima, temos várias empresas (simbolizada pelos círculos) se conectando a empresa que abriga o banco de dados pela internet (simbolizada pela nuvem).
Como citado anteriormente, identificamos uma inviabilidade nesse modelo, pois caso uma das empresas ficasse sem internet, automaticamente essa empresa não teria como usar o Intellicash, pois ficaria sem acesso ao banco de dados, e consequentemente essa empresa ficaria inoperante.
Esse cenário seria ainda pior no caso da empresa que abriga o banco de dados ficasse sem internet, nesse caso, todas as outras empresas ficariam sem acesso ao banco de dados.
Devido a esses problemas foi idealizado uma arquitetura de replicação de dados que permitisse cada empresa trabalhar independentemente, enquanto um sistema integrador sincronizava as informações relevantes.
Como visto no gráfico acima, cada empresa possui um servidor de banco de dados, dessa forma as operações pertinentes a empresa, funcionarão independente da conexão de internet. Entretanto para existir uma integração foram criadas regras de comunicação para viabilizar a integração.
: Existe troca de dados entre os bancos de dados.
: Não existe troca de dados, apenas consultas.
Segundo o gráfico acima, foi estabelecido que as trocas de dados são apenas no sentido vertical, isso ocorre para que exista integridade entre os dados, sem correr risco de existir dados espalhados entre as empresas, e esses dados serem diferentes da Matriz, que funcionaria como banco de dados centralizador.
Dessa maneira, podemos garantir que as informações integradas devem estar sempre no banco de dados da Matriz, e caso tenha ocorrido alguma falha de conexão, poderão existir dados apenas na empresa em que foi feita a operação, e estará aguardando a normalidade, para serem enviados a Matriz.
As consultas horizontais, em verde, são usadas apenas como apoio, para verificar alguma informação que ainda não está integrado a matriz.
Inicialmente essa integração foi realizada em 3 etapas:
1º) Cadastros
2º) Operações
3º) Financeiro
Mas antes de entender como funciona essa integração é necessário primeiramente definir algumas configurações que iremos abordar a seguir.
A primeira coisa que deve ser feito é informar em todas as empresas quais são os endereço das Filiais e da Matriz através de um cadastro que você vai acessar em: Gerenciamento → Cadastro → Matriz & Filiais.
Após acessar esse caminho aparecerá uma tela com um botão Novo:
Ao clicar em novo será aberta a interface abaixo, onde o usuário deverá preencher todas as informações. Se a empresa que estiver sendo cadastrada for a matriz é preciso marcar a opção “Matriz”.
O campo Número é apenas informativo, para identificar a empresa cadastrada, o IP é o endereço da empresa que está sendo cadastrada, o Alias é o alias do banco de dados da empresa e o campo Porta é a porta que foi configurada no servidor de sincronização.
Quando você faz esse cadastrado, o sistema cadastra no banco de dados na tabela agente, no entanto não é cadastrado na tabela empresa com o Id correspondente a cada empresa, então é necessário fazer essa cadastro manualmente diretamente no banco de dados. Isso deve ser feito tanto na base da matriz quanto das filiais.
Após esse cadastrado é necessário informar nas bases das filiais a configuração 3004 cuja descrição é “Importar Cadastros da Matriz”, para SIM. (Na Matriz essa configuração deve ser marcada como NÃO).
Depois de configurar a base Matriz vamos configurar a base filial. É importante também realizar as configurações da Objeto na base das filiais. Para realizar essa configuração acesse: Gerenciamento → Ferramentas → Configurar Objetos.
Nessa interface será exibido os dados da Objetos da filial na esquerda e da matriz na direita.
Os registros que existirem em uma e não na outra, será inserida uma linha vermelha com descrição vazia para que possam ser visualizadas as diferenças e feita às correções para prosseguir na importação.
Ainda nessa interface temos um filtro para selecionar somente os registros que contém diferenças ou mostrar todos.
Para fazer as alterações basta selecionar na direita (matriz) os registros que deseja alterar e passar para esquerda (filial) com a seta.
Caso deseje selecionar mais de um registro ao mesmo tempo, basta clicar no primeiro registro segurar o SHIFT do seu teclado e ir selecionando os demais registros com o mouse, depois só clicar na seta para passar para esquerda (Filial).
Ainda nessa interface você pode visualizar três botões:
Uma vez feito às correções dos objetos, já pode iniciar a importação de cadastrado na filial, que pode ser de forma manual ou utilizando o sincronizador
O sincronizador é uma ferramenta que foi desenvolvida para automatizar o processo de integração de cadastros, e para viabilizar a sincronização das operações e financeiras.
O Sincronizador é um programa que executa em background, ou seja, fica sendo executado sem a intervenção do usuário. Deve existir apenas um Integrador por empresa, e este deve funcionar no servidor. Ele será o responsável por enviar as informações para a matriz.
O funcionamento do sincronizador será como descrito pelo fluxograma abaixo, o tempo de verificação deverá ser parametrizado em minutos de acordo com o poder de processamento do servidor e latência de sua internet. Caso falhe alguma comunicação, os dados ficarão aguardando a próxima sincronização.
A instalação do sincronizador é feita nas Filiais colocando o executável Sincronizador.exe e seu arquivo de configuração Sincronizador.txt juntos em um diretório (pode ser colocado junto com o executável do Intellicash).
No arquivo Sincronizador.txt deverá ser informado o ip da base, o Alias do Banco de dados e o ID da Empresa local seguindo a sintaxe abaixo:
Ex. 192.168.0.144;FILIAL;2
Lembrando que ainda pode ser configurado o intervalo de tempo em milisegundos de cada fluxo completo.
No exemplo abaixo, 5000 milisegundo representa 5 segundos.
Sugere-se a criação de um atalho no inicializar do Windows para que seja executado automaticamente.
Com as configurações básica definidas vamos ver como funciona essa integração de Matriz x Filial.
O primeiro módulo desenvolvido foi a integração de cadastro. Devido ao fato de ser a base para todas as informações da empresa.
Atualmente são sincronizados os cadastros de Usuários, Produtos e Serviços, Clientes e Fornecedores, Vendedores, Tributações.
A sincronização de cadastros trabalha de duas formas:
O cadastro realizado na matriz poderá ser exportado automaticamente quando a configuração “2204 - Exportar Dados para as Filiais Automaticamente” estiver habilitada, assim ao alterar um registro o mesmo já é disponibilizado para as filiais, outra forma de se disponibilizar os cadastros para filiais é através do caminho: Gerenciamento → Cadastro → Exportação Matriz → Filiais. Nessa interface podem ser exportados todos ou somente os alterados. Em ambas as abas os tipos de registros a serem exportados são os mesmos.
É necessário clicar no campo Exportar e selecionar quais registros serão exportados.
Você ainda encontra nessa tela a opção de exportar os produtos “Pesáveis” e “Valores”:
Para exportar produtos manualmente também podemos utilizar alguns filtros para facilitar na exportação, como filtrar por Grupo, SubGrupo, Seção, Etc.
Um ponto importante a se destacar é quanto à exportação de produtos da promoção.
Precisamos também destacar aqui os produtos de promoção. Quando um produto estiver na promoção de Encarte ele será enviado para as filiais e alterado seu valor. Se o produto estiver na promoção de Loja e tenha tido alguma alteração em seu cadastro ele será exportado, mas não irá alterar valores para os valores da promoção. Irá pegar o preço antes da promoção.
Se algum produto estiver na promoção de Loja na Filial e for feito uma alteração no seu preço na Matriz e exportado, esse preço será alterado assim que sair da promoção.
Todo cadastro realizado nas filiais também são exportados para a matriz a fim de manter sempre todo cadastro atualizado, porem ao exportar para matriz, caso já exista o cadastro, não será alterado, a filial só pode cadastrar dados na matri, nunca alterá-los.
Ao exportar os dados da filial para matriz o mesmo já é selecionado para que possa ser disponibilizado para as demais filiais, e caso a configuração “Exportar Dados para as Filiais Automaticamente” esteja habilitada ele já é disponibilizado automaticamente e quem executará esse processo será o sincronizador.
As importações dos cadastros nas Filiais podem ocorrer de duas maneiras:
A seguir foi feito o módulo de integração de Operações, ou seja, as operações de entrada e saída dos produtos tanto por nota fiscal quanto por cupom fiscal.
Uma ressalva que deve ser feita é em relação a venda de cupom fiscal, devido ao volume muito alto de documentos, foi idealizado um agrupamento de dados, ou seja, no banco de dados da matriz não são exibidos os dados relativos ao cupom fiscal individualmente, mas o total vendido por dia por produto. Isso significa que na base de dados consolidado será exibido a informação que foi vendido 100 pacotes de arroz da marca X, mas não mostrará em quais cupons, nem em qual hora, etc.
Também foi criada uma configuração “4104 - Exportar Vendas não Conferidas para Matriz”, essa configuração vai por padrão com valor “NÃO”, pois devido ao grande volume das vendas online pode ocorrer certa lentidão na base da matriz.
Outra operação realizada é da exportação de preço, ao alterar o preço do produto nas filiais o mesmo é enviado para a matriz e exibido no campo onde mostra o Estoque conforme imagem abaixo.
Cada lançamento financeiro realizado em uma Filial será exportado para Matriz com o objetivo de centralizar dados e permitir uma melhor gestão das empresas. Com este módulo também será permitido realizar baixas dos títulos de outras empresas da rede possibilitando uma maior integração entre as mesmas.
Para que a integração de Matriz e Filiais funcione de forma correta se faz necessário configurar alguns parâmetros no sistema:
Interface usada em cada Filial para relacionar dados da Filial com dados na Matriz e que são correspondentes.
Essa ferramenta se encontra em Gerenciamento → Ferramentas → Sincronizar Dados Matriz x Filial.
A interface se divide em três abas:
No lado esquerdo serão mostrados os campos Código Filial e Descrição Filial e no lado direito a associação correspondente na Matriz com os campos Código Matriz e Descrição Matriz (Se este lado estiver em branco significa que o registro ainda não está associado).
Para fazer a associação basta selecionar o registro desejado e clicar com o botão direito em cima do mesmo e selecionar a opção “Associar…”.
Logo em seguida será mostrada uma interface com os dados da Matriz para que seja feita a associação.
O sincronizador na parte financeira funcionará da seguinte forma:
Em seu fluxo o sincronizador pode apresentar erros em cada rotina, um exemplo disso:
Neste exemplo o erro ocorreu na rotina 4 (Exportação dos Agendamentos) onde não foi associado o Centro de Custo na tela de Sincronização conforme mencionado no tópico Sincronização Matriz x Filial deste manual.
Se caso der certo o envio de dados o sistema irá mostrar que o registro foi enviado com sucesso.
A figura abaixo esquematiza o sentido do fluxo de dados no processo de integração de Matriz e Filiais.
Neste aspecto iremos destacar as informações que a Matriz disponibiliza para as suas Filiais:
1. Informa dados :
a. Centro de Custo
b. Forma de Recebimento
c. Forma de Cobrança
2. Informa os Recebimentos/Pagamentos dos registros das Filiais/Matriz que foram manipulados na Matriz(Botão Matriz da Tela de Recebimento)
3. Informa os Recebimentos/Pagamentos dos registros das Filiais/Matriz que foram manipulados nas próprias Filiais
4. Se for feito baixa na Matriz do registro de alguma filial, a Matriz busca na filial deste registro o status do mesmo. Os tipos dos status são:
a. Liberado (Registro pode ser baixado)
b. Excluído (Registro não pode ser baixado pois se encontra excluído na origem)
c. Baixado (Registro não pode ser baixado pois se encontra baixado na origem)
d. Valor Diferente (Registro não pode ser baixado pois o valor difere da origem)
e. Indisponível (Registro não pode ser baixado pois não se encontra na origem)
Neste aspecto iremos destacar as informações que a Filial envia/busca para sua Matriz:
Obs.: Para realizar uma baixa ou estorno na Filial de um registro próprio, o sistema tenta conectar na Matriz para verificar o status deste registro. Em caso da falta de conexão com a Matriz será exibida a seguinte mensagem, mas o processo dará continuidade:
No momento em que a conexão com a Matriz for reestabelecida o sistema enviará os dados através do sincronizador.
Neste aspecto iremos destacar algumas regras importantes para o bom funcionamento da integração entre Matriz e suas Filiais:
Com este módulo o sistema fornece a opção de baixar um título de outra Filial/Matriz através da interface de Recebimento de Clientes.
Para realizar este procedimento basta clicar no botão “Matriz” que aparece na parte inferior esquerda na interface de Recebimento de Clientes.
Ao clicar neste botão abrirá uma nova interface semelhante a existente porém com o dados que estão na Matriz. Para realizar a baixa segue o procedimento normal de uma baixa.
Após o procedimento o sistema irá baixar os registros tanto na Matriz quanto na Filial.
Obs.: Ao tentar clicar no botão “Matriz” e não existir nenhuma conexão com a mesma, o sistema irá apresentar o seguinte erro e o procedimento não dará continuidade.
Com este módulo o sistema fornece a opção de baixar Contas a Receber na Matriz de um título da Filial através da interface de Baixas de Títulos a Receber (Gerenciamento → Financeiro → Baixas → Títulos a Receber).
Nesta tela o sistema mostrará os títulos de todas as empresas (Filiais e Matriz) e para efetuar a baixa basta selecionar o(s) registro(s) desejado(s). Quando clicar no botão “Receber”, o sistema irá conectar em cada empresa filial para verificar se o registro selecionado se encontra disponível para a baixa (em aberto).
Com este módulo o sistema fornece a opção de baixar Contas a Pagar na Matriz de um título da Filial através da interface de Baixas de Títulos a Pagar (Gerenciamento → Financeiro → Baixas → Títulos a Pagar).
Nesta tela o sistema mostrará os títulos de todas as empresas (Filiais e Matriz) e para efetuar a baixa basta selecionar o(s) registro(s) desejado(s). Quando clicar no botão “Baixar”, o sistema irá conectar em cada empresa filial para verificar se o registro selecionado se encontra disponível para a baixa (em aberto).
Foi criada uma opção para que uma filial possa transferir recursos para a Matriz. No contas e caixas, selecione o caixa que tem os recursos a serem transferidos, clique no botão chamado Transf. Cx. Matriz.
Ao clicar no botão de transferência para o caixa da Matriz o sistema irá mostrar uma tela para que o usuário selecione qual caixa da Matriz que será o destino dos recursos e informe o valor da transferência.
Foi criado o Relatório de Baixas não Sincronizadas para auxiliar clientes que usam a Sincronização entre Matriz e Filiais a acompanhar a sincronização de dados. O relatório se encontra em Gerenciamento → Relatórios → Gestão Financeira → Baixas não Sincronizadas.
Neste relatório o usuário irá selecionar a Empresa que deseja verificar quais Baixas (contas recebidas/pagas) que estão para serem sincronizadas. Ao aplicar o sistema irá conectar na Empresa solicitada para verificar dados pendentes.
Foi criado o Relatório de Agendamentos não Sincronizadas para auxiliar clientes que usam a Sincronização entre Matriz e Filiais a acompanhar a sincronização de dados. O relatório se encontra em Gerenciamento → Relatórios → Gestão Financeira → Agendamentos não Sincronizados.
Neste relatório o usuário irá selecionar a Empresa que deseja verificar quais os agendamentos (contas a receber/pagar) que estão para serem sincronizados. Ao aplicar o sistema irá conectar na Empresa solicitada para verificar dados pendentes.
Os cheques das filiais poderão ser transferidos para Matriz para que sejam usados no pagamento com cheques de terceiros ou outros fins.
Para fazer esta transferência basta ir em Gerenciamento → Cadastros → Contas e Caixas (Aba Cheques - Sub-aba Movimento) na empresa Filial. Selecione os cheques que deseja transferir e clique com o botão direito do mouse (selecione a opção Transferir Cheques para Matriz…).
Ao serem transferidos para a Matriz os mesmos não poderão ser usados nas Filias e ficaram na aba Cheques Transferidos para Matriz.
Se desejar que os cheques retornem para Filial basta ir em Gerenciamento → Cadastros → Contas e Caixas (Aba Cheques - Sub-aba Cheques Transferidos das Filiais) na empresa Matriz, selecionar o cheque que deseja que retorne para Filial e clicar com o botão direito do mouse (selecione a opção Transferir para Filial).
Na tela de Recebimento do Cliente da Filial é possível verificar as contas em aberto do cliente em outras empresas.
Para esta melhoria foi criada a configuração 4703 - Verificar saldo do cliente automaticamente na Matriz, que se estiver configurada em sim ao entrar na tela de recebimento do cliente o sistema irá se conectar na Matriz e verificar o valor das contas de outras empresas que estejam em aberto para o cliente em questão. Se está configuração estiver não para que o usuário verifique a conta basta clicar sobre a palavra Verificar contas na Matriz para que o sistema verifique.
Ao conectar na Matriz e verificar as contas o sistema mostrará uma mensagem informando que existem contas abertas na Matriz de outras empresas, o valor líquido e o corrigido.