Forum Discussion

EKIT415's avatar
EKIT415
Copper Contributor
Nov 24, 2021

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_Drissen's avatar
    Roy_Drissen
    Copper 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

     

     

    • EKIT415's avatar
      EKIT415
      Copper Contributor

      Roy_Drissen 

      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 

      • Roy_Drissen's avatar
        Roy_Drissen
        Copper Contributor

        EKIT415 

        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

         

         

         

         

         

         

         

         

         

         

         

Resources