Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
mr_barriesmith
Partner - Creator
Partner - Creator

How does QDF work with version control?

There is another discussion on this but it didn't answer my question. I'd like to know how to work QDF while needing to use Team Foundation Server?  Do you check in/out from within QV Local Client but then checkin the framework folders separately?

6 Replies
Magnus_Berg
Employee
Employee

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 2 Editor.

Hope that this helps

Best Regards

Magnus

vadimtsushko
Partner - Creator III
Partner - Creator III

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)  

Magnus_Berg
Employee
Employee

Great solution Vadim, this is what the framework is all about

I have installed Sublime 3 + InQlik-Tools and it works perfectly, recommend using it!

Cheers

Magnus

vadimtsushko
Partner - Creator III
Partner - Creator III

Thank you.

I think I'll write another post - about our approaches to develeping in QDF environment -  with sample QDF project.

I believe it's not only InQlik-Tools, but other helpfull Sublime Text packages, CVS and so on.

Not applicable

Hi Vadim,

It would be great if you could share the link of the approaches you mentioned for our reference.

Thanks!

Magnus_Berg
Employee
Employee

Hi Zhen, there is already a document regarding QDF development using IDE and version control (as these goes hand in hand).Qlik IDE Development environment.pdf

Regards

Magnus