16 Replies Latest reply: Sep 8, 2017 5:01 AM by Nishanth Murthy RSS

    Parallel Development Qliksense

    khushboo Peswani

      Hello All,

       

      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

      Khushboo

        • Re: Parallel Development Qliksense
          Sangram Reddy

          Hi Khushboo,

           

          Firstly, if you are making use of the same login you will not be able to work on the same app at the same time. The first one who was using the Dashboard would get kicked off. Instead I would suggest you to have One app which has the built Data Model and only then duplicate the app into 3 and Start working separately on the master items and Visualizations.Once the UI part is done. First replicate the Master Items and then copy the Visualizations to the master App.

           

          This way It could be easier in my opinion!

           

          Thanks and Regards,

          Sangram Reddy.

          • Re: Parallel Development Qliksense
            Steve Newman

            Why can't you use the built in workflow to facilitate your multi-developer needs?

             

            For example, developer 1 builds the initial app in their My Work location and when ready, they publish their core app to a stream that the other developers have access to. Developers 1, 2, and 3 can now create their own sheets as My Sheets within the app and when they are ready to share them, the sheet(s) are shared with the other developers to review, test, QA, etc... Once the sheets are accepted, they can be promoted as a published sheet which makes them part of the app.

             

            Shared and personal sheets are retained, even if someone republished the app over the original one so they will not be lost from app changes by the original developer.

             

            In addition, if someone attempts to reload the app your developers can keep developing as the app update to the users won't happen until after the reload was successfully completed.

              • Re: Parallel Development Qliksense
                Nathaniel Anderson

                Hi Steve,

                 

                Can you clarify this part for me:

                 

                Developers 1, 2, and 3 can now create their own sheets as My Sheets within the app and when they are ready to share them, the sheet(s) are shared with the other developers to review, test, QA, etc... Once the sheets are accepted, they can be promoted as a published sheet which makes them part of the app.

                 

                Specifically I feel like there are 3 concepts here: And I'm lost

                1. Publishing an app, I'm comfortable with it.
                2. As you say, "Sharing the sheet"; how to do it?
                3. As you say; "Promoting the sheet" aka "Publishing the sheet"; how to do it?

                 

                Trying to find answers to my own question:

                 

                So I'll avoid using Steve's words from above.

                I'll use "Approved" and "Published", as those things are definitely columns on sheet objects, with values like "true" or "false", as shown here:

                approved published.png

                 

                Publishing should be easy:

                https://help.qlik.com/en-US/sense/3.1/Subsystems/Hub/Content/Publishing/publish-sheet.htm

                 

                Despite that, I can't do it.

                I feel like I (User: nathanielanderson) have Publish (Action: Publish) permissions to the Sheet "International Template Nate's Dev" (Resource of App Object), as shown here:

                seeing permissions including publish.png

                And yet, I can't seem to publish that sheet, as shown here: (screenshots show the second technique described on Qlik Sense help) but neither technique works for me.)

                no publish option.png

                  • Re: Parallel Development Qliksense
                    Oktay Pamuk

                    Hi all,

                     

                    I have a solution, by using custom properties and security rules in order to be able to work multiple developers on one unpublished app. I have put this in my blog:

                     

                    http://www.qlik-blog.com/files/aaa5fa62fb65b2841898f5d04fc27c69-3.html

                     

                    Shortly, you define Custom properties and put and object and users related to the app into it. In the security rule you define, you provide the rights. This works even for unpublished apps, which is superior.

                     

                    Regards,

                     

                    Oktay

                    www.qlik-blog.com

                      • Re: Parallel Development Qliksense
                        Nathaniel Anderson

                        Hi Oktay, thanks for your post. In your example your rule requires 2 custom properties. Is it possible to use just 1 Custom Property; i.e. just resource.app.@Bereich = Bearbeitung ? I guess that is possible; in fact I could use any techniques as long as the "Condition" clause can target the apps I want to "share" among developers?

                        Also where will the app appear in my hub? Will it still be in "My Work" section of the hub? Can the app be in "published=true" state for this to work?

                        What's the difference between resource.@Bereich resource.app.@Bereich -- shouldn't just resource suffice?    

                          • Re: Parallel Development Qliksense
                            Oktay Pamuk

                            Hi Nathanial,

                             

                            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.

                             

                            Regards,


                            Oktay

                              • Re: Parallel Development Qliksense
                                Nathaniel Anderson

                                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,

                                 

                                EDIT

                                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.


                                Thanks!    

                                  • Re: Parallel Development Qliksense
                                    Oktay Pamuk

                                    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.

                                  • Re: Parallel Development Qliksense
                                    Nishanth Murthy

                                    Hi Oktay,

                                    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

                            • Re: Parallel Development Qliksense
                              Martin Mahler

                              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.