Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
kettyterra
Contributor

Desenvolvimento - Help

Amigos, boa tarde

Gostaria de ajudar para saber se é possível criar a seguinte análise no qlikview:

Planos Preventivos.jpg

Vejam que na minha tabela "Controle de Planos Preventivos" eu estou analisando quais planos estão vencidos, ok.

A partir desta tabela, eu quero montar uma programação de execução.

No caso para o códito AAE.0012 existem dois planos vencidos, 250 horas e 500 horas, então, deste modo, eu devo programar um plano de 500 horas, pois sempre irá prevalecer a maior.

A visualização que eu quero ter é uma outra tabela que me traga CÓDIGO E SEQUENCIA À EXECUTAR.

É possível?

Lembrando que essa tabela(CONTROLE DE PLANOS PREVENTIVOS) foi construída a partir de varias outras tabelas e análises.

Aguardo.

Muito Obrigada

Ketty Terra

Tags (1)
5 Replies
lucianoapgarcia
New Contributor III

Re: Desenvolvimento - Help

Olá Ketty!

Minha sugestão: 1° criar o campo Sequência de tipo numérico e tentar "replicar" a tabela da IMG no seu Script, e em tempo de execução salvá-la num Qvd. 2° realizar uma carga dessa tabela agregando pelo máximo do campo de código, filtrando somente os códigos com Status diferentes de "OK".

Mais ou menos assim:

Tb_Controle:

LOAD Código,

Sequência,

MAX(Sequencia_num)

WHERE Status <> 'OK'

Group By Código, Sequência;

Depois disso você poderá criar um Qvd desta nova tabela ou já manter no seu modelo de dados.

Isso, caso com "programação de execução" você queira dizer para somente retornar uma nova tabela contendo esta análise por sequência, para relacionar com o seu modelo já criado (ou com outro se criar outro Qvd desta).

kettyterra
Contributor

Re: Desenvolvimento - Help

Luciano, boa tarde

O campo sequencia é numérico, 250 HORAS = 1, 500 HORAS =2, 1000 HORAS =3 e 2000 HORAS =4.

No caso do campo Status, ele é uma expressão. Eu teria que criar ele no script, certo?

No meu modelo de dados o campo STATUS depende de três tabelas. Como eu faria para criar esse campo via script?

Expressão para criar o campo status:

EXPRESSAO STATUS.jpg

o campo CONTACUMULADOMANUT vem de uma tabela chamada DIM_STP

o campo CONTADORC vem de uma tabela chamada DIM_ST9
o campo Data e STJ_HORA cont. 1 vem de uma tabela chamada FATO_MANUTENCAO

Espero que entenda minha dúvida e se precisar de mais informações, disponibilizo.

Muito obrigada.

kettyterra
Contributor

Re: Desenvolvimento - Help

Alguém me dá um help;

kettyterra
Contributor

Re: Desenvolvimento - Help

Pessoal,

Vejam se conseguem me ajudar, por favor. Conseguir evoluir mais um item..

evoluir.jpg

Vejam que no exemplo,  consegui substituir a data de OS pela maior data. Mas tem um detalhe. O campo ULT PL EXEC, que neste caso é 3, significa o meu ultimo plano executado. Neste caso , só deve substituir para cima: a 2 e 1.

Não to conseguindo pensar em algo.

Penso que o certo seria guardar o numero do ULT PL EXEC em uma variavel, mas nao to conseguindo fazer isso. Vejam a parte do script que criei para substituir a data:

ULTIMO_DATA:

LOAD

Código,

max(Data) as ULT_DATA

Resident FATO_MANUTENCAO

Group by Código;

e na expressao do campo SUBSTI O.S

=if(COD_SEQ=1 and ULT_DATA > UltDtOS, ULT_DATA,

if(COD_SEQ=2 and ULT_DATA > UltDtOS, ULT_DATA,

if(COD_SEQ=3 and ULT_DATA > UltDtOS, ULT_DATA, UltDtOS)))

Por favor, me ajudem.

lucianoapgarcia
New Contributor III

Re: Desenvolvimento - Help

Saudações Ketty!

Você pode criar esse campo em tempo de execução na tabela, fazendo um Join

entre as tabelas relacionadas.

Depois aplicar o cálculo do campo de Status e salvar a tabela resultado num

QVD.

Mas pelo que entendi seu cenário agora contempla outros campos: ULT_DATA e

UltDtOS.

Caso você precisasse atualizar (a tabela na memória) com base em outras

linhas lidas, poderia usar funções inter-registro de Script que te

auxiliassem:

https://help.qlik.com/pt-BR/qlikview/November2017/Subsystems/Client/Content/ChartFunctions/InterRecordFunctions/inter-record-functions-charts.htm

Acho que vc poderia testar isso em combinação com uma ordenação da tabela

com ORDER By aplicado sobre o campo ULT PL EXEC.

Em seg, 14 de mai de 2018 09:35, Ketty Terra <qcwebmaster@qlikview.com>

escreveu:

Qlik Community <https://community.qlik.com/?et=watches.email.thread>

Desenvolvimento - Help

resposta de Ketty Terra

<https://community.qlik.com/people/kettyterra?et=watches.email.thread> em *Qlik

Brasil* - Visualize a discussão completa

<https://community.qlik.com/message/1485383?et=watches.email.thread#1485383>