Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
cancel
Showing results for 
Search instead for 
Did you mean: 
dirk1955
Creator
Creator

SUB problem

Hi,

Don't know whats wrong whit this script.

I get no error message though he only creates 1 qvd instead of 3.

Only the QVD for the TEL_EQUIPMENT is created.

Purpose, I have 3 kinds of files in 1 directory on a server, i can not change that, i have to determ on a daily base which is the newest file and then i have to start working whit that file.

Any help?

//TEL_EQUIPMENT

Sub loadfiles(Files)

          For Each file in FileList('$(Files)' & '\TEL_EQUIPMENT*.txt');

                    TEL_EQUIPMENT:

                    LOAD '$(file)' AS FilePath,

                     if(Len(SubField('$(file)','.',-1)) < 8,

                     SubField('$(file)','.',-1),'No Extension') AS FileExtension,

                     FileSize('$(file)') AS FileSize,

                     //FileName('$(file)') As FileName,

                     SubField('$(file)','\',(SubStringCount('$(file)','\'))+1) as FileName,

                     subfield(SubField(SubField('$(file)','\',(SubStringCount('$(file)','\'))+1),'_',3),'.',1) as FileDateTime,

                     FileTime('$(file)') AS FileTime

                     AutoGenerate 1;

          NEXT file;

          For Each subdir in DirList('$(Files)' & '\*');

           CALL subFunction('$(subdir)')

          NEXT subdir;

End Sub

SUB subFunction(Subdir)

          For Each sub in DirList('$(Subdir)')

           CALL loadfiles('$(sub)')

          NEXT sub;

End Sub

Call loadfiles('F:\B-FS102\Qlikview\Telefonie\WOX\Data')

LET vTEL_EQUIPMENT=Peek('FileDateTime');

STORE TEL_EQUIPMENT into 'F:\B-FS102\Qlikview\Telefonie\WOX\Datawarehouse\TEL_EQUIPMENT_LIST.qvd' (qvd);

DROP Table TEL_EQUIPMENT;

TEL_EQUIPMENT:

LOAD FilePath,

     FileExtension,

     FileSize,

     FileName,

     FileDateTime,

     FileTime

FROM

(qvd) Where FileDateTime=$(vTEL_EQUIPMENT);

LET vTEL_EQUIPMENT=Peek('FilePath');

DROP Table TEL_EQUIPMENT;

rem EXIT Script;

//TEL_UNIT

Sub loadfiles_TEL_UNIT(Files)

          For Each file in FileList('$(Files)' & '\TEL_UNIT*.txt');

                    TEL_UNIT:

                    LOAD '$(file)' AS FilePath,

                     if(Len(SubField('$(file)','.',-1)) < 8,

                     SubField('$(file)','.',-1),'No Extension') AS FileExtension,

                     FileSize('$(file)') AS FileSize,

                     //FileName('$(file)') As FileName,

                     SubField('$(file)','\',(SubStringCount('$(file)','\'))+1) as FileName,

                     subfield(SubField(SubField('$(file)','\',(SubStringCount('$(file)','\'))+1),'_',3),'.',1) as FileDateTime,

                     FileTime('$(file)') AS FileTime

                     AutoGenerate 1;

          NEXT file;

          For Each subdir in DirList('$(Files)' & '\*');

           CALL subFunction_TEL_UNIT('$(subdir)')

          NEXT subdir;

End Sub

SUB subFunction_TEL_UNIT(Subdir)

          For Each sub in DirList('$(Subdir)')

           CALL loadfiles('$(sub)')

          NEXT sub;

End Sub

Call loadfiles_TEL_UNIT('F:\B-FS102\Qlikview\Telefonie\WOX\Data')

LET vTEL_UNIT=Peek('FileDateTime');

STORE TEL_UNIT into 'F:\B-FS102\Qlikview\Telefonie\WOX\Datawarehouse\TEL_UNIT_LIST.qvd' (qvd);

DROP Table TEL_UNIT;

TEL_UNIT:

LOAD FilePath,

     FileExtension,

     FileSize,

     FileName,

     FileDateTime,

     FileTime

FROM

(qvd) Where FileDateTime=$(vTEL_UNIT);

LET vTEL_UNIT=Peek('FilePath');

DROP Table TEL_UNIT;

exit Script;

//TEL_ORDERS

Sub loadfiles(Files)

          For Each file in FileList('$(Files)' & '\TEL_ORDERS*.txt');

                    TEL_ORDERS:

                    LOAD '$(file)' AS FilePath,

                     if(Len(SubField('$(file)','.',-1)) < 8,SubField('$(file)','.',-1),'No Extension') AS FileExtension,

                     FileSize('$(file)') AS FileSize,FileName('$(file)') As FileName,

                     FileTime('$(file)') AS FileTime,

                     subfield(SubField(SubField('$(file)','\',(SubStringCount('$(file)','\'))+1),'_',3),'.',1) as FileDateTime,

                     FileName() as FileName

                     AutoGenerate 1;

          NEXT file;

          For Each subdir in DirList('$($(Files)' & '\*');

           CALL subFunction('$(subdir)')

          NEXT subdir;

End Sub

SUB subFunction(Subdir)

          For Each sub in DirList('$(Subdir)')

           CALL loadfiles('$(sub)')

          NEXT sub;

End Sub

Call loadfiles('F:\B-FS102\Qlikview\Telefonie\WOX\Data')

LET vTEL_ORDERS=Peek('FileDateTime');

STORE TEL_ORDERS into 'F:\B-FS102\Qlikview\Telefonie\WOX\Datawarehouse\TEL_ORDERS_LIST.qvd' (qvd);

DROP Table TEL_ORDERS;

TEL_ORDERS:

LOAD FilePath,

     FileExtension,

     FileSize,

     FileName,

     FileDateTime,

     FileTime

FROM

(qvd) Where FileDateTime=$(vTEL_ORDERS);

LET vTEL_ORDERS=Peek('FilePath');

DROP Table TEL_ORDERS;

Labels (1)
1 Reply
Peter_Cammaert
Partner - Champion III
Partner - Champion III

You can use TRACE statements to narrow down the exact spot where things start misbehaving.