Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
This forum is where any logged-in member can create a knowledge article.
(Issues within and Overcoming through)
In General, we use section access for Data level, User – sheet or object level security on an application. Here, I came across a scenario which i should restrict multiple fields from different tables. That’s OK.
But during this data Reduction for a particular user, he/she may or may not have data in some Section access Restricted fields. As, we all know that SA will not grant access to users without data or Null () in any of the restricted fields i.e. when strict exclusion is checked under opening tab of document properties.
To overcome this and granting access to app for all users who have at least one data point in sync. We need to concatenate the SA table to each Master table based on the field mapping with each master. There by data will exist in all Masters and section access grants access to users & also this approach will impose nulls into other fields of masters. By this User may not get to see data which is not available, but can have access to all other required areas where data exists without subsiding into access denied initially.
Sample For Creating Above Scenario:
Temp_SA: //This table is being used for concatenating with other Masters and will be dropped at the end. LOAD DEPT,ID_EMP INLINE [ ACCESS, USERID, PASSWORD, DEPT, ID_EMP ADMIN, ADMIN, @123, *, * USER, A, 123, IT, 1 USER, B, 123, SALES, 2 USER, C, 123, NETWORK, 3 USER, D, 123, CC, 4 ]; Section Access; LOAD * INLINE [ ACCESS, USERID, PASSWORD, DEPARTMENT, EMPID ADMIN, ADMIN, @123, *, * USER, A, 123, IT, 1 USER, B, 123, SALES, 2 USER, C, 123, NETWORK, 3 USER, D, 123, CC, 4 ]; Section Application; Dept_Master: LOAD * INLINE [ DEPARTMENT, TurnOver IT, 22 SALES, 33 NETWORK, 455 ]; Concatenate Load DEPT as DEPARTMENT Resident Temp_SA where not exists (DEPARTMENT,DEPT); //For Checking only unavailable data field and concatenating with master. Emp_Master: LOAD * INLINE [ EMPID, IssuesLogged 2, 43433 3, 3222 4, 32243 ]; Concatenate Load ID_EMP as EMPID Resident Temp_SA where not exists (EMPID,ID_EMP); //For Checking only unavailable data field and concatenating with master. DROP Table Temp_SA; // Dropping once Concatenation is done.
Elaborating the above script and data set:
In Above sample data set with Section access mapped, the user “A” is not having any data in Emp_Master to get mapped. Similarly users “B” is not having any data in Dept_Master to get mapped and show case anything in APP.
So, due to strict exclusion checked. When we login with credentials of these both users, will get access denied to app.
For avoiding this we are concatenating the SA Table by calling it in resident with exists condition to all masters with required fields alone, here Where Not Exists condition is used to avoid creating nulls in already available fields by getting concatenated again.
There By using above Concatenation approach with SA, all users will have access to Application at any given point in time. If In case any data level error occurs or if data doesn’t have match required.
PFA QVW and Doc For Ref.
Thanks & Regards,
Hirish V