Azure Logic Apps Control Actions Tutorial | Loops, Conditions, Parallel Runs

แชร์
ฝัง
  • เผยแพร่เมื่อ 31 ก.ค. 2024
  • Using conditions, loops and parallel execution allows developers to implement much more complex Enterprise Integration scenarios using Azure Logic Apps. All those actions are available through Control Actions group which we will learn all about Today.
    In this episode I will cover basics of Logic Apps Control Actions with live demo of parallel execution, conditions, loops as well as terminate and scope actions.
    Want to connect?
    - Blog marczak.io/
    - Twitter / marczakio
    - Facebook / marczakio
    - LinkedIn / adam-marczak
    - Site azure4everyone.com
    more to come..
    Next steps for you after watching the video
    1. Check logic apps docs
    docs.microsoft.com/en-us/azur...
    2. Check workflow execution docs
    docs.microsoft.com/en-us/azur...
    3. Read Azure Jumpstart if you want to start with Azure and need a subscription marczak.io/posts/2019/07/azur...
    See you next time!
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 102

  • @noealves8400
    @noealves8400 4 ปีที่แล้ว +8

    Hey Adam, one of the things I love the most about your video is that you create all logic aps from scratch every time! and you also show step by step every time. This allow us to learn by repetition! Very good method. I can't wait to see the new videos you'll be creating!

  • @arulmouzhiezhilarasan8518
    @arulmouzhiezhilarasan8518 4 ปีที่แล้ว

    Thanks Adam! Your valuable explanations with step by step demo, really makes us much more easy to understand and working with Azure. I have tried each things that you have explained in this video practically and it really helped me to thing in many ways for problem solving in Azure.

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว

      Glad it was helpful! Tahnks!

  • @meenakshisudhakarok2112
    @meenakshisudhakarok2112 4 ปีที่แล้ว +2

    I am just starting with Logic Appa, and this is really helping me. Thank you so much !

  • @sachinborkar416
    @sachinborkar416 3 ปีที่แล้ว +1

    Thanks Adam for step by step demo. You really make it easy to understand.

  • @chandra4996
    @chandra4996 3 ปีที่แล้ว +1

    I am starting with logic apps it is really amazing, thank you so much

  • @vinothrajendran858
    @vinothrajendran858 2 ปีที่แล้ว

    Covered the important concepts. Thank you :)

  • @khushbugupta5849
    @khushbugupta5849 4 ปีที่แล้ว

    Very well explained able to understand the concept very clear thanks for the uploading such videos

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว

      Thanks :) nice to hear that.

  • @vipin0114
    @vipin0114 3 ปีที่แล้ว +1

    Very well explained and really helpful to understand the concept 🙏

  • @atimuktjain4471
    @atimuktjain4471 4 ปีที่แล้ว

    Very Nicely Explained the concepts .....Thanks for the video.

  • @GiovanniOrlandoi7
    @GiovanniOrlandoi7 3 ปีที่แล้ว +1

    Great video Adam!

  • @DPJFAUG
    @DPJFAUG 3 ปีที่แล้ว

    Great stuff Adam. Like the video

  • @gauravjoshi5054
    @gauravjoshi5054 3 ปีที่แล้ว +1

    thanks a lot for your valuable explanations. Respect your effort 👏

  • @salehalsherif5881
    @salehalsherif5881 3 ปีที่แล้ว +1

    Cool videos with clear short explanations Keep it UP

  • @amitgarg2313
    @amitgarg2313 3 ปีที่แล้ว +1

    Excellent Video Adam

  • @ritikgarg1398
    @ritikgarg1398 3 ปีที่แล้ว

    Great great stuff!

  • @amritarora8897
    @amritarora8897 4 ปีที่แล้ว

    You are Genius ! Thank you

  • @pavankumars9313
    @pavankumars9313 2 ปีที่แล้ว +1

    Hello you are doing great job thank you

  • @vijaykumar1306
    @vijaykumar1306 4 ปีที่แล้ว +1

    Very nice scenarios and step-by-step explanations! Please try to upload more videos for more Azure PasS and SaaS services with same level of quality :)

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว +2

      Thanks Vijay, will do. Currently uploading at rate of 1 video per week. Every Monday, stay tuned for more :)

    • @vijaykumar1306
      @vijaykumar1306 4 ปีที่แล้ว +1

      @@AdamMarczakYT Excellent, Adam. Thank you :)

  • @nimsayunab
    @nimsayunab 4 ปีที่แล้ว

    Good. Thanks a lot

  • @sindhukontham6993
    @sindhukontham6993 ปีที่แล้ว

    Hey Adam, i have a doubt..when we wanna delete any blob in parallel or conditional execution, instead of list of file name why we are selecting list of file path? actually i tried with list of file name first and ended up failing. Wanna know the explanation behind it please.

  • @believeinyourself4266
    @believeinyourself4266 3 ปีที่แล้ว +1

    well explained

  • @aswathsivavaram7861
    @aswathsivavaram7861 3 ปีที่แล้ว +1

    Thanks ...Adam ,,I like your videos and do more videos on .Net Microsoft tech's

  • @rajun1635
    @rajun1635 2 ปีที่แล้ว

    Thanks Adam, amazing video. I am looking for a way to email failed logins reports from azure active directory(Sign in logs) automatically. Is there a way to accomplish this using logic apps or logic analytics? Thanks,

  • @harshit7577
    @harshit7577 2 ปีที่แล้ว

    Hi Adam, I understood the concept, It is really helpful. I have another scenario that how one logic app performs multiple action one by one, how to achieve it? so for example LA first calls to Parsing Azure function (that azure function can call another azure function ) and pass the result to LA and 2) step LA need to validate the data and if it is ok than 3) step need to store in blob so how to achieve this? your gaudiness? Thanks!

  • @ManuelrPM24
    @ManuelrPM24 2 ปีที่แล้ว

    Excellent video, keep up with the outstanding work! I'm having an issue when I click on Go to Resource, the error is Microsoft.WindowsAzure.Storage: Value cannot be null. (Parameter 'connectionString'). any thoughts?

  • @webdeveloperify
    @webdeveloperify 4 ปีที่แล้ว +2

    Nice information. Thank you so much. Can I please ask how to import and export the logic app from one environment to another.
    Thanks in advance.

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว +1

      Hey there are many approaches to do this but one I like recently is using Jeff Hollan's extractor available here: github.com/jeffhollan/LogicAppTemplateCreator

  • @fun_facts168
    @fun_facts168 2 วันที่ผ่านมา

    Hi Adam,
    I am trying to terminate my logic app flow inside for each condition but it is throwing an error of "The operation terminate cannot be used inside a for each"
    Any suggestions

  • @mallinyku
    @mallinyku 4 ปีที่แล้ว

    excellent

  • @mohanreddygottam9535
    @mohanreddygottam9535 4 ปีที่แล้ว +1

    The video is very good and helpful. Thank You
    Are multiple conditions possible in Switch? I mean, while using switch how we can provide multiple conditions ( Ex: A=B or A=C and A=D)

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว

      Thanks! Try doing parallel branches and checking in the branch for conditions. Switch always chooses only 1 path, not multiple ones. It works like that in all programming languages too.

  • @shailavijay1
    @shailavijay1 3 ปีที่แล้ว +1

    Amazing Explanation & demo. Thank you so much. Could u please let me how to run batch of files from blob storage with single Logic App instance in one shot blob trigger

    • @AdamMarczakYT
      @AdamMarczakYT  3 ปีที่แล้ว

      Select "..." three dots on blob trigger in the logic app and disable spliton setting. This will run logic app in batches. Thank you.

  • @sibymathew1802
    @sibymathew1802 4 ปีที่แล้ว +2

    Hi Adam,
    4 clarifications :
    - In parallel executions, would there be a race condition when trying to delete a blob and use the same entity variable to create a log in parallel ? Would there be any benefit in assigning these values to a variable before using it in parallel ?
    - You had copy/pasted guid() directly into the field at 11:41 . I think this will not work if its not added to the "Expression". Am i right ?
    - In the "Until" control there is an option: "Count" within settings. By default this value is 60 and should be increased if our loop goes beyond that.
    - I suppose "Scope" would not be transactional, in the sense reverting any change if an entity has failed within ?
    Thanks again for your wonderful videos..

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว

      Variables are globally scoped so you shouldn't use them in parallel or in parallel loops. If you need local variables use 'compose or parse json' actions or simply call separate logic apps in parallel. Expressions that are pasted directly into the field must be properly formatted. As an excersise copy guid() expression from a field and paste it into notepad, you will see that text was escaped via expression brackets like so @{guid()}. Count in until i maximum amount of loops to ensure you won't do infinite loops by mistake. Scope is just like try/catch in a programming language. Scope is a try block.

    • @sibymathew1802
      @sibymathew1802 4 ปีที่แล้ว

      @@AdamMarczakYT Thanks for the clarification.. so you mean even though you pasted guid() inside the field it would work..?

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว

      I think this no longer works like that. You need to paste either "guid()" string into expression box or paste full escaped expression into the field "@{guid()}".

    • @sibymathew1802
      @sibymathew1802 4 ปีที่แล้ว

      @@AdamMarczakYT okay that makes sense...thank you !

  • @Tharun459
    @Tharun459 4 ปีที่แล้ว

    Good stuff Adam, if we want to implement execution of pipelines in logic apps.. can you share a quick demo on it if possible.. Curious to know how could we implement error logging mechanism of ADF using logic apps..
    Thanks in advance.

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว

      Thanks! Feel free to check my ADF trigger video which shows execution of ADF pipeliens from logic apps.

  • @gopinathrajee
    @gopinathrajee 4 ปีที่แล้ว

    Adam, from my personal account, can I create App Registration and use it in Azure Logic Apps to communicate with Azure Analysis Service. Or do I have to have a tenant of my own?

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว

      You don't need to have your own tenant. Just go to the AD and create the app. I have article on this feel free to check it out marczak.io/posts/2019/06/logic-apps-refresh-analysis-services/

  • @sudheerk3753
    @sudheerk3753 2 ปีที่แล้ว

    Hi Adam, This is Sudheer. I need one help in logic app I want to create a logic app where there are multiple files in multiple folders how can I create a condition where it will go to find it in nested loop. If you don't mind can you please help me with this.

  • @siddhantsingh275
    @siddhantsingh275 3 ปีที่แล้ว

    Hey Adam, you uploaded an image file and a zip file (2 files) in the condition demo. Why did it only pick up the image file?

    • @AdamMarczakYT
      @AdamMarczakYT  3 ปีที่แล้ว

      Watch the entire video, it's been explained :) or point me to video time mark where you see the issue

  • @techwithazam6992
    @techwithazam6992 4 ปีที่แล้ว

    Great content Adam and very precise explanation! I have a use case in which I want to create a trigger on a collection of blobs created in a specific container, since generally even if we upload 3 files in a container, 3 triggers will be fired... i want to get one trigger fired, so that, in logic apps, I can read file names and addresses of all those files (let's suppose 3), and then to pass on these file names to data factory which reads these files and inserts in a database. Kindly let me know how such a multi-blob trigger can be created! Thanks

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว

      Thanks. For batch processing simply click on the three dots "..." on the trigger and unselect spliton option. Once you do it trigger will return a list of blobs instead of one.

    • @techwithazam6992
      @techwithazam6992 4 ปีที่แล้ว

      Many Thanks Adam!

  • @tipums123
    @tipums123 3 ปีที่แล้ว

    Nice video Adam!
    Can I use "When a file is added or modified" to check multiple folders for a new file?

    • @AdamMarczakYT
      @AdamMarczakYT  3 ปีที่แล้ว +1

      Blob storage doesn't have folders. It's a flat hierarchy of files in a container. If your file name consists slashes like /demo/test/myfile.csv then demo and test will be displayed as folders but they are not folders, just virtual ones. So setting when file is added or modified then it will work for all files and virtual folders in the container. Thanks for watching :)

    • @tipums123
      @tipums123 3 ปีที่แล้ว

      Thanks Adam!

  • @satyateja688
    @satyateja688 4 ปีที่แล้ว

    Adam, very well explained. I have scenarios like multiple approval processes using logic apps. I have 2 approvers everyone should approve. if anyone has rejected, the request got rejected. I have been tried for single approval it is working fine. could you give me some inputs for the multi approval process?

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว

      Logic App approval flows are very simplistic. You need to built that logic yourself. I probably would use parallel action block and send two approval emails. If they both complete then it's approved. If one of them is completed I'd check if it was rejected, in which case I'd finish the run earlier. It can be done.

  • @vaasu
    @vaasu 4 ปีที่แล้ว

    Adam, Awesome presentation on Logic Apps. Can we call SaaS Rest API's through Logic Apps and what all the steps we should create if you want to extract data from Rest API to blob storage? Thanks in Advance!

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว

      Hey. You can start with schedule based logic app and use HTTP request block to query rest api and download data. Saving to blob is fairly easy from that point onward :)/

    • @vaasu
      @vaasu 4 ปีที่แล้ว

      @@AdamMarczakYT Thanks Adam! What is the best approach to call from external SaaS REST API to Azure SQL DB - for exraction through ADF or Logic Apps which is more reliable if we need real time streaming from API's to Azure SQL Database?

  • @jagkoth
    @jagkoth 4 ปีที่แล้ว

    I like the fast forw session. please do the same so that u can cover more on each services.

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว

      Thanks :)

    • @jagkoth
      @jagkoth 4 ปีที่แล้ว

      @@AdamMarczakYT an video for azure service bus ?

  • @adityashrivastava860
    @adityashrivastava860 4 ปีที่แล้ว +2

    What is guid() here and how is it different from other functions? Can anyone explain briefly?

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว +1

      It returns globally unique string. Check function reference for details: docs.microsoft.com/en-us/azure/logic-apps/workflow-definition-language-functions-reference#guid

    • @adityashrivastava860
      @adityashrivastava860 4 ปีที่แล้ว

      Thanks Adam!

  • @Praveenkumar-zn5wi
    @Praveenkumar-zn5wi 4 ปีที่แล้ว

    Well explained. Can you please make a video on consuming rest api with dynamic parameters...

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว +1

      Thank you. I will definitely do more videos on Logic Apps, in fact since this is my favorite service in Azure I've got some cool episodes in plans.

    • @Praveenkumar-zn5wi
      @Praveenkumar-zn5wi 4 ปีที่แล้ว

      @@AdamMarczakYT Thanks.. Also can we trigger Data Factory pipe line from Logic app?

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว

      @@Praveenkumar-zn5wi Yes you can :) Check my video on Data Factory triggers, it shows demo how to trigger data factory from Logic Apps. th-cam.com/video/uF3LOCVFHkw/w-d-xo.html

  • @snehalgawari4258
    @snehalgawari4258 4 ปีที่แล้ว +1

    Hi, I am struggling to create logic app, which is having http request and in request we need to decide whether to read request or write request

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว

      What kind of issue are you having?

    • @snehalgawari4258
      @snehalgawari4258 4 ปีที่แล้ว +1

      @@AdamMarczakYT Hello Adam, thank you so much for reply,
      Request which we are going to make to http are :
      1. Read from Db
      2. Write to Db
      For now passing one element which checks json element RequestType,
      -Read or
      -write
      At payload I have passed json for write request
      So true part is getting executed
      At false part I am expecting to execute read json but as payload is different it is throwing bad request which is obvious ..
      Still finding out ways

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว +1

      You can supply JSON schema to HTTP request body so that RequestType is available in later steps as variable or use TriggerBody() expression and get RequestType from it. It would probably be something like TriggerBody()?['RequestType'] (typing from memory so might be incorrect). And then simply do condition on it. Best of luck!

    • @snehalgawari4258
      @snehalgawari4258 4 ปีที่แล้ว

      @@AdamMarczakYT thank you so much, followed exactly same approach, it worked, appritiate your time👍

  • @KrishnaList
    @KrishnaList 4 ปีที่แล้ว +1

    Adam
    Could you create Integrated Account video Series

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว

      I might do this in future ;)

  • @gopinathrajee
    @gopinathrajee 4 ปีที่แล้ว +1

    Just so that others are also aware. The Logic App UI is not good at simple error checking.
    The different emails allowed are Office365 and Outlook. Outlook here means either outlook.com or hotmail.com. I was testing with my hotmail id and later had to switch to gmail to play with send and recieve ids. It took me quite sometime to figure out the app is not working because I had my gmail account. The app even did not error when I added the gmail account and when it executed.
    I spent several hours troubleshooting only to realize my silly mistake!!

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว

      Yea! A common mistake indeed :) I think this one was returning unauthorized issue which indeed is a not so well descriptive. Thanks for sharing your case with others here ;)

    • @gopinathrajee
      @gopinathrajee 4 ปีที่แล้ว

      @@AdamMarczakYT From the Output, how do we capture various parts of it into variables that can be further used in the next step? The next step is a an Email Action step that would send out emails mentioning that it connection succeeded or failed. If it succeeds, in the output portion of the window, I get a status code of 200 along with a some json string in the Body section.
      Is there a way to capture these two and use them in the email step?

    • @AdamMarczakYT
      @AdamMarczakYT  4 ปีที่แล้ว

      To parse outputs into variables use Parse JSON action or initialize variable action, parse json is more suited to your scenario. To build your own objects (complex types) use compose action.

  • @joyyoung3288
    @joyyoung3288 3 ปีที่แล้ว

    it is not working for latest trial version of azure, the table blob is not good.

    • @AdamMarczakYT
      @AdamMarczakYT  3 ปีที่แล้ว

      This tutorial is still valid, there is a new User Interface in logic apps but they still work in the same manner.

    • @user-eg1ss7im6q
      @user-eg1ss7im6q 3 ปีที่แล้ว

      you are right, my mistake, it actually works. thanks!