I was offered an interesting project to work on by our supply chain manager. The solution is best handled with PowerApps and PowerAutomate. Since the org I work for is firmly tied into the O365 environment everything is easy to connect and integrate. I don't suspect we will need to use a more robust datasource for this in the forseeable future (Multivierse or SQL) Although we host our own SQL servers it still requires higher tier licensing to use the connectors so I really want to avoid this and use SharePoint as a datasource.
This is not an actual coding project since the Power suite uses 'code lite' logic everywhere, but its still something I have been looking at creating for a while. I just needed a clear goal to get this moving. All of my prior PowerApps have been fully SharePoint integrated so this will be the first Canvas App that I will deploy to a live environment.
General Overview from very early stage:
Multi-screen canvas app
Screen 1 - Selection for type of purchase request which will dictate the form.
Screen 2 - General User Info
Screen 3 - Bulk fields for ticket
Screen 4 - Approval process and additional notes
Screen 1 Details: Very very simple with clear large buttons to move down the selected path. Force users down pipeline to limit excess info thats not applicable to the request.
Screen 2 Details: Auto populate most info from O365 where we can, but allow users to change incase they are submitting the ticket on behalf of another user, or want to provide different contact info than what is saved in AD. Also error catching if AD is incorrect the user can change their info.
Screen 3 Details: Unique ticket info. Very simply fields since the process will be used org wide and we need to cater to the lowest denominator. Display only fields relevant to the type of purchase (Multiple form options will likely just put each on a different screen ,so in total we will have ~+3 screens)
Screen 4 Details: Approval Chain/Admin page. Initial Manager approval is selected here. Additional approvals are likely hidden and get populated/triggered later during the process. This page will also have most fields controlled by ACLs (Both visibility attribute as well as the ability to modify) which is normally not possible on a SharePoint form and one of the reasons we want this to be a Canvas app. ACLs seem a little tricky since its not a built-in feature but I believe I can make it work at least well enough for the end goal. Hopefully we don't have to do any hacks to get this to work.
Ticket Updates and Status changes pushing emails through PowerAutomate. We want to have a very clear notice sent to different users at specific points along the way. Initial creation triggers the approval Chain. After approval we push the chain to purchasing. After purchasing we notify the ticket owner and include PO# as well as tracking info. Then, when the purchase is complete we want to further integrate this process to include a chain for training or any policy changes or w/e else may need to be involved in the post-acquisition process. We want this to be 1 contiguous item so we can look back at the entire chain for info if there are any questions at any point along the process.