Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik and ServiceNow Partner to Bring Trusted Enterprise Context into AI-Powered Workflows. Learn More!
cancel
Showing results for 
Search instead for 
Did you mean: 
dpsouza
Contributor
Contributor

AJUDA COM SET ANALYSIS

Boa noite pessoal !

Seguinte sou júnior na minha empresa e estou com dificuldade para montar um set analysis  , vou explicar com detalhes a situação .

 

Primeiro eu tenho uma expressão pronta abaixo , onde ele pega o FG_CONTAB  que é se o lançamento vai contabilizar para uma meta ou nao  que no meu caso é zero pois quero somente os rejeitados , depois tenho o motivo rejeição que é o 2 , e tudo isso calculando em cima dos agentes para mostrar os lançamentos rejeitados :  

count(distinct{1<FG_CONTAB={"0"},TP_MOTIVO_REJEICAO_DIVISAO_REJ={"2"}>} CH_AGENTE)

Até ai tudo bem , peguei a regra pois tenho dois BIs um que filtra rejeitados por essa regra e um outro BI que utiliza datas de centro de custo vinculado ao ano , ai que mora o problema pois preciso replicar uma regra onde nao tem filtro de centro de custo de um BI para outro que tem filtro de data por centro de custo .

Ai quando uso essa expressão no BI que tem o filtro automático por centro de custo ele da valores divergentes do outro BI pois um filtra pela data de atendimento e o outro filtra por data do centro de custo , abaixo o select de onde o outro bi tira as informações  : 

NoConcatenate
F_CLIENTES_REALIZA:
Load *;
select r.CH_PERIODO_REFER || '|' || r.CH_ANO_CCUSTO AS CH_PERIODO_REFER_CCUSTO,
substr(r.CH_PERIODO_REFER, 1, 6) ||
substr(r.CH_ANO_CCUSTO,instr(r.CH_ANO_CCUSTO,'|'), length(r.CH_ANO_CCUSTO)-instr(r.CH_ANO_CCUSTO,'|')+1) || '|' ||
substr(r.ch_unidade,6, length(r.ch_unidade)-5) AS CH_ANO_MES_CCUSTO_UNIDADE, -- incluído por José Luis Abelardino para carregar a chave com a I_META_FISICA_PR
substr(r.CH_ANO_CCUSTO,instr(r.CH_ANO_CCUSTO,'|'), length(r.CH_ANO_CCUSTO)-instr(r.CH_ANO_CCUSTO,'|')+1) || '|' ||
substr(r.ch_unidade,6, length(r.ch_unidade)-5) AS CH_ANO_MES_CCUSTO_UNID_CHAVE,
r.ch_atendimento,
--r.ch_atendimento as CH_ANO_REA_GPQ,
SUBSTR(r.ch_atendimento,6,LENGTH(r.ch_atendimento)-5) AS cd_atendimento,

SUBSTR(r.ch_atendimento,6,LENGTH(r.ch_atendimento)-5)||SUBSTR(CH_PF_ANO_AGENTE,6) AS CH_ATEND_CLI,

--nvl2(r.ch_disponibilizacao,r.ch_disponibilizacao,SUBSTR(r.ch_atendimento,6,LENGTH(r.ch_atendimento)-5)) as ch_disp_int,
r.ch_ano_ccusto ch_ano_ccusto_rea,
TO_NUMBER(SUBSTR (TO_CHAR (r.dt_atendimento,'YYYYMMDD'),1,6)) || '00' AS CH_PERIODO_REJ,
r.tp_motivo_rejeicao_divisao as tp_motivo_rejeicao_divisao_rej,//25/10/2021 dpsouza REQ - 40178
r.tp_solucao,
r.DS_INSTRUMENTO, //voz
r.DS_REGIONAL, //voz
r.ch_unidade,
r.ds_sgl_unidade_rea,
r.ds_unidade as ds_unidade_rea,
r.DS_ESCRITORIO as ds_escritorio_rea,
r.tp_unidade as tp_unidade_rea,
substr(r.ch_localidade,9) as cd_localidade_rea,
substr(r.ch_localidade,9) as cd_localidade_rea_chave,
r.ch_localidade as ch_localidade_rea,
r.ch_atend_part,
r.ch_agente,
SUBSTR(CH_PF_ANO_AGENTE,6) AS CH_PF_ANO_AGENTE,
r.ds_canal_atendimento,
r.DS_SITUACAO_PARTICIPANTE,
r.fg_distancia_rea,
r.DS_PROGRAMA_LOCAL_CCUSTO,
r.tp_orient_inform,
r.qt_horas,
r.ch_periodo_inicial,
SUBSTR(r.CH_PERIODO_INICIAL, 1,6) as ch_periodo_ini, //voz
r.ch_periodo_final,
r.ch_produto,
r.fg_contab,
r.ch_atualizacao,
r.dh_atualizacao,
r.fg_meta_1,
r.fg_meta_2,
r.fg_meta_3,
r.fg_meta_4,
r.fg_meta_5,
r.fg_meta_8,
r.fg_meta_9,
r.fg_presente
from bi_dw.I_CLIENTES_REALIZA r;

 

nesse outro select é de onde o BI de centro de custo pega as informações automáticas  : 

 

NoConcatenate
D_CCUSTO:
Load *;

select p.ch_periodo_ano_mes AS CH_PERIODO_ANO_MES_META_MOB,
DS_REGIONAL,
DS_ESCRITORIO,
Case
when FG_SEDE_ADM = 1 then
'UNIDADES'
else
DS_REGIONAL
end as Regional,
loc.Cd_LOCALIDADE as CD_LOCALIDADE_ORC,
NM_GESTOR_PROJETO,
DS_UNIDADE,
UDD.DS_SGL_UNIDADE_SGE as DS_UNIDADE_SGL,
case
when FG_SEDE_ADM = 1 then
UDD.DS_SGL_UNIDADE_SGE
end as DS_SGL_UNIDADE,
CH_ACAO_PROJ as cd_ccusto,
Case
when DS_ACAO is null then
Null
else
CH_ACAO_PROJ || ' - ' || DS_ACAO
end as DS_ACAO,
DS_ACAO as DS_ACAO_TEXTO,
Case
when DS_PROJETO is null then
Null
else
CH_PROJETO || ' - ' || DS_PROJETO
end as DS_PROJETO,
DS_PROJETO as DS_PROJETO_TEXTO,
cc.nr_ano_proj || '|' || cc.cd_acao_na AS CH_ACAO_NA,
cc.nr_ano_proj || '|' || cc.cd_acao_na AS CH_ACAO_NA_CHAVE,
cc.nr_ano_proj || '|' || cc.cd_acao_na AS CH_ACAO_NA_REJ,
p.ch_periodo_ano_mes as ch_periodo_ano_mes,
p.ch_periodo_ano_mes || '|' || cc.CH_ANO_CCUSTO as ch_periodo_refer_ccusto_os,
p.ch_periodo_ano_mes || '|' || cc.CH_ANO_CCUSTO as ch_periodo_refer_os_chave,
p.ch_periodo_ano_mes || '|' || cc.CH_ANO_CCUSTO as ch_periodo_refer_ccusto,
p.ch_periodo_ano_mes || '|' || cc.CH_ANO_CCUSTO as ch_periodo_refer_ccusto_eem,
p.ch_periodo_ano_mes || '|' || cc.CH_ANO_CCUSTO as ch_ano_mes_ccusto_gpq,
substr(p.ch_periodo_ano_mes, 1, 6) || '|' || cc.ch_ano_ccusto as ch_ano_mes_ccusto,
substr(p.ch_periodo_ano_mes, 1, 6) || '|' || cc.ch_ano_ccusto as ch_ano_mes_ccusto_voz,
substr(p.ch_periodo_ano_mes, 1, 6) || '|' || cc.ch_ano_ccusto as ch_ano_mes_ccusto_chave,
cc.nm_coord_estadual,
cc.CD_PRATIF AS "Pratif",
substr(p.ch_periodo_ano_mes, 1, 4) || '|' || cc.CD_PRATIF AS CH_PRATIF,

substr(p.ch_periodo_ano_mes, 1, 4) || '|' || cc.CD_PRATIF AS CH_ANO_PRATIF_DETALHADO_MAPAS,

substr(p.ch_periodo_ano_mes, 1, 6) || '|' || cc.CD_PRATIF AS CH_ANO_MES_PRATIF,
substr(p.ch_periodo_ano_mes, 1, 6) || '|' || cc.CD_PRATIF AS CH_ANO_MES_PRATIF_CHAVE,
substr(p.ch_periodo_ano_mes, 1, 6) || '|' || cc.CD_PRATIF AS CH_PRATIF_META_MOB_REG_DIGITAL,
ccsge.ds_obj_estrat_local as ds_obj_estrat_local,
ccsge.ds_obj_estrat_local_reduzido as ds_obj_estrat_local_reduzido,
ccsge.ds_macro_processo as ds_macro_processo,
CC.DS_PROGRAMA_NA,

--NOVO CANAIS DE ATENDIMENTO

case
when CCSGE.ds_obj_estrat_local =
'P 1.1 - Preparar o indivíduo para empreender e gerenciar melhor o seu empreendimento por meio de atendimento presencial' and --removido 20200501 a pedido da Dayse
(

(UPPER(DS_ACAO) LIKE UPPER('Escritório%') AND
substr(cc.ch_ano_ccusto, 1, 4) = 2020) or
(UPPER(DS_PROJETO) LIKE ('CANAL ESCRITÓRIO%') AND
substr(cc.ch_ano_ccusto, 1, 4) >= 2021) or

UPPER(DS_ACAO) LIKE ('PONTO%DE ATENDIMENTO%') or
UPPER(DS_ACAO) LIKE ('PORTA A PORTA%') -- OK
or UPPER(DS_ACAO) LIKE ('SALA%DO%EMPREENDEDOR%')) and
substr(cc.ch_ano_ccusto, 1, 4) >= 2020 and
cc.CD_PRATIF <> 'PR002007ATPS' then --Inserido novamento a pedido da Dayse 20200708

CASE
WHEN upper(trim(substr(ds_acao, 0, instr(ds_acao, '-') - 1))) LIKE
'SALA%DO%EMPREENDEDOR' THEN
'Salas do Empreendedor'
WHEN upper(trim(substr(ds_acao, 0, instr(ds_acao, '-') - 1))) LIKE
'PONTO%DE ATENDIMENTO' THEN
'Pontos de Atendimento'

-- CANAL ESCRITORIO PARTE 1
WHEN UPPER(DS_PROJETO) LIKE ('CANAL ESCRITÓRIO%') and substr(cc.ch_ano_ccusto, 1, 4) >= 2021 THEN
'Escritório'

else
INITCAP(trim(substr(ds_acao, 0, instr(ds_acao, '-') - 1)))

END

-- CANAL ESCRITORIO REGRA INCLUÍDA 20210723
WHEN CCSGE.ds_obj_estrat_local IN (

'P 1.2 - Preparar empresas para serem mais competitivas',
'P 1.3 - Desenvolver empresas com potencial competitivo, em padrões internacionais',
'P 1.4 - Contribuir para o desenvolvimento das startups e de seus ecossistemas no Estado',
'P 8 - Preparar lideranças com foco em competências duráveis (ser) e competências transitórios (saber) tornando-os agentes eficazes de transformação'

) AND
substr(cc.ch_ano_ccusto, 1, 4) >= 2021 THEN
'Escritório'

--CANAL DIGITAL - OK
WHEN UPPER(DS_PROJETO) = UPPER('PR - Atendimento Remoto') THEN --and substr(cc.ch_ano_ccusto, 1, 4) >= 2020 THEN
'Digital'


end as ds_canal_atendimento_ccusto,

/* REGRA ANTERIOR
case
when CCSGE.ds_obj_estrat_local = 'P 1.1 - Preparar o indivíduo para empreender e gerenciar melhor o seu empreendimento por meio de atendimento presencial'
and --removido 20200501 a pedido da Dayse
--Inserido novamento a pedido da Dayse 20200708
(
UPPER(DS_ACAO) LIKE UPPER('Escritório%')
or UPPER(DS_ACAO) LIKE UPPER('Ponto de Atendimento%')
or UPPER(DS_ACAO) LIKE UPPER('Porta a Porta%')
or UPPER(DS_ACAO) LIKE UPPER('Sala do Empreendedor%')
)
and substr(cc.ch_ano_ccusto, 1, 4) >= 2020
and cc.CD_PRATIF <> 'PR002007ATPS' then --Inserido novamento a pedido da Dayse 20200708
trim(substr(ds_acao,0,instr(ds_acao, '-') -1))
WHEN UPPER(DS_PROJETO)= UPPER('PR - Atendimento Remoto') THEN--and substr(cc.ch_ano_ccusto, 1, 4) >= 2020 THEN
'Digital'
--when (CCSGE.ds_obj_estrat_local is null or CCSGE.ds_obj_estrat_local <> 'P 1.1 - Preparar o indivíduo para empreender e gerenciar melhor o seu empreendimento por meio de atendimento presencial') and substr(cc.ch_ano_ccusto, 1, 4) >= 2020 then
-- 'Escritório'
end as ds_canal_atendimento_ccusto,
*/

TO_DATE(cc.DT_INIC_PROJ, 'YYYYMMDD') AS DT_INIC_PROJ, -- novo
TO_DATE(cc.DT_FIM_PROJ, 'YYYYMMDD') AS DT_FIM_PROJ, -- novo
cc.DS_PROGRAMA_LOCAL,
cc.ch_unidade

from bi_dw.d_ccusto cc
inner join bi_dw.d_periodo_ano_mes p
on p.nr_ano = substr(cc.ch_ano_ccusto, 1, 4)
INNER join bi_dw.d_unidade udd
on udd.ch_unidade = cc.ch_unidade
LEFT JOIN BI_DW.D_LOCALIDADE LOC
ON udd.ch_localidade = loc.CH_LOCALIDADE
left join bi_dw.D_CCUSTO_SGE_CATEG ccsge
on ccsge.ch_pratif_na = cc.cd_pratif_na
and CC.nr_ano_proj = ccsge.nr_ano
where substr(cc.ch_ano_ccusto, 1, 4) >= extract(year from sysdate) - 2
order by CH_ANO_CCUSTO, p.ch_periodo_ano_mes;

 

Oque eu preciso manter a regra abaixo  : 

count(distinct{1<FG_CONTAB={"0"},TP_MOTIVO_REJEICAO_DIVISAO_REJ={"2"}>} CH_AGENTE) mas ignorando o filtro automático por centro de custo , porém quando o cliente clicar em um centro de custo ele altere o valor informando os rejeitados no centro de custo que foi selecionado , bem complexo espero que tenha ficado claro .

 

Agradeço a ajuda de todos que puderem me auxiliar .

0 Replies