terça-feira, 15 de março de 2011
Treinamento QlikView - módulo Desenvolvedor
As inscrições estão abertas até o dia 18 de março pelo e-mail inscricao@toccato.com.br ou pelo fone +55 (48) 3236.3004. No Módulo Desenvolvedor os usuários vão conhecer os princípios de utilização e criação de gráficos e objetos, carga de dados e como disponibilizar uma aplicação através do QlikView Server. As vagas são limitadas.
* O quê: Treinamento QlikView Módulo Desenvolvedor em Florianópolis
* Quando: De 21 a 25 de março
* Onde: Toccato Academia Florianópolis (Centro de Convenções e Eventos do Corporate Park, Rodovia SC 401, nº 8600, Sala 1, Bloco 8, junto à sede da Toccato Distribuidora QlikView)
* Inscrições: até 18 de março / inscricao@toccato.com.br / +55 (48) 3236.3004
* Importante: o profissional a ser treinado deve trazer notebook.
Mais informações
sábado, 12 de março de 2011
Trabalhando com mais de uma Tabela Fato
Para resolvermos isso vamos criar uma tabela de ligação (Link Table).
Neste post falarei sobre a solução através de Link Table.
Temos as seguintes tabelas para criar o nosso modelo de dados associativo no QlikView.
Vendas, Orçamento, Cliente, Filial, Vendedor e Tipo Venda.
Como vamos utilizar a solução de Link Table, primeiramente temos que criar um campo chave utilizando a função AutoNumber() concatenando os campos comuns entre as tabelas fato e iremos comentar os campos envolvidos na chave.
Venda:
LOAD
AutoNumber(Data&'|'&[Código Vendedor]) as %ChaveLinkTable,
//Data,
[Código Venda],
[Código Cliente],
//[Código Vendedor],
[Código Tipo Venda],
[Código Filial],
[Valor Venda]
FROM
QVD\Venda.QVD
(qvd);
Orçamento:
LOAD
AutoNumber(MakeDate(Right([Mês Ano],4),Left([Mês Ano],2),1)&'|'& [Código Vendedor]) as %ChaveLinkTable,
//[Código Vendedor],
[Valor Orçado]
FROM
QVD\Orçamento.QVD
(qvd);
Agora que já criamos a chave e eliminamos os campos comuns entre as tabelas fatos, vamos criar a tabela de ligação (LinkTable).
//===========================================
// LINK TABLE
//===========================================
LinkTable:
LOAD DISTINCT
AutoNumber(Data&'|'&[Código Vendedor]) as %ChaveLinkTable,
Data,
[Código Vendedor]
FROM
QVD\Venda.QVD
(qvd);
LinkTable:
LOAD DISTINCT
AutoNumber(MakeDate(Right([Mês Ano],4),Left([Mês Ano],2),1)&'|'& [Código Vendedor]) as %ChaveLinkTable,
Date(MakeDate(Right([Mês Ano],4),Left([Mês Ano],2),1),'DD/MM/YYYY') as Data,
[Código Vendedor]
FROM
QVD\Orçamento.QVD
(qvd);
Agora temos três tabelas no nosso modelo de dados associativo.
Com essa nova tabela gerada com base nas informações das duas fatos, garantimos que teremos todos possibilidade de combinações entre as Tabelas Fato.
Podemos continuar a carga das demais tabelas do modelo.
Cliente:
LOAD
[Código Cliente],
[Nome Cliente]
FROM
QVD\Cliente.QVD
(qvd);
Filial:
LOAD
[Código Filial],
[Descrição Filial]
FROM
QVD\Filial.QVD
(qvd);
Vendedor:
LOAD
[Código Vendedor],
[Nome Vendedor]
FROM
QVD\Vendedor.QVD
(qvd);
[Tipo Venda]:
LOAD
[Código Tipo Venda],
[Descrição Tipo Venda]
FROM
[QVD\Tipo Venda.QVD]
(qvd);
Agora temos a nossa dimensão Vendedor associada a nossa tabela de ligação (LinkTable).
Para concluirmos o nosso modelo de dados associativo, vamos criar a tabela de calendário.
TMP_Calendario:
LOAD DISTINCT
Data
FROM
QVD\Venda.QVD
(qvd);
TMP_Calendario:
LOAD DISTINCT
Date(MakeDate(Right([Mês Ano],4),Left([Mês Ano],2),1),'DD/MM/YYYY') as Data
FROM
QVD\Orçamento.QVD
(qvd);
Calendario:
NoConcatenate
LOAD
[Data] as Data,
Day(Data) as Dia,
Month(Data) as Mês,
Year(Data) as Ano,
DayNumberOfQuarter(Data) as [Dia Trimestre],
DayNumberOfYear(Data) as [Dia Ano],
MonthName(Data) as [Mes Ano],
QuarterName(Data) as [Quarter],
Week(Data) as [Semana],
ceil(Month(Data)/3)&'º Trim' as [Trimestre],
WeekDay(Data) as [Dia Semana]
Resident TMP_Calendario;
DROP table TMP_Calendario;
Após a criação da tabela calendário com base nas informações das tabelas de Venda e Oraçamento, temos o seguinte modelo.
sexta-feira, 11 de março de 2011
Universal Touch Client
Você pode testar esse novo cliente pelo Safari do seu dispositivo móvel. Também é possivel testar no seu Mac ou PC instalando o navegador Safari.
Qlik aqui para acessar pelo Safari.
Em breve também terão demonstrações em outros aparelhos como o iPhone, Android e novo Blackberry.
Agora temos que esperar esse Beta virar realidade para alegria geral da comunidade QlikView.
quinta-feira, 3 de março de 2011
Diferenças entre QlikView Server EE e SBE
Enterprise Edition (EE)
O QlikView Server
Enterprise Edition (EE) é recomendado para empresas com muitas pessoas acessando as informações e necessitam de integrações em seus ambientes corporativos.
Oferecendo recursos como documentos QVW ilimitados, colaboração no ambiente QlikView Server, integração com sistemas de segurança de terceiro e Clusters de servidores.
Small Business Edition (SBE)
Projetado para implementações menores. Possui as seguinte limitações:
- Para uso apenas de Named e Document CAL’s
- Limitado a 25 Named CALs
- Limitado a 100
- Document CAL’s
- Sem suporte a servidores adicionais (impossível fazer cluster ou balanceamento de carga)
- Sem suporte a criação e compartilhamento de objetos no QlikView Sever (Colaboração), sendo possível criação de marcadores no servidor com a versão do QV10 SR1 ou superior
- Suporte apenas ao Windows Active Directory para segurança e controle de acesso.
Quadro comparativo entre as versões do QlikView Server.
Licenciamento | ||
Licenciamento | EE | SBE |
Named CAL’s | Sim | Sim Máximo 25 |
Session CAL’s | Sim |
|
Usage CAL’s | Sim |
|
Document CAL’s | Sim | Sim Máximo 100 |
Permissão de usuários Externos? | Não | Não |
Clientes QlikView | ||
Clientes QlikView | EE | SBE |
AJAX | Sim | Sim |
Plugin Internet Explorer | Sim | Sim |
QlikView Desktop | Sim | Sim |
iPhone/iPad | Sim | Sim |
Blackberry | Sim | Sim |
Android | Sim | Sim |
Outro dispositivo Móvel (Java) | Sim | Sim |
Escalabilidade | ||
Escalabilidade | EE | SBE |
Suporte a Cluster | Sim | Não |
Documentos Ilimitados | Sim | Sim |
Integração | ||
Integração | EE | SBE |
Integração com sistema de segurança de terceiros | Sim | Não |
Dynamic update (Real-Time Server) - (requerido licença | Sim | Não |
Conexão Active Directory (AD)
Para fazer uma conexão ao Active Directory (AD), é necessário um usuário com permissão de acesso ao AD, não será explicado nesse post como é feita a criação desse usuário.
Você deve criar uma conexão OLE DB, para isso abra o editor de script e siga os passos.

Informe o endereço do AD, bem como o usuário e senha criados anteriormente. Clique em Testar conexão.
Após a criação conforme indicado acima, você verá a seguinte linha de conexão.
OLEDB CONNECT TO [Provider=ADsDSOObject;User ID=Dominio\Usuário;Encrypt Password=False;Data Source=LDAP://dominio.com.br;Mode=Read;Bind Flags=0;ADSI Flag=-2147483648] (XPassword is IGGRQZVMODaCWbB);
Depois você pode fazer a extração dos grupos e usuários dos grupos, nesse caso, os grupos são pré-determinados.
Veja exemplo.
//************* Grupos AD ****************//
FOR each arg in 'Grupo1','Grupo2','Grupo3'
Groups:
LOAD
distinguishedName as GroupKey,
cn as Grupo;
SQL select
distinguishedName,
cn
FROM 'LDAP://DC=dominio,DC=com, DC=br'
WHERE objectCategory='group' AND cn ='$(arg)';
//grava as informações do Grupo
Store Groups into Groups_$(arg).qvd;
//Alimenta a variável com o valor do campo GroupKey
LET vGK = peek('GroupKey');
//Exibe o nome do Grupo e Chave do Grupo
TRACE GRUPO - $(arg) - $(vGK);
//Busca os usuários do Grupo
Users:
LOAD
'$(vGK)' as GroupKey,
upper(sAMAccountName) as LanID,
cn as Name;
SQL SELECT
sAMAccountName,
cn
FROM 'LDAP://DC=dominio,DC=com, DC=br'
WHERE memberOf='$(vGK)';
//grava os usuários do Grupo
Store Users into \Users_$(arg).qvd;
//Elimina as tabelas do arquivo qvw
drop table Users;
drop table Groups;
NEXT arg