domingo, 27 de abril de 2014

Master Calendário - Load sobre Load - Autogenerate

Muitas vezes precisamos criar uma tabela contendo um calendário principal baseado em todas as datas de um determinado período. A vantagem da criação deste calendário é que podemos trabalhar com diversas informações referente a uma data específica, por exemplo se selecionarmos a data 27/05/1967 podemos conseguir as seguintes informações:
Data
27/05/1967
Dia
27
Mês
mai
Ano
1967
Dia_Na_Semana
sáb
Dia_No_Trimestre
56
Dia_No_Ano
147
Semana
21
Mes_Ano
mai 1967
Trimestre
2-T
Nome_Trimestre
abr-jun

Para criar esta tabela vamos utilizar dois recursos muito uteis no Qlikview, o primeiro deles é o Load sobre Load, este recurso é bastante utilizado quando precisamos realizar mais de uma transformação no campo antes de disponibilizá-lo e o segundo é o Autogenerate que se trata de um recurso usado quando se faz necessário gerar dados automaticamente pelo Qlikview.
Primeiramente vamos criar duas variáveis para conter as datas de início e fim do nosso calendário.
LET VDataInicio = Date('01/01/1967');LET vDataFim = Date(YearEnd(Today()));

Em seguida para aplicar o recurso Load sobre load aplicamos um load sobre outro já existente sem a necessidade das cláusulas “from” ou “residente” terminando o comando com ponto e virgula conforme exemplo:
MasterCALENDARIO:LOAD
[Data] as Data,Day(Dataas Dia,Month(Dataas Mês,Year(Dataas Ano,DayNumberOfQuarter(Dataas Dia_No_Trimestre,DayNumberOfYear(Dataas Dia_No_Ano,MonthName(Dataas Mes_Ano,Left(QuarterName(Data),7) as Nome_Trimestre,Week(Dataas Semana,ceil(Month(Data)/3)&'-T' as Trimestre,WeekDay(Dataas Dia_Na_Semana;LOAD
Date('$(vDataInicio)' + Recno()-1,'DD/MM/YYYY') as [Data]
AUTOGENERATE(vDataFim-VDataInicio+1);
O comando autogenerate é aplicado no lugar das cláusulas “from” e “residente” atribuindo-se como parâmetro o número de linhas de registro que deverão ser criadas. O resultado final do script acima é uma tabela contendo todas as informações de data no período de 01/01/1967 até 31 de dezembro do ano corrente.


quarta-feira, 23 de abril de 2014

Arquivos de Projeto no QlikView

Com a intenção de criar um mecanismo de versionamento é possível salvar um documento QlikView em vários arquivos dentro de uma pasta de projeto. Cada um destes arquivos definirá uma propriedade do documento, de uma pasta, de um objeto, do script etc.
Toda vez que o documento é aberto e são feitas alterações em um objeto ou em uma configuração, essas alterações serão salvas em arquivos diferentes, tornando fácil acompanhar as alterações que foram feitas no documento.
Sendo assim, também é possível ver quem fez a alteração, a data em que ela foi realizada e a parte do documento que foi alterada.
Para criar esses arquivos de projeto, é necessário criar uma pasta ao lado do arquivo qvw com o mesmo nome do documento QlikView e incluir -prj, por exemplo, na pasta de projeto de um documento chamado Menu_Layout.qvw deve ser Menu_Layout-prj.


Nota!
Nenhum dado do documento será salvo nos arquivos de projeto nestes arquivos somente será gravada a estrutura do arquivo.

Arquivos da Pasta do Projeto
O nome das pastas e dos objetos diferentes da lista aparece depois do ID do objeto. Os arquivos de projeto são:
·         QlikView.txt - contém uma lista de todos os objetos que fazem parte do documento QlikView.
·         AllProperties.xml
·         DocProperties.xml
·         DocInternals.xml
·         TopLayout.xml
·         LoadScript.txt - contém o script de carregamento do documento
·         Module.txt - contém o código da macro do documento, se existir
·         Module.txt - um único arquivo é criado para cada pasta. Além disso, os arquivos contêm referências a todos os objetos da pasta.
·         Arquivos separados também são criados para cada objeto de pasta:
·         LB<id>.xml
·         SB<id>.xml
·         MB<id>.xml
·         TB<id>.xml
·         CH<id>.xml
·         IB<id>.xml
·         CS<id>.xml
·         BU<id>.xml
·         TX<id>.xml
·         LA<id>.xml
·         SL<id>.xml
·         SO<id>.xml
·         BM<id>.xml
·         CT<id>.xml
·         RP<id>.xml
·         Os arquivos DocProperties.xmlAllProperties.xmlDocInternals.xmTopLayout.xml contêm configurações de propriedade para as diferentes partes do documento.
·         DocBinary.dat contém dados sigilosos, como senhas.

Importante:
                Depois de criada a pasta do projeto nenhum arquivo deve ser removido dela, caso contrário o documento Qlikview cessará o funcionamento. Para restaurar o seu funcionamento perfeito toda a pasta do projeto deverá ser deletada.

segunda-feira, 21 de abril de 2014

Controle de Variáveis em Arquivo Excel

Para facilitar o controle e a manutenção de variáveis no Qlikview é possivel transferir este controle para um arquivo excel, introduzindo um script bastante simples no arquivo onde será efetuado este controle.
Em primeiro lugar devemos criar um arquivo excel em um diretório determinado com as seguintes colunas:
NOM_VAR que deverá conter o nome escolhido para cada variável
DCR_VAR que deverá conter a descrição, conteúdo ou expressão que controlará o conteúdo da variável.
Em seguida inserimos os comandos abaixo na janela de script:

Variaveis:
LOAD  NOM_VAR,
DCR_VAR
FROM
VariaveisQlikview.xlsx
(ooxmlembedded labelstable is Plan1);

let rowcount = NoOfRows('Variaveis')-1;
FOR i = 0 to '$(rowcount)'
           LET TempVarName = chr(39) & Peek('NOM_VAR', $(i),'Variaveis') & chr(39);
           SET TempVarValue = Peek('DCR_VAR', $(i),'Variaveis');
           LET $(TempVarName) = $(TempVarValue);
NEXT;
drop table Variaveis;

              Assim toda vez que o arquivo Qlikview for recarregado as variáveis serão atualizadas.
IMPORTANTE
·         Para utilizar este método, você não pode esquecer que sempre que criar uma variável diretamente no Qlikview você deverá atualizar o seu arquivo de variáveis.
·         Sempre que for recarregar o seu arquivo, certifique-se que o repositório de variáveis está atualizado.

·         Você pode também comentar esta parte do script enquanto estiver desenvolvendo e, somente depois de finalizado o trabalho e com o arquivo de variáveis atualizado, habilitar novamente o trecho de script.

Gerando dados aleatórios

Muitas vezes torna-se necessário a geração de dados aleatórios para algum tipo de demonstração ou teste no Qlikview. Neste post iremos mostrar como construir um script teste. 
                Abra o Qlikview e crie um arquivo novo em seguida salve-o em um diretório qualquer. Agora entre no editor de script:

  • Clique em Arquivo\Editar Script
  • Digite CRTL+E
  • Ou Clique no icone conforme imagem abaixo:

Apos entrar no editor insira o script utilizando os comandos abaixo:
  • Clique em Inserir\Script de Teste
  • Ou Digite CRTL+Q+Q
O seguinte script irá aparecer no seu editor:

Characters:Load Chr(RecNo()+Ord('A')-1) as AlphaRecNo() as Num autogenerate 26;

ASCII:
Load
 
if(RecNo()>=65 and RecNo()<=90,RecNo()-64) as Num,
 
Chr(RecNo()) as AsciiAlpha,
 
RecNo() as AsciiNum
autogenerate 255
 
Where (RecNo()>=32 and RecNo()<=126) or RecNo()>=160 ;

Transactions:
Load
 
TransLineID,
 
TransID,
 
mod(TransID,26)+1 as Num,
 
Pick(Ceil(3*Rand1),'A','B','C') as Dim1,
 
Pick(Ceil(6*Rand1),'a','b','c','d','e','f') as Dim2,
 
Pick(Ceil(3*Rand()),'X','Y','Z') as Dim3,
 
Round(1000*Rand()*Rand()*Rand1as Expression1,
 
Round(  10*Rand()*Rand()*Rand1as Expression2,
 
Round(Rand()*Rand1,0.00001) as Expression3;Load
 
Rand() as Rand1,
 
IterNo() as TransLineID,
 
RecNo() as TransID
Autogenerate 1000
 
While Rand()<=0.5 or IterNo()=1;

 
Comment Field Dim1 With "This is a field comment";
 
 Agora recarregue o arquivo para formar o modelo de dados:
  • Clique Arquivo\Executar Script
  • Ou Digite CRTL+R
Finalmente voce terá uma nuvem de dados como na imagem abaixo:


Configurações Iniciais Qlikview


Após a instalação do Qlikview devemos efetuar algumas configurações para facilitar o trabalho do dia a dia.
Configuração do idioma:
  • Clique em menu \Preferencias do usuário, em seguida clique na tecla “Alterar o Idioma de Interface” e selecione o idioma escolhido.

Em seguida clique com o botão direito sobre a barra de menu e selecione as opções conforme figura.



Agora as configurações iniciais estão realizadas no próximo artigo vamos  criar nosso primeiro script de carga e começar a trabalhar com o Qlikview .




Conhecendo o Qlikview

Mas afinal de contas o que é Qlikview?
Qlikview é um software self-service de inteligência de negócios distribuído pela líder mundial em Business Discovery, Qlik. Ele permite que as empresas possam fazer descobertas transformadoras que levam às melhores decisões. A ferramenta vai além do que os outros softwares de BI oferecem, permitindo a análise e busca de visualizações de dados, fazer associações e descobertas que não são possíveis nas demais ferramentas.

                Utilizando uma tecnologia de associação o Qlikview disponibiliza os dados de forma que o usuário possa realizar qualquer tipo de consulta sem a necessidade de pensar em conceitos como hierarquia criando com isto uma liberdade para navegar no conjunto de dados e realizar descobertas. A cada clique que usuário realiza o Qlikview vai reduzindo o conjunto de dados disponíveis e ao mesmo tempo mostra todas as possibilidades referentes ao assunto escolhido.



                Com o Qlikview é possível extrair dados de diversas fontes diferentes mantendo as suas origens e eliminando a redundância. Por sua vez estes dados são armazenados em arquivos do tipo QVD que pode gerar uma compactação de até 10% através de um processo de otimização dos dados carregados. O Qlikview mantém todos os dados necessários para análise em memória, onde ficam disponíveis para exploração imediata pelos usuários.
Qlikview é usufrui da capacidade máxima disponibilizada pelo hardware, o que permite desempenho e o investimento em hardware de forma maximizada. Sem a preocupação com licenciamentos por processador, Qlikview permite a utilização de todos os recursos disponíveis no equipamento.