OnStart Code -
Set(
varPreloadDone,
false
);
Refresh(EmployeeExitRequests);
ClearCollect(
colMyExitRequests,
Filter(
EmployeeExitRequests,
EmployeeName.Email = User().Email
)
);
Set(
varActiveTab,
"Employee"
);
// Set selected item from deep link (used in Admin/Teams scenarios)
If(
!IsBlank(Param("ID")),
Set(
varThisItem,
LookUp(
EmployeeExitRequests,
ID = Value(Param("ID"))
)
)
);
// Set form mode based on role/deeplink
Switch(
Param("screenname"),
"Submitter",
Set(
varFormMode,
FormMode.View
),
"adminReview",
Set(
varFormMode,
FormMode.Edit
),
"",// If no screenname param, handle logged-in employee
If(
!IsBlank(varThisItem.RequestStatus.Value),
Set(
varFormMode,
FormMode.View
),
Set(
varFormMode,
FormMode.Edit
)
),
// Fallback
Set(
varFormMode,
FormMode.Edit
)
);
// Fallback if no ID is passed
If(
IsBlank(varThisItem),
Set(
varThisItem,
First(EmployeeExitRequests)
)
);
// Set Tabs
If(
Param("screenname") = "Submitter",
ClearCollect(
colTab,
{
Name: "Employee Details",
Order: 1
}
),
ClearCollect(
colTab,
[
{
Name: "Employee Details",
Order: 1
},
{
Name: "Manager",
Order: 2
},
{
Name: "Finance",
Order: 3
},
{
Name: "HSEQ",
Order: 4
},
{
Name: "IT",
Order: 5
},
{
Name: "Technical Service",
Order: 6
},
{
Name: "Final HR",
Order: 7
},
{
Name: "Status",
Order: 8
}
]
)
);
// ✅ Mark loading complete (timer handles navigation)
Set(
varPreloadDone,
true
);
Refresh()
and ClearCollect()
in OnStart
to load only the logged-in user's data into colMyExitRequests
, which is used for filtering and performance. - Removed it currentlyThe Timer is needed because Power Apps blocks Navigate()
calls inside OnStart
when you set a StartScreen
. So I use a loading screen + timer to safely move to the form screen after all variables are set. -
Refresh(EmployeeExitRequests);
ClearCollect(
colMyExitRequests,
Filter(
EmployeeExitRequests,
EmployeeName.Email = User().Email
)
);
Stay up to date on forum activity by subscribing.