Hi all,
Hope someone can guide me the right direction.
I want to limit approval to one time only, when specific field is marked as completed and if after some goes add additional detail, it does not start approval again.
Is this possible?
I have already setup approval flow for SharePoint list, on condition when specified field is changed to completed. This does work fine, my issue is that after it is marked as completed but needs to add more detail (when someone forgets), it would send approval request again that is not required for this situation.
Let me know if it's not clear and require more detail.
Thank you for your time.
Solved! Go to Solution.
@Anonymous
Is your column named "Status" and is it a choice column?
I believe you only need one of those set @not(equals(triggerOutputs()?['Status'], 'Done'))
Whit the above it will not run if the Status is set as Done. It will run on all other options, if you only want to run it when it has no status at all then you need to use Null value or multiple not, i have not tried null value.
You always run this when a item is created or modifed?
Do you only want to run it once or multiple times later on?
I just checked mine for an approval looks like this.
Should work just changed to your column and status 🙂
Hi @Anonymous
You could add another condition based on the approval status column, for example.
If status=completed and approval status=not initiated -> Start the flow
If status=completed and approval status=pending -> Don't start the flow
Hope it helps!
Ferran
You can achieve this without adding new conditions, do it in the settings of the trigger. Add the condition there and the flow will only run if that columns name is not completed. Added image for example, you would need to edit it to fit your needs.
Hi Ferran,
I tried to setup the flow pending status, which did work, but when go back to list edit something, it changes status back from Approved to pending and would trigger the approval again.
Thanks
Hi Jimmy,
Thanks for your reply, tried to do this way, but nothing work for me now.
If you have time for advise, I would appreciate.
Column name is 'Status'
Type, Choice: Done, In progress, Has issues.
@equals(triggerOutputs()?['Status']?['value'],'Done')
@not(equals(triggerOutputs()?['Status'], 'true'))
Also to mention, trigger body not available from the Array drop-down, only trigger outputs, maybe something wrong with list.
Hi @Anonymous
Therefore you should follow the @JimmyWork proposed solution.
Regards.
@Anonymous
Is your column named "Status" and is it a choice column?
I believe you only need one of those set @not(equals(triggerOutputs()?['Status'], 'Done'))
Whit the above it will not run if the Status is set as Done. It will run on all other options, if you only want to run it when it has no status at all then you need to use Null value or multiple not, i have not tried null value.
You always run this when a item is created or modifed?
Do you only want to run it once or multiple times later on?
I just checked mine for an approval looks like this.
Should work just changed to your column and status 🙂
Hi Jimmy,
Thanks for your reply, I will try out today.
Q: Is your column named "Status" and is it a choice column? Yes
My goal is that the flow only runs when that specific field is changed and the value is Done.
My challenge is that when someone would go back to the list after marked as Done and add additional detail and flow runs again because it has value 'Done', but it wan't changed it self.
Is it better to setup a rule, that the flow runs only when the value is changed?
If I would setup only two choices (In progress, Done) and when that value is changed it would trigger the flow (regardless what is the value).
And if someone goes back to add extra detail, it would NOT run the flow, unless that field is changed it self.
Does that make sense?
Im not good at explaining clear enough in the first time i guess. Trying to find best solution for this flow.
Thanks
@Anonymous
In my second image you can see Trigger conditions.
My first trigger condition checks the column CaseCategory and it must be equal to Access request, if this is not true my flow will not run.
This is where you can put your requirements for the first part.
"My goal is that the flow only runs when that specific field is changed and the value is Done."
So you would input the specific field that would be changed, I don't know what this can be changed to?
You have two requirements if I understand it correctly.
One is to not start the approval again if the Status column equals Done.
Second requirement is not to run the flow if a certain column is not equal to something, what is this column name and type and what should it be equal to.
First you would check if the certain column contains X, then it would check so Status column is not equal to done.
The second is to stop it running if the Status column is equal to Done.
@not(equals(triggerOutputs()=['body/Status/Value'], 'Done'))
User | Count |
---|---|
88 | |
37 | |
26 | |
13 | |
13 |
User | Count |
---|---|
127 | |
54 | |
37 | |
24 | |
21 |