14 Replies Latest reply: Jun 18, 2018 11:23 AM by Amar P RSS

    Data hiding in Qlikview

    Amar P

      How to hide the column data (not entire row) for GDPR compliance.

        • Re: Data hiding in Qlikview
          Vishwarath Nagaraju

          Question not clear elaborate with some sample data and what you expect to see.

           

          May be this would help:

          Qlik Community Tip: Posting Successful Discussion Threads

          • Re: Data hiding in Qlikview
            Anil Samineni

            May be use this for condition enable for that column?

             

            If(FieldName = 'GDPR', 0, 1)

            • Re: Data hiding in Qlikview
              max payne

              where? which chart?

              be more specific.

              • Re: Data hiding in Qlikview
                Ruben Marin

                Hi Amar, it's not clear what you want.

                 

                If you are using a simple table and want to hide to column, in chart properties -> Presentation tab there is an option to hide columns.

                  • Re: Data hiding in Qlikview
                    Amar P

                    How to hide (ma the column data (not entire row) for GDPR compliance.

                    • Re: Data hiding in Qlikview
                      Amar P

                      Following is the example

                       

                      Suppose there is sales department with following data

                       

                       

                      SalesPersonNamePhoneCitySalesAmount
                      A1123C110000
                      A23433C115000
                      B1675C250000
                      B2654C280000

                       

                      If the salesperson from City C1 acess the dashboard then the salesamout(10000,15000) corresponding to City C1 should be visible and the sales amount of the City C2 should appear as '***'

                       

                      If the salesperson from City C2 acess the dashboard then the salesamout(50000,80000) corresponding to City C2 should be visible and the sales amount of the City C1 should appear as '***'

                       

                      Also, when Pivot is created then the count of SalesAmount Column for both City should be 2 (due to '***' it should be counted as 1) irrespective of the City of login user.

                       

                      There are multiple controls in dashboard, so control level is very difficult. I want to do this at data level (or when the dashboard is accessed by the user)

                        • Re: Data hiding in Qlikview
                          Peter Cammaert

                          I must admit that I fail to understand what this has to do with GDPR compliance. SalesAmounts are not considered information that relates to an individual. Moreover, you seem to be less concerned about the information that may ID an individual like a telephone number. Maybe it's a less than representative example, but you should also have a chat with your data protection officer first.

                           

                          If it's the information itself that should be partioned into sets with different access/visibility-settings, then I fail to understand why you want to hide it behind a series of password-like stars, and not just eliminate a part of the information altogether if a particular SalesManager shouldn't have access to it. Section Access, combined with Data Reduction is ideally suited for the latter. And on top of that, it's not too complex to implement and easy to manage without changing anything except for the data (e.g. your data) that controls Section Access.

                           

                          Or am I missing something?

                            • Re: Data hiding in Qlikview
                              Amar P

                              Thanks for your reply.

                               

                              Section access will remove the rows or omit the columns

                              I want to display all rows and hide (show 'Prohibit') in the columns data which is not applicable to the logged in user.

                                  • Re: Data hiding in Qlikview
                                    Amar P

                                    I have tried this. This works perfect at my desktop but when deployed and access from Access Point it does data reduction instead on masking data.

                                      • Re: Data hiding in Qlikview
                                        Rob Wunderlich

                                        The example Marcus pointed to works for me on both Desktop and Server.

                                         

                                        -Rob

                                          • Re: Data hiding in Qlikview
                                            Amar P

                                            I have tried the sample code but the data gets duplicated if there are multiple rows for a user

                                             

                                            Below is my code:

                                             

                                            UserList:

                                            Load * Inline

                                            [

                                                USERID,School

                                                userA,SchoolA

                                                userB,SchoolB

                                                userA,SchoolD

                                                userC,<ANY>

                                            ];

                                             

                                            Result:

                                            LOAD * Inline

                                            [

                                                School,Teacher,Student,Subject,Result

                                                SchoolA,Anne,Peter,History,80

                                                SchoolB,Simon,Jhon,Maths,70

                                                SchoolC,Tony,Paul,History,58

                                                SchoolA,Stuart,Mathew,Maths,90

                                                SchoolB,Chris,Kai,Science,82

                                                SchoolC,Philp,Andrew,Maths,66

                                                SchoolD,Philp_1,Andrew_1,Maths_1,77

                                            ];

                                             

                                            ACL_Users_Step1:

                                            load Distinct

                                                USERID AS USERID,

                                                'USER' AS ACCESS,

                                                0 AS _FlagIdentified,

                                                School as _UserSchool

                                            Resident UserList WHERE School <> '<ANY>';

                                            Join(ACL_Users_Step1)

                                            LOAD Distinct School as _FactSchool Resident Result;

                                             

                                             

                                            ACL_Users:

                                            NoConcatenate

                                            Load Distinct

                                            USERID,

                                            ACCESS,

                                            _FlagIdentified,

                                            _FactSchool

                                            Resident ACL_Users_Step1 Where _FactSchool <> _UserSchool;

                                             

                                             

                                             

                                            Concatenate

                                            Load Distinct

                                            USERID,

                                            ACCESS,

                                            1 as _FlagIdentified,

                                            _FactSchool

                                            Resident ACL_Users_Step1 Where _FactSchool = _UserSchool;

                                             

                                             

                                             

                                            DROP table ACL_Users_Step1

                                            ;

                                             

                                            ACL_Users_ANY:

                                            NoConcatenate

                                            LOAD Distinct

                                                USERID as USERID,

                                                'USER' AS ACCESS,

                                                1 AS _FlagIdentified,

                                                School as _UserSchool

                                            Resident UserList WHERE UPPER(School) = '<ANY>';

                                             

                                            Join (ACL_Users_ANY)

                                            LOAD distinct School as _FactSchool Resident Result;

                                             

                                            Concatenate (ACL_Users)

                                            LOAD Distinct USERID,ACCESS,_FlagIdentified,_FactSchool Resident ACL_Users_ANY;

                                             

                                             

                                             

                                            DROP table ACL_Users_ANY;

                                            DROP Table UserList;

                                             

                                            SST:

                                            NoConcatenate LOAD Distinct

                                                Upper(USERID) as USERID,

                                                Upper(ACCESS) as ACCESS,

                                                Upper(_FlagIdentified & '--' & _FactSchool) AS ACCESS_KEY

                                            Resident ACL_Users;

                                             

                                             

                                            SECTION Access;

                                            SA:

                                            NoConcatenate LOAD Distinct

                                                Upper(USERID) as USERID,

                                                Upper(ACCESS) as ACCESS,

                                                Upper(_FlagIdentified & '--' & _FactSchool) AS ACCESS_KEY

                                            Resident ACL_Users;

                                              

                                            SA:

                                            LOAD DISTINCT

                                                'ADMIN' as USERID,

                                                'ADMIN' as ACCESS,

                                                1 & '--' & Upper(School) as ACCESS_KEY

                                            Resident Result;

                                            SECTION Application;

                                             

                                             

                                            FACT:

                                            LOAD

                                            Upper(_FlagIdentified & '--' & School) A

                                            S ACCESS_KEY,*;

                                             

                                            LOAD

                                                1 as _FlagIdentified,

                                                Teacher as _Teacher,

                                                Student as _Student,

                                                * Resident Result;

                                             

                                            Concatenate(FACT)

                                            LOAD UPPER(_FlagIdentified & '--' & School) AS ACCESS_KEY,*;

                                             

                                            LOAD

                                                0 AS _FlagIdentified,

                                                'De-identified' as _Teacher,

                                                'De-identified' as _Student,

                                                *

                                                Resident Result;

                                              

                                            DROP Table Result;

                                            DROP Table ACL_Users;

                                             

                                            DROP Fields Teacher,Student;

                                             

                                            RENAME Field _Teacher to Teacher;

                                            RENAME Field _Student to Student;

                                             

                                            --------

                                            When I login using ADMIN I able to see 7 rows.

                                            ADMIN.jpg

                                            When I login using userB I able to see 7 rows (userB.jpg).

                                             

                                            userB.JPG

                                            But when I login using userA I able to see 10 rows (userA.jpg). The data for userA gets doubled

                                             

                                            userA.JPG

                                            Please suggest, if I am missing anything

                                        • Re: Data hiding in Qlikview
                                          Amar P

                                          I have tried the sample code but the data gets duplicated if there are multiple rows for a user

                                           

                                          Below is my code:

                                           

                                          UserList:

                                          Load * Inline

                                          [

                                              USERID,School

                                              userA,SchoolA

                                              userB,SchoolB

                                              userA,SchoolD

                                              userC,<ANY>

                                          ];

                                           

                                          Result:

                                          LOAD * Inline

                                          [

                                              School,Teacher,Student,Subject,Result

                                              SchoolA,Anne,Peter,History,80

                                              SchoolB,Simon,Jhon,Maths,70

                                              SchoolC,Tony,Paul,History,58

                                              SchoolA,Stuart,Mathew,Maths,90

                                              SchoolB,Chris,Kai,Science,82

                                              SchoolC,Philp,Andrew,Maths,66

                                              SchoolD,Philp_1,Andrew_1,Maths_1,77

                                          ];

                                           

                                          ACL_Users_Step1:

                                          load Distinct

                                              USERID AS USERID,

                                              'USER' AS ACCESS,

                                              0 AS _FlagIdentified,

                                              School as _UserSchool

                                          Resident UserList WHERE School <> '<ANY>';

                                          Join(ACL_Users_Step1)

                                          LOAD Distinct School as _FactSchool Resident Result;

                                           

                                           

                                          ACL_Users:

                                          NoConcatenate

                                          Load Distinct

                                          USERID,

                                          ACCESS,

                                          _FlagIdentified,

                                          _FactSchool

                                          Resident ACL_Users_Step1 Where _FactSchool <> _UserSchool;

                                           

                                           

                                           

                                          Concatenate

                                          Load Distinct

                                          USERID,

                                          ACCESS,

                                          1 as _FlagIdentified,

                                          _FactSchool

                                          Resident ACL_Users_Step1 Where _FactSchool = _UserSchool;

                                           

                                           

                                           

                                          DROP table ACL_Users_Step1

                                          ;

                                           

                                          ACL_Users_ANY:

                                          NoConcatenate

                                          LOAD Distinct

                                              USERID as USERID,

                                              'USER' AS ACCESS,

                                              1 AS _FlagIdentified,

                                              School as _UserSchool

                                          Resident UserList WHERE UPPER(School) = '<ANY>';

                                           

                                          Join (ACL_Users_ANY)

                                          LOAD distinct School as _FactSchool Resident Result;

                                           

                                          Concatenate (ACL_Users)

                                          LOAD Distinct USERID,ACCESS,_FlagIdentified,_FactSchool Resident ACL_Users_ANY;

                                           

                                           

                                           

                                          DROP table ACL_Users_ANY;

                                          DROP Table UserList;

                                           

                                          SST:

                                          NoConcatenate LOAD Distinct

                                              Upper(USERID) as USERID,

                                              Upper(ACCESS) as ACCESS,

                                              Upper(_FlagIdentified & '--' & _FactSchool) AS ACCESS_KEY

                                          Resident ACL_Users;

                                           

                                           

                                          SECTION Access;

                                          SA:

                                          NoConcatenate LOAD Distinct

                                              Upper(USERID) as USERID,

                                              Upper(ACCESS) as ACCESS,

                                              Upper(_FlagIdentified & '--' & _FactSchool) AS ACCESS_KEY

                                          Resident ACL_Users;

                                            

                                          SA:

                                          LOAD DISTINCT

                                              'ADMIN' as USERID,

                                              'ADMIN' as ACCESS,

                                              1 & '--' & Upper(School) as ACCESS_KEY

                                          Resident Result;

                                          SECTION Application;

                                           

                                           

                                          FACT:

                                          LOAD

                                          Upper(_FlagIdentified & '--' & School) A

                                          S ACCESS_KEY,*;

                                           

                                          LOAD

                                              1 as _FlagIdentified,

                                              Teacher as _Teacher,

                                              Student as _Student,

                                              * Resident Result;

                                           

                                          Concatenate(FACT)

                                          LOAD UPPER(_FlagIdentified & '--' & School) AS ACCESS_KEY,*;

                                           

                                          LOAD

                                              0 AS _FlagIdentified,

                                              'De-identified' as _Teacher,

                                              'De-identified' as _Student,

                                              *

                                              Resident Result;

                                            

                                          DROP Table Result;

                                          DROP Table ACL_Users;

                                           

                                          DROP Fields Teacher,Student;

                                           

                                          RENAME Field _Teacher to Teacher;

                                          RENAME Field _Student to Student;

                                           

                                          --------

                                          When I login using ADMIN I able to see 7 rows.

                                          ADMIN.jpg

                                          When I login using userB I able to see 7 rows (userB.jpg).

                                           

                                          userB.JPG

                                          But when I login using userA I able to see 10 rows (userA.jpg). The data for userA gets doubled

                                           

                                          userA.JPG

                                          Please suggest, if I am missing anything