Boost Your Power Automate Skills with Complex Arrays, Select, XML, and Join Techniques

Sdílet
Vložit
  • čas přidán 7. 08. 2024
  • In this tutorial, I'll walk you through a detailed demonstration of how to efficiently identify and manage "team sprawl" in Microsoft Teams using Power Automate, Graph API, and advanced array manipulation techniques. Learn how to leverage the power of Power Automate to repurpose arrays, handle complex data manipulations without using "Apply to each" actions, and much more.
    Intro (00:00): Begin your journey with an overview of what's to come.
    Graph Explorer & Entra ID (01:17): Understand what Graph Explorer and Entra ID are and how we use them.
    Invoke an HTTP Request - First Action (04:03): Witness the execution of our first HTTP request and understand its significance in our Power Automate flow.
    Do Until & Repurposing Data (05:17): Explore the 'Do Until' loop and learn how to repurpose data to boost the efficiency of your Power Automate flow.
    Do Until Review History (09:57): A detailed review of the 'Do Until' loop history, explaining each step for a thorough understanding.
    Using XML and XPath (15:31): Discover how to use XML and XPath to transform data and handle complex array manipulations.
    Creating Parallel Branch (26:27): Learn how to create a parallel branch and understand its role in our Power Automate flow.
    Combining Arrays (32:06): Dive into the process of efficiently combining arrays, optimizing your Power Automate flow.
    Outro (45:55): Wrap up the session with key takeaways and a glance into what's next.
    Make sure to connect with me:
    Join the conversation on Twitter: damobird365
    Follow for updates on LinkedIn: linkedin.com/in/damobird365
    Explore more on the blog: damobird365.com
    Another complex array for Azure App Secrets Azure: • Azure App Client Secre...
    Join Arrays with No Apply To Each: • Power Automate Join or...
    👍 Don't forget to like, subscribe, and hit the bell icon for more insightful Power Automate tutorials!
    #PowerAutomate #GraphAPI #ArrayManipulation #AdvancedTechniques #TechInnovation
    Please buy me a coffee www.buymeacoffee.com/DamoBird365 ☕
  • Věda a technologie

Komentáře • 48

  • @michelhegeraat5430
    @michelhegeraat5430 Před 8 měsíci +2

    learned a lot here Damien. You are a gifted explainer. I also didn't know how I could revert to the old editor, until I saw you do it. :-)

  • @ikas0011
    @ikas0011 Před 8 měsíci +1

    This is really smart and involved. you are showing the limitations of the new designer where it can be bothersome but I truly appreciate your hard work around it. Liked and subscribed!

  • @bikeknife2238
    @bikeknife2238 Před 8 měsíci +2

    I have your channel favorited in my Power Platform/Cool Guys folder. As always, you're providing some insightful techniques in an accessible format. Sometimes I find it difficult to learn more in this space but you've given me a lot to think about with this video. I'm curious if you could have just referenced the compose outside the Do/Until as you can with one inside a loop and avoided the union step. I might be thinking about it the wrong way.
    On the topic of xpath, it's so underrated. You might consider a video on using it's relative path capability. It saved me a lot of hassle with thousands of items where the depth of nesting was unknown. I was excited to see you had some mention of it and also glad to see more examples of 'next link' using Do/Until.

    • @DamoBird365
      @DamoBird365  Před 8 měsíci

      Cheers for the comment and thoughts. The compose method would work for an object, but with this being an array, the result would then be a nested array. Albeit if it’s possible, do let me know, as I’m always learning too. I demo’d the nesting of xpath elements in my video about client secrets, as an app ref can have many expiring keys. Drop me a dm if you’ve got any other ideas. I really appreciate your comments 👍

  • @dougydoe
    @dougydoe Před 6 měsíci +1

    I persevered to the end so I'm one of the super fans. 😂. I'm trying to sharpen my skills regarding Array/Data manipulations with Power Automate so trying to watch most of your flows from 2 plus years ago. Great stuff.

    • @DamoBird365
      @DamoBird365  Před 6 měsíci +1

      You are indeed Doug. Hope you’ve entered my 10,000 subscriber comp 👍

  • @AdiCristea
    @AdiCristea Před 7 měsíci +1

    Again, an epic video! Thank you, Damien! Wishing you and your loved ones a Merry Christmas and a Happy New Year!

    • @DamoBird365
      @DamoBird365  Před 7 měsíci +1

      Thank you Adi. Merry Christmas too.

  • @63huggybear
    @63huggybear Před 5 měsíci +1

    This was very interesting and well thought out. Thank you.

  • @hokemspitter
    @hokemspitter Před 4 měsíci

    Hello again. So, I have the health and services results coming back. However, the issues data "cell" is a jumble of arrays and json-esk text. I have been struggling to come up with a method to grab the data within the "cell" and flatten it in some form (perhaps some sub table within for each issue "cell"?). A part two of this GREAT video explaining how to deal with this would be a life saver and nice too. Thanks again.

  • @josephjojo756
    @josephjojo756 Před 8 měsíci

    Whoa, this approach is quite effective given it doesn't use any foreach loops. Thanks for sharing this! 👍👍

    • @DamoBird365
      @DamoBird365  Před 8 měsíci

      Cheers Joseph, hope it helps you.

  • @MarcinK-wj5js
    @MarcinK-wj5js Před 8 měsíci +1

    This is great :)

  • @NathanMosher
    @NathanMosher Před 5 měsíci +1

    You can join parallel branches from in the settings of the select.
    Just set it so it runs after successful of the two items of the parallel branches.

  • @moyura2
    @moyura2 Před 8 měsíci

    Thank you for sharing another excellent video.

    • @moyura2
      @moyura2 Před 8 měsíci

      Was there a reason for not using the 'Copy Action' for the parallel branch in the new designer, or is it not yet available in your tenant?

    • @DamoBird365
      @DamoBird365  Před 8 měsíci +1

      @@moyura2 it arrived this week 🥳 it would have definitely helped albeit I am still hoping scopes get added to this copy feature.

  • @Scott-lc5kh
    @Scott-lc5kh Před 8 měsíci +2

    I found you can actually merge branches easier in the new designer. They just hid the function lol
    You can select the step that is merging branches, go to its Settings, and under Run After, select the actions that are feeding it.
    Under the old designer, you couldn’t easily merge branches after the fact, you sort of had to go to the bottom, add a step, and then rearrange from the branches to the joined branch as required.

    • @DamoBird365
      @DamoBird365  Před 8 měsíci +2

      That is a brilliant spot and share. Thank you. Just had a play, it also lets you create branching that’s not logical? I can select actions that are way above the logical order of the flow. Doesn’t seem right?

    • @Scott-lc5kh
      @Scott-lc5kh Před 8 měsíci +1

      @@DamoBird365 lol yeah I spotted that too. A bug perhaps? 🤷‍♂️

    • @DamoBird365
      @DamoBird365  Před 8 měsíci

      @@Scott-lc5kh I’ll report it. Genuinely, thanks for sharing 👍

  • @andrewunick8367
    @andrewunick8367 Před 4 měsíci +1

    Great use of xpath - this is a new one for me and will definitely get some use. Is it possible for the xpath query string to return two fields concatenated. I've tried concat and string-join but no joy. E.g. if in your example the array was books an xpath query '/root/values/author/text()' would result in a delimited string of authors and '/root/values/title/text()' a string of titles. Is there an xpath query which would result in a string of both e.g. 'author1 - title1 ; author2 - title2 ; author2 - title3'? Thanks!

    • @DamoBird365
      @DamoBird365  Před 4 měsíci

      You could try concat inside the xpath string or potentially join outside via PowerAutomate. Let me know what works for you. concat(//parentElement/firstName, ' ', //parentElement/lastName)

  • @LOchu-qn6xv
    @LOchu-qn6xv Před 3 měsíci +1

    Thanks

    • @DamoBird365
      @DamoBird365  Před 3 měsíci

      Oh my 🤩 thank you 🙏

    • @LOchu-qn6xv
      @LOchu-qn6xv Před 3 měsíci +1

      @@DamoBird365You're the best on CZcams when it comes to walking through advanced uses of Power Automate. Your videos have helped me a lot!

  • @shomari169
    @shomari169 Před 7 měsíci +1

    I have been a fun of your videos and have had used some of you techniques but supposed i want iterate and update each record, can i still not use apply to each and use filtered array instead?

    • @DamoBird365
      @DamoBird365  Před 7 měsíci +1

      Thanks 🙏 are you asking if you can batch update instead of using an apply to each? There is batching with SharePoint Rest API. I’ve not yet done a video, but you could definitely filter for items that exist and update vs items that don’t exist and create.

  • @garypotter4273
    @garypotter4273 Před 6 měsíci +1

    This is an amazing tutorial - thanks. I am looking to do something similar yet I can't set a variable into the invoke http as my GET is from a custom connector. I do see that I get 250 array length over 3 pages though - it is a 742 array length in total. Around the 9min mark of your video you explain how to do union action - do you have any pointers for how I may be able to do a similar union action?

    • @DamoBird365
      @DamoBird365  Před 6 měsíci

      Are you trying to append pages to an array? You would need your custom connector to accept a position, i.e. 1, 251, 501 and you increment by page size.

    • @garypotter4273
      @garypotter4273 Před 6 měsíci

      The Query Parameters for my custom connector are: search, columns, pageSize, page, orderby and limit.
      I have set the increment variable with the initialised CurrentPage variable to zero and Loop Until with CurrentPage is equal to int(outputs('List_all_Customer_Assets')?['headers/Result-Pages’]). This iterates through the three pages of arrays, yet when I set the variable (not append array as your guid you said not to) and put in the union expression it forms part of the loop and doesn’t append the whole array from all pages into one like yours. I get three separate responses. You made it look so easy 😉

    • @DamoBird365
      @DamoBird365  Před 6 měsíci

      @@garypotter4273 are you getting 3 nested arrays? [[] , [], []] ?

    • @garypotter4273
      @garypotter4273 Před 6 měsíci

      Yes, well I think they are. After the run I can click the next button three times and see each page as an array.

    • @DamoBird365
      @DamoBird365  Před 6 měsíci

      @@garypotter4273 is your history for the compose an nested array [[]] or an array []? You want it to be an array. Your history should give it away.

  • @piotrrusak
    @piotrrusak Před 8 měsíci +2

    Damien, good to know you like Chopin music 😊

    • @DamoBird365
      @DamoBird365  Před 8 měsíci +2

      I visited Poland in 1998 as a teenager on an exchange trip. The girl I stayed with gave me a Chopin CD. I had never heard before but love it.

    • @piotrrusak
      @piotrrusak Před 8 měsíci +1

      @@DamoBird365 Maybe you want to refresh your memories and visit Poland again? There will be a chance to come to Warsaw in 11-12 April 2024 - for CollabDays Poland 2024
      This would be an honor to have you as speaker on this event. I can let you know when C4S will be announced - for now please think about this. Poland changed a lot since 1998 ;-)

    • @DamoBird365
      @DamoBird365  Před 8 měsíci +1

      @@piotrrusak please do let me know. It would be great to be involved if I can.

  • @geralddahl9159
    @geralddahl9159 Před 8 měsíci

    @Damobird365, how do you do it? I agree with the comment about you being a gifted explainer. You look at an expression in a step and clearly ‘see’ what has been summoned and how subsequent steps will be shaped as a result. Ouch, my brain hurts, I can’t keep up. Thanks for the Chopin.

    • @DamoBird365
      @DamoBird365  Před 8 měsíci

      Thanks Gerald, I’m pleased to hear that I am explaining things well.

  • @mk15minut64
    @mk15minut64 Před 8 měsíci +1

    Please work in classic version this is really unclear

    • @DamoBird365
      @DamoBird365  Před 8 měsíci +1

      I need to be future proofing my content, so have to invest in the new designer. The expressions and logic are the same. If you want to see a similar example in classic, check out
      czcams.com/video/EOmsT9KcWxc/video.html

  • @hokemspitter
    @hokemspitter Před 4 měsíci +1

    Hello. Really GREAT STUFF. I have gotten to the point where I am build the semi-colon delimited list of owner emails and keep getting the message that the expression is invalid. Could I bother you to look at this and tell me what I am missing?
    setProperty(item(),'ownersemails', join(xpath(xml(item()?'[ownersemails']), '//mail/text()', ';'))
    It seems okay in the classic designer. Good grief!!!!
    I just made it through the entire video. You have skills sir!!!!
    That expression at the end to join the member array with the owner array was wild. I have never seen that before. Thank you!

    • @DamoBird365
      @DamoBird365  Před 4 měsíci +1

      There’s a bug in the new designer that turns expressions into strings. If you build it in classic, that will work.