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!
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.
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 :)
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..
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.
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()}".
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
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
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)
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.
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!
@@Praveenkumar-zn5wi Yes you can :) Check my video on Data Factory triggers, it shows demo how to trigger data factory from Logic Apps. ruclips.net/video/uF3LOCVFHkw/видео.html
It returns globally unique string. Check function reference for details: docs.microsoft.com/en-us/azure/logic-apps/workflow-definition-language-functions-reference#guid
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
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
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.
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.
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 :)
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.
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,
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?
@@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
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!
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!
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 :)/
@@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?
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.
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?
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.
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!!
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 ;)
@@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?
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.
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?
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/
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!
I appreciate that!
I am starting with logic apps it is really amazing, thank you so much
Best of luck! Glad to help!
I am just starting with Logic Appa, and this is really helping me. Thank you so much !
Great to hear!
Thanks Adam for step by step demo. You really make it easy to understand.
My pleasure!
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.
Glad it was helpful! Tahnks!
Cool videos with clear short explanations Keep it UP
Thanks! 👍
Covered the important concepts. Thank you :)
Very well explained and really helpful to understand the concept 🙏
Glad to hear that!
Great video Adam!
Thanks!
Excellent Video Adam
Many thanks!
Great stuff Adam. Like the video
Awesome! Cheers!
thanks a lot for your valuable explanations. Respect your effort 👏
It's my pleasure, thanks!
Very well explained able to understand the concept very clear thanks for the uploading such videos
Thanks :) nice to hear that.
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 :)
Thanks Vijay, will do. Currently uploading at rate of 1 video per week. Every Monday, stay tuned for more :)
@@AdamMarczakYT Excellent, Adam. Thank you :)
Very Nicely Explained the concepts .....Thanks for the video.
Thanks! :)
Hello you are doing great job thank you
Thank you too
Thanks ...Adam ,,I like your videos and do more videos on .Net Microsoft tech's
More to come! Thanks!
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..
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.
@@AdamMarczakYT Thanks for the clarification.. so you mean even though you pasted guid() inside the field it would work..?
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()}".
@@AdamMarczakYT okay that makes sense...thank you !
Great great stuff!
Thank you!
You are Genius ! Thank you
😁 i'm not but thanks
well explained
thanks!
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
Select "..." three dots on blob trigger in the logic app and disable spliton setting. This will run logic app in batches. Thank you.
I like the fast forw session. please do the same so that u can cover more on each services.
Thanks :)
@@AdamMarczakYT an video for azure service bus ?
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.
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
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)
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.
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!
excellent
Thank you! Cheers!
Well explained. Can you please make a video on consuming rest api with dynamic parameters...
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.
@@AdamMarczakYT Thanks.. Also can we trigger Data Factory pipe line from Logic app?
@@Praveenkumar-zn5wi Yes you can :) Check my video on Data Factory triggers, it shows demo how to trigger data factory from Logic Apps. ruclips.net/video/uF3LOCVFHkw/видео.html
What is guid() here and how is it different from other functions? Can anyone explain briefly?
It returns globally unique string. Check function reference for details: docs.microsoft.com/en-us/azure/logic-apps/workflow-definition-language-functions-reference#guid
Thanks Adam!
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
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
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.
Many Thanks Adam!
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.
Good. Thanks a lot
Thanks :)
Nice video Adam!
Can I use "When a file is added or modified" to check multiple folders for a new file?
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 :)
Thanks Adam!
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.
Thanks! Feel free to check my ADF trigger video which shows execution of ADF pipeliens from logic apps.
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,
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?
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?
Watch the entire video, it's been explained :) or point me to video time mark where you see the issue
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
What kind of issue are you having?
@@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
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!
@@AdamMarczakYT thank you so much, followed exactly same approach, it worked, appritiate your time👍
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!
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 :)/
@@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?
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.
Adam
Could you create Integrated Account video Series
I might do this in future ;)
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?
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.
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!!
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 ;)
@@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?
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.
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?
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/
it is not working for latest trial version of azure, the table blob is not good.
This tutorial is still valid, there is a new User Interface in logic apps but they still work in the same manner.
you are right, my mistake, it actually works. thanks!