cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
TrentRush
New Member

run single flow with multiple "get user profile"

I want to run a flow that filters data based on "office location" in a users profile and then an email to that person with the html tables created.  I have 7 different "list records" happening with filtered data based on user profile.  I need this to run for about 12 profiles and want to do it in the same workflow and not create 12 workflows with a get user profile.  How can I have the flow run basically 12 times.  The current flow works perfectly with just 1 "get user profile", now to add the other 11 profiles.

 

 

get profile.JPG

Thanks for your help

1 ACCEPTED SOLUTION

Accepted Solutions
Pstork1
Dual Super User III
Dual Super User III

Correct. I use the create array function to create an array of email addresses.  YOu may be submitting yours in some other way. As long as its an array or collection it should work.  Here's what is in my CreateArray.

CreateArray('user1@domain.com', 'user2@domain.com', 'user3@domain.com')


-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.

View solution in original post

32 REPLIES 32
Pstork1
Dual Super User III
Dual Super User III

Add all the UPNs for the different profiles to an array of strings variable.  The create a For All loop to process that array.  finally put the code you want to execute for each user profile inside the array and change the UPN setting in the get user profile to use the current string in the For all, which will contain one of the 12 user's UPNs.



-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.

Thanks Pstork1.  That sounds easy enough.  I have not done an array before, so let me dig into that.  Appreciate the help.

Pstork1 - I am not understanding your instructions as I am new to flows.  Do you an example you can show on to build the array and "loop for all" you are talking about?

Thanks

Pstork1
Dual Super User III
Dual Super User III

see screenshot

screenshot.png



-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.

That makes sense - What is the code within the createarray fx? I am guessing that is where I list all the UPN's that I want the "for each" to pull from.  

 

Createarray(...??)

Pstork1
Dual Super User III
Dual Super User III

Correct. I use the create array function to create an array of email addresses.  YOu may be submitting yours in some other way. As long as its an array or collection it should work.  Here's what is in my CreateArray.

CreateArray('user1@domain.com', 'user2@domain.com', 'user3@domain.com')


-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.

View solution in original post

works great - Thanks for the help

Hi!

 

I ran a similar flow and got an error at the Get user profile step ("NotFound").

 

Some more details...

 

I have a SharePoint list with a people field. Multiple people can be selected. I would like to use flow to get the user profile for each individual. My current actions include:

1) Set an array - I set an array for the people field list.

2) Select email - The people field list has a ton of information so I just selected the email address to use as the UPN in the Get user profile input.

3) Apply to each - input is the 'select email' output

4) Get user profile V2 - input is the same 'select email' output from step 2.

 

When I look at the raw data, the input for the get user profile is one full list of email names. Example:

["a@abc.com", "b@abc.com, "c@abc.com"].

 

The error also occurs when there is only one name in the SharePoint list (e.g. ["a@abc.com"]).

 

Any tips would be greatly appreciated!!

Pstork1
Dual Super User III
Dual Super User III

In Step 4 the input should be the current item which would be the email address, not the array.  The easier way to do it is to skip step 3 and do step 4 the way you are now.  That should add the appropriate Apply to Each around the get user profile.



-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.

Thank you so much! Using the current item worked! My next step was to find the users manager. I used the 'get manager' action with the same current item. Now I'm hoping to join the manager display name back into an array so that I can report it on one line item in my Excel. Any advice on the best way to do this? Do I need to create an array within the apply to each step?

Pstork1
Dual Super User III
Dual Super User III

You can't create an array inside a loop.  But you can create a second array varaiable outside the loop and then append both the userID and managerID to that as an object.  That will give you access to them later.

 



-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.

Thank you! Do you have an example you could share? Or some more specifics on which actions I would use?

Pstork1
Dual Super User III
Dual Super User III

Here's a basic example

1) Initialize an Array and and Object variable

image.png

Now process your user array with a loop.  Inside the loop create an object in the variable with the user and manager's email addresses.  Save that object to the array.

image.png

When the loop exits you have an array of objects with both the User and each manager's email.

 



-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.

Thank you! I'm actually trying to get the manager names only into a list.

 

I am pulling award nominations from a SharePoint list. There can be up to 10 nominees for each nomination. In step 1, you helped me figure out how to get the manager for each nominee. The output exists in an apply to each loop. Now, I need to figure out a way to join the manager content back together so that I have a list (joined by ";") of the managers display name.

 

If I start a new loop, I can't seem to find the get manager information in my dynamic content. Everything I've tried in the output results in an error.

 

Here are two examples of errors I've received:

 

1) When trying to create an array outside of the loop:

Enable concurrency control for the apply to each loop and set its degree of parallelization to 1 when using a Set Variable action inside an apply to each loop. 

 

2) When trying to execute an apply to each inside the loop:

ExpressionEvaluationFailed. The execution of template action 'Apply_to_each' failed: the result of the evaluation of 'foreach' expression '@body('Get_manager_Nominee')?['displayName']' is of type 'String'. The result must be a valid array.

 

Let me know if you have any additional ideas 🙂 Thanks so much!

Pstork1
Dual Super User III
Dual Super User III

The User and manager array variable will be an array of the users and their managers.  Use that as the input to another Apply to each loop to get your list of managers.  Or if you don't actually need the user paired with each manager then just change the previous loop to create a semicolon delimited string of each manager's name as you find it.



-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.

Is there a way to automatically populate the manager name into the variable? I'm doing this on a very large scale so will need to find an automated way to group the manager display name into an array.

Pstork1
Dual Super User III
Dual Super User III

As I said, its essentially the same process as the one I provided the screenshot for above.

 

1) Create a string variable

2) Do the loop to find the manger.  Inside the loop where you find the manager append the manager's name to the string with a semicolon.

 

When you exit the loop you will have a string variable that is a semicolon delimited list of managers.



-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.

Thanks! I'm sorry I need lots of hand holding here 🙂 

 

I've set the string variable.

 

I've created the loop which gets the nominee manager one at a time.

 

I've then 'set variable' for the string using the Office 365 output for manager 'Display Name'.

 

After that I'm not sure exactly how to append the manager's name to a string. What specific action do I need? Everything I've tried results in an output of 1 manager name. I am struggling to combine them into a list when there could be up to 10.

 

Thanks so much!

Pstork1
Dual Super User III
Dual Super User III

Using Set Variable will overwrite the variable for each loop.  You need the 'Append to string variable' action in place of the set variable.



-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.

Helpful resources

Announcements
Process Advisor

Introducing Process Advisor

Check out the new Process Advisor community forum board!

MPA User Group

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group

MBAS on Demand

Microsoft Business Applications Summit sessions

On-demand access to all the great content presented by the product teams and community members! #MSBizAppsSummit #CommunityRocks

Top Solution Authors
Users online (45,321)