Objective: I have the below requirements and I need to come up with a solution that is the lowest in terms of license cost, yet, easy to build and maintain.
Requirements:
- Anyone in the organization can access a form, like an Invoice with multiple line items, and submit the form for approval. The form can be raised on behalf of another used within the organization.
- The approvers are going to be a single user or a group of users and can be re-assigned (delegation).
- The forms can be approved/rejected or sent back to the requester for more information.
- The form can have additional comments/attachments as and when it passes through each approver.
- The approval workflow in certain stages is dependent on the Invoice value (if above X, by pass person A else go to person B, etc.)
- The user can track all the requests they have raised along with the status.
Solutions I could think of:
- A complete model-driven application with dataverse to store the data. I believe licensing will be an issue since I need to allow access to any user in the organization given that the main form will also be on model-driven framework.
- A canvas app with sharepoint list in the background to manage the data. However, I need to manually build stage-gate approval process and logic and manually build the request approval screens for each user. Minimal licensing cost of all the solutions.
- A canvas app for users to send form request and track their requests. This will be stored in shared point list. I will use power automate to push this data into dataverse. The approvers will have a model-driven application to do their approvals. Here, I have a problem of trying to sync the data especially when the approvers can add more comments. I will need to keep pushing the data between Sharepoint <-> Dataverse so that the canvas app can read from sharepoint and when something happens on the canvas app, I need to push it back to dataverse. Licensing is only applicable to the approvers in this scenario and the approvals is taken care of the model-driven application.
I am open to more suggestions and ideas.