Noob to Flow here and haven't yet got my head around the more advanced flows with expressions etc but I'm hoping it's not required for this.
I have a large sharepoint list and I want to create a flow that updates a row in an Excel table if there is a change made to a single field. The field is called Support Level and has 4 options - Light, Minimal, Intermediate & Intensive.
After looking around the community I tried to do it with a Switch but that didn't work and I'm back to looking at Condition where it adds the row if the field is modified but I don't know how to create it. I've seen someone mention "previous" as in the previous value and then "is not equal to" the current value but I can't see how to add this.
Feels like it should be a simple one and I don't need to get too techy I hope!
Hi @mindroomchris ,
Do you want to add the items to different excel worksheets/tables? or is it just one worksheet with one table and different columns that you are working on. I mean to ask is, when the row is updated in excel, do you have a single column for all the support levels where you just want the value or do you have different columns for the different support levels and that is how you want to filter the items and update the rows?
The Excel table is separate and just for this, I've created it to have the Support Level as a single Column, it would be ideal to have this show the previous level and the new one if that can be done. There are other columns on the table too but they aren't part of the modified condition such as date modified, team member and ID.
Understood. So you want to get the previous Support level and the current support level right?
So how the "When an item is created or modified" trigger works is, it gets triggered on the save button and it will NOT retrieve the previous value in case it was modified. So here is a work around for this:
You can create two flows.
1. Use the trigger when an item was created and update the excel row with the details and name the Support Level column as Support level column when created.
2. Use the trigger when an item was created or modified and update the excel row with the details and this time put the updated value to the Support Level column updated.
Note that these two flows will trigger every time an item is created and the columns will be updated accordingly. What you can do is, in the second one, add another action, get row from excel and map it to the current id and check if the Support level columns are equal and if yes, terminate the flow and if no it will update excel.
Hope this Helps!
If this reply has answered your question or solved your issue, please mark this question as answered. Answered questions helps users in the future who may have the same issue or question quickly find a resolution via search. If you liked my response, please consider giving it a thumbs up. THANKS!
Thanks for that yashag, mostly there. The only part that I'd like to fix is that a new record on the Sharepoint list is popping up twice, once with the original support level and then again with the updated support level at the exact same time.
I don't really understand what the "Get A Row" action does so I'm guessing I've made a mistake here somewhere. Appreciate your help getting me this far!
I think I made a mistake by suggesting to create two flows. This is not a good practice. What we will do is,
discard the flow in which the trigger is When an Item is created.
We will modify the When an Item is Created or Modified trigger. In this after the trigger, add an action list rows and we will check of the item already exists in the excel sheet (using the odata filters) and if it does, we will update the Solution Level in the update column and if it does not exist then we create a new row.
Sorry for the inconvenience caused.
Hope this Helps.
Having a look at OData and the filters and I'm a little bit lost. Heading off now so shall check this again when I come in tomorrow.
Thanks for your help, most appreciated 🙂
Seeing as it was accidentally adding the new items into the updated column as well I thought it seemed easy enough to delete the created item flow and just revert back to the one column where I could then create a COUNTIF column in the table to show the amount of times an item has had the support level modified.
I had to remove the GETROW action from the flow which I didn't really understand and it seems to be working for now.
Thanks for all your help on this, I shall look into gaining a better understanding of Flow because it feels a bit like learning guitar - the gap between the beginner stuff and anything more complicated is huge!
EDIT - I see the reasoning for GETROW now and putting it back in!
Hi @mindroomchris ,
It seems you want to update the corresponding row in the excel when an item is modified.
If the item has existed in the excel, update the row, if no, create a new row.
I have made a test on my side, please take a try with the following workaround:
Expression in condition: string(triggerBody()?['ID'])
Community Support Team _ Zhongys
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Thanks for this, I really appreciate the time that you put into it. It's not quite what I'm after though and I don't think the small mod I would make could work.
I have a large sharepoint list where once an item is added I'd like it to be added to an Excel table if one of the columns is set to "Active" and not "Not Applicable". If it is set to Active it'll have a Support Level that isn't "Not Applicable". These items will regularly have other columns updated but I only want the table to be updated if the Support Level changes because I want to track how often and how it changes. So I think I want it to add a new row with the new Support Level. Support Level can be one column, I don't think the previously mentioned 2 are necessary.
I have it doing this just now but my problem seems to be that it is reading the first row in the table where the ID is mentioned and not the last line with the latest Support Level.
I hope that makes sense.
Sorry, that's much closer than I thought it was going to be. I thought update a row would've changed the support level but it did still create a new row.
The only problem seems to be that it will add a new row when other items are changed that aren't connected to the Support Level. I don't want anything to happen in that instance.
EDIT - I'll try to put in another condition at the top to stop this.
Sorry v-zhos-msft, I've added the condition so that it won't create a new record if it doesn't require a Support Level but I do still have the same problem for it adding a new row even if the Support Level hasn't changed.
I'm happy to go with the one column for Support Level but I only want this to update if it's different to the latest entry for that ID.
Sorry to be a pest but can somebody tell me how to resolve this last part so that I can use the flow?
I don't want the Flow to run if the Support Level Column has not changed from the latest entry. I think I have it so it's only searching the first entry on Excel and not the most recently added row. Ultimately I want to be able to count the amount of times a Support Level is changed on an item.
Join digitally, March 2–4, 2021 to explore new tech that's ready to implement. Experience the keynote in mixed reality through AltspaceVR!
Many congratulations to the Season 1 2021 Flownaut Crew!
Power Platform release plan for the 2021 release wave 1 describes all new features releasing from April through September 2021.
Check out the community blog page where you can find valuable learning material from community and product team members!