Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Pessoal
Depois de conseguir fazer o load incremental, agora a bronca esta na verificação se o arquivo existe.
O load ficou assim:
Load
FILIAL&DATA&PRODUTO AS CHAVE,
FILIAL,
DATA,
PRODUTO,
VALOR;
[TABLE]:
SQL
SELECT
DATA,
FILIAL,
PRODUTO,
VALOR
FROM TABELA
WHERE PRODUTO IN (75831,75880,75881,75898);
IF(NOT isnull(QVDCreateTime([ARQUIVO.qvd]))) THEN
Concatenate (ESTOQUE)
LOAD CHAVE,
DATA,
FILIAL,
PRODUTO,
VALOR
FROM ['ARQUIVO.qvd'] (qvd)
WHERE NOT Exists(CHAVE)
;
STORE TABLE INTO 'ARQUIVO.qvd';
ELSE
STORE TABLE INTO 'ARQUIVO.qvd';
Como esta ai em cima, toda hora subscreve o arquivo
Se eu tiro o IF funciona 100% .. insere as linhas qdo preciso (caso exista o registro não duplica)
Pedro,
Consegui aqui .. a bronca esta na validação da existencia do arquivo
Como eu uso concatenação para criar o QVD por algum motivo na hora da validação estava se perdendo, dai criei uma variavel do tipo SET e funcionou .. abaixo a solução:
SET CAMINHO = ['lib://QLIK\Arquivo_'$(MESCORRENTE)'_'$(ANOCORRENTE)'.qvd'];
IF filesize('$(CAMINHO)') > 0 THEN
Concatenate (TABELA)
LOAD CHAVE,
DATA,
PRODUTO,
VALOR
FROM ['lib://QLIK\Arquivo_'$(MESCORRENTE)'_'$(ANOCORRENTE)'.qvd'] (qvd)
WHERE NOT Exists(CHAVE)
;
STORE TABELA INTO 'lib://QLIK\Arquivo_'$(MESCORRENTE)'_'$(ANOCORRENTE)'.qvd';
else
STORE TABELA INTO 'lib://QLIK\Arquivo_'$(MESCORRENTE)'_'$(ANOCORRENTE)'.qvd';
Olá Mario,
Você pode tentar assim:
[ESTOQUE]:
Load FILIAL&DATA&PRODUTO AS CHAVE,
FILIAL,
DATA,
PRODUTO,
VALOR;
SQL SELECT
DATA,
FILIAL,
PRODUTO,
VALOR
FROM TABELA
WHERE PRODUTO IN (75831,75880,75881,75898);
If QvdCreateTime('ARQUIVO.qvd') <> Null() Then
Concatenate(ESTOQUE)
Load CHAVE,
FILIAL,
DATA,
PRODUTO,
VALOR
FROM ['ARQUIVO.qvd']
WHERE NOT EXISTS(CHAVE);
ENDIF;
STORE ESTOQUE INTO 'ARQUIVO.qvd' (qvd);
Oi Pedro,
Mesma coisa, ainda continua subscrevendo os dados q já estão no QVD
Olá Mário,
Voce pode tentar alterar a chave para o seguinte:
FILIAL&'|'&DATA&'|'&PRODUTO AS CHAVE
Abs
Pedro
Oi Pedro,
Acho que o problema não esta ai e sim na criação do QVD ...
Pq se o arquivo já existe o incremental funciona perfeitamente, a bronca é como criar o arquivo caso não exista e se existir partir para o incremento do arquivo ..
Olá Mario,
Pode ser, mas a gravação do arquivo.qvd está na primeira sentença. Preparei o exemplo a seguir para lhe auxiliar.
A fonte de dados é a planilha Estoque.xlsx, que possui 3 abas, 1 para cada teste.
Ao final de cada rodada, o Script le novamente o ARQUIVO.qvd gerado.
Abs,
Pedro
Pedro,
Consegui aqui .. a bronca esta na validação da existencia do arquivo
Como eu uso concatenação para criar o QVD por algum motivo na hora da validação estava se perdendo, dai criei uma variavel do tipo SET e funcionou .. abaixo a solução:
SET CAMINHO = ['lib://QLIK\Arquivo_'$(MESCORRENTE)'_'$(ANOCORRENTE)'.qvd'];
IF filesize('$(CAMINHO)') > 0 THEN
Concatenate (TABELA)
LOAD CHAVE,
DATA,
PRODUTO,
VALOR
FROM ['lib://QLIK\Arquivo_'$(MESCORRENTE)'_'$(ANOCORRENTE)'.qvd'] (qvd)
WHERE NOT Exists(CHAVE)
;
STORE TABELA INTO 'lib://QLIK\Arquivo_'$(MESCORRENTE)'_'$(ANOCORRENTE)'.qvd';
else
STORE TABELA INTO 'lib://QLIK\Arquivo_'$(MESCORRENTE)'_'$(ANOCORRENTE)'.qvd';
Bom dia, como você sempre vai armazenar, pode fazer assim
SET CAMINHO = ['lib://QLIK\Arquivo_'$(MESCORRENTE)'_'$(ANOCORRENTE)'.qvd'];
IF filesize('$(CAMINHO)') > 0 THEN
Concatenate (TABELA)
LOAD CHAVE,
DATA,
PRODUTO,
VALOR
FROM ['lib://QLIK\Arquivo_'$(MESCORRENTE)'_'$(ANOCORRENTE)'.qvd'] (qvd)
WHERE NOT Exists(CHAVE);
Endif ;
STORE TABELA INTO 'lib://QLIK\Arquivo_'$(MESCORRENTE)'_'$(ANOCORRENTE)'.qvd';
Obrigado ...