My problem: A colleague bought a document that can be put on a network with up to 5 workstations accessing it at the same time, and it can't be otherwise shared/saved/etc. If I leave it on our library that can be accessed by the whole company, there's a slight risk that more than 5 workstations could be accessing the document at the same time at one point.
What I'd like to do: Limit the number of users who can view the document at the same time. I'm not trying to stop them from saving the document, that would be on them. I want to respect the demand of the author, just that.
What I tried: Looking around on Sharepoint and searching the Web and Stackexchange. Can't find anything, I think my problem is rather unusual.
Is it possible?
I found a solution that is close enough for me.
Library for the documents
I put the documents on a library accessible by all, but the documents themselves are only accessible to me (total control).
There's a number field. It begins at 0.
Form to ask access to a document
A form (Microsoft Form) allows the user to pick one document and send.
Form-triggered Power Automate
When a user sends the form, it triggers a Power Automate flow.
It takes their email and choice from the form. There's a Switch control to make the document correspond to an ID in the library.
The flow verifies that the number field for that document is not at 5. If it's not, the user gets access (and receives an email from Sharepoint in the process). If it's at 5, they receive a Webex message that the limit has been reached (the “email” action is not working for the moment).
When access is given, it increments the number field by 1.
Scheduled Power Automate
Another Power Automate flow is scheduled at each midnight. It removes access to all documents and sets the number fields back at 0.
Users use a form to ask for access to a document, if 5 access have not been given in the day for the document, they get access for the day. Otherwise, they get a Webex message telling them all access have been given today for that document.