Approval Process using Power Apps Canvas app, which contain multiple steps and secure the SharePoint

Steel Contributor

I have this simplified business process: -

 
johnjohn_1-1693590559573.png

 

 

Where Users submits a request >> and his/her manager either Approve or Reject.

I do not want to create a single SharePoint list to manage the process, as i want to secure the SharePoint lists, so if users access the SharePoint lists using UI or browser developer tool, they can not modify data they are not suppose to update. such as having a user approving his request on behave of his/her manager.

 

So i am going to do this:-

  1. Create 3 SharePoint lists:-
  • Request list. with these fields:- RequestID, RequestDate, etc.....

  • Approval. with these fields:- ApprovalID, ApprovalAction, etc...

  • RequestApproval. with these fields:- RequestID & ApprovalID & Status & ApprovalManagerEmail.

  1. When a user submits a request >> a workflow will run and will create an Approval item (set the item permission so only the related manager can edit the Approval Item) + create a RequestApproval item and set that only the service account can edit it.

  2. The above approach will work well and secure the back end (the SharePoint lists' items). but what i will suffer from is the ability to build a single gallery inside our power app canvas app, where users can filter the Requests item (from the Request list) based on the Status (which is stored inside the RequestApprvoal List) and/or the ApprovalManagerEmail (which is stored inside the RequestApprvoal List).

now there are 2 ways to build this gallery based on the knowledge:-

  1. to create variables and collections which store the related items from each list and join them and show them inside the gallery, this will have a big issue, is that i will only be able to show 2,000 items and the gallery will not paginate over all the Requests records.

  2. Second approach, is that to add a copy of the Status field and a copy of the ApprovalManagerEmail field inside the Request list and set another workflow which sync their values based on the Status value inside the RequestApproval list and based on the ApprovalManagerEmail field inside the RequestApproval list. i know this will be a pain to sync the values,,, but atleast i will be able to build a gallery which can filter and paginate over all the requests...

any advice on my issue and my suggested solution?

Thanks

0 Replies