We have to develop a Qlik-sense application . 3 developers will be working on that.
We have came with an approach that all 3 developers will be working on different sheets after the data model is developed and loaded with the same login.
If one one a developers needs to reload the app, the other 2 need to informed.
This is the only approach we found for collaborative development from multiple users ?
Are we on the right path.
Is there any other alternative for parallel development.
What are the challenges you people see in the above approach.
Thanks for the extensive answer. Great insights.
I used two custom properties. The first one in order to "tag" the application objects and users (e.g. Sales, Purchase, etc.). The second one relates to the role (end user, developer, etc.). I don't work with tags, I found custom properties more convenient to use. In your experimentation section, you wrote about the security risk, when using one condition. Because of this I used a second custom property, in order to provide the functionality to the developers only.
For the unpublished application, the developers will see the app in "My Work" area.
You're right about the resource.@Bereich. It would be suffice. I had some difficulties, should look that in more detail (as you also did some experiments in your last point.
Once, published, in my opinion, there is no need to work in parallel. This is especially interesting during the development, in order not to change the owner in the QMC so that multi developers can work in parallel.
Thanks for your reply!
I realize now that if just use resource.@Bereich (I prefer it for simplicity): the app will be visible to all colleagues in "My Work", but its sheets will not be visible to my colleagues! The app will appear to be empty!
I think sheets are "app object"s; i.e. some resource which "has an app" (instead of "is an app"). So I think the resource.app rule may be required!
So now I changed the rule to be both:
((resource.@AppCollaborate="true" or resource.app.@AppCollaborate="true"))
Indeed, now my colleagues can see and edit sheets!
So now I can refine my rule to restrict to the user roles, and I can establish some conventions with my colleagues to avoid "overwriting" each others' work!
Thanks again Oktay,
Ugh, now one last step needed: My colleague edits app "A", sheet "a". There is no save button or "*" for unsaved items on Qlik Sense server (I only just noticed this). When is his work saved; immediately?
Anyway, he removes a filter pane from app "A" sheet "a". He clears cookies, closes and reopens browser, and visits app "A" , sheet "a". He doesn't see the filter pane. Correct behavior.
I refresh my browser while looking at app "A" sheet "a". I still do see the filter pane on app "A" sheet "a". (Incorrect behavior). Why can't I see my colleagues edits? I'm investigating now...
Ah! Well, my colleague suggests opening a new tab in my browser (I use Chrome.). I presume a general "clearing cookies" routine (Ctrl+Shift+Delete in Chrome) would work, as well as closing and re-opening my browser.
Me and my colleague use the Internet Explorer. We could immediately see the changes (when refreshing the page), when one of us created or changed something.
However, I see some risks on parallel development, that should be kept in mind:
- Not working on same sheets, objects at the same time: I don't know what might occur, if two developer change a diagram at the same time, I hope it won't corrupt the whole application. Therefore, we agreed that one is working on master elements, the other on the data model and maybe a third on the sheets and diagrams.
With your suggested approach
1) Base sheets can not be created or rearranged
2) Developers can't create new Master Key Items which are shared with others in the app.
If am not wrong Developers will have full edit access to this Published file rite?
Is it possible for them to create variables after publishing?
I could not see the option to create a variable
so, reddys310 and itec_pao in particular, this topic is quite interesting and I still have not clear idea how to manage a collaborative development with Qlik Sense, with particular attention to the data management.
We don't intend to collaborate on a sheet level: one Dev can design/develop his own sheets only, so no critical collaboration to a sheet level. But, we are still wondering how to manage a continuous growing data modelling, for example. Look below and please correct me if any wrong of the below points.
The first Dev will design an App, with DBs connections and everything needed data-side, he will implement an appropriate data model, even though in an initial form. Then he will publish the App, and let other devs to create and work on new Sheets inside this App (the only App we will speak about).
It seems to me that Devs have to open the App from the Stream, and create their own Sheets directly inside the App.
They will have access to the data modelling already created by me, but they have to create new Master Items, because Master Items have to be defined at the App level. Or, maybe, when you create a Master Item it wil become available to any other Sheet defined in the same App?
How can I change the Data Modelling? It seems when I publish an App, then the App is no longer available in my Personal Work space.
Supposing to be able, somehow, to work on the Data Model of an already published App, when I re-publish the App and update the Data Modelling, than the Sheets will be not overrode but, of course, when I change fields or relations, these changes could make existing Sheets no longer working.
When a Dev publish his own Sheet, he can override (update) it, in the published App.
There is no collaboration possible at the Data Modelling level.
Question: how to update the Data Modelling? I suppose I have to re-publish my App, overriding the existing one. Correct?
Thank you in advance for clarification, Regards,