Nov 23 2021 11:43 PM
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
Nov 26 2021 11:56 AM
@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
Nov 28 2021 05:21 PM
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. Cheers
Sam
Dec 04 2021 04:47 AM
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:
Initial testlist
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
Dec 05 2021 04:25 PM
I have found a bit of a more elegant solution to this.
It is a little bit fiddley and need adjusting depending what is in your list but
here it is
with a trigger control on the when item is modified
getting it to work with a lookup column with multiple selections was a little bit difficult.
but I am now trying to get it to work with a multiple selection choice column and am finding it very difficult...
_api/web/lists/getbytitle('Time Sheet')/items(@{triggerOutputs()?['body/ID']})/versions(
Dec 12 2021 06:17 AM