Skip to main content

Notifications

Power Automate - Using Flows
Unanswered

append an array when failed in a loop

(0) ShareShare
ReportReport
Posted on by

Hello guys,

I'm in a loop to test if users are existing in my organization by using 'Get user profile V2' and test if it is found or not.

if found, I search the ID througth HTTP request and add this ID in my variable arrSiteBRMContact

If not found I have to append an error string AND append my array with ALL the correct email ID.
My apply to each BRM Mail is 

 

split(items('Apply_to_each_row')?['SiteBRMContact'],';')

 

so how to test and append this array when I have only one email in the loop and the result is failed?
For info, an empty multi-person field can be created / updated by sending an array with [0]
So, if no email are correct the final result should be [0] in my point of view? but if we have some correct result, the [0] should not appear in the array result but only the correct IDs should be present.
When i'm in this loop I can obtain good and bad result and it is where I don't know how to manage my array variable
Array problem.jpg

 

My apply to each followed a 'Get Items' to check if the record exists in the sharepoint list. A filter is applied to be sure that only 1 record can be found but when I create my HTTP request depending of my Get items, it power automate add it in a 'apply to each which is not my case but cannot remove it else I cannot save my flow. Any advice on that ?

creation by HTTP.jpg

  • FLMike Profile Picture
    FLMike 30,517 on at
    Re: append an array when failed in a loop

    Hi @DGPowerAutomate 

     

    Apologies I am a little confused so just need to ask a couple of questions and try to answer in parts.

     

    NOTE: you are using a Set variable within an Apply to each, this will cause invalid results unless you turn ON and then set Concurrency (in the settings of that action) to 1. Don't use Sets in an Apply to Each if you have not done this.

     

    First Part

    My apply to each followed a 'Get Items' to check if the record exists in the sharepoint list. A filter is applied to be sure that only 1 record can be found but when I create my HTTP request depending of my Get items, it power automate add it in a 'apply to each which is not my case but cannot remove it else I cannot save my flow. Any advice on that ?

     

    Get items is always going to be an Array, regardless of if you filtered it or not. You would need to change your Access to this data to be something like XXX.value[0]?[ColumnName] or .[ColumnName]

     

    I'd need the name of your stuff to get it exact, but you have to use the Ordinal position [0] to read it, since you know it's just one, otherwise you are going to get a single record array

     

    NOTE: I can see you put the value property there. If you highlight it, copy it and past it into Notepad, it will give you the entire path that you need to append the [0]?[ColumName] to

    but first remove the start and end { } and possibly the @, that copy and pasting will add to it.

    Then take the remainder and add the [0]?[ColumnName]

     

    Example:

    my_get_items[value][0]?[ColumnName]

     

    No Section Of the Did we find the person in AAD

    { email: "emailaddress", id: blank, status:  "failed string" }

     

    Next Part

    I'm in a loop to test if users are existing in my organization by using 'Get user profile V2' and test if it is found or not.

    if found, I search the ID througth HTTP request and add this ID in my variable arrSiteBRMContact

    If not found I have to append an error string AND append my array with ALL the correct email ID.
    My apply to each BRM Mail is 

     

    Ok, wait you are using HTTP Calls to get Ids etc from SharePoint in the Found Id side

    I would do this instead

    1. Do a Get Items

    2. Use a Filter for the Email column I am sure you have

    3. Add a Condition and configure like this

    Left Condition: Length(GetItems dynamic value property)

    Middle Operator: is greater than

    Right Value: 0

     

    no sense in using a premium connector when Get Items would work.

    Now... personally if i understand what you mean I would append in the array

     

    If the Id was found (Yes section of Condition)

    { email: "emailaddress", id: addfoundid, status:  "success" }

    If the Id was NOT found (No section of Condition)

    { email: "emailaddress", id: BlankAs there is no id, status:  "add whatever string you would want" }

     

    Now you have a single Array, that clearly delineates failures and successes AND if no id/user was found in the Right side, after finding the user has a valid account

     


    If I have helped you, I would really appreciate if you please Mark my answer as Resolved/Answered, and give it a thumbs up, so it can help others

    Cheers

    Thank You
    Michael Gernaey MCT | MCSE | MCP | Self-Contractor| Ex-Microsoft
    https://gernaeysoftware.com
    LinkedIn: https://www.linkedin.com/in/michaelgernaey

     

     

     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Microsoft Kickstarter Events…

Register for Microsoft Kickstarter Events…

Announcing Our 2025 Season 1 Super Users!

A new season of Super Users has arrived, and we are so grateful for the daily…

Announcing Forum Attachment Improvements!

We're excited to announce that attachments for replies in forums and improved…

Leaderboard

#1
WarrenBelz Profile Picture

WarrenBelz 145,475

#2
RandyHayes Profile Picture

RandyHayes 76,287

#3
Pstork1 Profile Picture

Pstork1 64,767

Leaderboard

Featured topics

Restore a deleted flow