Hi Adam, you are perfectly right. Development done inside the application is version handled the built in way, read Version and Source Control Managment with QlikView for more info. Scriptlets created using the framework structure (vG.SubPath, vG.CustomPath) could be version handled using the external editor, for example Notepad++ and Sublime have TFS plugins. Vadim Tsushko have also created a QlikView language Plugin for Sublime QlikView language plugin for Sublime Text Editor.
Hope that this helps
We use yet another, slightly differrent approach.
We have a qlikview application which serves as a template for all QVD generators and ETL modules across the project.
Script in that application is identical for all ETL modules: something like this:
let vG.BasePath=; // Basic search for 1.Init.qvs $(Include=..\..\..\..\3.include\1.basevariable\1.init.qvs); $(Include=..\..\..\3.include\1.basevariable\1.init.qvs); $(Include=..\..\3.include\1.basevariable\1.init.qvs); $(Include=..\3.include\1.basevariable\1.init.qvs); Exit script when '$(vG.BasePath)'= ''; $(must_include=$(vG.SubPath)\RunApp.qvs); CALL RunApp;
So basically it is QDF bootsrap code following by call of RunApp procedure
RunApp procedure looks up for script with name corresponding to name of QlikView document in vG.CustomPath directory, and includes that script. RunApp procedure looks something like that:
// Include and load QVS script corresponding to QVW file SUB RunApp LET include_file = '$(vG.CustomPath)' & Upper(replace(DocumentName(), '.qvw', '.qvs')); $(must_include=$(include_file)); LET include_file=; END SUB
To add new QVD Generator to Transformation container, I copy template application to vG.ApplicationPath of Transformation container with new name (for example InventTable.qvw), then create script InventTable.qvs in vG.CustomPath directory.
From there on all interesting stuff (real scripting) would be done in that script within Sublime Text.
So we have many self-contained, separately developed and tested modules. Binary QlikView part of any module is virtually disposable - we can simply copy over it from template at any time. Their text script parts are under strict control by CVS (we are using Git but I believe that is irrelevant)