2017-08-14 40 views
0

我有這個簡單的腳本來上傳文件名:的QlikView不會上傳我問

Files: 
LOAD 
Distinct 
    FileName() as File 
FROM [C:\Matias\Capacity Tracker\AllFiles\*]; 

而作爲一個結果運行腳本時,它發生了以下內容:

Files << Analyst Time Sheet - Adam W - 0730-0805 0 lines fetched 
Files << Analyst Time Sheet - Adam W - 0806-0812 0 lines fetched 
Files << Analyst Time Sheet - Agnieszka J - 0702-0708 2 lines fetched 
Files << Analyst Time Sheet - Agnieszka J - 0709-0715 3 lines fetched 
Files << Analyst Time Sheet - Agnieszka J - 0716-0722 4 lines fetched 

等等on ... 所以,奇怪的是,對於來自「Adam W」的文件,不會上傳任何東西(不會獲取行)。那麼,我有這些文件列表除外。我覺得很奇怪,因爲我只是要求文件名,它不可能是格式化的東西(我認爲)。

任何想法可以發生什麼,我怎麼能解決它?

預先感謝您 馬蒂亞斯

回答

0

雖然QlikView的提供負載statment的文件名是*選項,結果有時有點隨意。我會建議你嘗試不同的方法,看看它是否有效。

For Each FILE in FileList('C:\Matias\Capacity Tracker\AllFiles\*') 
    Files: 
    LOAD 
    Distinct FileName() as File 
    FROM [$(FILE)]; 
next file 

希望這有助於。

0

感謝您的想法。我嘗試過,不幸的是我有同樣的問題。最後,我解決了這樣的問題:

Files: 
LOAD 
Distinct 
    FileName() as File 
FROM [C:\Matias\Capacity Tracker\AllFiles\*]; 

SET ErrorMode=0; 

    Files: 
    LOAD 
    Distinct 
     FileName() as File 
    FROM [C:\Matias\Capacity Tracker\AllFiles\*] 
    (ooxml, no labels, table is [Task Log]) 
    Where Not Exists(File,FileName()); 

IF ScriptError <> 0 THEN 

    Files: 
    LOAD 
    FileName() as File 
    FROM [C:\Matias\Capacity Tracker\AllFiles\*] 
    (biff, no labels, table is [Task Log$]) 
    Where Not Exists(File,FileName()); 

ENDIF 

儘管他們都是.xls文件,但它們似乎是格式化的差異。因此,那些不是一開始就上傳的,他們在(ooxml)之後的第一個聲明上傳,或者如果失敗,則由第二個聲明(biff文件)上傳。很奇怪。 也許這不是最好的和正確的解決方案,但它是唯一一個從文件夾上傳所有文件名的工作。