Skip to main content

Brasil

cancel
Showing results for 
Search instead for 
Did you mean: 
thiago_alessand
Contributor III
Contributor III

App parou de ler arquivo QVD

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

1 Solution

Accepted Solutions
joaopaulo_delco
Partner - Creator III
Partner - Creator III

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.

joaopaulo_delco_0-1629901028461.png

joaopaulo_delco_1-1629901189398.png

Aí nesses casos ele está sempre trazendo o campo D3_DATAFT que está em branco.

Acho que está faltando fazer esse tratamento.

 

Help users find answers! Don't forget to mark a solution that worked for you!

View solution in original post

6 Replies
jonas_rezende
Specialist
Specialist

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!


thiago_alessand
Contributor III
Contributor III
Author

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';

jonas_rezende
Specialist
Specialist

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.

thiago_alessand
Contributor III
Contributor III
Author

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.

joaopaulo_delco
Partner - Creator III
Partner - Creator III

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.

joaopaulo_delco_0-1629901028461.png

joaopaulo_delco_1-1629901189398.png

Aí nesses casos ele está sempre trazendo o campo D3_DATAFT que está em branco.

Acho que está faltando fazer esse tratamento.

 

Help users find answers! Don't forget to mark a solution that worked for you!
thiago_alessand
Contributor III
Contributor III
Author

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.