Hi All,
I have built a Power App for document approval that is connected to a Sharepoint Document Library. A simplified version of the process is:
1. Document Author creates and submits the document
2. Approver 1 reviews and approves the document
3. Approver 2 reviews and approves the document
4. Approver 3 reviews and approves the document
5. Document approved
Power Automate is used to send email notifications to each of the approvers in turn. Power Automate's built in Approval function is not used.
Any of the approvers can use the Power App to request an amendment to the document, in which case it is sent back to the Document Author for it to be amended. It is then sent back to the approver for review. This process is repeated typically 2 or 3 times, for example:
1. Document Author creates and submits the document
2. Approver 1 reviews and approves the document
3. Approver 2 reviews and requests an amendment to the document
4. Document Author amends document
5. Approver 2 reviews and requests an additional amendment to the document
6. Document Author amends document
7. Approver 2 reviews and approves the document
8. Approver 3 reviews and approves the document
9. Document approved
I have now been given a requirement for a 'Stop Clock' function that records the cumulative total time taken for the Author and Approvers to review, request amendments to, and approve the document, similar to how a stop clock works in a game of speed chess/fast chess. In other words, the Author and Approvers would each have a time clock that records the time where the document is 'waiting' on them to review/amend/approve.
My question is, what is the best way to build this functionality using Power Apps/Power Automate/SharePoint?
The only way I can think of is to have a lengthy series of columns in SharePoint which capture a date time stamp for the author and approvers each time they approve/request an amendment to the document (up to a max of e.g. 3 amendment requests for each approver), then I can bring this data into a Power BI report to calculate total time etc.
However, is there a better way of doing this?