Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde pessoal,
algo muito estranho aconteceu em nosso Qlik Sense, que necessitei recorrer a alguém da comunicade, caso tenham passado por isso.
Temos um cenário que estava funcionando tudo ok. Está puxando os dados do banco de dados, e jogando em um arquivo QVD. Outro cenários lê o arquivo qvd e atualiza os dados normalmente.
O que vem acontecendo é que o QVD continua sendo atualizado normalmente, mas quando o outro cenário lê o arquivo, ele não atualiza os dados. "Travou" nos dados do dia 19/08/21 e não atualiza mais. Também não é exibido nenhum erro na carga. E não foi executada nenhuma manutenção neste app.
Verifiquei no Q-Eye e o arquivo contém diversos dados depois de 19/08/2021, então o problema seria algo na leitura desse arquivo, mas não consegui encontrar o que pode ser, visto que não foi realizada nenhuma modificação no mesmo para que parasse de atualizar.
Alguém já passou por algo parecido?
Por não apresentar erro, não consigo enviar print.
Obrigado
Olá @thiago_alessand !
O que me parece vendo seu script e carregando seu qvd é que está faltando algum tratamento para quando o campo D3_TURNO for igual a 2.
Veja que a partir de 19/08/2021 todos os registros são igual a 2.
E no seu script não tem tratamento para esse tipo de turno.
Aí nesses casos ele está sempre trazendo o campo D3_DATAFT que está em branco.
Acho que está faltando fazer esse tratamento.
Boa noite, @thiago_alessand .
Edite o script e verifique se tem alguma lógica do tipo <= a data de 19/08/2021. Ou alguma junção de tabela que ambos os conteúdos sejam do mesmo período, por exemplo, inner join, exists().
Espero ter ajudado!
Bom dia @jonas_rezende
pior que verifiquei, e não encontrei nada nessa lógica <= 19/08, nem com relação à junção com outra tabela.
Produção:
LOAD
RTRIM(D3_FILIAL)&'|'&IF(D3_TURNO = 0, DATE(D3_EMISSAO), DATE(D3_DATAFT))&'|'&LEFT(D3_CC,5)&'|'&RTRIM(D3_CODMAQ)&'|'&UPPER(B1_SUBCEN) AS ChaveProducao,
//RTRIM(D3_FILIAL)&'|'&DATE(D3_EMISSAO)&'|'&LEFT(D3_CC,5) AS ChaveProducao,
RTRIM(D3_FILIAL)&'|'&IF(D3_TURNO = 0, DATE(D3_EMISSAO, 'MM/YYYY'), DATE(D3_DATAFT, 'MM/YYYY'))&'|'&LEFT(D3_CC,5) AS ChavePMC,
//RTRIM(D3_FILIAL)&'|'&DATE(D3_EMISSAO, 'MM/YYYY')&'|'&LEFT(D3_CC,5) AS ChavePMC,
RTRIM(D3_FILIAL)&'|'&IF(D3_TURNO = 0, DATE(D3_EMISSAO, 'DD/MM/YYYY'), DATE(D3_DATAFT, 'DD/MM/YYYY'))&'|'&LEFT(D3_CC,5) AS ChavePMCMovimento,
//RTRIM(D3_FILIAL)&'|'&DATE(D3_EMISSAO, 'DD/MM/YYYY')&'|'&LEFT(D3_CC,5) AS ChavePMCMovimento,
RTRIM(D3_FILIAL)&'|'&D3_COD AS ChaveEstruturaProduto,
IF(WILDMATCH(D3_CC, '13607*','13609*','13616*','13621*','13624*','13625*'), '0501',
IF(WILDMATCH(D3_CC, '13605*'), '0401',
IF(WILDMATCH(D3_CC, '13620*'), '0301',
RTRIM(D3_FILIAL)))) AS D3_FILIAL,
//"D3_FILIAL",
"D3_TM",
"D3_COD" AS CodProduto,
LEFT(D3_CC,5) AS CodCC,//AS COD_CC,
"D3_UM",
"D3_LOTECTL",
"D3_CF",
"D3_QUANT" AS QuantidadeProduzida,
"D3_LOCAL",
"D3_DOC",
//D3_EMISSAO AS DataProducao,
IF(D3_TURNO = 0, DATE(D3_EMISSAO), DATE(D3_DATAFT)) AS DataProducao,
//DATE(D3_EMISSAO, 'DD/MM') AS DataProducaoDiaMes,
IF(D3_TURNO = 0, DATE(D3_EMISSAO, 'DD/MM'), DATE(D3_DATAFT, 'DD/MM')) AS DataProducaoDiaMes,
//WeekDay(D3_EMISSAO) AS DiaSemanaProducao,
IF(D3_TURNO = 0, WeekDay(D3_EMISSAO), WeekDay(DATE(D3_DATAFT))) AS DiaSemanaProducao,
//Week(D3_EMISSAO) AS SemanaProducao,
IF(D3_TURNO = 0, Week(D3_EMISSAO), Week(DATE(D3_DATAFT))) AS SemanaProducao,
IF(WEEKDAY(D3_EMISSAO) = 'dom' OR WEEKDAY(D3_DATAFT) = 'dom', 'Domingo',
IF(WEEKDAY(D3_EMISSAO) = 'sáb' OR WEEKDAY(D3_DATAFT) = 'sáb', 'Sábado', 'Dia Útil')) AS TipoDiaProducao,
IF(D3_TURNO = 0, "D3_HRENTR", Hour(D3_DATAFT)) AS HoraApontamentoProducao,
"D3_USUARIO",
IF("D3_USUARIO" = 'Administrador', 'Automático', 'Manual') AS tipoApontamento,
"D3_OP" AS OrdemProducao,
//TurnoApontamento,
IF(D3_TURNO = 0, TurnoApontamento, D3_TURNO) AS TurnoApontamento,
QTDPESO,
QTDPECA,
D3_LOCAL AS LocalProducao,
B1_DESC AS DescricaoItemProducao,
IF(LEFT(D3_CC,3) = '136', CTT_DESC01) AS TipoCentroCustoProducao,
B1_UM AS UMProduto,
B1_SEGUM AS SegUMProduto,
B1_CONV AS FatorConversaoProduto,
B1_TIPCONV AS TipoConversaoProduto,
B1_PESO AS PesoProduto,
D3_TIPO AS TipoProduto,
//SUBCENTROCUSTO
TEXT(TRIM(D3_CODMAQ)) AS CodMaquinaProducao,
UPPER(B1_SUBCEN) AS SubCCusto,
IF(B1_RETRABA = '1', 'N','S') AS RetrabalhoProducao,
D3_OBSERVA AS ObservacaoProducao,
B1_GRUPO AS GrupoProdutoProducao,
"D3_HRENTR",
HOUR(D3_DATAFT) AS HoraApontamentoForaTurno,
D3_DATAFT,
D3_TURNO
FROM [lib://Arquivos QVD/Producao\ProducaoGeral_20??.qvd](qvd)
WHERE YEAR(D3_EMISSAO) >= (Year(Today())-1) AND LEFT(D3_CC,3) = '136';
LINKDATA:
LOAD DISTINCT
//RTRIM(D3_FILIAL)&'|'&DATE(D3_EMISSAO)&'|'&LEFT(D3_CC,5) AS ChaveProducao,
RTRIM(D3_FILIAL)&'|'&IF(D3_TURNO = 0, DATE(D3_EMISSAO), DATE(D3_DATAFT))&'|'&LEFT(D3_CC,5)&'|'&RTRIM(D3_CODMAQ)&'|'&UPPER(B1_SUBCEN) AS ChaveProducao,
//RTRIM(D3_FILIAL)&'|'&RTRIM(D3_OP) AS ChaveOP,
//D3_FILIAL&'|'&MakeDate(Year(D3_EMISSAO),Num(Month(D3_EMISSAO)))
// AS ChaveEmpresaAnoMes,
IF(WILDMATCH(D3_CC, '13607*','13609*','13616*','13621*','13624*','13625*'), '0501',
IF(WILDMATCH(D3_CC, '13605*'), '0401',
IF(WILDMATCH(D3_CC, '13620*'), '0301',
RTRIM(D3_FILIAL)))) AS ChaveEmpresa,
null() AS ChaveCCusto,
IF(CTT_DESC01 = 'ELETROPOLAR', 'CAIXA FREEZER',
CTT_DESC01) AS CCusto,
//DATE(D3_EMISSAO, 'MM/YYYY') AS OrdemData,
IF(D3_TURNO = 0, DATE(D3_EMISSAO, 'MM/YYYY'), DATE(D3_DATAFT, 'MM/YYYY')) AS OrdemData,
//YEAR(D3_EMISSAO) AS Ano,
IF(D3_TURNO = 0, YEAR(D3_EMISSAO), YEAR(D3_DATAFT)) AS Ano,
//MONTH(D3_EMISSAO) AS Mes,
IF(D3_TURNO = 0, MONTH(D3_EMISSAO), MONTH(D3_DATAFT)) AS Mes,
//MONTH(D3_EMISSAO)&'/'&YEAR(D3_EMISSAO) AS MesAno,
IF(D3_TURNO = 0, MONTH(D3_EMISSAO)&'/'&YEAR(D3_EMISSAO), MONTH(D3_DATAFT)&'/'&YEAR(D3_DATAFT)) AS MesAno,
//DAY(D3_EMISSAO) AS Dia,
IF(D3_TURNO = 0, DAY(D3_EMISSAO), DAY(D3_DATAFT)) AS Dia,
TRIM(D3_CODMAQ) AS CodMaquina,
UPPER(B1_SUBCEN) AS SubCentroCusto
FROM [lib://Arquivos QVD/Producao\ProducaoGeral_20??.qvd](qvd)
WHERE YEAR(D3_EMISSAO) >= (Year(Today())-1) AND LEFT(D3_CC,3) = '136';
YEAR(D3_EMISSAO) >= (Year(Today())-1) AND LEFT(D3_CC,3) = '136'
Verifique se para o volume >= 19/08/2021 existe a combinação que satisfaça a cláusula em where.
Bom dia @jonas_rezende , retirei a condição intenira e continua no mesmo.
Coloquei um exit script também para carregar apenas esta tela, sem interferir com outros scripts, e também não exibe nada além do dia 19/08/2021.
Estou anexando o qvd aqui também, que contém dados além desta data.
Parece ser alguma limitação da ferramenta, que não está lendo o qvd por completo. Tentei inclusive renomear o mesmo e gerar um novo qvd com os dados, mas o resultado é o mesmo.
Olá @thiago_alessand !
O que me parece vendo seu script e carregando seu qvd é que está faltando algum tratamento para quando o campo D3_TURNO for igual a 2.
Veja que a partir de 19/08/2021 todos os registros são igual a 2.
E no seu script não tem tratamento para esse tipo de turno.
Aí nesses casos ele está sempre trazendo o campo D3_DATAFT que está em branco.
Acho que está faltando fazer esse tratamento.
Perfeito @joaopaulo_delco . Nosso sistema havia preenchido este campo com outro valor que não era esperado, e impactou no tratamento dos dados. Muito obrigado mesmo.