-
Re: Ajuda na função 'For Each'
Luciano Garcia Feb 2, 2018 5:56 AM (in response to Paulo Andre de Oliveira)Paulo, olá!
Acredito que você pode trabalhar com as variáveis de erro no seu Script (inclusive se o erro não seja previsível). Vide help:
E com as funções condicionais para executar o bloco de código de "teste" em caso de erro. Esse link ilustra por meio de ex.:
Error Handling in Qlikview | Business Intelligence
e neste outro (método 3): QlikView Addict: Checking if a File Exists
-
Re: Ajuda na função 'For Each'
Clever Anjos Feb 2, 2018 6:33 AM (in response to Paulo Andre de Oliveira)Tente assim
$(vNomeArquivo):
LOAD Left(FileBaseName(),6) AS Cod_Cliente,
ReloadTime() as DataCarga,
Date(Date#(Right(FileBaseName(),6)&'01','YYYYMMDD')) AS Data_Estoque_Venda,
FileBaseName() as %File,
'2' as Status,
'Cliente H' AS Cliente,
FROM
[$(vDadosPlanilha)\Cliente H\*.xlsx]
(ooxml, no labels, header is 1 lines, table is Sheet1);
If alt(NoOfRows('$(vNomeArquivo)'),0) >0 then
STORE $(vNomeArquivo) into ..\DadosExtraidos\$(vNomeArquivo).QVD;
DROP Table $(vNomeArquivo);
endif
-
Re: Ajuda na função 'For Each'
Tamil arasu Feb 3, 2018 5:29 AM (in response to Paulo Andre de Oliveira)Hi Paulo,
Eu acho que é isso que você precisa. Por favor nos informe.
FOR Each vArquivo in FileList ('$(vDadosPlanilha)\*.xlsx')
LET vNomeArquivo = SubField(SubField(vArquivo, '\', -1), '.xlsx', 1);
TRACE vNomeArquivo: $(vNomeArquivo);
[$(vNomeArquivo)]:
LOAD Left('$(vNomeArquivo)',6) AS Cod_Cliente,
ReloadTime() as DataCarga,
Date(Date#(Right('(vNomeArquivo)',6)&'01','YYYYMMDD')) AS Data_Estoque_Venda,
'$(vNomeArquivo)' as %File,
'2' as Status,
'Cliente H' AS Cliente
AutoGenerate 1;
STORE [$(vNomeArquivo)] into [$(vDadosPlanilha)]\$(vNomeArquivo).qvd (qvd);
DROP Table [$(vNomeArquivo)];NEXT vArquivo
-
Re: Ajuda na função 'For Each'
Paulo Andre de Oliveira Feb 3, 2018 10:40 AM (in response to Tamil arasu )Tamil,
está faltando o FROM no script!!
-
Re: Ajuda na função 'For Each'
Tamil arasu Feb 3, 2018 11:48 AM (in response to Paulo Andre de Oliveira)Hi Paulo,
Sí. Eliminé la parte de. Creo que desea almacenar detalles del archivo (no datos) en qvd's. Si no, por favor, hágame saber su requerimiento. Gracias
-
-
-
Re: Ajuda na função 'For Each'
Paulo Andre de Oliveira Feb 3, 2018 12:08 PM (in response to Paulo Andre de Oliveira)Prezados,
unificando as ajudas, encontrei a solução.
Obrigado a todos
FOR Each vArquivo in FileList ('$(vDadosPlanilha)\Cliente H\*.xlsx')
LET vNomeArquivo = SubField(SubField(vArquivo, '\', -1), '.xlsx', 1);
TRACE vNomeArquivo: $(vNomeArquivo);
set ErrorMode=0;
$(vNomeArquivo):
LOAD Left(FileBaseName(),6) AS Cod_Cliente,
ReloadTime() as DataCarga,
Date(Date#(Right(FileBaseName(),6)&'01','YYYYMMDD')) AS Data_Estoque_Venda,
FileBaseName() as %File,
'2' as Status,
'Cliente H' AS Cliente,
A AS Cod_Modelo,
B AS Qtd_Estoque,
C AS Qtd_Ven
FROM
[$(vDadosPlanilha)\Cliente H\$(vNomeArquivo).xlsx]
(ooxml, no labels, header is 1 lines, table is Sheet1)
Where Len(A)>0;
If ScriptError=0 AND len('$(vNomeArquivo)')=13 THEN
STORE $(vNomeArquivo) into ..\DadosExtraidos\$(vNomeArquivo).QVD;
DROP Table $(vNomeArquivo);
ELSE
DROP Table $(vNomeArquivo);
END IF
NEXT vArquivo