Hunter Updater - Mapinfo Network Cells (Mapbasic Tool)

segunda-feira, 19 de setembro de 2011 20:23:00 Categories: Access Base de Dados Hunter Mapbasic Mapinfo Updater
Rate this Content 1 Votes

Uma das vantagens em trabalharmos com uma estrutura organizada e com módulos integrados - como a sugerida pela metodologia Hunter - é o ganho que esse cenário proporciona. Vamos começar a entender como isso funciona, com o módulo ‘Hunter Updater’.

 

 

Atualmente já temos os principais bancos de dados com as nossas informações (Network, Parameters e Performance).

E temos também uma série de Outras Ferramentas Externas de todas as formas, com as quais trabalhamos diariamente, e cuja atualização de seus dados é crucial para o resultado da análise. Um exemplo disso são as Ferramentas de Predição, Ferramentas de Drive Test, Ferramentas de Planejamento de Frequência, Áreas de Trabalho no Mapinfo e Google Earth com a configuração da Rede, ou mesmo simplesmente  formatos de Arquivos/Relatórios Específicos, que devam ser gerados periodicamente.

Todas essas Ferramentas Externas possuem um formato específico de seus dados de entrada, sejam arquivos simples como formato ‘Texto’, ‘CSV´, ´XLS´, ´XML´ até mesmo formatos mais complexos, como tabelas de bancos de dados, ou arquivos do tipo ‘DAT’.

A boa notícia é que, indepente de qual seja o formato esperado por esses Softwares, podemos sempre gerá-los a partir de nosso sistema: Uma vez que temos os dados de nossa rede, basta trabalharmos para exportá-los no formato desejado!

E vamos começar hoje com com uma Ferramenta que será disponibilizada no próximo tutorial: ‘Hunter Mapbasic Tool’ – uma ferramenta que ajuda bastante nas tarefas rápidas de inspeção do Plano de Frequência e Vizinhança da Rede GSM.

 

Essa ferramenta lê, ou espera um arquivo num formato específico (Mapinfo TAB). Embora não seja difícil de gerar esse arquivo manualmente, essa tarefa repetitiva torna-se desnecessária – assim como todas as atualizações, que requerem apenas trabalho manual.

Por isso vamos hoje ver como geramos a tabela final do Mapinfo (incluindo com os pontos já criados) a partir dos dados em nosso sistema do Access/Excel.

Nota: esse assunto já foi abordado parcialmente no tutorial sobre Automação do Mapinfo. Agora entretanto, a abordagem é mais prática, e envolve também a utilização de mais de uma tabela como fonte dos dados final.

 

Download

Para baixar os arquivos* deste tutorial, clique aqui.

* Observação: O Hunter SDK é o conjunto de ferramentas criadas e demonstradas no telecomHall – incluindo as Macros e Códigos. O Hunter SDK somente é enviado para Colaboradores Doadores, como forma de agradecimento pela contribuição única feita, que reconhece o esforço realizado. Clique aqui se desejar saber mais. Os arquivos disponíveis servem apenas como exemplo para você que não é colaborador ter suas próprias idéias.

 

Ferramenta ‘Hunter Mapbasic Tool’

Como vamos gerar o arquivo de entrada de uma ferramenta do Hunter, vamos falar um pouco sobre ela.

Essa ferramenta é totalmente criada em MAPBASIC – Linguagem de Programação do Mapinfo, e serve como Auxiliar nas Análises de Plano de Frequência GSM (BCCH, BSIC, HSN, MAIO) e também de Vizinhas (Neighbor List).

Em breve vamos falar especificamente sobre a mesma, por isso vamos nos preocupar hoje apenas em gerar o seu arquivo de entrada. Naturalmente o mesmo deve conter todas as informações que serão trabalhadas, como Latitude, Longitude, BCCH, Neighbors, etc... Ou seja, uma tabela geral com todas as informações como mostrado abaixo.

 

Como falamos, a Ferramenta tem como entrada um arquivo do tipo ‘TAB’, tabela do Mapinfo. Um arquivo do tipo ‘TAB’ pode ser obtido de diversas formas, por exemplo abrindo uma planilha do Excel no Mapinfo (nesse caso também é gerado um arquivo do tipo ‘DAT’). Além desses dois tipos de arquivos, a ferramenta precisa de mais dois formatos (‘ID’ e ‘MAP’), criados quando os pontos são criados, a partir dos campos de Latitude/Longitude.

Então, manualmente podemos criar uma planilha do Excel (1), abrir a mesma através da Interface e Menus do Mapinfo – gerando os arquivos ‘TAB’ e ‘DAT’ (2). E por fim, novamente acessar o Menu e Criar Pontos para a mesma – gerando os arquivos ‘ID’ e ‘MAP’ (3). Aí então você pode começar a trabalhar.

 

Tudo bem. Mas e se pudéssemos gerar a Planilha com todos os Dados, e também todos os arquivos (TAB, DAT, MAP e ID) de entrada automaticamente? Sim, seria bem melhor, não?

Pois é isso que vamos mostrar como fazer hoje.

 

A partir dos Dados Iniciais...

Vamos começar dos dados que já temos disponíveis em tabelas atualizadas - módulos do Hunter.

  • Network: uma base de dados com tabelas com Informações Físicas da Rede, como Latitude, Longitude, Azimute, etc...
    • No nosso caso, um banco de dados com a tabela ‘tbl_Network’.
  • Parameters: uma outra base de dados com os Parâmetros de Configuração – BCCH, BSIC, TCH, Neighbors, etc...
    • No nosso caso, outro banco de dados com algumas tabelas com os parâmetros necessários para a demonstração de hoje. Nota: para facilitar, todas as tabelas estarão disponíveis em um mesmo banco de dados, mas na prática localizam-se em locais diferentes, de acordo com tudo o que ensinamos até hoje.

A tarefa desse módulo então pode ser dividida em 2 etapas:

  • Montar uma tabela única com todos os dados necessários;
  • Formatar os dados dessa tabela no formato final esperado (arquivos).

 

... Gerar uma Tabela Única a partir de Várias Outras...

Para gerar uma Consulta Final Única, com todos os dados de outras tabelas e/ou consultas, o procedimento é simples. Basta criarmos um consulta com as tabelas/consultas envolvidas, amarrar os campos correspondentes (nesse exemplo ‘CELLNAME’) e aí simplesmente escolher os campos de saída.

 

Mas na vida real, os dados geralmente NÃO vem no formato que desejamos. Na verdade, costumam vir das mais variadas formas possíveis (linhas, colunas, parcialmente tratados ou não). E em tabelas distintas, dependendo do conteúdo – por exemplo, uma (ou mais) para Neighbors, outras para TCH e assim por diante.

Mas isso não será problema para nós. Uma vez criadas as consultas que colocam os dados no formato ideal, nosso procedimento fica bem simples!

É o que veremos logo mais.

 

... e Exportar essa tabela para o Formato Final Esperado

Após tratarmos os dados e reuní-los em uma única consulta, precisamos agora exportar os arquivos finais.

E essa é uma parte mais fácil pois, já foi estudada anteriormente, no tutorial sobre Automação do Mapinfo.

Temos apenas alguns detalhes extra, mas vamos ver a seguir, com a explicação sobre nossa aplicação de hoje.

 

Objetivo

Apresentar a solução do Módulo ‘Hunter Updater – Mapinfo Network Cells (Mapbasic Tool)’.

 

Cenário

A partir de tabelas com dados de Network (Latitude, Longitude, etc...) e de Parameters (Neighbors, BCCH, etc...) gerar arquivos de atualização da Ferramenta ‘Hunter Mapbasic Tool’.

 

Estrutura de Arquivos

A estrutura de arquivos é como mostrada abaixo, e você já deve estar familiarizado sobre como obtê-la a partir do arquivo recebido via e-mail.

 

A Aplicação

Vamos começar então pela primeira parte da nossa aplicação, que é gerar uma consulta final como todos os dados necessários.

Atenção: vamos mostrar a solução aqui exatamente conforme os dados de nossos arquivos de exemplo. Dependendo do seu ‘vendor’, os formatos podem ser um pouco diferentes, e você deverá fazer algum pequeno ajuste. De qualquer forma, nossos arquivos de exemplo cobrem as principais possibilidades de apresentação dos dados por parte da maioria dos ‘vendors’ existentes.

 

Tabela tbl_Network

Essa tabela é a mais simples de todas. Tem o campo ID (‘CELLNAME’), e demais campos físicos que utilizaremos como ‘LATITUDE’ e ‘LONGITUDE’.

Não há necessidade de se fazer nada com essa tabela, os dados já estão conforme esperamos.

 

Tabela tbl_TCH

Uma possibilidade de apresentação dos dados é com um ID por linha, porém os dados dispostos em colunas – como os dados de TCH (FREQn) nas colunas abaixo.

Nesse caso, para transformar os dados em um único campo, basta criarmos um campo calculado, concatenado os dados desejados.

Mas podemos fazer isso na consulta final, e também não vamos fazer nada com essa tabela também.

 

Tabela tbl_RF_PARAMETER_CONTROL

Uma terceiro tipo de dados vem de tabelas customizadas. Futuramente vamos falar delas: são tabelas de controle, com os parâmetros mais acessados de cada tecnologia – geradas por nós (e não oriundas da OSS) a partir de outras tabelas. É como se fosse uma tabela Resumo dos Principais Parâmetros da Rede.

 

Assim, quando precisamos de um rápido acesso aos parâmetros básicos e principais da rede, podemos abrir essa tabela diretamente. Ela pode também ter campos calculados, como por exemplo um quantitativo de TRX. Mas vamos falar desse artifício mais tarde. Por hora, suponha apenas que você tem essa tabela customizada já disponível, e podemos usá-la para buscar os dados de ‘BCCH’ e ‘BSIC’, entre outros.

 

Tabela tbl_NEIGHBOR e tbl_MAIO

Por fim, uma outra possibilidade, consideravelmente comum: dados dispostos em um número indeterminado de linhas, para cada ID (no nosso caso, ‘CELLNAME’).

Isso é o que ocorre por exemplo com as Neighbors.

 

Precisamos ‘transpor’ esses dados, e obter algo como mostrado abaixo. Mas veja que podemos ter de 1 a 31 Neighbors!

 

Podemos considerar esta como a parte ‘menos simples’ de todo este tutorial de hoje. Mas nem por isso chega a ser difícil de entender.

Uma possibilidade de se ‘transpor’ dados no Acces é utilizar uma consulta de Referência Cruzada, como explicamos em tutorial na Série de ‘Dicas de Access’.

Entretanto, se os dados estão em um formato que dificultam esse tipo de consulta, ou melhor, se precisamos de um pouco mais de padrão ou customização ao nosso resultado, podemos utilizar o VBA.

Então, para resolver esse problema, criamos um pequeno Código VBA (menos de 30 linhas), que tem como parâmetros ou argumentos a tabela/consulta com os dados a serem transpostos, e também a tabela onde os dados devem ser armazenados.

 

Nota: Observe que utilizamos uma consulta como argumento de entrada, e não a tabela. Isso serve para garantirmos que os dados estejam ordenados, para que a macro funcione adequadamente.

O mesmo procedimento se aplica a MAIO – que vem numa tabela por TRX, e precisam ser agrupados numa granularidade de Cell.

 

Mas nesse caso do MAIO, não queremos cada MAIO como coluna, e sim apenas um campo. Para isso simplesmente criamos uma nova consulta, agrupando esses dados adequadamente.

 

Ok: temos todas as nossas tabelas ajustadas a nível de ID ‘CELLNAME’. Nos resta simplesmente reunir todas em uma nova consulta, e aí amarrarmos todas pelo campo comum.

 

Código VBA

Após definirmos a nossa consulta base, o resto é bem simples. O código é exatamente o mesmo que você aprendeu no tutorial de Automação de Mapinfo via VBA. Se tiver alguma dúvida sobre como fazer isso, por favor, leia aquele tutorial.

Observação: o código deste tutorial, incluindo a parte de que chama a rotina para transpor uma tabela no Access, é bem simples, e escrito em algumas dezenas de linhas (sem contar repetições). De qualquer forma, em caso de dúvidas que não estejam explícitas aqui, entre em contato, postando sua dúvida no fórum exclusivo para Usuários Hunter.

 

Resultado

O resultado dessa vez, é melhor de ser visto no programa para o qual fizemos o ‘Updater’.

 

Perceba que a mesma metodologia utilizada aqui para gerar os arquivos de entrada da nossa ferramenta ‘Hunter Mapbasic Tool’ pode ser usada para gerar arquivos de entrada e/ou atualização de qualquer Ferramenta que você necessite. Futuramente, vamos publicar módulos do ‘Hunter Updater’ com exemplos diversos, bem como gerando diversos formatos.

Bom pessoal, por hoje é isso. Esperamos que tenham gostado de mais esse tutorial. Vários tutoriais estão prontos, e iremos publicar em breve, continue acompanhando, e crescendo junto conosco. Sua companhia é sempre bem vinda.

 

Conclusão

Vimos hoje mais um módulo do Hunter, agora voltado a Automatizar a Geração de Arquivos de Entrada para Atualização de Ferramentas e Bases de Consulta.

Utilizando dados de exemplo, mostramos como é simples e rápido obter dados no formato que precisamos. E melhor ainda, criar um Procedimento definido para essa atualização – que será feita de forma bem mais rápida a partir da adoção dessas práticas.

Esse tutorial do módulo ‘Hunter Updater’ foi voltado ao Mapinfo, mas outros formatos serão demonstrados oportunamente.

Agradecemos a sua visita, e esperamos que as informações apresentadas continuem servindo como ponto de partida para suas soluções e macros.

Como sempre, agradecemos aos colaboradores do telecomHall. Os arquivos desse tutorial já foram enviados, por favor verifiquem. Caso tenham tido algum problema no recebimento, por favor informem.

Novos tutoriais já estão prontos, e serão publicados em breve. Como cada vez mais ficam mais complexos (embora explicados de maneira simples), recomendamos que tirem todas as dúvidas antes de prosseguirem.

Lembre-se: seu conhecimento adquirido pode ser o seu maior diferencial, só depende de sua força de vontade.