I'm struggling with something. I have a SharePoint list called "Projects," inside which there's a column named "Department" that holds departmental values. Additionally, I have another SharePoint list named "SystemFunctionality," which contains columns including "Department" and various columns for email types, such as "PermissionAdministrator," "SystemAdministrator," "Users," and "LimitedAccess." Each column represents different levels of access rights. Multiple email addresses are separated by ";".
In the "Department" column of "SystemFunctionality," if the value is "Full Access," and the email matches the user in the same record, the user should see all departments from the "Projects" list in the department combobox, with an added value of "All." However, if the email is associated with a department that does not have "Full Access," only that specific department should be shown.
The system works fine when multiple user emails correspond to a single department (e.g., "XX"). However, when multiple user emails have "Full Access," the combobox displays no values. If there's only one email, the dropdown shows all departments and adds the value "All."
Below the forumla i am using onstart of the app
ClearCollect(
colSystemFunctionality,
SystemFunctionality
);
Clear(colUser);
Collect(
colUser,
Filter(
colSystemFunctionality,
VarUserEmail in Split(PermissionAdministrator,";") ||
VarUserEmail in Split(SystemAdministrator,";") ||
VarUserEmail in Split(Users,";") ||
VarUserEmail in Split(LimitedAccess,";")
)
);
Clear(colDep);
Collect(
colDep,
If(
VarUserEmail in Filter(colUser, Department = "Full Access").PermissionAdministrator ||
VarUserEmail in Filter(colUser, Department = "Full Access").LimitedAccess ||
VarUserEmail in Filter(colUser, Department = "Full Access").Users ||
VarUserEmail in Filter(colUser, Department = "Full Access").SystemAdministrator ,
{ Result: "All" }
),
If(
VarUserEmail in Filter(colUser, Department = "Full Access").PermissionAdministrator ||
VarUserEmail in Filter(colUser, Department = "Full Access").LimitedAccess ||
VarUserEmail in Filter(colUser, Department = "Full Access").Users ||
VarUserEmail in Filter(colUser, Department = "Full Access").SystemAdministrator ,
SortByColumns(
ForAll(
Distinct(Projects, 'Department '),
{ Result: ThisRecord.Value }
),
"Result"
),
Filter(
ForAll(
Distinct(Projects, 'Department '),
{ Result: ThisRecord.Value }
),
If(
";" in colUser.Department,
Find(Result, Concat(Split(Concat(colUser.Department, ";"), ";"), ";")) > 0,
Result in colUser.Department
)
)
));
Note I use colDep in the combobox Item to get the value based on the user.email
VarUserEmail is a varibale for User.email
Thanks a lot my only proble when the is a value with muiltible email which separete by ";" and the department = "Full Access"

Report
All responses (
Answers (