cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
tagustin2020
Impactful Individual
Impactful Individual

Get Column Changes - Filter an Array

@tom_riha 

 

Hello Tom,

 

I originally tagged Scott on this post since he has helped me out before, but he may be unavailable. I'm really struggling with this flow and it is the last thing I need to accomplish before launch so I'm wondering if you can help me figure out what I am doing wrong.

 

My goal is to send an email that includes which columns have changed in the attached request form pdf. The form has a lot of fields, so I'm hoping to save them from having to find the needle in the haystack. If you scroll through the screenshots below, you will see that information is flowing along until the Filter array step where I get a blank result back. Can you spot what I am doing wrong and help me out? I would really appreciate it. Teresa

 

FlowSteps.png

 

I was getting a message that the output of the "Get changes" step was an object and that I needed to create an array. Here is the expression used in the Create array step. I chose the body option because the Get changes step outputs a body section. I've also tried connecting to the "Has Column Changed:" dynamic option (screenshot below) which supposedly only returns column info that has changed, but it hasn't worked out for me as all of the columns are still returned regardless of whether they are true or false.

 

CreateArrayExp.png

 

Here is a snapshot of the HasColumnChanged wildcard option I referred to above.

 

haschanged.png

 

Here is the expression used in the Filter array step. There is only one "ColumnHasChanged" reference in the array which I'm guessing is why this expression isn't working. Is there a way to create an array in such a way that flow will iterate through each column name to determine whether or not it has changed? 

 

FilterArrayExp.png

 

Here is the output of the Create array step. Like I said there are a lot of fields.

CreateArraySS.png

Here is out output of the Filter array step. I don't know why nothing is being returned.

 

FilterArraySS.png

1 ACCEPTED SOLUTION

Accepted Solutions
Matthew_Harding
New Member

Hi Teresa,

 

I spent some time replicating this situation and the issue you are hitting is that the "Get File Changes" step returns a response which is not compatible with arrays.

 

After you create an array in your flow, you essentially have one object in your array with a load of properties. What you want is lots of objects with 2 properties; the name of the field and the change value (true or false), at which point the filter array step would work (show me all the objects where change = true).

 

Example of the Output from the Step:

 

Matthew_Harding_8-1628246206365.png

 

 

Example of the format required to allow Filtering:

 

Matthew_Harding_7-1628246143742.png

 

 

I looked at transforming that data using every trick in the book but I could not see a method of re-configuring the data into a suitable format.

 

However there is a way to achieve what you want to do, albeit a less elegant solution. I can't take full credit for it, it's covered in this article.

 

https://wonderlaura.com/2020/08/25/flow-when-a-sharepoint-column-is-updated/

 

I have appended onto to this approach to get to where you need. Essentially you test each field to determine if it changed and build a new Array as you go.

 

This is the overview.

Matthew_Harding_0-1628245704892.png

 

Here I create a new Variable of type Array.

 

Matthew_Harding_1-1628245744739.png

 

Next I create a condition Step and test these outputs from the "Get Changes" step.

 

Matthew_Harding_2-1628245802170.png

 

The painful part is that you need to do this for all your fields, one by one.

 

Now the part I have appended to Laura's solution is this:

 

Matthew_Harding_3-1628245885610.png

 

For the Yes path I append a hard coded object to my array, in this case one new Object with one property of "Field". I don't need anything in the No path.

 

Do this for several fields:

 

Matthew_Harding_4-1628246001404.png

 

In this example I then add a Compose step at the end to see my new Array.

 

Matthew_Harding_5-1628246033662.png

 

The net result of this is a nicely formatted array with only the changed items.

 

 

Matthew_Harding_6-1628246091750.png

 

From here you can then use HTML Tables etc to format your data.

 

I hope this helps!

 

  

View solution in original post

4 REPLIES 4
Matthew_Harding
New Member

Hi Teresa,

 

I spent some time replicating this situation and the issue you are hitting is that the "Get File Changes" step returns a response which is not compatible with arrays.

 

After you create an array in your flow, you essentially have one object in your array with a load of properties. What you want is lots of objects with 2 properties; the name of the field and the change value (true or false), at which point the filter array step would work (show me all the objects where change = true).

 

Example of the Output from the Step:

 

Matthew_Harding_8-1628246206365.png

 

 

Example of the format required to allow Filtering:

 

Matthew_Harding_7-1628246143742.png

 

 

I looked at transforming that data using every trick in the book but I could not see a method of re-configuring the data into a suitable format.

 

However there is a way to achieve what you want to do, albeit a less elegant solution. I can't take full credit for it, it's covered in this article.

 

https://wonderlaura.com/2020/08/25/flow-when-a-sharepoint-column-is-updated/

 

I have appended onto to this approach to get to where you need. Essentially you test each field to determine if it changed and build a new Array as you go.

 

This is the overview.

Matthew_Harding_0-1628245704892.png

 

Here I create a new Variable of type Array.

 

Matthew_Harding_1-1628245744739.png

 

Next I create a condition Step and test these outputs from the "Get Changes" step.

 

Matthew_Harding_2-1628245802170.png

 

The painful part is that you need to do this for all your fields, one by one.

 

Now the part I have appended to Laura's solution is this:

 

Matthew_Harding_3-1628245885610.png

 

For the Yes path I append a hard coded object to my array, in this case one new Object with one property of "Field". I don't need anything in the No path.

 

Do this for several fields:

 

Matthew_Harding_4-1628246001404.png

 

In this example I then add a Compose step at the end to see my new Array.

 

Matthew_Harding_5-1628246033662.png

 

The net result of this is a nicely formatted array with only the changed items.

 

 

Matthew_Harding_6-1628246091750.png

 

From here you can then use HTML Tables etc to format your data.

 

I hope this helps!

 

  

@Matthew_Harding 

 

Hi Matthew,

 

Thank you so much for the time you spent troubleshooting this issue! I really do appreciate all the time you put in and the detailed explanation which really helps me in my learning process. Your instructions are clear and easy to follow.

 

You are very kind and generous to help a stranger like this. I hope you have a wonderful weekend!

 

Teresa

OliverR-82
Continued Contributor
Continued Contributor

I have the same requirement as @tagustin2020 . In my search on the web I came across a more elegant and efficient solution in article from only 3 weeks ago here. Funnily enough, that article was inspired on another article (reference is mentioned in the article), which, in turn, was inspired by @Matthew_Harding 's reply to this topic 🙂

I don't know why neither of the two authors posted their solution to this topic, but I thought I would share it here instead so other people from this community can benefit from it. All credit goes to the author(s), though.

I have implemented Tom Riha's solution and it works great.

@OliverR-82 

 

Thank you for sharing Oliver. Have a great day! 

 

Teresa

Helpful resources

Announcements
Power Automate News & Announcements

Power Automate News & Announcements

Keep up to date with current events and community announcements in the Power Automate community.

Community Calls Conversations

Community Calls Conversations

A great place where you can stay up to date with community calls and interact with the speakers.

Power Automate Community Blog

Power Automate Community Blog

Check out the latest Community Blog from the community!

Top Solution Authors
Users online (1,500)