Forum Discussion
List modification approval
Hello,
I have a leave request list in sharpoint and I have been able to create a good approval flow for when an item is created. However I would like to create an approval process for when an item is modified.
what I can do is
When an Item is modified starts approval process
if yes then nothing happens the modification stays the same
What I am having serious trouble with is how I can delet the modifications that were made if the approval process is rejected. I have not been able to find anyone on the internet that has an example of how this can be done.
Cheers
Sam
- Roy_DrissenCopper Contributor
EKIT415 As an owner of list you are able to change the visibility of columns for users. This means you are able to store old values when a user changes the list, meaning only the columns you design to be visible.
Let's have a simple example:
List A have a Title column and OldTitle column. OldTitle is not visible to the user.
Creation flow: If created approved then OldTitle = null.
Change flow is an automatic flow when item is created or changed.
- first check: is OldTitle null, if yes then cancel flow because the change flow was triggered by creation flow, if no continue
- second check: if OldTitle = Title then cancel flow to prevent recursion.
- thirdly: set approval, if yes then OldTitle = Title. If no Title = OldTitle
If you give me more context I make the flow for you. It also depends a bit on your use case
- EKIT415Copper Contributor
Hi Roy,
I'm not sure how I would make the 'Old column'. also does that mean I would have to make a separate flow for every single column in the list?
This is the form that I have. When an item is created it starts a leave request process. then I have an issue that I want to create an approval process if this form is edited.
So using when item is modified - start approval process - if approved then keep the edits - if declines remove the edits.
I'm not sure if that is the kind of context that you wanted. CheersSam
- Roy_DrissenCopper Contributor
Hi again, thanks for your reply and information.
It was actually an nice case and made me reconsider some of my own flow designs. I will put this case in a vlog which am preparing.
Some assumptions:
- A user must be able to create an item without approval
- A user must get an approval when he/she changes an item
- You as a list owner must be able to roll back to the previous values of an item
Initial testlist
- Test user Athena and member of site (and therefore edit access to list)
- Me as owner (user Roy Drissen) having full control
- The list has a hidden column 'Approved' which is a boolean
- When owner modifies approval is not necessary
Let's start
I will let you take part in my thinking process.
The solution with an old value column only really works when only 1 or 2 columns are in the scope of change. So forget about that one. So I though, let's use version history. Given above assumptions I started to make some 'code' for an automatic flow.
You can get the major version using
int(first(split(triggerOutputs()?['body/{VersionNumber}'],'.')))
Then I ran into several checks which are required to meet the conditions (red: assumptions mentioned above)
Additionally
Then I started to think : this wil become very complicated and probably need to make a locking mechanism to prevent other users to change the item involved. I am actually doing things which SharePoint can do for us. So I looked in the settings and check out the next settings:
This comes close to the functionality you want, without programming anything at all. Users need to be familiar with versioning or you as an owner must restore the version. Additionally you can control who is able to see draft versions.
I hope this is any help.
Alternatively, if you want to resolve this in Power Automate you need to work with a duplicate list.
One list you allow users to make changes via an instant flow (list is read only)
Second list to keep track of changes by using the instant to copy draft items.
This will require some special permissions and will become a bit more complicated.
Any reflexions on this?
Roy