cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
ericonline
Community Champion
Community Champion

Test for Empty Array?

Hello. I'm using the O365Users connector to look up employees in Active Directory. If an employee is NOT in AD, the response is Body: []

I cannot figure out how to determine if "[]" is true using a Condition.

I've tried 10 different Expressions including:

  • empty(array('Search_for_users'))
  • array('Search_for_users', '[]')
  • array('Search_for_users', '/[/]')
  • []
  • '[]'
  • '/[/]'
  • string('[]')
  • and every other iteration I could think of!

flowAd5.png

Can anyone assist?

Thank you

1 ACCEPTED SOLUTION

Accepted Solutions
ericonline
Community Champion
Community Champion

Jeez, this is crazy. Finally got this after spending MANY hours trying every variation...

Apparently taking the Body from Search_for_users and comparing it to an empty() array...

flowAD6.png

Is NOT the same as adding empty() alone...

flowAD7.png

 

This is the type of thing that make learning Flow VERY DIFFICULT.

View solution in original post

18 REPLIES 18
ericonline
Community Champion
Community Champion

Jeez, this is crazy. Finally got this after spending MANY hours trying every variation...

Apparently taking the Body from Search_for_users and comparing it to an empty() array...

flowAD6.png

Is NOT the same as adding empty() alone...

flowAD7.png

 

This is the type of thing that make learning Flow VERY DIFFICULT.

I agree! I ran into the same problem.

I ended up convering the body array to a string and checking if the length was less or eq to 2 ([]):

 

length(string(body('Search_for_users')))

 

Not very elegant but it works for me.

Anonymous
Not applicable

gosh I wish I found this thread earlier... think I've gone through every iteration other than that one

@RezaDorrani also showed me another method for this type of check. Might be of use to folks...

empty(body('Search_for_users')) is equal to true

You don't need to convert to string. you can try use length(body('Search_for_users')) equal 0

Anonymous
Not applicable

Hello! And apologies for hijacking this thread slightly but I have a question on the back of it.

 

You / OP has said "If an employee is NOT in AD, the response is Body: []"

 

However I'm finding that the body for one particular flow / user is [] even though they ARE in AD. And I'm wondering if anyone knows why this might be? I can see the user has a handful of empty data fields within their AD user object (Job Title, Department etc) so my go-to thought is that they are being treated as a non-entity because one of these fields is empty, but I'm not sure if that's definitely the case, or which field if it is the case.

Thank u!, it worked perfectly.

You are correct. Your solution is even better. Thanks. 

Anonymous
Not applicable

Hi,

 

This seems like bug as workaround what I did is create another variable as empty array used that to compare with out value which in our case is body i believe.

 

Heey,

 

I know this is an old issue, but I write this down anyway for people new to this subject.

 

This issue has nothing to do with Flow really and it isn't a bug. The logic you try to apply is incorrect and Flows is correct. The Condition action should have a Boolean (true or false) as input. The function empty(variable x) returns 'true' when variable x is empty or 'false' if it is not empty. In your example you want to check if 'Search_for_users' is empty, but you don’t. You check if the value of ‘Search_for_users’ is equal to the return value of the empty(variable x) function.

 

For example: ‘Search_for_users’ doesn’t have a value (this means it’s value isn’t true or false, but empty). The function empty(‘Search_for_users’) returns true because ‘Search_for_users’ is empty. So what you are asking in your first example is: Is the body of ‘Search_for_users’ equal to the return value of empty('Search_for_users)? NO it isn’t. ‘The body for Search_for_users’ isn’t true but empty. In other words: Is null equal to true --> No it is not.

 

Your second example DOES work because empty(‘Search_for_users’) returns true to the Condition action. In your first example you compare the body value of ‘Search_for_users’ with the return value of the empty() function, which in turn returns false to the Condition action.

 

So your condition should be: empty(‘Search_for_users’) is equal to true.

diavoloplanas
New Member

hi im form mexico im going to try use my best

 

im trying to put this on my flow empty(body('buscar_usuarios_(V2)'))  but always say true i try to use @ but in my flow say that this ewxpression its grong

 

i dont now what to do now 

diavoloplanas_0-1634087304688.png

 

 

i try all the answers in this 

what im doing wrong =(

my result ist not true always its false

diavoloplanas_0-1634088656238.png

 

 

i have this error message

"La función de lenguaje de plantilla "length" espera que su parámetro sea una matriz o una cadena. El valor que se ha proporcionado es de tipo "Object"

 

 

 

Hello diavoloplanas,

 

The error La función de lenguaje de plantilla "length" espera que su parámetro sea una matriz o una cadena. El valor que se ha proporcionado es de tipo "Object" is saying that you gave an object to the length function. However, the length function can only have a string or an array as input. This is logical because the function should be able to count something.

 

String

A string exists out of characters. The string "hello" has 5 characters, so the length function will return 5.

 

Array

An array exists out of elements. The length function counts the number of elements, for example:

["Green", "Blue", "Red"] <-- this array has 3 elements: green, blue and red. So the function returns 3. 

 

Object

For an object there is no way the function understands what the length is because an object can exist out of anything. An object can have multiple properties. For example:

 

{

"Haircolor": "Brown",

"Eyecolor": "Blue",

"Height": 182,

"Age": 33,

"Brothers": ["Jason", "Alex"]

}

 

The properties of this object are: haircolor, eyecolor, height, age and brothers. The length function can count the number of characters in the property haircolor or eyecolor and the number of elements in the property brothers. So you should provide the length-function one of these properties and not the object itself.

 

Empty() function

For the empty() function you can provide an object as a parameter. If the object doesn't have anything (null) the function will return true. If it's not empty (not null) then it will return false. If the empty function tells you that body(buscar_usuarios_(V2)) is empty than the body properly is empty.

 

What to do?

When you run the flow, you can see the output of the Buscar Usuarios (V2) action. Can you please tell me what is in there? That way I might be able to help you.

 

Kind regards,

Civ

I also used length to solve this issue. But, I want to call out that when used on an array, it counts the objects in the array vs the characters. I tested to confirm this by initializing an integer and setting its value to the same function, length(body('Filter_array'))

dangthis_0-1635946457965.png

Which yielded this result

dangthis_2-1635946622781.png

At face value, we see that there is more than 4 characters there. Loading the raw output from the filter array into a JSON viewer, we see there are 4 objects

dangthis_3-1635946785316.png

So to simplify the Flow, you dont have to convert the array to a string, just set your condition to greater than 0

dangthis_4-1635947098150.png

 

Jfranz
Frequent Visitor

Just adding my experience to this since even with all the above awesome information I still struggled. Below is my flow, I have a Get Items that is looking for a specific item in a list. When it doesn't find anything it returns an empty array. So for testing purposes I set my variable to be an array with the results of the filter - that checked out so I created a compose that will return a value of true or false if the array is empty. The function in the compose is 

empty(variables('FilteredArray')) FILTEREDARRAY is the name of my variable. Then in my condition I had to set the outcome of the compose to equal the function false - if I just typed in false it would not work. I think for a cleaner flow I could get rid of the array variable and just achieve this in the condition but it JUST wouldn't go.

 

my workaroundmy workaround

I had a similar issue.  I also recommend checking the "Configure Run After" setting of your Condition Control connector.  In my scenario, the default was for the condition control to only run if the Search for User previous step was successful.   If you want the Condition control to run after Search returns a "user not found", you need to change the Configure Run After setting.   

 

allan_t_0-1697133726739.png

 

The default was to only run after success.  I selected all options, then it ran as expected.  

 

allan_t_1-1697133869321.png

 

 

wcavarra
Regular Visitor

Thank you for taking the time to submit your solution, it was very helpful.

wes_a
New Member

You are better off using the Graph REST API to pull users if possible, Power Automate is a needless waste of time. You can learn Python in the time it takes to figure this out

Helpful resources

Announcements

Win free tickets to the Power Platform Conference | Summer of Solutions

We are excited to announce the Summer of Solutions Challenge!    This challenge is kicking off on Monday, June 17th and will run for (4) weeks.  The challenge is open to all Power Platform (Power Apps, Power Automate, Copilot Studio & Power Pages) community members. We invite you to participate in a quest to provide solutions to as many questions as you can. Answers can be provided in all the communities.    Entry Period: This Challenge will consist of four weekly Entry Periods as follows (each an “Entry Period”)   - 12:00 a.m. PT on June 17, 2024 – 11:59 p.m. PT on June 23, 2024 - 12:00 a.m. PT on June 24, 2024 – 11:59 p.m. PT on June 30, 2024 - 12:00 a.m. PT on July 1, 2024 – 11:59 p.m. PT on July 7, 2024 - 12:00 a.m. PT on July 8, 2024 – 11:59 p.m. PT on July 14, 2024   Entries will be eligible for the Entry Period in which they are received and will not carryover to subsequent weekly entry periods.  You must enter into each weekly Entry Period separately.   How to Enter: We invite you to participate in a quest to provide "Accepted Solutions" to as many questions as you can. Answers can be provided in all the communities. Users must provide a solution which can be an “Accepted Solution” in the Forums in all of the communities and there are no limits to the number of “Accepted Solutions” that a member can provide for entries in this challenge, but each entry must be substantially unique and different.    Winner Selection and Prizes: At the end of each week, we will list the top ten (10) Community users which will consist of: 5 Community Members & 5 Super Users and they will advance to the final drawing. We will post each week in the News & Announcements the top 10 Solution providers.  At the end of the challenge, we will add all of the top 10 weekly names and enter them into a random drawing.  Then we will randomly select ten (10) winners (5 Community Members & 5 Super Users) from among all eligible entrants received across all weekly Entry Periods to receive the prize listed below. If a winner declines, we will draw again at random for the next winner.  A user will only be able to win once overall. If they are drawn multiple times, another user will be drawn at random.  Individuals will be contacted before the announcement with the opportunity to claim or deny the prize.  Once all of the winners have been notified, we will post in the News & Announcements of each community with the list of winners.   Each winner will receive one (1) Pass to the Power Platform Conference in Las Vegas, Sep. 18-20, 2024 ($1800 value). NOTE: Prize is for conference attendance only and any other costs such as airfare, lodging, transportation, and food are the sole responsibility of the winner. Tickets are not transferable to any other party or to next year’s event.   ** PLEASE SEE THE ATTACHED RULES for this CHALLENGE**

Celebrating the June Super User of the Month: Markus Franz

Markus Franz is a phenomenal contributor to the Power Apps Community. Super Users like Markus inspire others through their example, encouragement, and active participation.    The Why: "I do this to help others achieve what they are trying to do. As a total beginner back then without IT background I know how overwhelming things can be, so I decided to jump in and help others. I also do this to keep progressing and learning myself." Thank you, Markus Franz, for your outstanding work! Keep inspiring others and making a difference in the community! 🎉  Keep up the fantastic work! 👏👏 Markus Franz | LinkedIn  Power Apps: mmbr1606  

Copilot Cookbook Challenge | Week 1 Results | Win Tickets to the Power Platform Conference

We are excited to announce the "The Copilot Cookbook Community Challenge is a great way to showcase your creativity and connect with others. Plus, you could win tickets to the Power Platform Community Conference in Las Vegas in September 2024 as an amazing bonus.   Two ways to enter: 1. Copilot Studio Cookbook Gallery:  https://aka.ms/CS_Copilot_Cookbook_Challenge 2. Power Apps Copilot Cookbook Gallery: https://aka.ms/PA_Copilot_Cookbook_Challenge   There will be 5 chances to qualify for the final drawing: Early Bird Entries: March 1 - June 2Week 1: June 3 - June 9Week 2: June 10 - June 16Week 3: June 17 - June 23Week 4: June 24 - June 30     At the end of each week, we will draw 5 random names from every user who has posted a qualifying Copilot Studio template, sample or demo in the Copilot Studio Cookbook or a qualifying Power Apps Copilot sample or demo in the Power Apps Copilot Cookbook. Users who are not drawn in a given week will be added to the pool for the next week. Users can qualify more than once, but no more than once per week. Four winners will be drawn at random from the total qualifying entrants. If a winner declines, we will draw again at random for the next winner.  A user will only be able to win once. If they are drawn multiple times, another user will be drawn at random. Prizes:  One Pass to the Power Platform Conference in Las Vegas, Sep. 18-20, 2024 ($1800 value, does not include travel, lodging, or any other expenses) Winners are also eligible to do a 10-minute presentation of their demo or solution in a community solutions showcase at the event. To qualify for the drawing, templates, samples or demos must be related to Copilot Studio or a Copilot feature of Power Apps, Power Automate, or Power Pages, and must demonstrate or solve a complete unique and useful business or technical problem. Power Automate and Power Pagers posts should be added to the Power Apps Cookbook. Final determination of qualifying entries is at the sole discretion of Microsoft. Weekly updates and the Final random winners will be posted in the News & Announcements section in the communities on July 29th, 2024. Did you submit entries early?  Early Bird Entries March 1 - June 2:  If you posted something in the "early bird" time frame complete this form: https://aka.ms/Copilot_Challenge_EarlyBirds if you would like to be entered in the challenge.   Week 1 Results:  Congratulations to the Week 1 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Copilot Cookbook Gallery:Power Apps Cookbook Gallery:1.  @Mathieu_Paris 1.   @SpongYe 2.  @Dhanush 2.   @Deenuji 3.  n/a3.   @Nived_Nambiar  4.  n/a4.   @ManishSolanki 5.  n/a5.    n/a

Your Moment to Shine: 2024 PPCC’s Got Power Awards Show

For the third year, we invite you, our talented community members, to participate in the grand 2024 Power Platform Community Conference's Got Power Awards. This event is your opportunity to showcase solutions that make a significant business impact, highlight extensive use of Power Platform products, demonstrate good governance, or tell an inspirational story. Share your success stories, inspire your peers, and show off some hidden talents.  This is your time to shine and bring your creations into the spotlight!  Make your mark, inspire others and leave a lasting impression. Sign up today for a chance to showcase your solution and win the coveted 2024 PPCC’s Got Power Award. This year we have three categories for you to participate in: Technical Solution Demo, Storytelling, and Hidden Talent.      The Technical solution demo category showcases your applications, automated workflows, copilot agentic experiences, web pages, AI capabilities, dashboards, and/or more. We want to see your most impactful Power Platform solutions!  The Storytelling category is where you can share your inspiring story, and the Hidden Talent category is where your talents (such as singing, dancing, jump roping, etc.) can shine! Submission Details:  Fill out the submission form https://aka.ms/PPCCGotPowerSignup by July 12th with details and a 2–5-minute video showcasing your Solution impact. (Please let us know you're coming to PPCC, too!)After review by a panel of Microsoft judges, the top storytellers will be invited to present a virtual demo presentation to the judges during early August. You’ll be notified soon after if you have been selected as a finalist to share your story live at PPCC’s Got Power!  The live show will feature the solution demos and storytelling talents of the top contestants, winner announcements, and the opportunity to network with your community.  It's not just a showcase for technical talent and storytelling showmanship, show it's a golden opportunity to make connections and celebrate our Community together! Let's make this a memorable event! See you there!   Mark your calendars! Date and Time: Thursday, Sept 19th Location: PPCC24 at the MGM Grand, Las Vegas, NV 

Tuesday Tip | Accepting Solutions

It's time for another TUESDAY TIPS, your weekly connection with the most insightful tips and tricks that empower both newcomers and veterans in the Power Platform Community! Every Tuesday, we bring you a curated selection of the finest advice, distilled from the resources and tools in the Community. Whether you’re a seasoned member or just getting started, Tuesday Tips are the perfect compass guiding you across the dynamic landscape of the Power Platform Community.   To enhance our collaborative environment, it's important to acknowledge when your question has been answered satisfactorily. Here's a quick guide on how to accept a solution to your questions: Find the Helpful Reply: Navigate to the reply that has effectively answered your question.Accept as Solution: Look for the "Accept as Solution" button or link, usually located at the bottom of the reply.Confirm Your Selection: Clicking this button may prompt you for confirmation. Go ahead and confirm that this is indeed the solution.Acknowledgment: Once accepted, the reply will be highlighted, and the original post will be marked as "Solved". This helps other community members find the same solution quickly. By marking a reply as an accepted solution, you not only thank the person who helped you but also make it easier for others with similar questions to find answers. Let's continue to support each other by recognizing helpful contributions. 

Reminder: To register for the Community Ambassador Call on June 13th

Calling all Super Users & User Group Leaders   Reminder: To register for the Community Ambassador Call on June 13th—for an exclusive event for User Group Leaders and Super Users! This month is packed with exciting updates and activities within our community.   What's Happening: Community Updates: We'll share the latest developments and what's new in our vibrant community.Special Guest Speaker: Get ready for an insightful talk and live demo of Microsoft Copilot Studio templates by our special guest.Regular Updates: Stay informed with our routine updates for User Groups and Super Users.Community Insights: We'll provide general information about ongoing and upcoming community initiatives. Don't Miss Out: Register Now: Choose the session that fits your schedule best.Check your private messages or Super User Forum for registration links. We're excited to connect with you and continue building a stronger community together.   See you at the call!  

Users online (3,072)