Microsoft Access para Telecom - Parte 4 (Integrando Diferentes Fontes de Dados)

quinta-feira, 27 de outubro de 2011 13:57:00 Categories: Microsoft Access
Rate this Content 0 Votes

Olá pessoal, vamos continuar a nossa série de dicas sobre o Access. Nossa abordagem hoje será um pouco diferente: vamos demonstrar passo a passo como integrar diferentes formatos de dados de entrada com o sistema Hunter.

 

 

Em outras palavras, veremos como fazer para utilizar os dados de nossa rede nas aplicações de exemplo do Hunter.

Observação: Obviamente, consideramos que todos já tenham lido TODOS os prévios tutoriais, já que todas as considerações necessárias foram demonstradas e explicadas detalhadamente. Os tutoriais são escritos de forma sequencial, sempre apresentando novos conceitos, principalmente para quem ainda não tem experiência com Access. Se você pula um ou mais tutoriais, porque talvez imagine que isso não se aplica ao que você deseja no momento, com certeza vai ter problemas.

Então vamos lá, e ver como é simples ajustar os dados reais de sua rede para aplicações de exemplo do Hunter.

 

Download

Para baixar gratuitamente os arquivos deste tutorial, clique aqui.

Para saber como obter todos os arquivos e códigos do Sistema Hunter, clique aqui.

 

Cenário

A partir de arquivos com dados reais da sua rede, criar uma forma de utilizar os mesmos como os dados de entrada padrão para os módulos de exemplo.

Para isso, vamos escolher um módulo, o ‘Network’. Esse é o módulo que contém os dados físicos da rede, armazenados em uma tabela padrão ‘tbl_Network’, no banco de dados padrão ‘Hunter_Network_DB.mdb’, no diretório local ‘C:\Hunter\Network\Database\’.

Nos nossos exemplos, apresentamos dados de uma rede fictícia GSM e UMTS.

Esses dados já estão disponíveis na tabela citada, com os nomes dos campos também padronizados!

Por exemplo, essa tabela contém um campo chamado ‘LATITUDE’, que contém o dado de Latitude de cada célula. Tem também um campo chamado ‘LONGITUDE’, com o dado de Longitude de cada célula. Tem um campo chamado ‘ANT_AZIM’, com o dado de Azimute da Antena de cada célula, e assim por diante, conforme campos mostrados abaixo.

 

Essa é uma tabela bem simples, com apenas alguns campos necessários para os módulos apresentados até hoje.

 

Por exemplo, no módulo ‘Hunter GE Network’, os dados dessa tabela são tratados, e geramos um arquivo KML. Cada módulo foi desenvolvido como um exemplo completo, mas utiliza esses dados de exemplo para obter o resultado final. Por exemplo, a direção dos setores plotados é definida pelo valor do nosso campo padrão ‘ANT_AZIM’, ou seja, o Azimute da Antena, e a abertura do símbolo por sua vez é definida pelo valor do campo ‘ANT_HBW’.

Sabemos que os módulos de exemplo ainda não cobrem todas as suas necessidades específicas. Mas é muito importante perceber que servem para conhecer e aprender como obter tais resultados.

Por exemplo, ainda não temos dados de ‘Frequência’ nessa tabela. Isso porque ainda não publicamos um módulo com exemplo específico para esse fim.

De qualquer forma, você consegue reproduzir todos os módulos existentes, bastando para isso adequar os seus dados, ou seja, colocar os seus dados no padrão Hunter (principalmente nomenclaturas).

Vamos ver então como fazer isso, usando como exemplo esse nosso módulo ‘Hunter Network’.

Para começar, vamos então supor que os dados físicos (‘Network’) da sua rede estejam disponíveis em uma planilha do Excel, com o seu formato específico – por exemplo com nomes diferentes. Para isso, vamos utilizar os dados (também fictícios) conforme a tabela abaixo – no arquivo ‘MyCustomNetworkTable.xls’.

 

Veja que os dados da rede possuem os mesmos campos, apenas com os nomes dos campos diferente (por exemplo, na nossa tabela de exemplo a Latitude é dada por ‘Lat’, enquanto nossa tabela usa ‘LATITUDE’).

Nossa tabela de exemplo tem ainda alguns campos a menos (falta por exemplo o campo ‘ANT_HBW), e ainda alguns campos a mais (por exemplo ‘FREQUENCY’).

Os campos em vermelho ainda não foram demonstrados e/ou utilizados em módulos de exemplo, e não há nada o que fazer com eles no momento.

Os campos em azul são os mais importantes, e serão usados nas nossas aplicações. Para isso, vamos ver como fazer a adequação.

 

Nota sobre Integração (Modularidade) do Sistema

Nesse ponto, vale a pena relembrarmos porque é importante a modularidade e padronização do Sistema. A figura abaixo ilustra bem essa importância.

 

A mesma tabela padronizada (e consequentemente os mesmos campos e nomenclaturas) é utilizada por diversos outros módulos. Nesse caso específico do nosso exemplo, todos os módulos Hunter que utilizam dados físicos da rede buscam os dados dessa tabela específica.

Isso é feito de forma simples pelo Access – simplesmente criamos um link dessa tabela nos módulos onde ela for necessária. Isso garante, entre outras vantagens, que temos os dados de saída sempre atualizados, bastando que mantenhamos atualizada uma única tabela com os dados de nossa rede! Além disso, sempre que houver uma alteração na tabela – única – original, como por exemplo a adição de um novo campo para uma nova finalidade/módulo, todos os links já se encontram automaticamente atualizados, ou seja, as tabelas vinculadas já refletem as alterações realizadas.

 

Formas de Utilização e Integração

Então, para usamos o sistema modularizado – e com isso obtermos todas as vantagens que essa forma nos oferece – precisamos seguir essa padronização. Ou seja, precisamos ter bem claro a definição de uma tabela única com os dados físicos.

  • Opção 1: A melhor forma de se fazer isso, principalmente para quem está começando um sistema do nada, é seguir a padronização oferecida – em outras palavras, preencher a tabela base ‘tbl_Network’ com os dados de sua rede.
  • Opção 2: Uma outra forma, porém, é a que vamos ver hoje. Continuando com nosso exemplo, e supondo que você tenha os dados de sua rede conforme a planilha ‘MyCustomNetworkTable.xls’, precisamos gerar (atualizar) a nossa tabela ‘tbl_Network’ com os dados da mesma. Nada impede porém que você comece utilizando essa opção, e futuramente, decida usar primeira opção.
  • Opção 3: Uma outra forma, naturalmente, é possível. Você pode aprender com todos os módulos de exemplo, e criar seu próprio sistema, com sua própria nomenclatura, etc.. Entretanto, observe que dessa forma você éncontrará maiores dificuldades, ou seja, não conseguirá utilizar os módulos sem fazer alterações significativas em todos as consultas, códigos e scripts que esperam a nossa nomenclatura padronizada. De qualquer forma, você tem total liberdade de usar da forma como achar conveniente.

A grande vantagem de usar a primeira opção, é que todos saem ganhando com a padronização, que com o tempo e com a publicação de novos módulos, vai se tornando cada vez maior.

A quantidade de usuários Hunter cresce a cada dia no mundo inteiro, e cada vez mais buscamos unificar e padronizar todas as melhores práticas utilizadas em todas as áreas de Telecomunicações e TI.

 

Integrando os dados a partir de uma base diferente

Vamos então ver um exemplo de como integrar a nossa planilha ‘’ ao Sistema Hunter. Em outras palavras, vamos ‘transformar’ a nossa planilha original na tabela base ‘tbl_Network’.

Para isso, começamos vinculando a nossa planilha original no nosso banco padrão ‘Hunter_Network_DB.mdb’. Para isso acessamos o Menu: ‘External Data’ (1) -> ‘Excel’ (2).

 

Apontamos o nome do arquivo para onde se encontra a nossa planilha (no caso desse exemplo, armazenamos a planilha original no mesmo local onde se encontra o nosso banco de dados base) (1). E escolhemos a opção de ‘Link’ (2).

 

Após concluir o Wizard, temos a nossa planilha vinculada.

 

No nosso banco de dados, renomeamos a tabela original ‘tbl_Network’ para um outro nome qualquer, por exemplo ‘tbl_Network (Original Expected Format used in HUNTER)’. Essa tabela agora não é mais acessada por todos os demais módulos. Eles esperam uma tabela chamada ‘tbl_Network’, e é ela que estamos criando agora.

Para isso, vamos criar uma consulta baseada na nossa planilha vinculada do Excel com os nossos dados reais.

Nota: lembre-se que todos os conceitos utilizados já foram demonstrados em outros tutoriais, e ficar repetindo os mesmos sempre seria redundante e desnecessário. Se tiver alguma dúvida, leia os tutoriais anteriores.

Nesse ponto então, precisamos definir cada campo calculado, conforme for adequado. Vamos fazer passo a passo alguns, para exemplificar.

Começamos com o primeiro campo de nossa tabela: ‘PLMN’.

Esse campo não existe na nossa planilha do Excel (embora deveria existir). Temos duas opções: atribuir um valor qualquer (‘NA’) ou mesmo o valor real (‘MyPLMNName’).

Optamos por usar o valor ‘NA’ (1), até mesmo porque podemos alterar isso futuramente. Assim, inserimos o primeiro campo na consulta. Executando a mesma (2), temos a nossa ‘tabela’ com apenas o campo padrão ‘PLMN’ (3).

 

Os nossos próximos campos esperados são ‘MSC’ e ‘BSCRNC’ – campos muito importantes, porém também faltando na planilha original.

Assim, seguimos o mesmo procedimento, e atribuímos ‘NA’ para os mesmos.

 

Observe que a nossa ‘tabela’ padrão já está tomando forma – mesmo que os valores dos campos não estejam da melhor forma possível – já que não estão presentes também em nossa planilha.

Nota: o correto a ser feito é atualizar esses dados em nossa planilha original, e atualizar essas referências – ao invés de atribuir o valor ‘NA’ por exemplo, atrbuímos o campo correspondente.

Vamos continuar. Próximo campo necessário: ‘sitePROP’. Esse é o campo com o valor da propriedade, o local do nosso site.

Na nossa planilha original, esse campo específico não existe, porém o mesmo está inserido no campo ‘Site’, do segundo caracter em diante. Então, simplesmente criamos um campo calculado ‘sitePROP’, extraindo os valores adequadamente.

Agora sim, nossa tabela está ficando mais conforme esperamos.

Continuando, próximo campo necessário: ‘BTS’. Esse caso é mais simples. Esse campo está disponível em nossa tabela original, com o nome ‘SITE’. Assim, basta criarmos o campo calculado ‘BTS’ e associarmos o campo ‘SITE’ ao mesmo.

 

Poderíamos continuar com essa demonstração até o final dos campos necessários (não são muitos). Mas você já deve ter entendido o procedimento. Segue então, a nossa consulta com todos os campos existentes e necessários na nossa tabela padrão.

Feito isso, agora só nos resta inserir os dados dessa consulta na – nova – tabela ‘tbl_Network’.

 

Criar nova Tabela com os Dados Reais

É muito simples inserir os dados de uma consulta numa tabela do Access. Para isso, basta criamos uma nova consulta – agora do tipo ‘Criar Tabela’ - e inserir o nome ‘tbl_Network’ no nome da tabela a ser criada. Ou seja, quando essa consulta for executada, a nossa esperada tabela será criada com os nomes e campos apropriados.

 

Quando executada, a nossa tabela é criada! (Para facilitar a execução, criamos uma nova Macro ‘Update_Network_with_MyData_RUN’).

 

Pronto! Todos os nossos módulos agora tem uma tabela atualizada – com os dados reais de nossa rede – de onde podem buscar os dados.

Lembre-se que os módulos foram escritos como exemplo, e tem o resultado padrão. Esses resultados estão sendo sempre melhorados, a medida que vamos demonstrando novos módulos e também atualizando os módulos existentes.

O Roadmap dos módulos, bem como as modificações de seus resultados são discutidos por todos os Usuários Hunter, e cada vez mais com a participação de todos criaremos todos os módulos que possam atender a todos.

Inúmeros outros módulos estão sendo publicados gradativamente. Nessa semana por exemplo, começamos a série de módulos com algorítmos de análise de Performance KPI. Não deixe de participar, contribuindo pelo menos com sugestões, você auxilia na evolução do Sistema, e os benefícios se aplicarão diretamente a você!

 

Outros tipos de Fontes de Dados

Pode ser entretanto, que os seus dados físicos não esteja numa planilha do Excel, e sim num arquivo Texto ou CSV. Ou ainda em um outro banco de dados Access. Ou em qualquer outro formato possível, como XML.

 

Não tem problema, o procedimento para a adequação é exatamente o mesmo: vincule a sua base real, e altere a consulta que faz a correspondência dos campos. E pronto.

 

Integração de Outros Módulos Base

O exemplo demonstrado hoje foi para fazer a integração dos seus dados físicos (reais) com o módulo Base ‘Hunter Network’ – permitindo assim que todos os demais módulos que utilizam essas informações passem a funcionar automaticamente, sem maiores problemas.

Entretanto, temos outros módulos base, como o ‘Hunter Performance’ com informações de Performance, como Taxa de Quedas,  e o ‘Hunter Parameters’ com informações de Parâmetros de Configuração, como Frequências.

A integração desses módulos também pode ser feita de forma similar como vimos aqui.

De qualquer forma, é sempre bom você estar voltado a trabalhar com a metodologia o mais organizada possível. Independente dos vendors da sua rede, os resultados podem ser padronizados, obtendo assim todas as vantagens já citadas.

 

Padronização de Campos Futuros

Como pudemos obervar, na nossa planilha de exemplo, alguns campos não foram utilizados. Isso porque eles ainda não forma necessários (utilizados) nos módulos atuais.

Gradativamente, vamos adicionando novos campos, como por exemplo ‘BTS_Model’. É claro que nada impede que você mesmo adicione em seu sistema, e replique para os módulos convenientes.

Mas a melhor opção é participar – nos Fóruns. Assim, todos nós Usuários Hunter podemos ir moldando padronizando o Sistema de forma que atenda a todos.

 

Não misture as coisas!

Um outro aprendizado que podemos tirar da nossa planilha de exemplo com os dados físicos, é um erro muito comum quando não trabalhamos de forma modularizada/organizada.

Observe que esta planilha ‘mistura’ dados físicos (em azul) com dados de Performance (1) e de Parâmetros (2).

 

Isso é errado, pois é contrário a toda a essência do nosso sistema.

Esses dados devem ser armazenados em locais diferentes, e essa planilha na verdade deve ser a saída de algum módulo específico: uma aplicação que busque os dados das bases correspondentes, e crie esse ‘relatório’.

 

Trabalhando com Dados de Diversas Fontes

Somente para concluir, lembre-se que você pode tirar bastante proveito do poder do Access, por exemplo quando os seus dados estiverem em fontes diferentes.

Voltando ao nosso exemplo (Network), pode ser que os nossos dados estejam em mais de um arquivo ou fonte de dados.

Por exemplo, podemos ter uma planilha com CELLNAME e ANT_MODEL. Mas sem o campo ANT_HBW, que indica a Abertura Horizontal da Antena, usada por exemplo nos módulos do Google Earth.

Como você já deve saber fazer, basta unir essas tabelas adequadamente, e o resultado desejado é alcançado.

Assim, você obtém a tabela final com os campos CELLNAME e ANT_MODEL de uma tabela, e o correspondente ANT_HBW de uma outra (por exemplo uma tabela auxiliar com os demais dados de antenas, incluindo Ganho).

 

Conclusão

Este foi mais um tutorial sobre a utilização do Access, hoje de maneira mais focada em permitir a integração de bases de dados reais de sua rede com os módulos de exemplo do Hunter, tanto atuais como futuros.

Lembre-se que estamos sempre trabalhando em busca de um sistema cada vez mais padronizado, e adequado a realidade de todos. Por isso, é muito importante a participação de cada um, principalmente de vocês que são usuários Hunter e recebem todos os arquivos e códigos.

Sugerimos que todos passem a participar mais, principalmente através do Fórum Exclusivo dos Usuários Hunter.

A participação de todos é também bem vinda nos Grupos e Comunidades.

Obrigado pela companhia, e até nosso próximo encontro!