tag:blogger.com,1999:blog-41483448602410195042024-03-19T14:17:30.539+05:30TechFindings...by Maheshkumar TiwariMaheshkumar Tiwari's Findings while working on Microsoft BizTalk, Azure Data Factory, Azure Logic Apps, APIM, Function APP, Service Bus, Azure Active Directory, Azure Synapse, Snowflake etc. It contains tips and tricks, example, sample and explanation of errors and their resolutions from the work experience gained so far. Azure tutorials tips and tricks.Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.comBlogger289125tag:blogger.com,1999:blog-4148344860241019504.post-19031886327808988192023-10-07T13:18:00.002+05:302023-10-07T13:18:56.221+05:30504 Gateway Timeout from Azure Application Gateway while testing Logic App<span style="font-family: verdana; font-size: medium;"><b>{tocify} $title={Table of Contents}</b>
<br />
</span><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Issue</span></b></h3><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">While testing an Interface, started getting following error intermittently</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOcAt7vtPQd_QtA_lQ34n7QvZddSsvTkh92Tix4qEnuGpZKd3OZhCf5pQsa2NjSdIyCr9w9Veb2d3Mo9B3i8AI7zi0UzfTnSkiDWbAHbxN1S213-lzv7D86prs6AJBPVKynroQutsxSoWVaUNk1ZMMXgzPzsIaXlP30blMw4lvPcS1ugOCtrCPHKNEK7M/s867/504%20gateway%20time-out.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="504 Gateway Timeout from Azure Application Gateway" border="0" data-original-height="780" data-original-width="867" height="576" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOcAt7vtPQd_QtA_lQ34n7QvZddSsvTkh92Tix4qEnuGpZKd3OZhCf5pQsa2NjSdIyCr9w9Veb2d3Mo9B3i8AI7zi0UzfTnSkiDWbAHbxN1S213-lzv7D86prs6AJBPVKynroQutsxSoWVaUNk1ZMMXgzPzsIaXlP30blMw4lvPcS1ugOCtrCPHKNEK7M/w640-h576/504%20gateway%20time-out.png" title="504 Gateway Timeout from Azure Application Gateway" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">and for one test case it was continuously </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Why it happened</span></h3><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">The architecture consists of Application Gateway with APIM configured as Backend and Logic app configured as API in APIM.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Upon checking the logic app run history, found that the request were reaching logic app and were getting processed.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">However for one of the test case requests where error was consistent, there was some issue and after retry it used to fail.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">So fixed the issue and started testing again, consistent error scenario was gone but intermittently time out error was thrown.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div><span style="font-family: verdana; font-size: medium;">Application Gateway gives a timeout error in the following scenarios:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><ul style="text-align: left;"><li><span style="font-family: verdana; font-size: medium;">The backend server is not responding. This could be because the server is down, overloaded, or unresponsive for some other reason.</span></li><li><span style="font-family: verdana; font-size: medium;">There is a network issue between Application Gateway and the backend server. This could be caused by a firewall, router, or other network device blocking traffic, or by a problem with the network connection itself.</span></li><li><span style="font-family: verdana; font-size: medium;">The backend server is taking too long to respond. This could be because the server is processing a complex request, or because it is overloaded with requests.</span></li><li><span style="font-family: verdana; font-size: medium;">The Application Gateway timeout setting is too low. By default, Application Gateway will wait <span style="background-color: #fcff01;">20 seconds</span> for a response from the backend server before returning a timeout error. This value can be increased, but it is important to set it to a value that is appropriate for the backend server and the types of requests that it is processing.</span></li></ul></div></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">What to do</span></h3><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">As now all the request were reaching the logic app and also processing was successful , checked the response time and that was the reason.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">The processing time of some logic apps was going above 20 seconds and thus the response time was above 20 seconds.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">So Timeout has to be adjusted.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><div>To set a timeout on the backend of an Application Gateway, you need to configure the request timeout setting in the backend settings. This setting controls the amount of time that Application Gateway waits for a response from the backend server before returning a timeout error.</div><div><br /></div><div>To configure the request timeout setting, follow these steps:</div><div><br /></div><div><ul style="text-align: left;"><li>Go to the Azure portal and navigate to your Application Gateway.</li><li>Click on Settings.</li><li>Under Backend settings, click on the Backend setting that you want to configure the timeout for.</li><li>In the Request timeout section, enter the number of seconds that you want Application Gateway to wait for a response from the backend server before returning a timeout error.</li><li>Click on Save.</li></ul></div><div><br /></div><div>The default timeout value is 20 seconds. You can increase or decrease this value depending on your needs.</div></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><br /></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-45211319161953796982023-09-28T16:53:00.000+05:302023-09-28T16:53:47.147+05:30UnresolvableHostName | unresolvable host name error when using Azure sharepoint connector in Logic app standard which is vnet integrated<b>{tocify} $title={Table of Contents}</b>
<br />
<div><b><br /></b></div><div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Issue</span></b></h3><p style="text-align: left;"><span style="font-family: verdana; font-size: medium;">There was a need to connect to sharepoint in a Logic app standard workflow, but <b>In App(Built in) </b>connector is not available so had to go with<b> Azure Connector.</b></span></p><p style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;"><br /></span></b><span style="font-family: verdana; font-size: medium;">And got an error at runtime, as can be seen below</span></p><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKLp_67Bt7NYzqJwnG1d8tMO0z1LA5dbTPTBG-K615DxwAQuN9Ob9frTWZmbJdRjQ5A9-2DzG_CBe_QlhKOiHF_IZkPNb6gNEzdNFR4haJCUn2feVqG8NdAP3UnUFgmUlHqVP-cuss9aCiZzu858DXNHZ_8zq31eATTfBKX6fhmtl23UrAaN-uH5cZDdg/s973/UnresolvableHost.png" style="margin-left: 1em; margin-right: 1em;"><img alt="UnresolvableHostName" border="0" data-original-height="598" data-original-width="973" height="394" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKLp_67Bt7NYzqJwnG1d8tMO0z1LA5dbTPTBG-K615DxwAQuN9Ob9frTWZmbJdRjQ5A9-2DzG_CBe_QlhKOiHF_IZkPNb6gNEzdNFR4haJCUn2feVqG8NdAP3UnUFgmUlHqVP-cuss9aCiZzu858DXNHZ_8zq31eATTfBKX6fhmtl23UrAaN-uH5cZDdg/w640-h394/UnresolvableHost.png" title="UnresolvableHostName" width="640" /></a></div><br /><p><span style="font-family: verdana; font-size: medium;">Logic App standard comes with two type of Connectors – In App and Azure Connector.</span></p><p><span style="font-family: verdana; font-size: large;">App connectors - These connectors are built into the Logic Apps platform.</span></p><p><span style="font-family: verdana; font-size: medium;">Azure Connectors - These connectors are hosted on Azure and are managed by the Azure team.</span></p><p><span style="font-family: verdana; font-size: large;">More on it can be read here - <a href="https://learn.microsoft.com/en-us/azure/connectors/compare-built-in-azure-connectors" target="_blank">Built-in operations versus Azure connectors in Standard - Azure Logic Apps | Microsoft Learn</a></span></p></div><div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Why it happened</span></b></h3><div><p><span style="font-family: verdana; font-size: medium;">There are a few possible reasons for receiving an "UnresolvableHostName" error when using the Azure SharePoint connector in a VNet-integrated Logic App Standard instance:</span></p><p><span style="font-family: verdana; font-size: medium;"><br /><b>DNS resolution:</b> The Logic App Standard instance is not able to resolve the hostname of the SharePoint site. This could be due to a number of factors, such as a misconfiguration of the VNET DNS settings, or a firewall blocking traffic to the SharePoint site.</span></p><p><span style="font-family: verdana; font-size: medium;"><br /><b>Network connectivity:</b> There is a network connectivity issue between the Logic App Standard instance and the SharePoint site. This could be due to a firewall blocking traffic, or a network outage.</span></p><p><span style="font-family: verdana; font-size: medium;"><br /><b>SharePoint site configuration: </b>The SharePoint site is not configured correctly. For example, the site may not be accessible to users outside of the organization, or the site may be missing the necessary permissions.</span></p><p><span style="font-family: verdana; font-size: medium;"><br /></span></p></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">What to do</span></b></h3><div><b><br /></b></div><div><span style="font-family: verdana; font-size: medium;">Below are few things tried:</span></div><div><span style="font-family: verdana; font-size: medium;">1. Check the Logic App Standard instance logs. The logs may provide more information about the cause of the error. - <span style="color: red;">Not helpful, nothing </span><span style="color: red;">substantial</span></span></div><div><span style="font-family: verdana; font-size: medium;">2.Make sure that the SharePoint site is configured correctly. The site should be accessible to users outside of the organization, and the site should have the necessary permissions. - <span style="color: red;">Nothing wrong here</span></span></div><div><span style="font-family: verdana; font-size: medium;">3.Try using a different SharePoint site. This will help you to determine if the problem is related to the specific SharePoint site that you are trying to connect to. - <span style="color: red;">Got same error</span></span></div><div><span style="font-family: verdana; font-size: medium;">4.Try using the SharePoint connector in a non-VNet-integrated Logic App Standard instance. This will help you to determine if the problem is related to VNet integration. - <span style="color: #2b00fe;">It worked, workflow in Logic app standard which is not integrated with vnet </span><span style="color: #38761d;"> </span></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">So now, left with two things DNS and Firewall</span></div><div><span style="font-family: verdana; font-size: medium;">5. Got the ips/servicetags of sharepoint connector whitelisted in the Firewall - <span style="color: red;">Same error </span></span></div><div><span style="font-family: verdana; font-size: medium;">6.Make sure that the Logic App Standard instance has the correct DNS settings. The DNS settings should be configured to use the DNS servers of your VNET.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Added below configuration settings (app settings)</span></div><div><span style="font-family: verdana; font-size: medium;">WEBSITE_VNET_ROUTE_ALL to 1 - It routes all outbound traffic from LogicApp resource via integration VNET and Subnet.</span></div><div><span style="font-family: verdana; font-size: medium;">WEBSITE_DNS_SERVER to 168.63.129.16 (or) Custom DNS server IP Address - It is used for resolving all host names to Ips. You can set either default Azure DNS IP or Custom DNS IP address.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="color: red; font-family: verdana; font-size: medium;">Still same Error</span></div><div><span style="color: red; font-family: verdana; font-size: medium;"><br /></span></div><div><span style="color: red; font-family: verdana; font-size: medium;">Got into call with the network team, and after troubleshooting got to know that DNS resolution was not happening.</span></div><div><span style="color: red; font-family: verdana; font-size: medium;"><br /></span></div><div><span style="color: red; font-family: verdana; font-size: medium;">And the reason was, we are using Custom DNS server, and entry had to be made for the sharepoint connectors in it.</span></div><div><span style="color: red; font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">After doing that, all worked absolutely fine.</span></div><div><br style="font-family: verdana; font-size: large;" /><br style="font-family: verdana; font-size: large;" /><br /></div><div><b><br /></b></div><div><b><br /></b></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-22955211364921215302023-09-05T20:08:00.006+05:302023-09-19T10:16:20.717+05:30How to configure Logic App Standard workflow behind Azure APIM<b>{tocify} $title={Table of Contents}</b>
<br />
<div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: large;">Introduction</span></b></h3><p style="text-align: left;"><span style="font-family: verdana; font-size: medium;">The feature to directly import from “Create from Azure Resource(Logic App)” is not available for workflows in Logic App (Standard) yet. </span></p><div><span style="font-family: verdana;"><p style="font-size: large; text-align: left;">However, the workflows can be put behind in APIM manually, just need to understand bit of it's semantics.</p><p style="font-size: large; text-align: left;">Below we will see how to do it with an example.</p><p style="font-size: large; text-align: left;"><b>But before that why should we add Logic app in APIM?</b></p><p><span style="font-size: medium;">There are many benefits to using APIM in front of Logic Apps. Here are some of the key benefits:</span></p><p><span><b><span style="font-size: medium;">Security:</span></b> </span><span style="font-size: medium;">APIM provides a number of features to help protect and secure APIs, including API key management, OAuth 2.0 authentication, and rate limiting. This can help to protect your Logic Apps from unauthorized access and misuse.</span></p><p><span style="font-size: medium;"><b>Scalability:</b> APIM can help to scale your Logic Apps by providing a single point of entry for all requests. This can help to improve performance and reliability.</span></p><p><span style="font-size: medium;"><b>Manageability:</b> APIM provides a number of features to help you manage your Logic Apps, including API documentation, analytics, and alerts. This can help you to track usage, identify problems, and make informed decisions about your Logic Apps.</span></p><p><span style="font-size: medium;"><b>Abstraction:</b> APIM can help to abstract the implementation details of your Logic Apps from your consumers. This can make it easier to consume your Logic Apps and can also help to protect your intellectual property.</span></p><p><span style="font-size: medium;"><b>Transformation:</b> APIM can be used to transform the data that is passed between your Logic Apps and your consumers. This can be useful for a variety of purposes, such as converting data formats or adding security headers.</span></p><p><span style="font-size: medium;">Here are some additional benefits of using APIM in front of Logic Apps:</span></p><p><span style="font-size: medium;"><b>Caching:</b> APIM can be used to cache API responses, which can improve performance.</span></p><p><span style="font-size: medium;"><b>Monitoring:</b> APIM provides analytics and monitoring features that can help you track the usage and performance of your Logic Apps.</span></p><p><span style="font-size: medium;"><b>Logging:</b> APIM can be used to log API requests and responses, which can help you troubleshoot problems.</span></p><p><span style="font-size: medium;"><b>Versioning:</b> APIM can be used to version your APIs, which can help you to manage changes to your Logic Apps.</span></p><p style="font-size: large; text-align: left;"><br /></p><h3 style="text-align: left;"><span style="font-size: large;">Creating a solution</span></h3><p style="font-size: large; text-align: left;">For the sake of walkthrough,</p><p style="font-size: large; text-align: left;">i. Create a Logic app standard with two workflows in it </p><p style="font-size: large; text-align: left;">ii. Create API in APIM - which represent Logic APP and configure the workflows as operations in the API</p><h4 style="font-size: large; text-align: left;">1. Create Logic app standard and add multiple workflows in it</h4><p style="font-size: large; text-align: left;">Create a logic app (Standard) and add two workflow</p><p style="font-size: large; text-align: left;"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhruSYUCpX0jDFGFwmjfkZ5OIz1fpvOeBRBFrdEwlKfYSWsBkFmqTCBtvI-F7LF3oArtaEBnEqc8Besgr7DldR3GirqB2gIbDe3D50ZBCPx3ML8Anb5TOL7HqOV-bTXCkSLLLUnzw8QO0XTgYxagKSj-JUsQFCXy5_F0SINisvjg2nPAvX32vcgRUvU1_o" style="margin-left: 1em; margin-right: 1em;"><img alt="Workflow to insert entity in Azure Table" data-original-height="483" data-original-width="733" height="422" src="https://blogger.googleusercontent.com/img/a/AVvXsEhruSYUCpX0jDFGFwmjfkZ5OIz1fpvOeBRBFrdEwlKfYSWsBkFmqTCBtvI-F7LF3oArtaEBnEqc8Besgr7DldR3GirqB2gIbDe3D50ZBCPx3ML8Anb5TOL7HqOV-bTXCkSLLLUnzw8QO0XTgYxagKSj-JUsQFCXy5_F0SINisvjg2nPAvX32vcgRUvU1_o=w640-h422" title="Workflow to insert entity in Azure Table" width="640" /></a></div>Workflow 1- Http trigger based Workflow to insert entity in Azure Table. Save it and capture the url.<br /><br /><p></p><p style="font-size: large; text-align: left;"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjiCJFNPc1T-5vf_GzhjG0euZ_CQvxSe4VWCLu0u4ADNuknnh6_eC7yCHsX7dAyB2RZFeUHBJCrWmQDpJXcB8TKjwXTxqidbKkkRiDgtsb7QrtJtaRjE9OKcokMqIE8aOo4sHPGOaSN0sQ16UluRQaEQ9aUWUVzN8fDIe0Qinbu_OdjX8k2B6X7R6JiQFQ" style="margin-left: 1em; margin-right: 1em;"><img alt="Http trigger based Workflow to update entity in Azure Table" data-original-height="501" data-original-width="748" height="428" src="https://blogger.googleusercontent.com/img/a/AVvXsEjiCJFNPc1T-5vf_GzhjG0euZ_CQvxSe4VWCLu0u4ADNuknnh6_eC7yCHsX7dAyB2RZFeUHBJCrWmQDpJXcB8TKjwXTxqidbKkkRiDgtsb7QrtJtaRjE9OKcokMqIE8aOo4sHPGOaSN0sQ16UluRQaEQ9aUWUVzN8fDIe0Qinbu_OdjX8k2B6X7R6JiQFQ=w640-h428" title="Http trigger based Workflow to update entity in Azure Table" width="640" /></a></div><br />Workflow 2- Http trigger based Workflow to update entity in Azure Table<p></p><p style="font-size: large; text-align: left;">Save it and capture the url.</p><p style="font-size: large; text-align: left;">Following are the url's which we will use in next step</p><p><span style="font-size: medium;">wf1 url - <span style="background-color: #fcff01;">https://tf-poc-la.azurewebsites.net:443/api/</span>lawf-sample1/triggers/When_a_HTTP_request_is_received/invoke?api-version=2022-05-01&sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun&sv=1.0&sig=gr-bCDsemB9Rrup1IHlaOq4Ye7ca8QnOVZHVgzcPCGo</span></p><p><span style="font-size: medium;"><br /></span></p><p><span style="font-size: medium;">wf2 url - <span style="background-color: #fcff01;">https://tf-poc-la.azurewebsites.net:443/api</span>/lawf-sample2/triggers/When_a_HTTP_request_is_received/invoke?api-version=2022-05-01&sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun&sv=1.0&sig=yVqTI7OjlS-DXea0axI9gXlrCTPKISTJT6YIuuMSkus</span></p><p><span style="font-size: medium;">Highlighted in yellow is the base url of workflows and rest is the relative url.</span></p><p><span style="font-size: medium;"><br /></span></p><p style="font-size: large;"><b>Good to know about Base and relative url before we proceed</b></p><p><span style="font-size: medium;">A base URL is the first part of a URL that identifies the protocol and domain name of a website. It is used as a reference point for all other URLs on the website. </span></p><p><span style="font-size: medium;">For example, if the base URL of a website is https://www.example.com/, then all other URLs on that website will begin with https://www.example.com/.</span></p><p><span style="font-size: medium;">A relative URL is a URL that only contains the path to a resource but not the domain name or protocol. It is used to link to resources within the same website.</span></p><p><span style="font-size: medium;">For example, if you are on the page https://www.example.com/products/, and you want to link to the page https://www.example.com/products/shoes/, you can use a relative URL like /products/shoes/ instead of an absolute URL like https://www.example.com/products/shoes/.</span></p><h4 style="font-size: large; text-align: left;">2. Create API in APIM and add operations in it</h4><p style="font-size: large; text-align: left;">First step is to Add an API, select HTTP - which lets us manually define Http api</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsmwZwGLoO8eDhkZmYY50A1onOSWzSD6y0-PSt1YcGlYIoFj26nsByxvFHBMTQ5Ttud4VJxGUtKsgzrS67F2S4VLIN88rs70iLpp6jka4mHjDY9Em6_nYHp7ER9wT9bjdOjEq_XDRgAcRNHbNlKm12OmNnRo9-9lQkPERc9waXFX6BpvCcfDq58-lONjg/s1407/Add%20API%20in%20APIM.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Add an API in Azure APIM" border="0" data-original-height="832" data-original-width="1407" height="378" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsmwZwGLoO8eDhkZmYY50A1onOSWzSD6y0-PSt1YcGlYIoFj26nsByxvFHBMTQ5Ttud4VJxGUtKsgzrS67F2S4VLIN88rs70iLpp6jka4mHjDY9Em6_nYHp7ER9wT9bjdOjEq_XDRgAcRNHbNlKm12OmNnRo9-9lQkPERc9waXFX6BpvCcfDq58-lONjg/w640-h378/Add%20API%20in%20APIM.png" title="Add an API in Azure APIM" width="640" /></a></div><br /><p style="font-size: large; text-align: left;">Provide Name and API URL suffix(optional), this will form the base url of the API</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSMdrNETWi7cPBrbYUb3sw1wLb728Ua09QqHLlUFA76jyIxPOQcH1uXbmZFW-g9w_to-6YSXuGLQNAxGERpSIXUc7q3sZMa5EY8C49YdSOBMaJn6uWEaGTMaaPFlG8Wi1dUw3-TjysQX95UrwuNF4hQHrjuIslAJkEHaHEtrkcB8wCnbnPGUzxkZ_dgq0/s898/Create%20API%20in%20APIM.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Create a HTTP API in APIM" border="0" data-original-height="414" data-original-width="898" height="296" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSMdrNETWi7cPBrbYUb3sw1wLb728Ua09QqHLlUFA76jyIxPOQcH1uXbmZFW-g9w_to-6YSXuGLQNAxGERpSIXUc7q3sZMa5EY8C49YdSOBMaJn6uWEaGTMaaPFlG8Wi1dUw3-TjysQX95UrwuNF4hQHrjuIslAJkEHaHEtrkcB8wCnbnPGUzxkZ_dgq0/w640-h296/Create%20API%20in%20APIM.png" title="Create a HTTP API in APIM" width="640" /></a></div><br /><p style="font-size: large; text-align: left;">Next, we add two operations</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr5V8pV6XAi2tBThAZwnMOZrLuoV5zhz72RVT-3y3JtpiSydhKcqVrx4O347qltdrkZv5zLqN28zH501zjYMD-TQ4Qt1fLooJ3dy6h17bQnM47iy8SkG7nd8fRdW658kivczE4qnpsEM-6dYhJ8QBNt3ern9SYrNPbtLDx49l3tQydHOo-_cirHKbUaqM/s889/Add%20operations%20in%20API.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Add operations in API" border="0" data-original-height="637" data-original-width="889" height="458" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr5V8pV6XAi2tBThAZwnMOZrLuoV5zhz72RVT-3y3JtpiSydhKcqVrx4O347qltdrkZv5zLqN28zH501zjYMD-TQ4Qt1fLooJ3dy6h17bQnM47iy8SkG7nd8fRdW658kivczE4qnpsEM-6dYhJ8QBNt3ern9SYrNPbtLDx49l3tQydHOo-_cirHKbUaqM/w640-h458/Add%20operations%20in%20API.png" title="Add operations in API" width="640" /></a></div><br /><p style="font-size: large; text-align: left;">First operation - InsertEntity</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL50SYkIHQUPopMne4-h7UIPp0Uk2bDE4vH_hZKeSgz70dM8giSoa3DkLOGlYR5ZvlRaAlKqtEyABN22gEEVV8n9V4LwfH_F5RwCX9Bm9IL21eHn_ksA_H9nwFhvVCE4Gbav9sLi32Acis3TwbKj8UkMVvWRSHwPibhNkFF8xvEsokCeCrYfz-WVYmzxo/s1237/Add%20insertentity%20in%20operation.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Add insertentity in operation" border="0" data-original-height="465" data-original-width="1237" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL50SYkIHQUPopMne4-h7UIPp0Uk2bDE4vH_hZKeSgz70dM8giSoa3DkLOGlYR5ZvlRaAlKqtEyABN22gEEVV8n9V4LwfH_F5RwCX9Bm9IL21eHn_ksA_H9nwFhvVCE4Gbav9sLi32Acis3TwbKj8UkMVvWRSHwPibhNkFF8xvEsokCeCrYfz-WVYmzxo/w640-h240/Add%20insertentity%20in%20operation.png" title="Add insertentity in operation" width="640" /></a></div>Give a Name , select method as Post and against URL give </span><span style="font-family: verdana;">name which depicts the </span><span style="font-family: verdana;">purpose, like here </span><b style="font-family: verdana;">/insertentity </b></div><div><span style="font-family: verdana;"><p style="font-size: large; text-align: left;">Second operation - UpdateEntity</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzeHgz3dkHjHKLCWa9twIGDKXqA835mgL3z3t1klOe5gOFSFy7sa3XjyUIVmgXGCMtWpPMkAOOqA_-xwTWOMEsjOG3gkmWZKUUfRUQn_Uz6b1xD2d-KGxWbCnzZHIckjJSRE8lNwzEOb1k4nuokQaJBr8MXwNeGjl3LZkzv7xvBMm393a0-M27BJG0Rmw/s1249/Add%20updateentity%20in%20operation.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Add updateentity in operation" border="0" data-original-height="471" data-original-width="1249" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzeHgz3dkHjHKLCWa9twIGDKXqA835mgL3z3t1klOe5gOFSFy7sa3XjyUIVmgXGCMtWpPMkAOOqA_-xwTWOMEsjOG3gkmWZKUUfRUQn_Uz6b1xD2d-KGxWbCnzZHIckjJSRE8lNwzEOb1k4nuokQaJBr8MXwNeGjl3LZkzv7xvBMm393a0-M27BJG0Rmw/w640-h242/Add%20updateentity%20in%20operation.png" title="Add updateentity in operation" width="640" /></a></div><br /><p style="font-size: large; text-align: left;"><span style="font-family: verdana; font-size: medium;">Give a Name , select method as Post and against URL give </span><span style="font-size: medium;">name which depicts the </span><span style="font-size: medium;">purpose, like here </span><b style="font-size: medium;">/insertentity </b></p><p style="font-size: large; text-align: left;"><span style="font-size: medium;">Now API is created with two operations(Only Frontend configured till now).</span></p><p style="font-size: large; text-align: left;"><span style="font-size: medium;"></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjvrnjlBvH1mkYLM-i5f85aZQ522ztxjqT4zJbRihaOjSHLTJaKa_Uzd8d0emmyzHv8yyPq0LzzfLjTbool9_vijByWKiV0cdAtIeLqXv-LBPz7XE59EOugtlRtEy0osx16cNlFOxn-ZshwMk4D7329IkBbZJCL63AJjyIj4LQhfdkKe5uj-720G53RW_E" style="margin-left: 1em; margin-right: 1em;"><img alt="LogicAppStandard API with 2 operations" data-original-height="657" data-original-width="1629" height="258" src="https://blogger.googleusercontent.com/img/a/AVvXsEjvrnjlBvH1mkYLM-i5f85aZQ522ztxjqT4zJbRihaOjSHLTJaKa_Uzd8d0emmyzHv8yyPq0LzzfLjTbool9_vijByWKiV0cdAtIeLqXv-LBPz7XE59EOugtlRtEy0osx16cNlFOxn-ZshwMk4D7329IkBbZJCL63AJjyIj4LQhfdkKe5uj-720G53RW_E=w640-h258" title="LogicAppStandard API with 2 operations" width="640" /></a></div><br /><span style="font-size: medium;"> Next we configure the backend - via <b>policy</b></span><p></p><p style="text-align: left;"><span style="font-size: medium;">I encountered an error while doing so, read about it - <a href="https://www.tech-findings.com/2023/09/Error-while-adding-logic-app-standard-workflow-as-operation-in-Azure-APIM.html">https://www.tech-findings.com/2023/09/Error-while-adding-logic-app-standard-workflow-as-operation-in-Azure-APIM.html</a></span></p><p style="font-size: large; text-align: left;"><span style="font-size: medium;">We make use of two policy - one to set BaseUrl of Backend and another to set relative url</span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisD8yZ1IYQqzeJYaxbZG6SeeESyyz8s1FqiuqCvIVVNQuhvbDYMjAOhHtJz0vzomRWpEAqUM29m2Pmk3bMixpnxZaGnqsaW52UCBZCrMIg-YbvlwnIiIwoKl3GyWw9t2XBIG3KNc9_R_-h2cGssWSEfYWXHF5YLIC2hGgmxTLFrRaRspllSlOP2KO4uU4/s1711/insertentity%20policies.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Add policies in InsertEntity operation" border="0" data-original-height="433" data-original-width="1711" height="162" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisD8yZ1IYQqzeJYaxbZG6SeeESyyz8s1FqiuqCvIVVNQuhvbDYMjAOhHtJz0vzomRWpEAqUM29m2Pmk3bMixpnxZaGnqsaW52UCBZCrMIg-YbvlwnIiIwoKl3GyWw9t2XBIG3KNc9_R_-h2cGssWSEfYWXHF5YLIC2hGgmxTLFrRaRspllSlOP2KO4uU4/w640-h162/insertentity%20policies.png" title="Add policies in InsertEntity operation" width="640" /></a></div><br /><p style="text-align: left;"><span style="font-size: medium;">Add policies in InsertEntity operation</span></p><div style="background-color: #fffffe; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 17px; white-space: pre;"><div><span style="color: #383838;"><</span><span style="color: maroon;">rewrite</span><span style="color: #c90000;">-uri</span> <span style="color: #c90000;">id</span>=<span style="color: #0451a5;">"insertentity"</span></div><div><span style="color: #c90000;">template</span>=<span style="color: #0451a5;">"/lawf-sample1/triggers/When_a_HTTP_request_is_received/invoke?</span></div><div><span style="color: #0451a5;">api-version=2022-05-01&amp;sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun</span></div><div><span style="color: #0451a5;">&amp;sv=1.0&amp;sig=gr-bCDsemB9Rrup1IHlaOq4Ye7ca8QnOVZHVgzcPCGo"</span> <span style="color: #383838;">/></span></div><div><span style="color: #383838;"><br /></span></div><div><span style="color: #383838;"><</span><span style="color: maroon;">set</span><span style="color: #c90000;">-backend-service</span> <span style="color: #c90000;">base-url</span>=<span style="color: #0451a5;">"https://tf-poc-la.azurewebsites.net:443/api"</span> <span style="color: #383838;">/></span></div></div><p style="text-align: left;"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgImTdN_lARV2d9y9Gq4iT9Dyn2MUDIJC4spTHEvPYGFOzWIjQC1H-IiCUW5HKeDXlWpyAcSxiMuVIANJeY-SgdePRaWzIgsHa6MwaqXzRj_3S6PL8r3-jz2YHE2vuZIUGLRhG07v2rbneaOKkcSFjlsmDqzVlN7JihjcJ01orfe9gdRNcnRxRbHQWDDQ/s1705/updateentity%20policies.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Add policies in updateEntity operation" border="0" data-original-height="430" data-original-width="1705" height="162" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgImTdN_lARV2d9y9Gq4iT9Dyn2MUDIJC4spTHEvPYGFOzWIjQC1H-IiCUW5HKeDXlWpyAcSxiMuVIANJeY-SgdePRaWzIgsHa6MwaqXzRj_3S6PL8r3-jz2YHE2vuZIUGLRhG07v2rbneaOKkcSFjlsmDqzVlN7JihjcJ01orfe9gdRNcnRxRbHQWDDQ/w640-h162/updateentity%20policies.png" title="Add policies in updateEntity operation" width="640" /></a></div><br /><span style="font-size: medium;">Add policies in updateEntity operation</span><p></p><div style="background-color: #fffffe; line-height: 17px; text-align: left; white-space: pre;"><div style="font-family: Consolas, "Courier New", monospace; font-size: 14px;"><span style="color: #383838;"><</span><span style="color: maroon;">rewrite</span><span style="color: #c90000;">-uri</span> <span style="color: #c90000;">id</span>=<span style="color: #0451a5;">"updateentity"</span> </div><div style="font-family: Consolas, "Courier New", monospace; font-size: 14px;"><span style="color: #c90000;">template</span>=<span style="color: #0451a5;">"/lawf-sample2/triggers/When_a_HTTP_request_is_received/invoke?</span></div><div style="font-family: Consolas, "Courier New", monospace; font-size: 14px;"><span style="color: #0451a5;">api-version=2022-05-01&amp;sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun</span></div><div style="font-family: Consolas, "Courier New", monospace; font-size: 14px;"><span style="color: #0451a5;">&amp;sv=1.0&amp;sig=yVqTI7OjlS-DXea0axI9gXlrCTPKISTJT6YIuuMSkus"</span> <span style="color: #383838;">/></span></div><div style="font-family: Consolas, "Courier New", monospace; font-size: 14px;"><span style="color: #383838;"><br /></span></div><div style="font-family: Consolas, "Courier New", monospace; font-size: 14px;"><span style="color: #383838;"><</span><span style="color: maroon;">set</span><span style="color: #c90000;">-backend-service</span> <span style="color: #c90000;">base-url</span>=<span style="color: #0451a5;">"https://tf-poc-la.azurewebsites.net:443/api"</span> <span style="color: #383838;">/></span></div><div style="font-family: Consolas, "Courier New", monospace; font-size: 14px;"><span style="color: #383838;"><br /></span></div><p style="text-align: left;"><span style="color: #383838;"><span style="font-size: medium;">That's it, save it and test the solution.</span></span></p><p style="text-align: left;"><span style="color: #383838;"><span style="font-size: medium;"><br /></span></span></p></div><h3 style="text-align: left;"><span style="font-size: large;">Testing</span></h3><div><span style="font-size: medium;">For Testing, you can go to Test tab and grab the request url and use it with any rest api client like postman.</span></div><div><span style="font-size: medium;"><br /></span></div><div><span style="font-size: medium;">I have used the Test client provided within APIM, provided the body and sent.</span></div><div><span style="font-size: medium;"><br /></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEbcFMB4NPMV-mYj6r_duJbVNf7ILr7OZC-BgUWA4xspgWzEZTwG9xlc6dcJZRWU0uKUtrtdJE2nU_RB_WiDmqYcwOAu5VcSWr4DqgULXlsOpeMdb_B7Rntw6WcyNoCtoELXptF-wxp9CFFW4sKS4kJRQKn05VnDf7ujzLyr1T8ZvAZ7cBJ70Ae-XuuCY/s836/Insert%20entity%20Testing%20using%20APIM%20.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Insert entity Testing using APIM" border="0" data-original-height="739" data-original-width="836" height="566" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEbcFMB4NPMV-mYj6r_duJbVNf7ILr7OZC-BgUWA4xspgWzEZTwG9xlc6dcJZRWU0uKUtrtdJE2nU_RB_WiDmqYcwOAu5VcSWr4DqgULXlsOpeMdb_B7Rntw6WcyNoCtoELXptF-wxp9CFFW4sKS4kJRQKn05VnDf7ujzLyr1T8ZvAZ7cBJ70Ae-XuuCY/w640-h566/Insert%20entity%20Testing%20using%20APIM%20.png" title="Insert entity Testing using APIM" width="640" /></a></div>Insert entity Testing using APIM </span></div><div><span style="font-family: verdana;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOKzdfHIMcyQIecjo-soOj9op7Ayk_oeXWdKvH3UnGxxGIHmCnrzu6zY_Ni68oxsQ7rgdZvNq_2nRMnYejIKYxcGm_UnWNNpw7HngLO1E_bA-uYhnnlP3nUeeAp_E6pHaBJQKyzB-4SSM-JGyoZkS--HRkwGRF8A3OC-TZ9OtUbdsJ4BpPN9AwwY94F5w/s679/Response%20of%20InsertEntity%20Test%20request.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Response of InsertEntity Test request" border="0" data-original-height="679" data-original-width="649" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOKzdfHIMcyQIecjo-soOj9op7Ayk_oeXWdKvH3UnGxxGIHmCnrzu6zY_Ni68oxsQ7rgdZvNq_2nRMnYejIKYxcGm_UnWNNpw7HngLO1E_bA-uYhnnlP3nUeeAp_E6pHaBJQKyzB-4SSM-JGyoZkS--HRkwGRF8A3OC-TZ9OtUbdsJ4BpPN9AwwY94F5w/w612-h640/Response%20of%20InsertEntity%20Test%20request.png" title="Response of InsertEntity Test request" width="612" /></a></div><br /><span style="font-family: verdana; font-size: medium;">We got the response, that means request reached to the backend (logic app standard workflow) .</span></div><div><span style="font-family: verdana;"><div style="font-size: large;"><br /></div><div><h3 style="font-size: large;"><span style="font-size: large;">How it works</span></h3><div><span style="font-size: medium;">The request url to which request is sent is the URL of Api configured in APIM - </span><span color="inherit" style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: inherit;">https://tfpocapim.azure-api.net/las/insertentity</span></div><div><span color="inherit"><span style="font-size: medium;"><br /></span></span></div><div><span color="inherit"><span style="font-size: medium;">When request reaches to Inbound section base url of apim api url is set to base url of logic app standard workflow and relative url of apim api url is set to relative url of logic app standard workflow.</span></span></div><div><span color="inherit"><span style="font-size: medium;"><br /></span></span></div><div><span color="inherit"><span style="font-size: medium;"><span style="color: inherit; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: inherit;"><span style="background-color: #fcff01;">https://tfpocapim.azure-api.net/las</span> gets replaced by </span><span style="background-color: #01ffff;">https://tf-poc-la.azurewebsites.net:443/api/</span></span></span></div><div><span color="inherit"><span style="font-size: medium;"><br /></span></span></div><div><span color="inherit"><span style="font-size: medium;"><br /></span></span></div><div><span color="inherit"><span style="font-size: medium;"><span style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace;"><span style="background-color: #fcff01;">/insertentity</span> gets replaced by </span><span style="background-color: #01ffff;">lawf-sample1/triggers/When_a_HTTP_request_is_received/invoke?api-version=2022-05-01&sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun&sv=1.0&sig=gr-bCDsemB9Rrup1IHlaOq4Ye7ca8QnOVZHVgzcPCGo</span></span></span></div><div><span color="inherit"><span style="font-size: medium;"><br /></span></span></div><div><span color="inherit"><span style="font-size: medium;">And this is done with the help of the two policies </span></span></div><div><span style="color: maroon; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;"><br /></span></div><div><span style="color: maroon; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;"><span> </span><span> </span><span> </span>rewrite</span><span style="color: #c90000; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-uri</span><span style="background-color: #fffffe; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;"> <span style="color: #c90000;">and </span></span><span style="color: maroon; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">set</span><span style="color: #c90000; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-backend-service</span></div><div><span color="inherit" style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: inherit;"><br /></span></div><div><span color="inherit" style="font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: inherit;"><br /></span></div><div style="font-size: large;"><span style="font-size: large;"><br /></span></div><div style="font-size: large;"><span style="font-size: large;"><br /></span></div></div><div><h3><span style="font-family: verdana;"><span style="font-size: large;">Learn More about Logic App</span></span></h3><div style="font-family: "Times New Roman"; font-size: medium;"><span style="font-family: verdana;"><span style="font-size: medium;"><ul><li><a href="https://www.tech-findings.com/2022/12/Developing-Logic-app-standard-workflow-locally-deploying-to-Azure.html" target="_blank">Developing Logic app standard workflow which uses Map locally and deploying to Azure</a></li><li><a href="https://www.tech-findings.com/2022/12/developing-logic-app-standard-workflow.html" target="_blank">Developing Logic App Standard Workflow Using Visual Studio Code | Create Logic App Standard Workflow Using Visual Studio Code</a></li><li><a href="https://www.tech-findings.com/2022/12/logic-app-xml-to-json-using-liquid-map.html" target="_blank">Logic App - Xml to Json using Liquid Map | Append in Liquid Map</a></li><li><a href="https://www.tech-findings.com/2022/11/Azure-Event-Grid-Custom-Topic-LogicApp.html" target="_blank">How to use Azure Event Grid Custom Topic | Publishing and Subscribing from Azure Event Grid Custom Topic using Logic App</a></li><li><a href="https://www.tech-findings.com/2022/11/read-write-azure-table-storage-logic-app.html" target="_blank">Using Azure Storage Account Table as Config Store for Logic Apps | How to read and write from Logic App to Azure Storage Account Table</a></li><li><a href="https://www.tech-findings.com/2022/08/get-logic-app-name-in-logic-app.html" target="_blank">Get Logic App Name in Logic App</a></li><li><a href="https://www.tech-findings.com/2022/07/logic-App-consumption-logic-app-standard.html" target="_blank">Difference between Logic App Consumption and Logic App Standard </a></li><li><a href="https://www.tech-findings.com/2022/07/overview-logic-app-standard.html" target="_blank">Getting Started with Logic App Standard | Overview of Logic App Standard | Basics of Logic App Standard</a></li><li><a href="https://www.tech-findings.com/2022/07/find-count-of-Logic-App-executions.html" target="_blank">How to find count of Logic App executions using Azure Portal</a></li><li><a href="https://www.tech-findings.com/2022/07/azure-functions-vs-azure-logic-app.html" target="_blank">Azure Functions vs Azure Logic App | Difference between Azure Functions and Azure Logic App</a></li><li><a href="https://www.tech-findings.com/2022/06/Logic-App-Liquid-Map-Basics.html" target="_blank">Getting started with Logic App : Liquid Map | Using Liquid template in Logic app</a></li><li><a href="https://www.tech-findings.com/2022/06/Exception-Handling-in-Logic-app.html" target="_blank">How to get actual error message of Scope in Logic App | Exception Handling in Logic app</a></li><li><a href="https://www.tech-findings.com/2019/01/Interview-questions-answers-LogicApps.html" target="_blank">Interview questions and answers on Logic Apps | Interview questions for azure logic app developers</a></li><li><span><a href="https://www.tech-findings.com/2022/05/How-to-execute-Stored-Procedure-in-Logic-App.html" target="_blank">How to execute Stored Procedure in Logic App | How to connect to SQL in Logic App</a></span></li><li><a href="https://www.tech-findings.com/2022/05/how-to-get-current-date-in-logic-app.html" target="_blank">How to get current date in logic app | How to format date time in Logic App</a></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/07/BizTalk-Developer-getting-started-with-Logic-App.html" target="_blank">BizTalk Developer getting started with Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2018/03/getting-started-with-logic-apps-fundamentals.html" target="_blank">Getting Started with Logic Apps - Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/10/Getting-Started-with-Logic-Apps-Enterprise-Application-Integration.html" target="_blank">Getting Started with Logic Apps - Enterprise Application Integration</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/09/getting-started-with-logic-apps-as2.html" target="_blank">Getting Started with Logic Apps - AS2</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/edi-x12-fundamentals.html" target="_blank">Getting Started with Logic Apps - EDI X12 Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/getting-started-with-logic-apps-xml-to-EDI-x12.html" target="_blank">Getting Started with Logic Apps - XML to EDI X12</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/getting-started-with-logic-apps-edi-x12-to-xml.html" target="_blank">Getting Started with Logic Apps - EDI X12 to XML</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/10/getting-started-with-logic-apps-what-happened-to-request.html" target="_blank">Getting Started with Logic Apps - What happened to the Request?</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-Multiple-Records-In-On-Prem-SQL-Using-Logic-App.html" target="_blank">Inserting Multiple Records In On Prem SQL Using Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-data-in-On-Premises-SQL-Database-using-Logic-Apps.html" target="_blank">Inserting data in On Premises SQL Database using Logic Apps</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/installing-and-configuring-on-premises-data-gateway.html" target="_blank">Installing and Configuring On Premises Data Gateway - By adding user to Active Directory</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/XML-Batching-Aggregation-in-Logic-App.html" target="_blank">XML Batching(Aggregation) in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/batching-aggregating-messages-in-logic-app.html" target="_blank">Batching(Aggregating) messages in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/Debatching-Splitting-JSON-Message-in-Logic-Apps.html" target="_blank">Debatching(Splitting) JSON Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/debatching-splitting-xml-message-in-Logic-App.html" target="_blank">Debatching(Splitting) XML Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/securing-logic-app-with-azure-active-directory.html" target="_blank">Securing Logic App with Azure Active Directory authentication</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/removing-ns0-prefix-from-xml-output.html" target="_blank">Removing ns0: prefix from xml output from BizTalk/Logic app XSLT map</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/01/using-managed-identity-in-logic-apps.html" target="_blank">Using Managed Identity in Logic Apps for Calling Active Directory Secured Function App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/logic-apps-fetching-isa-and-gs-segment.html" target="_blank">Logic Apps : Fetching ISA and GS Segment Values From Interchange Envelope and Mapping</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2021/07/logic-apps-for-each-inside-for-each.html" target="_blank">Logic Apps : For Each Inside a For Each - Fetching values from field in an array inside an array</a></span></span></li></ul></span></span></div></div></span></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-77139496130717494452023-09-03T18:04:00.001+05:302023-09-03T18:04:35.526+05:30One or more fields contain incorrect values | Error while adding logic app standard workflow as operation in Azure APIM<b>{tocify} $title={Table of Contents}</b>
<br />
<div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Issue</span></b></h3><p style="text-align: left;"><span style="font-family: verdana; font-size: medium;">While trying to import Logic app standard workflow in APIM , got below error</span></p><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2pToKkP9kr43H1kjFYhm1ourKZraqUcHroHV7_J60RFDeJqJuWsu1fqjbaaXoyvJ75qSpJLbqle2ZaQ9cCKqEWxZ7bSiJn1sNEblFO_SWJm02V4XhXHFUTKmisP7AEseb_ePuJuQdBkaOWd6265Os-fQn_DgTPOh4AmPjudo8ARsx5fRHKDuJeNMOgfA/s1032/One%20or%20more%20fields%20contain%20incorrect%20values.png" style="margin-left: 1em; margin-right: 1em;"><img alt="One or more fields contain incorrect values: '=' is an unexpected token. The expected token is" border="0" data-original-height="670" data-original-width="1032" height="416" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2pToKkP9kr43H1kjFYhm1ourKZraqUcHroHV7_J60RFDeJqJuWsu1fqjbaaXoyvJ75qSpJLbqle2ZaQ9cCKqEWxZ7bSiJn1sNEblFO_SWJm02V4XhXHFUTKmisP7AEseb_ePuJuQdBkaOWd6265Os-fQn_DgTPOh4AmPjudo8ARsx5fRHKDuJeNMOgfA/w640-h416/One%20or%20more%20fields%20contain%20incorrect%20values.png" title="One or more fields contain incorrect values: '=' is an unexpected token. The expected token is" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div></div><span face="az_ea_font, wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif" style="background-color: #e6e6e6; color: #333333; font-size: 12px;"><div><span face="az_ea_font, wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif" style="background-color: #e6e6e6; color: #333333; font-size: 12px;"><br /></span></div>One or more fields contain incorrect values:</span><br /><span face="az_ea_font, wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif" style="color: #333333; font-size: 12px;">'=' is an unexpected token. The expected token is ';'. Line 16, position 137.</span><br /><p><br /></p><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Why it happened</span> </h3><div><span style="font-family: verdana; font-size: medium;">The error is pointing out about line 16 where it expects ';' .</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Below are highlighted places where it expects ';' however it found &, but it is to separate the query parameter so it has to be there.</span></div><div><br /></div><div>/lawf-sample1/triggers/When_a_HTTP_request_is_received/invoke?api-version=2022-05-01<span style="background-color: #fcff01;">&</span>sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun<span style="background-color: #fcff01;">&</span>sv=1.0<span style="background-color: #fcff01;">&</span>sig=gr-bCDsemB9Rrup1IHlaOq4Ye7ca8QnOVZHVgzcPCGo<br /><b><br /></b></div><div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><br /></div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><p style="clear: both;"></p><div style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Then why error was shown?</span></b></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><br /></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;">The ampersand (&) is a special character in HTML and XML, and it can be used to represent other characters, such as the greater-than (>) and less-than (<) signs. In a URL, the ampersand can also be used to separate multiple query parameters.</span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><br /></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;">However, if you do not encode the ampersand, it can be interpreted as a special character by the browser, which can lead to errors as we got. </span></div><p></p></div><div class="separator" style="clear: both; font-weight: bold; text-align: left;"><br /></div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><br /></div><h3><span style="font-family: verdana; font-size: medium;">What to do</span></h3><div><span style="font-family: verdana;"><div style="font-size: large;">So in our URL there are three query parameter thus three ampersand(&) to separate them.</div><div style="font-size: large;"><br /></div><div style="font-size: large;">To avoid this problem, you should always encode the ampersand in a URL. You can do this by replacing it with the HTML entity &amp;</div><div style="font-size: large;"><br /></div><div>/lawf-sample1/triggers/When_a_HTTP_request_is_received/invoke?api-version=2022-05-01<span style="background-color: #fcff01;">&amp;</span>sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun<span style="background-color: #fcff01;">&amp;</span>sv=1.0<span style="background-color: #fcff01;">&amp;</span>sig=gr-bCDsemB9Rrup1IHlaOq4Ye7ca8QnOVZHVgzcPCGo</div></span></div><b><br /></b></div><div><b><br /></b></div><div><span style="font-family: verdana; font-size: medium;">This will ensure that the ampersand is interpreted as a regular character, and it will be able to find the query parameter.</span></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-4929287771025734342023-08-28T16:34:00.001+05:302023-09-19T10:25:31.256+05:30How to Query Azure Table storage from Logic App | How to filter results of Azure Table storage from Logic App <b>{tocify} $title={Table of Contents}</b>
<br />
<div><b><br /></b></div><div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana;">Introduction</span></b></h3><div style="text-align: left;"><span style="font-family: verdana;"><p><span style="font-size: medium;">Azure Table storage is a service that stores non-relational structured data (also known as structured NoSQL data) in the cloud, providing a key/attribute store with a schemaless design.</span></p><p><span style="font-size: medium;">Because Table storage is schemaless, it's easy to adapt your data as the needs of your application evolve. Access to Table storage data is fast and cost-effective for many types of applications, and is typically lower in cost than traditional SQL for similar volumes of data. </span></p><p><span style="font-size: medium;">You can use Table storage to store flexible datasets like user data for web applications, address books, device information, or other types of metadata your service requires. You can store any number of entities in a table, and a storage account may contain any number of tables, up to the capacity limit of the storage account.</span></p><p><span style="font-size: medium;">Azure tables are ideal for storing structured, non-relational data.</span></p><p><span style="font-size: medium;">Common uses of Table storage include:</span></p><p><span style="font-size: medium;">- Storing TBs of structured data capable of serving web scale applications<br />- Storing datasets that don't require complex joins, foreign keys, or stored procedures and can be denormalized for fast access<br />- Quickly querying data using a clustered index<br />- Accessing data using the OData protocol and LINQ queries with WCF Data Service .NET Libraries.</span></p><p><span style="font-size: medium;"><br /></span></p><h3 style="font-weight: bold; text-align: left;">Scenario</h3><p style="text-align: left;"><span style="font-size: medium;">In current project, requirement was to store the records which are not Processed (due to some business condition) and needs to retried in regular intervals.</span></p><div><span style="font-size: medium;">So, there was need of storage - SQL and Azure Table storage were the options. But SQL for this is too costly, so considered going with Table Storage.</span></div><div><span style="font-size: medium;"><br /></span></div><div><span style="font-size: medium;">In the first process(workflow) the records(whichever were not processed) were inserted in Table storage and in next scheduled process(workflow) same records were fetched and sent for processing.</span></div><div><span style="font-size: medium;"><br /></span></div><h3 style="text-align: left;"><span style="font-size: medium;">Creating a Solution</span></h3><div><span style="font-size: medium;">For the sake of demo, will create a Azure Table storage and will add entities manually(Process 1) and later fetch them in Logic app querying it(Process 2).</span></div><div><span style="font-size: medium;"><br /></span></div><h4 style="text-align: left;"><span style="font-size: medium;">Creating table in Azure storage</span></h4><div><span style="font-size: large;">As can be seen in below image, tfpocazuretable is created and manually few entities are added</span></div><div><span style="font-size: large;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjJkIEsJCQ-WUkLz4azJG9z-Fcr_hUGL1e7MzNq_h87742N-KSiL9scXj4R7rwBm7M97tzR7yVvqfJLh-IvV2I7a1ijQ6kAQPMS5xa0THm8lWCqwMpGSEqJG9xIS7Pdm25bCHXrfc0c7Y2BaGJW071p68NaySNby6xXSxBh9Ns4SuRCUVhQHTuEKLg1s4/s1359/POC%20Table.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Adding entities in Azure Table storage" border="0" data-original-height="790" data-original-width="1359" height="372" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjJkIEsJCQ-WUkLz4azJG9z-Fcr_hUGL1e7MzNq_h87742N-KSiL9scXj4R7rwBm7M97tzR7yVvqfJLh-IvV2I7a1ijQ6kAQPMS5xa0THm8lWCqwMpGSEqJG9xIS7Pdm25bCHXrfc0c7Y2BaGJW071p68NaySNby6xXSxBh9Ns4SuRCUVhQHTuEKLg1s4/w640-h372/POC%20Table.png" title="Adding entities in Azure Table storage" width="640" /></a></div><br /><span style="font-size: medium;"><br /></span></div><h4 style="text-align: left;"><span style="font-size: medium;">Logic app to fetch entities from Azure Table Storage </span></h4><div><span style="font-size: medium;">Created a demo workflow with Recurrence trigger followed by <b>Query Entities </b>action.</span></div><div><span style="font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihPHN0Lme3HR0craEVzgbzrAt7VBWf1fc2U9YXs6qRn9PvFSd7ENI4IccCGjnpoXHRc0Gq9tuGJf6PRSkAO7mTUY6EyzMHCz9hMhxuoeh3lDMNS7fakwQ_x6lBtzWg8Prqc62Ox92GTa-RYnVqylcOrzlEOPf17kry2QHgGsywVVkdW44R5JiXS7FjmV8/s967/tablecon.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Create Azure table storage connection from logic app" border="0" data-original-height="402" data-original-width="967" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihPHN0Lme3HR0craEVzgbzrAt7VBWf1fc2U9YXs6qRn9PvFSd7ENI4IccCGjnpoXHRc0Gq9tuGJf6PRSkAO7mTUY6EyzMHCz9hMhxuoeh3lDMNS7fakwQ_x6lBtzWg8Prqc62Ox92GTa-RYnVqylcOrzlEOPf17kry2QHgGsywVVkdW44R5JiXS7FjmV8/w640-h266/tablecon.png" title="Create Azure table storage connection from logic app" width="640" /></a></div><br /><span style="font-size: medium;"><br /></span></div><div><span style="font-size: medium;">First thing is to create connection followed by selecting option to query, o</span><span style="font-size: large;">ptions available are:</span></div><div><span style="font-size: medium;"><br /></span></div><div><span style="font-size: medium;"><div>Continuation Token<span style="white-space: pre;"> </span>-- The continuation token from a previous call.</div><div>Filter -- The operation only returns the values that satisfy the specified filter contitions.</div><div>Selected Properties<span style="white-space: pre;"> </span>-- Specify the list of properties to be included in result.</div><div>Top<span style="white-space: pre;"> </span>-- Top entities</div><div><br /></div></span></div><div><span style="font-size: medium;"> </span></div><div><span style="font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7u5Z0RV11qBA1PjV_2m7qXBTijAMMfWt7oiQLn48k-UDKTPkBVOx36JuZpwk-3r9ioOqrj88b1Jgean3mbRkKMWZb_t3_cKiqhjQhZJ29ZmgzD8Qx8MdcYnLxGRzd9Ba2Vk_Zrsj_Dy1Qk40BYadHxkpSPVJM0zfY0FGsJ-H4Of4XulIjUVgY92RqZHw/s1261/Select%20Filter%20in%20Query%20Entities.png" style="margin-left: 1em; margin-right: 1em;"><img alt="select filter from list to query" border="0" data-original-height="532" data-original-width="1261" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7u5Z0RV11qBA1PjV_2m7qXBTijAMMfWt7oiQLn48k-UDKTPkBVOx36JuZpwk-3r9ioOqrj88b1Jgean3mbRkKMWZb_t3_cKiqhjQhZJ29ZmgzD8Qx8MdcYnLxGRzd9Ba2Vk_Zrsj_Dy1Qk40BYadHxkpSPVJM0zfY0FGsJ-H4Of4XulIjUVgY92RqZHw/w640-h270/Select%20Filter%20in%20Query%20Entities.png" title="select filter from list to query" width="640" /></a></div><br /><span style="font-size: medium;"><br /></span></div><div><span style="font-size: medium;">Here Filter is selected, so all entities with all properties matching the condition is to be returned. </span></div><div><span style="font-size: medium;"><br /></span></div><div><span style="font-size: medium;">If not all properties are needed, then combination of Filter and Selected properties can be used.</span></div><div><br /></div><div><span style="font-size: medium;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGuY4b8eezRPlsWF_tllXuJfO7svFOR7caFD_RT01cgUTIjs-7RwgTvyDlenQ8Lyv8aqD4AVgPrNPexo7q8UtyuY8wEDdQZsgFNoOohMMUDrJFCwh8J0aIqiCW5QJLB9LWA6RNFDfnWvJFjU4BpwrFE8QZcuGH8LxdugKQQFWvrSWvLeui_J5C7dtRuWc/s628/filter%20description.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Filter description" border="0" data-original-height="421" data-original-width="628" height="430" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGuY4b8eezRPlsWF_tllXuJfO7svFOR7caFD_RT01cgUTIjs-7RwgTvyDlenQ8Lyv8aqD4AVgPrNPexo7q8UtyuY8wEDdQZsgFNoOohMMUDrJFCwh8J0aIqiCW5QJLB9LWA6RNFDfnWvJFjU4BpwrFE8QZcuGH8LxdugKQQFWvrSWvLeui_J5C7dtRuWc/w640-h430/filter%20description.png" title="Filter description" width="640" /></a></div><br /><div>Consider Filter as Where clause here, supported operators are as below</div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgbwSUlFan-MFA4QPgt79uJ_uRzMgefxoS42SfDR4IiChOAsOB5gwSb3w-efvn4qAZAajp2r9jfoxiDbpp7bumZNT9dT6hJLqt0NMj9kHNoWnqgZcqCJ1xSL4pnLChVSDOGj9ggM_RhucwlMH-pWZA7f88ds0C5KJl-1SUz40Hh1nvKBhZ9uPdYWFyUw6Y" style="margin-left: 1em; margin-right: 1em;"><img alt="Supported operators in Filters" data-original-height="562" data-original-width="366" height="640" src="https://blogger.googleusercontent.com/img/a/AVvXsEgbwSUlFan-MFA4QPgt79uJ_uRzMgefxoS42SfDR4IiChOAsOB5gwSb3w-efvn4qAZAajp2r9jfoxiDbpp7bumZNT9dT6hJLqt0NMj9kHNoWnqgZcqCJ1xSL4pnLChVSDOGj9ggM_RhucwlMH-pWZA7f88ds0C5KJl-1SUz40Hh1nvKBhZ9uPdYWFyUw6Y=w416-h640" title="Supported operators in Filters" width="416" /></a></div><br />Went ahead with Filter alone, with Flag property equal to true</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkB8KvL-YsuNmeF4nyJjvo-KZTfmcjNT3vb7qcFQ6Ch_FTJ6EMgnWMMCDsQbHrJVrX0jfK-hxLJwjnV_KOnXVOEZbk45GRLCQc-tzR-7ZJeHkPxJDaPAWcuKJwlIVTfRidRXtXI1741aAcqbdlVzjAJ3M1z963AQLeIZixi5bNbN1cbn8hkHQnCWULl7E/s934/filter%20query%20with%20flag%20true.png" style="margin-left: 1em; margin-right: 1em;"><img alt="filter query with flag true" border="0" data-original-height="418" data-original-width="934" height="286" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkB8KvL-YsuNmeF4nyJjvo-KZTfmcjNT3vb7qcFQ6Ch_FTJ6EMgnWMMCDsQbHrJVrX0jfK-hxLJwjnV_KOnXVOEZbk45GRLCQc-tzR-7ZJeHkPxJDaPAWcuKJwlIVTfRidRXtXI1741aAcqbdlVzjAJ3M1z963AQLeIZixi5bNbN1cbn8hkHQnCWULl7E/w640-h286/filter%20query%20with%20flag%20true.png" title="filter query with flag true" width="640" /></a></div><br /><div>That's it. </div><div><br /></div><div><br /></div><h3 style="text-align: left;">Testing</h3></span></div><div><span style="font-size: medium;">For testing, manually run the workflow, checked the runhistory</span></div><div><span style="font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjStFz8Hu6wFOuS7FmNvVoubxUXlIAW669jR2VIiTVh8lSNILs7r1_-NI2K47XpNyMt5XwOzPShiH6ZkYp0zFFjOuKCCw4Pi3WlTQN2yL8Kugn5Jy_HBMbCnvH_SkqJwAFnMVtDZbozDxUUzQqBTHhAZlyrcr35XEPwFi1JX3CEQAys1gX6iLt1vGMD08/s1015/run%20history.png" style="margin-left: 1em; margin-right: 1em;"><img alt="workflow run istory" border="0" data-original-height="721" data-original-width="1015" height="454" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjStFz8Hu6wFOuS7FmNvVoubxUXlIAW669jR2VIiTVh8lSNILs7r1_-NI2K47XpNyMt5XwOzPShiH6ZkYp0zFFjOuKCCw4Pi3WlTQN2yL8Kugn5Jy_HBMbCnvH_SkqJwAFnMVtDZbozDxUUzQqBTHhAZlyrcr35XEPwFi1JX3CEQAys1gX6iLt1vGMD08/w640-h454/run%20history.png" title="workflow run istory" width="640" /></a></div><div><br /></div><span style="font-size: medium;">Below is the raw output</span></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUBgsavNE4idPR26UZXc0Gfjftesb6slr7jt0BqLKMg1dGwnDRukwEWF-taOvesrvGwZf4gBOqduDrkYfAnTCn9VPbwsUNZoaBh2hX7NH2fvYXlYaRZE_rcSY4FBRpFRIUVEvk1aEUFh3foTLCN_jS5PnwI02J4RNz4IkQErUAMMqV-_42GuXjVMlIGIE/s745/raw%20output.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Raw output" border="0" data-original-height="664" data-original-width="745" height="570" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUBgsavNE4idPR26UZXc0Gfjftesb6slr7jt0BqLKMg1dGwnDRukwEWF-taOvesrvGwZf4gBOqduDrkYfAnTCn9VPbwsUNZoaBh2hX7NH2fvYXlYaRZE_rcSY4FBRpFRIUVEvk1aEUFh3foTLCN_jS5PnwI02J4RNz4IkQErUAMMqV-_42GuXjVMlIGIE/w640-h570/raw%20output.png" title="Raw output" width="640" /></a></div><br /><div><span style="font-size: medium;">As can be seen in above image, only those entities are returned which have Flag as true.</span><br /><span style="font-size: medium;"><br /></span></div><div><span style="font-size: medium;"><br /></span></div><div><span style="font-size: medium;"><h3 style="font-family: "Times New Roman";"><span style="font-family: verdana;"><span style="font-size: 18.72px;">Learn More about Logic App</span></span></h3><h3><div style="font-family: "Times New Roman"; font-size: medium; font-weight: 400;"><span style="font-family: verdana;"><span style="font-size: medium;"><ul><li><u style="color: #0000ee;"><a href="https://www.tech-findings.com/2023/09/configure-Logic-App-Standard-workflow-behind-Azure-APIM.html" target="_blank">How to configure Logic App Standard workflow behind Azure APIM</a></u></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/08/How-to-Query-Azure-Table-storage-from-Logic-App%20.html" target="_blank">How to Query Azure Table storage from Logic App | How to filter results of Azure Table storage from Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/expressions-in-logic-apps.html" target="_blank">Understanding expressions in Logic Apps | Frequently used expressions in Logic Apps | What is expressions in Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/How-to-use-Logic-app-Run-History.html" target="_blank">How to use Logic app Run History | How to troubleshoot Logic App workflow execution</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/04/logic-app-slack-channel-integration.html" target="_blank">Logic App and Slack - Sending messages to slack channel | Logic app and slack integration | Connecting Logic App to Slack channel</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2022/12/how-to-access-application-settings-from-logic-app-standard-workflow.html" target="_blank">How to access Application settings fields value from Logic app Standard workflow | Using Application settings as configuration store for Logic app standard workflow</a></u></span></li><li><a href="https://www.tech-findings.com/2022/12/Developing-Logic-app-standard-workflow-locally-deploying-to-Azure.html" target="_blank">Developing Logic app standard workflow which uses Map locally and deploying to Azure</a></li><li><a href="https://www.tech-findings.com/2022/12/developing-logic-app-standard-workflow.html" target="_blank">Developing Logic App Standard Workflow Using Visual Studio Code | Create Logic App Standard Workflow Using Visual Studio Code</a></li><li><a href="https://www.tech-findings.com/2022/12/logic-app-xml-to-json-using-liquid-map.html" target="_blank">Logic App - Xml to Json using Liquid Map | Append in Liquid Map</a></li><li><a href="https://www.tech-findings.com/2022/11/Azure-Event-Grid-Custom-Topic-LogicApp.html" target="_blank">How to use Azure Event Grid Custom Topic | Publishing and Subscribing from Azure Event Grid Custom Topic using Logic App</a></li><li><a href="https://www.tech-findings.com/2022/11/read-write-azure-table-storage-logic-app.html" target="_blank">Using Azure Storage Account Table as Config Store for Logic Apps | How to read and write from Logic App to Azure Storage Account Table</a></li><li><a href="https://www.tech-findings.com/2022/08/get-logic-app-name-in-logic-app.html" target="_blank">Get Logic App Name in Logic App</a></li><li><a href="https://www.tech-findings.com/2022/07/logic-App-consumption-logic-app-standard.html" target="_blank">Difference between Logic App Consumption and Logic App Standard </a></li><li><a href="https://www.tech-findings.com/2022/07/overview-logic-app-standard.html" target="_blank">Getting Started with Logic App Standard | Overview of Logic App Standard | Basics of Logic App Standard</a></li><li><a href="https://www.tech-findings.com/2022/07/find-count-of-Logic-App-executions.html" target="_blank">How to find count of Logic App executions using Azure Portal</a></li><li><a href="https://www.tech-findings.com/2022/07/azure-functions-vs-azure-logic-app.html" target="_blank">Azure Functions vs Azure Logic App | Difference between Azure Functions and Azure Logic App</a></li><li><a href="https://www.tech-findings.com/2022/06/Logic-App-Liquid-Map-Basics.html" target="_blank">Getting started with Logic App : Liquid Map | Using Liquid template in Logic app</a></li><li><a href="https://www.tech-findings.com/2022/06/Exception-Handling-in-Logic-app.html" target="_blank">How to get actual error message of Scope in Logic App | Exception Handling in Logic app</a></li><li><a href="https://www.tech-findings.com/2019/01/Interview-questions-answers-LogicApps.html" target="_blank">Interview questions and answers on Logic Apps | Interview questions for azure logic app developers</a></li><li><span><a href="https://www.tech-findings.com/2022/05/How-to-execute-Stored-Procedure-in-Logic-App.html" target="_blank">How to execute Stored Procedure in Logic App | How to connect to SQL in Logic App</a></span></li><li><a href="https://www.tech-findings.com/2022/05/how-to-get-current-date-in-logic-app.html" target="_blank">How to get current date in logic app | How to format date time in Logic App</a></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/07/BizTalk-Developer-getting-started-with-Logic-App.html" target="_blank">BizTalk Developer getting started with Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2018/03/getting-started-with-logic-apps-fundamentals.html" target="_blank">Getting Started with Logic Apps - Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/10/Getting-Started-with-Logic-Apps-Enterprise-Application-Integration.html" target="_blank">Getting Started with Logic Apps - Enterprise Application Integration</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/09/getting-started-with-logic-apps-as2.html" target="_blank">Getting Started with Logic Apps - AS2</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/edi-x12-fundamentals.html" target="_blank">Getting Started with Logic Apps - EDI X12 Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/getting-started-with-logic-apps-xml-to-EDI-x12.html" target="_blank">Getting Started with Logic Apps - XML to EDI X12</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/getting-started-with-logic-apps-edi-x12-to-xml.html" target="_blank">Getting Started with Logic Apps - EDI X12 to XML</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/10/getting-started-with-logic-apps-what-happened-to-request.html" target="_blank">Getting Started with Logic Apps - What happened to the Request?</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-Multiple-Records-In-On-Prem-SQL-Using-Logic-App.html" target="_blank">Inserting Multiple Records In On Prem SQL Using Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-data-in-On-Premises-SQL-Database-using-Logic-Apps.html" target="_blank">Inserting data in On Premises SQL Database using Logic Apps</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/installing-and-configuring-on-premises-data-gateway.html" target="_blank">Installing and Configuring On Premises Data Gateway - By adding user to Active Directory</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/XML-Batching-Aggregation-in-Logic-App.html" target="_blank">XML Batching(Aggregation) in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/batching-aggregating-messages-in-logic-app.html" target="_blank">Batching(Aggregating) messages in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/Debatching-Splitting-JSON-Message-in-Logic-Apps.html" target="_blank">Debatching(Splitting) JSON Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/debatching-splitting-xml-message-in-Logic-App.html" target="_blank">Debatching(Splitting) XML Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/securing-logic-app-with-azure-active-directory.html" target="_blank">Securing Logic App with Azure Active Directory authentication</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/removing-ns0-prefix-from-xml-output.html" target="_blank">Removing ns0: prefix from xml output from BizTalk/Logic app XSLT map</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/01/using-managed-identity-in-logic-apps.html" target="_blank">Using Managed Identity in Logic Apps for Calling Active Directory Secured Function App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/logic-apps-fetching-isa-and-gs-segment.html" target="_blank">Logic Apps : Fetching ISA and GS Segment Values From Interchange Envelope and Mapping</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2021/07/logic-apps-for-each-inside-for-each.html" target="_blank">Logic Apps : For Each Inside a For Each - Fetching values from field in an array inside an array</a></span></span></li></ul></span></span></div></h3><h3 style="font-family: "Times New Roman";"></h3></span></div></span></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-83525429923023614172023-08-14T15:44:00.003+05:302023-08-14T15:45:31.472+05:30Error while debugging logic app standard workflow in Visual Studio Code | Select debugger error in Visual studio code<div><b><br /></b><h3><span style="font-family: verdana;">Error/Issue:</span></h3><p><span style="font-family: verdana; font-size: medium;">After completing the workflow design, clicked on the Debug but I was presented with option to choose the debugger (Have been debugging earlier but was never asked to do this)</span></p><p><span style="font-family: verdana;"><br /></span></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJagBX6KoUPXDr67hNijxkcEc2C2eqtrw4eRNkzEP4vnx-lVMRYwm-md_A2BHqZqrAZTLTo5GAWoHt62fOGRZuku3ttW1uNZS49eT9pMgWONSeiLETl8D7xnZBm7RiVbCuYvCZu1dSA64RZsYL5s_uS-W5rr_xLId0LJevOlqLNWDabVGw9nZH0vt_h-4/s778/select%20debugger.png" style="margin-left: 1em; margin-right: 1em;"><img alt="select a debugger" border="0" data-original-height="271" data-original-width="778" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJagBX6KoUPXDr67hNijxkcEc2C2eqtrw4eRNkzEP4vnx-lVMRYwm-md_A2BHqZqrAZTLTo5GAWoHt62fOGRZuku3ttW1uNZS49eT9pMgWONSeiLETl8D7xnZBm7RiVbCuYvCZu1dSA64RZsYL5s_uS-W5rr_xLId0LJevOlqLNWDabVGw9nZH0vt_h-4/w640-h222/select%20debugger.png" title="select a debugger" width="640" /></a></div><br /><span style="font-family: verdana;"><br /></span><p></p><p><span style="font-family: verdana; font-size: medium;">On selecting the suggested one, following was shown - which suggests to create a launch.json file</span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik7fQBdRqouXC3g7fAJEWYinSnFM6hjAblpQsEpg_cyBPXz0vEwdpZ0UYdhGKWAJvbdkTmZo4pT9AGFEj7Fdk5Lxwv3IvkwHwyjU9KhT_GOiwkMMjC3AiuWk86HbDUrmgd8GTkKZqP8mk3CqMXGdCQVLOUjoqs2_NvCTn8N629xFw9oRMhNPhRR4ZkD40/s615/create%20a%20launch.json%20file.png" style="margin-left: 1em; margin-right: 1em;"><img alt="create a launch.json file" border="0" data-original-height="403" data-original-width="615" height="420" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik7fQBdRqouXC3g7fAJEWYinSnFM6hjAblpQsEpg_cyBPXz0vEwdpZ0UYdhGKWAJvbdkTmZo4pT9AGFEj7Fdk5Lxwv3IvkwHwyjU9KhT_GOiwkMMjC3AiuWk86HbDUrmgd8GTkKZqP8mk3CqMXGdCQVLOUjoqs2_NvCTn8N629xFw9oRMhNPhRR4ZkD40/w640-h420/create%20a%20launch.json%20file.png" title="create a launch.json file" width="640" /></a></div><br /><p><br /></p><p><span face="az_ea_font, "Segoe UI", az_font, system-ui, -apple-system, BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif" style="background-color: white; color: #323130; font-family: verdana; font-size: medium;">What is launch.json file?</span></p><p><span face="az_ea_font, "Segoe UI", az_font, system-ui, -apple-system, BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif" style="background-color: white; color: #323130; font-family: verdana; font-size: medium;">A launch.json file is used to configure the debugger in Visual Studio Code. Visual Studio Code generates a launch.json (under a .vscode folder in your project) with almost all of the required information.</span></p><div class="separator" style="clear: both; text-align: center;"><br /></div><h3><span face=""verdana" , sans-serif" style="font-family: verdana;">Why it happened</span></h3><div><span style="background-color: white; color: #171717; font-family: verdana; font-size: medium;">Upon checking found that launch.json file existed, however there was no configuration in it.</span></div><div><span style="background-color: white; color: #171717; font-family: verdana;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlYOkUnBsDLJ2RoBhqTf_ltP7M0jDsFmUYxSOvikCNZdU8-A_SeK527S03aE7NnM9_H3cvklnL073q7Ze0zm6_JH2kUr9WE5l0qaa4goi32kyy3YsdQZh-dxYyRSn4hZqAARv8OX1QDvoGGOSPHs_hekXjBBhQI5H8Q2i-RTnWUtA0ONhF1R2bCJ8yjLA/s1273/launch.jsonfile.png" style="margin-left: 1em; margin-right: 1em;"><img alt="launch.json file" border="0" data-original-height="391" data-original-width="1273" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlYOkUnBsDLJ2RoBhqTf_ltP7M0jDsFmUYxSOvikCNZdU8-A_SeK527S03aE7NnM9_H3cvklnL073q7Ze0zm6_JH2kUr9WE5l0qaa4goi32kyy3YsdQZh-dxYyRSn4hZqAARv8OX1QDvoGGOSPHs_hekXjBBhQI5H8Q2i-RTnWUtA0ONhF1R2bCJ8yjLA/w640-h196/launch.jsonfile.png" title="launch.json file" width="640" /></a></div><br /><br /></div><div><span style="background-color: white; color: #171717; font-family: verdana; font-size: medium;">Checked for all the required extensions and all were intact.</span></div><div><span style="background-color: white; color: #171717; font-family: verdana; font-size: medium;"><br /></span></div><div><span style="background-color: white; color: #171717; font-family: verdana; font-size: medium;">However, there was an update(VS code) which happened a day ago and due to which the configurations went missing (Ideally it should not - but that's what happened)</span></div><div><span style="background-color: white; color: #171717; font-family: verdana;"><br /></span></div><div><span style="background-color: white; color: #171717; font-family: verdana;"><br /></span></div><div><br /><span face=""verdana" , sans-serif"></span></div><h3><span face=""verdana" , sans-serif" style="font-family: verdana; font-size: medium;">What to do</span></h3><div class="separator" style="clear: both; text-align: center;"></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Add the required configuration related to the debugger you want to use.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="background-color: white; color: #171717;"><span style="font-family: verdana; font-size: medium;">A configuration drives VS Code's behavior during a debugging session. Configurations are defined in a launch.json file that's stored in a .vscode folder in your workspace.</span></span></div><div><span style="font-family: verdana;"><br /></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqsp0U8TWzj5vIpADWkoWBomsWwjeslSI2eX5OtAsTvFmH7OnaVBo1j5xyqtrzWr3KFmOH38szGMxonwk-kneyH7qF63y5OOVz1e7Ft8j7rrIZ4ZP71iy4ZFaS3loPO712-EaaLNVY_QLo-JvK-wTNRZ76BMulT-UewqVcSly277Rtb4mmZbyEp1WTt1Y/s1216/Configuration%20added%20in%20launch.json%20file.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Configuration added in launch.json file" border="0" data-original-height="449" data-original-width="1216" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqsp0U8TWzj5vIpADWkoWBomsWwjeslSI2eX5OtAsTvFmH7OnaVBo1j5xyqtrzWr3KFmOH38szGMxonwk-kneyH7qF63y5OOVz1e7Ft8j7rrIZ4ZP71iy4ZFaS3loPO712-EaaLNVY_QLo-JvK-wTNRZ76BMulT-UewqVcSly277Rtb4mmZbyEp1WTt1Y/w640-h236/Configuration%20added%20in%20launch.json%20file.png" title="Configuration added in launch.json file" width="640" /></a></div><br /><div><br /></div><div><span style="font-family: verdana; font-size: medium;">Configuration added in launch.json file as can be seen above, saved it and no issues in Debugging.</span></div><div><span style="font-family: verdana;"><br /></span></div><div class="MsoNormal"><span face=""verdana" , sans-serif"><br /></span></div><div class="MsoNormal"><span face=""verdana" , sans-serif"><br /></span><span face=""verdana" , sans-serif"><br /></span><span face=""verdana" , sans-serif"><br /></span></div><div class="MsoNormal"><br /></div><div class="fb-like" data-action="like" data-href="https://www.tech-findings.com/" data-layout="standard" data-share="true" data-show-faces="true" data-size="small" data-width=""><br /><script language="javascript" type="text/javascript">
var aax_size='728x90';
var aax_pubname = 'techfinding08-21';
var aax_src='302';
</script><script language="javascript" src="https://c.amazon-adsystem.com/aax2/assoc.js" type="text/javascript"></script><br /><br /><h3><span face=""verdana" , sans-serif" style="font-size: large;">Related Post </span></h3><ul type="disc"><li class="MsoNormal" style="line-height: normal;"><span face=""verdana" , sans-serif"><span face=""arial" , sans-serif" style="font-size: medium;"><a href="http://www.tech-findings.com/2017/10/Getting-Started-with-Logic-Apps-Enterprise-Application-Integration.html">Getting Started with Logic Apps - Enterprise Application Integration</a></span></span></li><li class="MsoNormal" style="line-height: normal;"><span face=""verdana" , sans-serif" style="font-size: medium;"><a href="https://www.tech-findings.com/2019/11/edi-x12-fundamentals.html" target="_blank">Getting Started with Logic Apps - EDI X12 Fundamentals</a></span></li></ul><ul type="disc"><li class="MsoNormal" style="line-height: normal;"><span face=""verdana" , sans-serif" style="font-size: medium;"><a href="https://www.tech-findings.com/2019/10/getting-started-with-logic-apps-what-happened-to-request.html">Getting Started with Logic Apps - What happened to the Request?</a></span></li></ul><ul type="disc"><li class="MsoNormal" style="line-height: normal;"><span face=""verdana" , sans-serif"><span face=""arial" , sans-serif" style="font-size: medium;"><a href="https://www.tech-findings.com/2018/03/getting-started-with-logic-apps-fundamentals.html">Getting Started with Logic Apps - Fundamentals</a></span></span></li><li class="MsoNormal" style="line-height: normal;"><span face=""verdana" , sans-serif" style="font-size: medium;"><a href="https://www.tech-findings.com/2019/09/getting-started-with-logic-apps-as2.html" target="_blank">Getting Started with Logic Apps - AS2</a></span></li><li class="MsoNormal" style="line-height: normal;"><a href="https://www.tech-findings.com/2019/11/getting-started-with-logic-apps-xml-to-EDI-x12.html" target="_blank"><span style="font-size: medium;">Getting Started with Logic Apps - XML to EDI X12</span></a></li></ul><ul type="disc"><li class="MsoNormal" style="line-height: normal;"><span face=""verdana" , sans-serif" style="font-size: medium;"><a href="http://www.tech-findings.com/2017/10/The-provided-map-definition-is-not-valid.html">The provided map definition is not valid</a></span></li></ul><ul type="disc"><li class="MsoNormal" style="line-height: normal;"><span face=""verdana" , sans-serif"><a href="http://www.tech-findings.com/2017/10/Required-property-content-expects-a-value-but-got-null.html"><span face=""arial" , sans-serif" style="font-size: medium;">Required property 'content' expects a value but got null. Path ''.'</span></a></span></li></ul><ul type="disc"><li class="MsoNormal" style="line-height: normal;"><span face=""verdana" , sans-serif"><a href="http://www.tech-findings.com/2017/09/getting-started-with-logic-apps-file-Routing.html"><span face=""arial" , sans-serif" style="font-size: medium;">Getting Started with Logic Apps - File Routing</span></a></span></li></ul><ul type="disc"><li class="MsoNormal" style="line-height: normal;"><span face=""verdana" , sans-serif" style="font-size: medium;"><a href="http://www.tech-findings.com/2017/06/installing-and-configuring-on-premises-data-gateway.html">Installing and Configuring On Premises Data Gateway - By adding user to Active Directory</a></span></li></ul><ul type="disc"><li class="MsoNormal" style="line-height: normal;"><span face=""verdana" , sans-serif"><a href="http://www.tech-findings.com/2017/06/Inserting-data-in-On-Premises-SQL-Database-using-Logic-Apps.html"><span style="color: black; font-size: medium;">Inserting data in On Premises SQL Database using Logic Apps</span></a></span></li></ul><ul type="disc"><li class="MsoNormal" style="line-height: normal;"><span face=""verdana" , sans-serif" style="font-size: medium;"><a href="http://www.tech-findings.com/2017/06/Inserting-Multiple-Records-In-On-Prem-SQL-Using-Logic-App.html">Inserting Multiple Records In On Prem SQL Using Logic App</a></span></li></ul><ul type="disc"><li class="MsoNormal" style="line-height: normal;"><span face=""verdana" , sans-serif" style="font-size: medium;"><a href="http://www.tech-findings.com/2017/09/Check-your-request-parameters-to-make-sure-the-Path-exists-on-your-file-system.html">Check your request parameters to make sure the Path “” exists on your file system</a></span></li></ul><div><ul type="disc"></ul></div></div><div><br /></div></div>
Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-74753767070301659952023-05-18T19:56:00.001+05:302023-09-19T10:25:50.786+05:30Understanding expressions in Logic Apps | Frequently used expressions in Logic Apps | What is expressions in Logic App<span style="font-family: verdana; font-size: medium;"><b>{tocify} $title={Table of Contents}</b>
<br />
</span><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Introduction</span></b></h3><div><span style="font-family: verdana; font-size: medium;">It is said that<b> No code knowledge </b>is required to work with Logic Apps.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">It is true to major extent, however there are scenarios where we need to go for custom code and for that we make use of Azure Function (it's a separate service and not part of logic App ).</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Read about to understand Azure Function - <a href="https://www.tech-findings.com/2022/03/Getting-Started-with-Azure-Functions-Fundamentals.html" target="_blank">Azure Function Basics</a></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">However, Expressions are part of Logic Apps and requires a bit of coding.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">What is expressions in Logic Apps</span></h3><div><span style="font-family: verdana; font-size: medium;"><div>Expressions in logic apps are statements which are used to manipulate data, perform calculations and evaluate conditions with the help of functions provided by the workflow definition language. </div><div><br /></div><div><br /></div><div><div>In a layman term</div><div><br /></div><div><b>Expression = utilizing one or more functions with required parameters which executes and ends up being a value.</b></div><div><b><br /></b></div><div>You can use expressions to perform a variety of tasks in Logic Apps. Here are some examples:</div></div><div><div><br /></div><div><b>Manipulate data:</b></div><div>Expressions can be used to manipulate data in many ways e.g. you can use them to convert data types, extract substrings, or remove characters.</div><div><br /></div><div><b>Decision making:</b></div><div>Expressions can be used to make decisions within workflows e.g. you can use this to check if a value is greater than or equal to a certain threshold, or to determine if a string contains a certain word. </div><div><br /></div><div><b>Control the flow of your workflow:</b></div><div>You can use complex expressions to control the flow of your workflow e.g. you can use them to branch your workflow based on the result of an expression, or repeat a section of your workflow a specified number of times.</div><div><br /></div><div>Expressions can be powerful tools for automating tasks and controlling the flow of Logic Apps workflows. However, it is important to use it carefully to avoid mistakes. </div><div><br /></div><div>When creating expressions, it is important to carefully consider the logic of the expression and use the correct functions and operators. It's also a good idea to test expressions thoroughly before using them in workflows.</div></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><h3 style="text-align: left;">Functions available in Logic App</h3><div><br /></div><div>There are different types of functions available which can be used in expressions in your logic apps, including:</div><div><br /></div><div><b>Logical comparison functions:</b></div><div>These functions are used to compare values and evaluate conditions such as 'and', 'equals', 'greater than', 'if', 'lessOrEquals' and 'not'.</div><div><br /></div><div><b>Conversion functions:</b></div><div>These functions are used to convert values from one type to another like Bool, Float, Int, String, XML, JSON, etc.</div><div><br /></div><div><b>Mathematical functions:</b></div><div>These functions are used to perform mathematical operations on numbers such as: Examples: add, div, mod, mul, sub, etc.</div><div><br /></div><div><b>Date and time functions:</b></div><div>These functions are used to manipulate date and time values like addDays, addHours, ConvertFromUtc, ConvertTimeZone, utcNow, etc.</div><div><br /></div><div><b>String functions:</b></div><div>These functions are used to manipulate strings such as concat, replace, substring, toLower, toUpper.</div><div><br /></div><div><b>Collection functions:</b></div><div>These functions are used to manipulate arrays, strings and dictionaries Includes first, last, length, union, etc. </div><div><br /></div><div><b>Workflow functions:</b></div><div>These functions are used to get information about the workflow or its components like actionsOutputs, Parameters, triggerBody, triggerOutputs, Workflow, etc. </div><div><br /></div><div><b>URI parsing functions:</b></div><div>These functions are used to parse and manipulate URIs or URLs e.g decodeUriComponent, encodeUriComponent, uriHost, uriPath, uriQuery, etc. </div><div><br /></div><div><br /></div><h3 style="text-align: left;">Where are expressions used in Logic Apps</h3><div><br /></div></span></div><div><span style="font-family: verdana; font-size: medium;">You can dynamically assign values to parameters, variables, and properties of actions based on logic and conditions with help of expressions.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><div>You can use the Expression editor in the Logic App designer. The Expression editor provides a list of all the available functions and operators, as well as a preview of the results of your expression.</div><div><br /></div><div>In the Designer or Expression Editor, you can use expressions to define the inputs or outputs of actions or triggers e.g. you can use an expression to specify the URL for an HTTP Request action or the body for an HTTP Response action.</div><div><br /></div><div>In Code view, you can use expressions to define action or trigger properties that accept expressions e.g. you can use expressions to specify conditions for switch actions or repeat trigger intervals.</div><div><br /></div><div>Execution history allows you to use expressions to evaluate the input or output of an action or trigger at runtime e.g. you can use expressions to check the status code of an HTTP response action or the value of a variable. </div><div><br /></div><div><br /></div><div><br /></div><h3 style="text-align: left;">Most frequently used expressions in Logic Apps</h3></span></div><div><span style="font-family: verdana; font-size: medium;"><div><br /></div><div><div><br /></div><div><b>body('action_name')</b> - expression in Azure Logic Apps is used to get the output of an action. The action_name parameter is the name of the action that you want to get the output from. The output of an action can be a JSON object, a string, or a number.</div></div><div><br /></div><div><div><b>if(condition, true_value, false_value) </b>- Evaluates a condition and returns a value. The condition parameter is a Boolean expression that evaluates to true or false. The true_value parameter is the value that is returned if the condition is true. The false_value parameter is the value that is returned if the condition is false.</div></div><div><br /></div><div><b>parameters('Parameter_name') - </b>expression in Azure Logic Apps is used to get the value of a parameter.</div><div><br /></div><div><b>workflow().run.name </b>- expression in Azure Logic Apps is used to get the name of the current workflow run. The workflow() function returns a workflow object, and the run property of the workflow object returns a run object. The name property of the run object returns the name of the current workflow run.</div><div><br /></div><div><b>union(collection1, collection2, ...) </b>- expression in Azure Logic Apps is used to combine two or more collections into a single collection.</div><div><br /></div><div><b>item()</b> - expression in Azure Logic Apps is used to return the current element in the array during the current iteration of the action. You can also get the value from the properties of that element.</div><div><br /></div><div><div><b>trigger('event_name')</b> - Gets the input of a trigger.</div><div><br /></div><div><b>variables('variable_name') </b>- Gets the value of a variable.</div><div><br /></div><div><b>concat('string1', 'string2')</b> - Concatenates two strings.</div><div><br /></div><div><b>length('string')</b> - Gets the length of a string.</div><div><br /></div><div><b>trim('string') </b>- Removes whitespace from the beginning and end of a string.</div><div><br /></div><div><b>upper('string')</b> - Converts a string to uppercase.</div><div><br /></div><div><b>lower('string')</b> - Converts a string to lowercase.</div><div><br /></div><div><b>replace('string', 'old_string', 'new_string')</b> - Replaces a substring in a string.</div><div><br /></div><div><b>split('string', 'delimiter')</b> - Splits a string into an array.</div><div><br /></div><div><b>join(array, 'delimiter') -</b> Joins an array into a string.</div><div><br /></div><div><b>empty('string') </b>- Checks if a string is empty.</div><div><br /></div><div><b>and(condition1, condition2)</b> - Evaluates two conditions and returns true if both conditions are true.</div><div><br /></div><div><b>or(condition1, condition2) </b>- Evaluates two conditions and returns true if either condition is true.</div><div><br /></div><div><b>not(condition)</b> - Evaluates a condition and returns false if the condition is true.</div></div><div><br /></div></span></div><div><span style="font-family: verdana; font-size: medium;"><b>base64ToString(triggerBody()) - </b> expression in Azure Logic Apps is used to decode a base64-encoded string.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>formatDateTime(utcNow(), 'yyyy-MM-ddTHH:mm:ss') - </b>expression in Azure Logic Apps is used to format a date and time value into a string as specified in second parameter</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>result('Action_name or Scope_name') - </b>expression in Azure Logic Apps is used to get the result of an action</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>coalesce(value1, value2, value 3...) </b>- expression in Azure Logic Apps is used to return the first non-null value from a list of values.</span></div><div><span style="font-family: verdana; font-size: large;"><br /></span></div><div><span style="font-family: verdana; font-size: large;"><br /></span></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: large;">Bit complex expressions in Logic Apps</span></h3><div><span style="font-family: verdana; font-size: large;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Complex expressions in Logic Apps are expressions that use multiple functions and operators to perform a task i.e. nesting function in another, few examples below:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><span><b>json(base64ToString(triggerBody())) </b>- </span>expression in Azure Logic Apps is used to decode a base64-encoded string and then convert it to JSON.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>replace(replace(replace(replace(replace(json(body('Action_name')),'-','_'),'+','_'),' ','_'),' - ','_'),'- ','_') - </b></span><span style="font-family: verdana; font-size: medium;">expression in Azure Logic Apps is used to replace a substring (multiple) within a string. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><h3 style="text-align: left;">To write expressions in Logic App, you can use the following steps:</h3><div><ul style="text-align: left;"><li>In the Logic App designer, open the action or trigger where you want to add the expression.</li><li>In the Expression box, type the expression.</li><li>To use a variable in the expression, prefix the variable name with the <b>$</b> sign.</li><li>To use a function in the expression, prefix the function name with the <b>@</b> sign. Function parameters are evaluated from left to right. If any of the parameter is optional then use question mark(<b>?</b>).</li><li>To use a property of an object in the expression, prefix the property name with the <b>[ </b>sign.</li><li>To use a value in the expression, type the value.</li><li>To evaluate the expression, press Enter.</li></ul></div><div><br /></div><div><br /></div></span></div><div><span style="font-family: verdana; font-size: medium;"><h3 style="font-family: "Times New Roman";"><span style="font-family: verdana;"><span style="font-size: 18.72px;">Learn More about Logic App</span></span></h3><h3><div style="font-family: "Times New Roman"; font-size: medium; font-weight: 400;"><span style="font-family: verdana;"><span style="font-size: medium;"><ul><li><u style="color: #0000ee;"><a href="https://www.tech-findings.com/2023/09/configure-Logic-App-Standard-workflow-behind-Azure-APIM.html" target="_blank">How to configure Logic App Standard workflow behind Azure APIM</a></u></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/08/How-to-Query-Azure-Table-storage-from-Logic-App%20.html" target="_blank">How to Query Azure Table storage from Logic App | How to filter results of Azure Table storage from Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/expressions-in-logic-apps.html" target="_blank">Understanding expressions in Logic Apps | Frequently used expressions in Logic Apps | What is expressions in Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/How-to-use-Logic-app-Run-History.html" target="_blank">How to use Logic app Run History | How to troubleshoot Logic App workflow execution</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/04/logic-app-slack-channel-integration.html" target="_blank">Logic App and Slack - Sending messages to slack channel | Logic app and slack integration | Connecting Logic App to Slack channel</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2022/12/how-to-access-application-settings-from-logic-app-standard-workflow.html" target="_blank">How to access Application settings fields value from Logic app Standard workflow | Using Application settings as configuration store for Logic app standard workflow</a></u></span></li><li><a href="https://www.tech-findings.com/2022/12/Developing-Logic-app-standard-workflow-locally-deploying-to-Azure.html" target="_blank">Developing Logic app standard workflow which uses Map locally and deploying to Azure</a></li><li><a href="https://www.tech-findings.com/2022/12/developing-logic-app-standard-workflow.html" target="_blank">Developing Logic App Standard Workflow Using Visual Studio Code | Create Logic App Standard Workflow Using Visual Studio Code</a></li><li><a href="https://www.tech-findings.com/2022/12/logic-app-xml-to-json-using-liquid-map.html" target="_blank">Logic App - Xml to Json using Liquid Map | Append in Liquid Map</a></li><li><a href="https://www.tech-findings.com/2022/11/Azure-Event-Grid-Custom-Topic-LogicApp.html" target="_blank">How to use Azure Event Grid Custom Topic | Publishing and Subscribing from Azure Event Grid Custom Topic using Logic App</a></li><li><a href="https://www.tech-findings.com/2022/11/read-write-azure-table-storage-logic-app.html" target="_blank">Using Azure Storage Account Table as Config Store for Logic Apps | How to read and write from Logic App to Azure Storage Account Table</a></li><li><a href="https://www.tech-findings.com/2022/08/get-logic-app-name-in-logic-app.html" target="_blank">Get Logic App Name in Logic App</a></li><li><a href="https://www.tech-findings.com/2022/07/logic-App-consumption-logic-app-standard.html" target="_blank">Difference between Logic App Consumption and Logic App Standard </a></li><li><a href="https://www.tech-findings.com/2022/07/overview-logic-app-standard.html" target="_blank">Getting Started with Logic App Standard | Overview of Logic App Standard | Basics of Logic App Standard</a></li><li><a href="https://www.tech-findings.com/2022/07/find-count-of-Logic-App-executions.html" target="_blank">How to find count of Logic App executions using Azure Portal</a></li><li><a href="https://www.tech-findings.com/2022/07/azure-functions-vs-azure-logic-app.html" target="_blank">Azure Functions vs Azure Logic App | Difference between Azure Functions and Azure Logic App</a></li><li><a href="https://www.tech-findings.com/2022/06/Logic-App-Liquid-Map-Basics.html" target="_blank">Getting started with Logic App : Liquid Map | Using Liquid template in Logic app</a></li><li><a href="https://www.tech-findings.com/2022/06/Exception-Handling-in-Logic-app.html" target="_blank">How to get actual error message of Scope in Logic App | Exception Handling in Logic app</a></li><li><a href="https://www.tech-findings.com/2019/01/Interview-questions-answers-LogicApps.html" target="_blank">Interview questions and answers on Logic Apps | Interview questions for azure logic app developers</a></li><li><span><a href="https://www.tech-findings.com/2022/05/How-to-execute-Stored-Procedure-in-Logic-App.html" target="_blank">How to execute Stored Procedure in Logic App | How to connect to SQL in Logic App</a></span></li><li><a href="https://www.tech-findings.com/2022/05/how-to-get-current-date-in-logic-app.html" target="_blank">How to get current date in logic app | How to format date time in Logic App</a></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/07/BizTalk-Developer-getting-started-with-Logic-App.html" target="_blank">BizTalk Developer getting started with Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2018/03/getting-started-with-logic-apps-fundamentals.html" target="_blank">Getting Started with Logic Apps - Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/10/Getting-Started-with-Logic-Apps-Enterprise-Application-Integration.html" target="_blank">Getting Started with Logic Apps - Enterprise Application Integration</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/09/getting-started-with-logic-apps-as2.html" target="_blank">Getting Started with Logic Apps - AS2</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/edi-x12-fundamentals.html" target="_blank">Getting Started with Logic Apps - EDI X12 Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/getting-started-with-logic-apps-xml-to-EDI-x12.html" target="_blank">Getting Started with Logic Apps - XML to EDI X12</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/getting-started-with-logic-apps-edi-x12-to-xml.html" target="_blank">Getting Started with Logic Apps - EDI X12 to XML</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/10/getting-started-with-logic-apps-what-happened-to-request.html" target="_blank">Getting Started with Logic Apps - What happened to the Request?</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-Multiple-Records-In-On-Prem-SQL-Using-Logic-App.html" target="_blank">Inserting Multiple Records In On Prem SQL Using Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-data-in-On-Premises-SQL-Database-using-Logic-Apps.html" target="_blank">Inserting data in On Premises SQL Database using Logic Apps</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/installing-and-configuring-on-premises-data-gateway.html" target="_blank">Installing and Configuring On Premises Data Gateway - By adding user to Active Directory</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/XML-Batching-Aggregation-in-Logic-App.html" target="_blank">XML Batching(Aggregation) in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/batching-aggregating-messages-in-logic-app.html" target="_blank">Batching(Aggregating) messages in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/Debatching-Splitting-JSON-Message-in-Logic-Apps.html" target="_blank">Debatching(Splitting) JSON Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/debatching-splitting-xml-message-in-Logic-App.html" target="_blank">Debatching(Splitting) XML Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/securing-logic-app-with-azure-active-directory.html" target="_blank">Securing Logic App with Azure Active Directory authentication</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/removing-ns0-prefix-from-xml-output.html" target="_blank">Removing ns0: prefix from xml output from BizTalk/Logic app XSLT map</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/01/using-managed-identity-in-logic-apps.html" target="_blank">Using Managed Identity in Logic Apps for Calling Active Directory Secured Function App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/logic-apps-fetching-isa-and-gs-segment.html" target="_blank">Logic Apps : Fetching ISA and GS Segment Values From Interchange Envelope and Mapping</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2021/07/logic-apps-for-each-inside-for-each.html" target="_blank">Logic Apps : For Each Inside a For Each - Fetching values from field in an array inside an array</a></span></span></li></ul></span></span></div></h3><h3 style="font-family: "Times New Roman";"></h3></span></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-52048931292195701422023-05-17T13:47:00.001+05:302023-05-17T14:42:00.535+05:30Interview questions and answers on Azure Data Factory | Interview questions for azure data factory developers<div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-size: medium;"><span style="font-family: verdana;"><span>This post intends to cover the answers to the questions which a Azure developer can face at an Interview</span><span> </span><span>i.e.</span></span><span style="font-family: verdana;"> Azure Developer Interview Questions and Answers on Data Factory (ADF)</span></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><span style="font-family: verdana; font-size: medium;"><b>1.What is Parquet file format? </b></span><div><span style="font-family: verdana; font-size: medium;">- Parquet is an open source file format that is designed for efficient and performant storage and processing of flat columnar data(also called columnar storage), compressed, binary file format, some of the features and benefits of Parquet are:</span></div><div><span style="font-family: verdana; font-size: medium;"><div><br /></div><div>It supports various data types, including complex nested structures and arrays.</div><div><br /></div><div>It uses various compression and encoding techniques to reduce the size of data and improve query performance.</div><div><br /></div><div>It stores metadata, such as schema and statistics, within the file, which enables self-describing data and faster filtering.</div><div><br /></div><div>It is compatible with most of the Hadoop ecosystem tools and frameworks, such as Spark, Hive, Pig, and Impala.</div><div><br /></div><div>It is language independent and has a binary representation that can be read by any system.</div></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>2. How to Create parquet file from SQL Table data? </b></span></div><div><span style="font-family: verdana; font-size: medium;">-Simply make use of copyData activity in a pipeline and provide the details of source (i.e. which Table to refer) and sink (i.e. ADLS Gen 2 folder location). </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>3. What is item in Foreach in ADF? </b></span></div><div><span style="font-family: verdana; font-size: medium;">- Item is current object/record of the ForEach items array.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Foreach is an ADF (Azure Data Factory) activity that defines an iterative flow of control within a pipeline. It is used to iterate over a collection of items and perform a specific activity within a loop. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">The Foreach's item property is the current item that the Foreach activity iterates over from the input collection. An @item() expression can be used to refer to the current item anywhere a property value can be specified using a dynamic expression. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">For example, if the input collection is an array of numbers [1, 2, 3], @item() will return 1 on the first iteration, 2 on the second iteration, and 3 on the third iteration . You can pass values to other activities in a foreach loop using @item() such as Copy an activity or web activity. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>4. Difference between logic app and data factory?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Both Logic App and Data Factory are Azure services that can be used for data integration and orchestration. However, they have different purposes and functions, there are some differences.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Focused on application integration, Logic App lets you create automated, scalable workflows that integrate apps and data across cloud and on-premises services. </span><span style="font-family: verdana; font-size: medium;">Logic Apps support various connectors, triggers, and actions that allow you to interact with various systems and services.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Focused on data processing, Data Factory lets you create data-driven workflows in the cloud to orchestrate and automate data movement and data transformation. Data Factory supports various sources, sinks, activities, and pipelines that enable you to ingest, transform, and load data.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Logic Apps are well suited for scenarios involving simple or complex business processes such as Approval workflow, event-driven processing, or service orchestration. Data Factory is well suited for scenarios involving large-scale data integration, such as Data warehousing, data lakes, or data migration.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Logic Apps has a pay-as-you-go pricing model, where you only pay for the number of runs and connectors you use. Data Factory uses a usage-based pricing model, where you pay according to the number of activities and pipelines you run and the compute resources you consume. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">In some cases, Logic App and Data Factory can be used together to leverage the strengths of each and optimize cost and efficiency. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">For example, you can use Logic App to trigger Data Factory pipelines based on events or schedules, or use Data Factory to invoke Logic App as part of your data processing workflow. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>5. What is integration runtime responsible for in Azure Data factory?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Integration runtime (IR) is the compute infrastructure used by Azure Data Factory (ADF) to provide data integration capabilities across different network environments. IR is responsible for the following tasks in ADF:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Data movement: Copy data across data stores in public or private networks. IR supports built-in connectors, format conversion, column mapping, and scalable data transfer.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Activity dispatch: Dispatch and monitor transformation activities running on various compute services, such as Azure Databricks, Azure HDInsight, Azure SQL Database, SQL Server, and more.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Data flow execution: Execute a data flow in a managed Azure compute environment. IR supports various sources, sinks, transformations, and expressions for data processing.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">SSIS package execution: Natively execute SQL Server Integration Services (SSIS) packages in a managed Azure compute environment. IR supports various sources, destinations, tasks, and components for SSIS.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>6.How does Integration Runtime handle data security and compliance?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- IR (Integration Runtime) handles data security and compliance by using various features and practices to protect the confidentiality, integrity, availability, and security of the service and customer data.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Some of the ways that IR handles data security and compliance are:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Encryption:</span></div><div><span style="font-family: verdana; font-size: medium;">IR uses industry-standard encryption algorithms and protocols to encrypt data in transit and at rest. IR also supports encryption key management and rotation for customer-managed keys.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Network security:</span></div><div><span style="font-family: verdana; font-size: medium;">IR supports network policies, firewall rules, private connectivity, proxy settings, and private link/private endpoint to secure network access to IR and prevent unauthorized access from or to a network.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Authentication:</span></div><div><span style="font-family: verdana; font-size: medium;">IR supports various authentication methods, such as passwords, federated authentication, multi-factor authentication, key pair authentication, and OAuth to verify the identity of users or systems accessing IR.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Authorization:</span></div><div><span style="font-family: verdana; font-size: medium;">IR supports various authorization mechanisms, such as roles, privileges, grants, ownership, and secure views to grant or deny access to resources based on predefined rules.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Data masking:</span></div><div><span style="font-family: verdana; font-size: medium;">IR supports dynamic data masking, applying masking policies at query time based on user role to hide sensitive data or replace it with fictitious data.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Compliance audit:</span></div><div><span style="font-family: verdana; font-size: medium;">IR relies on certified third-party auditors to ensure that its technical infrastructure and data processing processes meet or exceed global cybersecurity and privacy standards such as: NIST 800-53, PCI DSS, ITAR, FISMA. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>7.How many types of triggers are supported by Azure data factory?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Azure Data Factory (ADF) supports three types of triggers that can be used to schedule pipeline executions without manual intervention and those triggers are:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Trigger schedule:</span></div><div><span style="font-family: verdana; font-size: medium;">This trigger runs the pipeline on a fixed schedule i.e. Hourly, Daily, Weekly, or Monthly. You can specify the trigger's start date, end date, recurrence, and time zone.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Rolling window trigger:</span></div><div><span style="font-family: verdana; font-size: medium;">This trigger runs the pipeline at regular intervals, such as every 15 minutes, every 2 hours, and so on. You can specify the trigger start time, end time, interval, and time zone. Unlike scheduled triggers, this trigger maintains pipeline state and supports dependencies and chains across windows.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Event-based trigger:</span></div><div><span style="font-family: verdana; font-size: medium;">This trigger runs your pipeline in response to blob-related events, such as blob creation or deletion in Azure Blob Storage or Azure Data Lake Storage Gen. You can specify storage accounts, containers, folder paths, file names, and event types. for the trigger. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>8.What is the difference between dataflow and pipeline in ADF?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Dataflows and pipelines are two different concepts in ADF (Azure Data Factory), there are some differences.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Dataflow is a graphical, code-free transformation layer that uses Azure Databricks clusters behind the scenes to perform data processing for a variety of sources and sinks. Dataflow supports various transformations like Derived columns, aggregates, filters, joins, pivots.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">A pipeline is an orchestration layer that defines a series of one or more activities like Copy data, execute stored procedures, or run data flows. Pipelines support a wide variety of activities, triggers, parameters, variables and expressions. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Dataflow can run as an activity within a pipeline, but not the other way around. A pipeline can run without a data flow, but a data flow cannot run without a pipeline.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Dataflow is well suited for scenarios involving complex data transformation and processing, such as Parse values, calculate, add/rename/remove columns, or add or remove rows. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-size: medium;"><span style="font-family: verdana;">Pipelines are suitable for scenarios involving simple or complex data integration and orchestration. </span><span style="font-family: verdana;">For example, copying data, executing stored procedures, firing events, scheduling jobs, and so on. </span></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>9.Can we share self hosted integration runtime?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- </span><span style="font-family: verdana; font-size: medium;">Self-hosted Integration Runtime (SHIR) is a locally installed and managed instance of Azure Integration Runtime (IR). Establish a secure connection between your on-premises resources and the cloud, allowing data transfer between the two.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">A single SHIR can be used for multiple on-premises data sources.</span></div><div><span style="font-family: verdana; font-size: medium;">It can also be shared with another data factory within the same Azure Active Directory (Azure AD) tenant.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">However, Synapse workspaces do not support integration runtime sharing. Only one instance of SHIR can be installed on each individual computer. You can have multiple SHIRs on different computers that connect to the same local data source. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>10.What are the differences between Integration runtime in Azure?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- </span><span style="font-family: verdana; font-size: medium;">Azure has three types of integration runtimes (IRs).</span></div><div><span style="font-family: verdana; font-size: medium;">Azure IR, Self-hosted IR, and Azure-SSIS IR.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Azure IR is a runtime managed by Azure itself. You can perform data flow, data movement, and activity distribution over public or private networks. You can also use Private Link to securely connect to data sources within your virtual network.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">A self-hosted IR is a runtime that is installed and managed on-premises. Data movement and activity distribution can only be performed over public or private networks. You can access local data sources or data sources in your virtual network.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Azure-SSIS IR is a runtime that allows you to natively run SQL Server Integration Services (SSIS) packages in a managed Azure compute environment. You can also use Private Link to securely connect to data sources within your virtual network. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>11.What are key components of ADF in Azure?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- </span><span style="font-family: verdana; font-size: medium;">Some of the key components of Azure Data Factory (ADF) are:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Activities: These are the tasks that ADF performs, such as copying data, running a data flow, executing a SQL query, etc.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Pipelines: These are the logical grouping of activities that perform one unit of work. Pipelines can be scheduled and monitored using ADF’s web-based interface or REST APIs.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Datasets: These are the named references to the data sources that ADF can access, such as Azure Blob Storage, Azure SQL Database, Oracle, etc.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Linked services: These are the connection strings that ADF uses to connect to the data sources defined by datasets.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Data flows: These are graphical representations of data transformations that can be performed on data sources using Spark clusters in Azure.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Integration runtimes: These are the compute infrastructure that ADF uses to provide data integration capabilities across different network environments. There are three types of integration runtimes: Azure, Self-hosted, and Azure-SSIS.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>12.How do you use parameters in Azure Data Factory?</b></span></div><div><span style="font-family: verdana; font-size: medium;">-</span><span style="font-family: verdana; font-size: medium;">Parameters in Azure Data Factory let you pass external values to pipelines, datasets, linked services, and dataflows. They can be used individually or as part of an expression.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Parameters can be defined at the pipeline level or within the data flow definition. You can also access system variables that provide information about pipeline executions, such as Trigger time, execution ID, etc.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Here are some examples of using parameters in Azure Data Factory.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Use pipeline parameters to pass the connection details of the record or the path of the file to process.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Use the Set Variable activity to set and modify pipeline variables within a pipeline. Use parameters to control data flow behavior like Filtering, merging, aggregating, or transforming data.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Pass trigger information to the pipeline. For example: window start and end times for tumbling window triggers, or custom data fields for custom event triggers. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>13.What is difference between parameters and variables in ADF?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- </span><span style="font-family: verdana; font-size: medium;">The main difference between parameters and variables in ADF is that parameters are external values passed to pipelines, datasets, linked services, and dataflows and cannot be changed while the pipeline is running. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Variables are internal values that exist within a pipeline and can be set and changed during pipeline execution using the Set Variable activity.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Parameters allow you to control the behavior of a pipeline and its activities, for example, by passing connection details for a record or the path of a file to process. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Variables can be used to store and manipulate data during pipeline execution, such as storing computation results or the current state of a process. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>14.What are the parameters of a data set?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- </span><span style="font-family: verdana; font-size: medium;">The parameters of a dataset in ADF are the named references to the external values that can be passed into the dataset definition. They can be used to specify dynamic properties of the dataset, such as the connection details, the path of a file, or the query to be executed.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">To define a dataset parameter, you can follow these steps:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Click on your dataset to view its configuration tabs.</span></div><div><span style="font-family: verdana; font-size: medium;">Select the “Parameters” tab, and click on the “+ New” button to define a new parameter.</span></div><div><span style="font-family: verdana; font-size: medium;">Enter a name and description for the parameter, and select its data type from the dropdown menu. Data types can be String, Int, Float, Bool, Array, Object, or SecureString.</span></div><div><span style="font-family: verdana; font-size: medium;">Optionally, you can also assign a default value to the parameter.</span></div><div><span style="font-family: verdana; font-size: medium;">After defining a dataset parameter, you can access its value in a data flow or a pipeline activity by using the @dataset ().parameters.<parameter name> expression. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">For example, if you defined a parameter called pageNum of type Int, you can access its value in a data flow by using the expression @dataset ().parameters.pageNum. You can also pass values to the dataset parameters from the pipeline or data flow level by using dynamic content.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>15.How do we monitor and manage Azure Data Factory Pipelines?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- </span><span style="font-family: verdana; font-size: medium;">There are several ways to monitor and manage your Azure Data Factory (ADF) pipelines:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">From the Azure portal, view your data factory as a graph, view activities in your pipeline, view input and output records, pause and resume pipelines, debug pipelines, errors in pipelines can be re-executed and alerts can be created.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Azure PowerShell allows you to manage pipelines using cmdlets like Create, update, delete, start, stop, and monitor pipelines.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Use the Monitoring and Management app, a web-based application that provides many features for monitoring and managing Data Factory pipelines. You can use system views, sort and filter activity windows, perform batch actions, and access detailed activity-specific monitoring experiences. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>16.How to send alerts from Azure Data Factory?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- </span><span style="font-family: verdana; font-size: medium;">There are various ways to send alerts from Azure Data Factory (ADF),for example. :</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Azure Monitor allows you to create alerts based on metrics and logs emitted by ADF. You can also configure action groups and notification types for alerts like Email, SMS, phone calls, or push notifications from Azure apps.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">With Azure Logic Apps, you can create workflows that send emails through Office 365 Outlook or other connectors. You can use web activities to trigger logic app workflows from pipelines and pass dynamic messages using system variables and expressions.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Data Factory Analytics, a service pack available in the Azure Marketplace, provides a rich set of Power BI reports for monitoring your ADF pipelines. You can also create alerts and configure notification settings based on report data. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>17.How to format the input and output format in Azure Data Factory?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- </span><span style="font-family: verdana; font-size: medium;">You can format the input and output data in Azure Data Factory (ADF) by using datasets and data flows. Datasets are the named references to the data sources that ADF can access, such as Azure Blob Storage, Azure SQL Database, Oracle, etc. Data flows are the graphical representations of data transformations that can be performed on data sources using Spark clusters in Azure.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">You can specify the format of the input and output data in a dataset by using properties such as type, columnDelimiter, rowDelimiter, quoteChar, escapeChar, firstRowAsHeader, etc. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">For example, you can use the DelimitedText type to define a dataset that uses comma-separated values (CSV) or other delimiters. You can also use other types such as JsonFormat, AvroFormat, OrcFormat, ParquetFormat, etc.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">You can also use data flows to format the input and output data by using transformations such as source, sink, select, derive column, filter, join, aggregate, etc. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">For example, you can use the source transformation to read data from a dataset and specify the schema and format of the input data. You can also use the sink transformation to write data to a dataset and specify the schema and format of the output data.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>18.How do I Backup my Azure Data factory pipeline?</b></span></div><div><span style="font-family: verdana; font-size: medium;"><span>- </span>Using the Export Template option in the ADF UI, you can download a zip file containing JSON files of your pipeline and its dependencies. You can also import the template and restore the pipeline to the same or another data factory.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Azure Resource Manager (ARM) templates allow you to export and import pipelines and their dependencies as JSON files using PowerShell or Azure CLI commands. You can also manage your ARM templates using source control tools such as GitHub or Azure Repos.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">With Azure Backup and Disaster Recovery, you can set up automatic recovery for your pipelines in the event of a region-wide outage. If the primary region is unavailable, ADF will automatically failover the pipeline to the paired region.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>19.How do I list all pipelines in Azure Data factory?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- </span><span style="font-family: verdana; font-size: medium;">You can list all pipelines in Azure Data Factory (ADF) using one of the following methods:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">From the Azure portal, you can view your data factory as a diagram and see all your pipelines and their dependencies. You can also filter and sort pipelines by name, type, status, etc.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Using Azure PowerShell, you can get all pipelines in a data factory using the Get-AzDataFactoryV2Pipeline cmdlet. You can also use the Get-AzDataFactoryV2PipelineRun cmdlet and pass the pipeline run ID or date range to get the run status of each pipeline.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Using the REST API, you can retrieve all pipelines in a data factory using the Pipelines - List By Factory operation. You can also use the Pipeline Execution - Query by Factory operation to get the execution status of each pipeline by passing a filter parameter. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>20.What is sink in ADF?</b></span></div><div><span style="font-family: verdana; font-size: medium;">-</span><span style="font-family: verdana; font-size: medium;">An ADF sink is a transformation that writes data to target storage after the data transformation is complete. Every data flow needs at least one sink transformation. However, you can write to as many sinks as you need to complete the transformation flow.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">You can use a dataset object or an inline dataset to specify the format and properties of the output data in your sink. Record objects are reusable entities that can be used in other data flows and activities. Inline datasets are format-specific entities that can be used for flexible schemas, one-time sink instances, or parameterized sinks.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">You can also use various settings in your sink to optimize data flow performance and error handling. For example, batch size, staging, partitioning, schema drift, schema validation, etc. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>21.How to debug ADF pipeline ?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- You can debug an ADF pipeline by following these steps:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Open the pipeline under the Author page and click on the Debug button.</span></div><div><span style="font-family: verdana; font-size: medium;">The pipeline will be deployed to the debug environment and run with the output shown in the Output tab.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">You can view the input, output, status and duration of each activity in the pipeline.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">You can also set breakpoints on specific activities to debug until that point.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">You can cancel a debug run while it is in progress or view the historical debug runs in the Monitor page.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>22. Difference between Azure Data factory and Databricks ?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Azure Data Factory and Databricks are two different cloud solutions that share some similarities and differences. Below are some key points </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Azure Data Factory is a data integration service orchestration tool that runs ETL and ELT workflows and scales data movement from various sources. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Databricks is an integrated platform for data, analytics and AI that simplifies data architecture and enables data engineering, data science, machine learning and BI in a single platform.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Azure Data Factory has a graphical user interface that allows users to create pipelines and activities without coding.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Databricks has a notebook-based interface that supports multiple programming languages and frameworks such as Python, Scala, SQL, R, and Spark. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Azure Data Factory supports over 100 connectors to various data sources and targets including Azure services, databases, files, web services, and more. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Databricks supports a smaller number of connectors, but offers more flexibility and power when processing data on Spark and Delta Lake.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Azure Data Factory can integrate with Databricks by running notebooks, JARs, or Python code as activities in pipelines. This allows users to leverage the power of both services for data collection, transformation and analysis. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>23. Difference between full load and incremental load in ADF?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Full load and incremental load are two types of data loading methods in the ETL process.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Full load means that the entire data is loaded from source to target without any filtering or conditions.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Incremental load means that only new or changed data is loaded from the source to the target based on timestamps or key columns.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">A full load typically occurs when the data source is loaded into the data warehouse or the first time the entire data needs to be refreshed.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Incremental loads are typically run periodically to keep the data warehouse up-to-date with the latest changes in the source. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Full load is simpler and easier to implement than incremental load, but requires more time and resources to execute. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Incremental loading is faster and more efficient than full loading, but requires more logic and complexity to handle errors and dependencies. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>24. What is CDC and why it is important in ADF?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- CDC stands for Change Data Capture, which is a set of technologies and techniques that enables data engineers to discover and extract changed records from the source data as they occur. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">CDC is important in ADF because it allows users to:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Perform incremental data loading from various sources to the destination without requiring timestamp or ID columns.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Use a graphical user interface to configure sources, targets and transformations without coding or designing pipelines or data flows.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Run continuous data integration processes with preferred latency and pay only for the data processing time.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">When you want to synchronize data between two tables or databases by applying the changes (inserts, updates, deletes) that occurred in the source to the destination.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>25. What is Delta lake and how it differs from Data Lake?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Delta Lake is an open-source storage layer that brings reliability and performance to your data lake. A data lake is a centralized repository for storing all your structured and unstructured data at any scale. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Delta Lake differs from Data Lake in several ways:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Delta Lake supports schema adaptation and evolution. This means you can verify and control the quality and structure of your data before writing it to storage. Data Lake does not require schema definition or validation, which can lead to data inconsistency or corruption.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Delta Lake supports ACID transactions. This means that data integrity and parallelism can be guaranteed across multiple concurrent reads and writes. Data Lake does not support ACID transactions, which can result in data loss or duplication.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Delta Lake supports time travel. That is, it tracks change history and allows users to access previous versions of data for auditing and rollback purposes. Data lakes don't support time travel, making it difficult to recover from errors and analyze historical data.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Delta Lake supports optimized query performance. This means you can leverage the Spark and Delta Lake engines to speed up data processing and analytics. Data Lake relies on external query engines or frameworks, which can be slow or inefficient. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>26. How do I create a dynamic pipeline in Azure Data factory?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- You can create dynamic pipelines in Azure Data Factory using parameters, variables, and expressions. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Here are the steps you need to follow:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Define parameters for pipelines and activities that can accept values from user input or other sources e.g. you can define parameters for the source file name or sink table name.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Define variables for pipelines and activities that can store intermediate values and results of other activities e.g. you can define variables for the number of rows of data copied or the execution status.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Use expressions to dynamically assign values to activity parameters, variables, and properties based on logic or conditions e.g. you can use an expression to concatenate the source file name and the current date, or check if the number of rows is greater than 0.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Use dynamic content to reference parameters, variables, and expressions in pipelines and activities e.g. you can use dynamic content to specify the source file path or sink table name. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><b><span style="font-family: verdana; font-size: medium;">27.How can we handle exceptions in Azure Data Factory?</span></b></div><div><span style="font-family: verdana; font-size: medium;">- </span><span style="font-family: verdana; font-size: medium;">There are various ways to implement exception handling in Azure Data Factory e.g. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">A retry policy allows you to automatically retry an activity or trigger if it fails due to transient errors or network issues. You can configure the retry count, interval, and backoff factor for activities or triggers that support a retry policy.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Use conditional paths to branch your pipeline logic based on activity results. Activity success, failure, completion, and jump outputs can be used to direct the pipeline to different activities based on their execution status e.g. you can use the error output to perform cleanup or send notifications when an activity fails. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Use stored procedures to log errors and exceptions to a table or file. You can create a stored procedure that accepts parameters such as activity name, error code, error message, timestamp, etc. and inserts them into a table or file for testing or troubleshooting. You can then call this stored procedure from any activity that can raise errors or exceptions.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Use webhooks or logic apps to send alerts or notifications when pipelines or activities fail. You can create a webhook or logic app that triggers an email, text message, or push notification when an HTTP request with specific parameters such as pipeline name, run ID, status, or error details is received. You can then call that webhook or logic app from any activity that can raise an error or exception. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>28. What are the stages in Azure Data Factory?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Azure Data Factory phases are:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Connect and Collect:</span></div><div><span style="font-family: verdana; font-size: medium;">This phase connects to various data sources such as databases, files, and web services, and copies the data to central locations such as Azure Blob Storage and Azure Data Lake Storage.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Transform and enhance:</span></div><div><span style="font-family: verdana; font-size: medium;">At this stage, data is processed and transformed using compute services such as Azure HDInsight, Azure Databricks, and Azure SQL Database to perform tasks such as cleansing, filtering, aggregation, and joining.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Release:</span></div><div><span style="font-family: verdana; font-size: medium;">During this phase, the transformed data is moved to the target data store like Azure Synapse Analytics, Azure Cosmos DB, Azure SQL Data Warehouse, etc. Can be used in business intelligence and analytics applications.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Monitor:</span></div><div><span style="font-family: verdana; font-size: medium;">During this phase, tools such as Azure Monitor, Azure Data Factory portal, PowerShell, and REST APIs are used to track and manage pipeline and activity execution and performance. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-15875141603505728782023-05-15T09:44:00.002+05:302023-05-15T16:44:42.031+05:30SnowFlake Interview Questions and Answers<p><span style="font-family: verdana; font-size: medium;"> </span></p><span style="font-size: medium;"><span style="font-family: verdana;"><span>This post intends to cover the answers to the questions which a Snowflake developer can face at an Interview</span><span> </span><span>i.e.</span></span><span style="font-family: verdana;"> Developer Interview Questions and Answers on </span><span style="font-family: verdana;">Snowflake</span></span><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><b>1. How Snowflake History Page works</b></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><br /></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;">- History page actually fetches data from one of the view from Information_schema i.e. Query_History based on the filters applied.</span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><br /></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><b>2. Where can we find details of the queries executed in Snowflake?</b></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;">- It's the History Tab</span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><br /></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><b>3. Can we query Query view in Snowflake?</b></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><span style="font-family: verdana; font-size: medium;">- You can certainly query directly <b>Query_History</b> and get the desired details or you can make use of the dedicated </span><span style="font-family: verdana;"><b>Information Schema table</b></span><span style="font-family: verdana;"> </span><span style="font-family: verdana; font-size: medium;">functions(QUERY_HISTORY_BY_* )</span><span style="font-family: verdana; font-size: medium;"><span> </span><span style="font-size: medium;">associated with it.</span></span></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><span style="font-family: verdana; font-size: medium;"><span style="font-size: medium;"><br /></span></span></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><span style="font-family: verdana; font-size: medium;"><span style="font-size: medium;"><b>4. Can I have multiple schedules in a single Task?</b></span></span></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><span style="font-family: verdana; font-size: medium;"><span style="font-size: medium;">- No. It is not supported. </span></span></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><span style="font-family: verdana; font-size: medium;"><span style="font-size: medium;"><br /></span></span></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><span style="font-family: verdana; font-size: medium;"><span style="font-size: medium;">To handle such scenarios, you can create multiple Task with different schedules.</span></span></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><span style="font-family: verdana; font-size: medium;"><span style="font-size: medium;"><br /></span></span></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><span style="font-family: verdana; font-size: medium;"><span style="font-size: medium;"><b>5. I created a task with schedule to run every 15 mins, but it didn't run?</b></span></span></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><span style="font-family: verdana; font-size: medium;"><span style="font-size: medium;">- It is because when you create a task it is not enabled just the task object gets added and it is in suspended state.</span></span></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><span style="font-family: verdana; font-size: medium;"><span style="font-size: medium;"><br /></span></span></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><span style="font-family: verdana; font-size: medium;"><span style="font-size: medium;">So in order to bring it in effect you have to enable it and that we do by using Alter command and set task to resume</span></span></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><span style="font-family: verdana; font-size: medium;"><span style="font-size: medium;"><br /></span></span></span></div><div style="text-align: left;"><span style="font-family: verdana;"><span style="font-family: verdana;"><span style="font-size: medium;"><span> </span><i>ALTER TASK taskname RESUME;</i></span></span></span></div><div style="text-align: left;"><span style="font-family: verdana;"><span style="font-family: verdana;"><span style="font-size: medium;"><i><br /></i></span></span></span></div><div style="text-align: left;"><span style="font-family: verdana;"><span style="font-family: verdana;"><span style="font-size: medium;"><b>6. What are the limitations of tasks in snaowflake?</b></span></span></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;">- Snowflake tasks have the following limitations:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Tasks cannot be run on demand. They can only be scheduled using a cron expression or triggered by another task.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Tasks cannot call UDFs containing Java or Python code, or stored procedures written in Scala. Nor can you call such a UDF.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Tasks cannot use primary and foreign key constraints, indexes, or partitions.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">If you don't carefully monitor your storage size and usage, the task can have hidden costs. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>7. What is the maximum number of tasks which can be managed in the task module?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- The maximum number of tasks that can be managed by the Tasks module depends on:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">A task can have up to 100 parent tasks and 100 child tasks.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">A directed acyclic graph (DAG) of tasks is limited to a maximum of 1000 total tasks (including the root task).</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">The TASK_HISTORY function returns up to 10,000 rows of task history determined by the RESULT_LIMIT argument value. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>8.How is snowflake different from other data warehouse?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Snowflake is a cloud-based data warehouse that offers many advantages over other data warehouse solutions. Key Snowflake features include:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">It is a Software-as-a-Service platform that can be deployed on various cloud providers such as AWS, Azure, and Google Cloud Platform.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">This allows users to create and scale multiple virtual warehouses that can run independent workloads on the same data without contention or performance degradation.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">It features a patented architecture that separates the storage and compute layers, allowing users to pay only for the resources they use and customize as needed.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">It supports structured and semi-structured data, as well as SQL and other languages for data analysis and manipulation. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>9.What do you mean by zero-copy cloning in Snowflake?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Zero Copy cloning is a Snowflake feature that allows users to create a copy of a table, schema, or database without duplicating the underlying data. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Captures a snapshot of the data in the source object and provides it to the clone object.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">There is no additional cost for cloning as the same tier of storage is shared between source and clone.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Makes the clone writable and independent from the source and this prevents changes made to one object from being reflected in the other. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>10. What is the difference between fail-safe and Time Travel in Snowflake?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Time Travel and Fail-safe are two features of Snowflake that provide continuous data protection and availability, the difference between them is:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Time Travel allows users to query, clone, and restore historical data in tables, schemas, and databases for up to 90 days. Users can access Time Travel through SQL commands or the web interface.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Fail-safe provides a 7-day period during which historical data may be recoverable by Snowflake in the event of a system failure or other disaster. Users cannot access Fail-safe directly, they need to contact Snowflake support for data recovery.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>11.How many types of cache are there in Snowflake?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Snowflake has three types of caches.</span></div><div><br /></div><div><span style="font-family: verdana; font-size: medium;">Metadata cache:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">This cache contains information and statistics about various objects such as tables, views, and hosted files. The cache is always up to date and never empty. It resides in Snowflake's service layer.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Query result cache:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">This cache stores the results of all queries executed in the last 24 hours. These results are available in all virtual warehouses unless the underlying data has changed or the query contains functions that must be evaluated at runtime. It also exists in Snowflake's service layer.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Local cache or warehouse cache:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">This cache stores data used in SQL queries on Snowflake's compute tier. It is associated with a specific instance of a virtual warehouse and is deleted when the warehouse is paused. It can speed up queries that repeatedly access the same data. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>12. How many roles are there in Snowflake?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- A Snowflake role is an entity that can grant and revoke privileges on securable objects such as databases, tables, and schemas. Users are assigned roles that enable them to perform actions required for the organization's business functions.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Snowflake has two types of roles.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">System-defined roles:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">These are predefined roles provided by Snowflake for common administrative and operational tasks. These include ACCOUNTADMIN, SECURITYADMIN, USERADMIN, SYSADMIN, PUBLIC, etc. System-defined roles cannot be modified or deleted.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Custom role:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">These are custom roles that you can create and customize for your specific needs and use cases. Custom roles can inherit permissions from other roles, including system-defined roles. Custom roles can be created, modified, and deleted by users with appropriate privileges. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>13. Why is Snowflake so fast?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Snowflake is fast because it leverages the power and scalability of the cloud to provide powerful data warehousing solutions. Some of the reasons Snowflake is fast are:</span></div><div><br /></div><div><span style="font-family: verdana; font-size: medium;">It features a unique architecture that separates the storage and compute layers, allowing users to scale independently and pay only for the resources they use.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Supports multiple virtual warehouses that can run independent workloads concurrently against the same data without contention or performance degradation.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">There are different levels of caching that improve query performance by reusing data and results from previous queries.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">You'll see some performance improvements that optimize query execution, speeding up queries, removing joins, optimizing searches, and selecting top-K order.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Transparent and flexible pricing allows users to optimize the costs and benefits of their workloads. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>14.What is the SQL language in Snowflake?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- SQL stands for Structured Query Language and is a standardized format for querying and database management. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Snowflake supports ANSI SQL, the most widely used standard version of SQL. This means Snowflake SQL supports all common operations i.e. select, insert, update, and delete data.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Snowflake also supports SQL extensions such as:</span></div><div><br /></div><div><span style="font-family: verdana; font-size: medium;">Snowflake Scripting is a SQL-like language that enables stored procedures, conditional statements, loops, and error handling.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Snowpark is a framework that enables data transformation and processing using Python, Java, or Scala. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">The Snowflake API is an interface that enables programmatic access to Snowflake functions and data. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>15. What are the ways to interact with Snowflake?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- There are many ways to interact with Snowflake, depending on your needs and preferences. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">The most common methods are:</span></div><div><br /></div><div><span style="font-family: verdana; font-size: medium;">SnowSQL is a command line interface (CLI) tool that you can use to execute SQL statements and perform various tasks in Snowflake.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Snowsight is a web-based user interface (UI) that provides a modern and intuitive way to explore, query, visualize, and share data in Snowflake.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Snowflake Connector for Python. A library that allows you to connect to Snowflake and perform data manipulation using Python code.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Snowflake ODBC driver. Software that allows ODBC-based applications such as R, Excel, and Tableau to connect to Snowflake and access data.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">The Snowflake API is an interface that allows you to programmatically manipulate Snowflake functions and data using a variety of languages and frameworks. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>16.What is unique about Snowflake?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Snowflake is a cloud-based data platform that provides a variety of features and services for storing, processing, and analyzing data. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Unique aspects of Snowflake include:</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">With support for multiple cloud platforms and regions, customers can choose their preferred cloud provider and location.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">It features a multi-cluster shared data architecture that separates compute and storage resources, enabling scalability, performance, and parallelism for diverse workloads.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Provides continuous data protection and regulatory compliance for data security and governance.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Enables data sharing and collaboration between organizations and ecosystems through the Data Cloud and Snowflake Marketplace. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>17.What are the different types of files supported in Snowflake?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Snowflake supports various file types for loading and unloading data. Supported file formats are:</span></div><div><br /></div><div><span style="font-family: verdana; font-size: medium;">CSV is a structured format that uses delimiters (such as commas and tabs) to separate values in each row.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">JSON is a semi-structured format for representing objects and arrays using key-value pairs.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">AVRO is a semi-structured format that uses binary encodings and schema to store data.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">ORC is a semi-structured format that uses columnar storage and a data storage schema.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">PARQUET is a semi-structured format that uses columnar storage and a schema for storing data.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">XML is a semi-structured format that uses tags and attributes to represent elements and values. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>18.What are the three Snowflake stage types?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- A Snowflake stage is a storage location used to load data from files into Snowflake tables and unload data from tables to files. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">There are three types of Snowflake tiers.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">An internal stage that stores data files internally within Snowflake. Internal phases can be permanent or temporary.</span></div><div><span style="font-family: verdana; font-size: large;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">An external stage pointing to a data file stored somewhere outside of Snowflake such as Amazon S3, Google Cloud Storage, or Microsoft Azure.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">A directory table that stores a catalog of files hosted in cloud storage. Directory tables can be used in both internal and external stages.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>19. Is Snowflake built for OLAP or OLTP?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Snowflake was developed for OLAP (Online Analytical Processing) database systems, systems that perform multidimensional analysis of large amounts of data.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Snowflake supports a variety of features and services for data storage, processing, and analysis, including:Data warehouse, data lake, data sharing, data exchange, data cloud.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Depending on your use case, you can also use Snowflake for online transaction processing (OLTP) purposes. OLTP is a system that performs high volume transactions in real time or near real time. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Snowflake supports some OLTP features such as ACID transactions, concurrency control, row-level locking, and stored procedures. However, Snowflake is not optimized for OLTP workloads and may not offer the same performance and scalability as dedicated OLTP systems. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>20. <span style="background-color: white; color: #202124;">What security terms does Snowflake use?</span></b></span></div><div><span style="font-family: verdana; font-size: medium;"><span style="background-color: white; color: #202124;">- </span></span><span style="color: #202124; font-family: verdana; font-size: medium;">Snowflake uses various security terms to describe its capabilities and practices that protect the confidentiality, integrity, availability, and security of its Services and Customer Data.</span></div><div><span style="color: #202124; font-family: verdana; font-size: medium;"><br /></span></div><div><span style="color: #202124; font-family: verdana; font-size: medium;">Some of the security terms used in Snowflake are:</span></div><div><br /></div><div><span style="color: #202124; font-family: verdana; font-size: medium;">Encryption uses a private key to transform data into an unreadable form. Snowflake uses industry-standard algorithms and protocols to provide end-to-end encryption for data in transit and at rest.</span></div><div><span style="color: #202124; font-family: verdana; font-size: medium;"><br /></span></div><div><span style="color: #202124; font-family: verdana; font-size: medium;">Network security is a set of measures designed to prevent unauthorized access to or from a network. Snowflake supports network policies, private connections, firewall rules, and proxy settings to secure network access to Snowflake.</span></div><div><span style="color: #202124; font-family: verdana; font-size: medium;"><br /></span></div><div><span style="color: #202124; font-family: verdana; font-size: medium;">Authentication is the process of confirming the identity of a user or system. Snowflake supports various authentication methods including passwords, federated authentication, multi-factor authentication, key pair authentication, and OAuth.</span></div><div><span style="color: #202124; font-family: verdana; font-size: medium;"><br /></span></div><div><span style="color: #202124; font-family: verdana; font-size: medium;">Authorization is the process of granting or denying access to resources based on predefined rules. Snowflake supports various authorization mechanisms such as roles, privileges, grants, ownership, and secure views.</span></div><div><span style="color: #202124; font-family: verdana; font-size: medium;"><br /></span></div><div><span style="color: #202124; font-family: verdana; font-size: medium;">Data masking is the process of hiding sensitive data or replacing it with fictitious data. Snowflake supports dynamic data masking, applying masking policies at query time based on user role. </span></div></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-52627946498289330732023-05-11T20:25:00.000+05:302023-05-11T20:25:31.729+05:30Useful tools and services while working with Azure Services<span style="font-family: verdana; font-size: medium;"><b>{tocify} $title={Table of Contents}</b>
<br />
</span><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Introduction</span></b></h3><div><span style="font-family: verdana; font-size: medium;">No matter which language/technology you use for developing applications, there is always a need of tool to assist us in the process.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Here I am trying to capture the list of such tools which are helpful while working with Azure services (other technologies also)</span></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">List of tools and it's use</span></b></h3><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><h4 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Visual Studio</span></b></h4><div><span style="font-family: verdana; font-size: medium;">Visual Studio and Azure are two products from Microsoft that can help you develop, debug, deploy, and monitor cloud applications. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Visual Studio is an integrated development environment (IDE) that supports various programming languages and platforms. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Azure is a cloud computing service that offers a range of solutions for hosting, computing, storage, networking, and more. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">You can use Visual Studio to create and publish applications for Azure, or set up a continuous integration and continuous delivery (CI/CD) pipeline to automate your code deployment. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">You can also use Visual Studio to troubleshoot and diagnose issues in your cloud applications using tools like remote debugging and snapshot debugging. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">If you want to download Visual Studio, you can go to the official website of Visual Studio and choose the edition that suits your needs. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">There are three editions available: Community, Professional, and Enterprise. Community is free for students, open-source contributors, and individual developers. Professional and Enterprise offer more features and support for small and large teams, respectively. You can also try them for <b>free for a limited time</b>.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Download it from - <a href="https://visualstudio.microsoft.com/downloads/">https://visualstudio.microsoft.com/downloads/</a></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><h4 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Visual Studio code</span></b></h4><div><span style="font-family: verdana; font-size: medium;"><div>Visual Studio Code and Azure are two products that can help you code and deploy your applications to the cloud. Visual Studio Code is a <b>free and lightweight code editor</b> that supports various languages and extensions. Azure is a cloud computing service that offers a range of solutions for hosting, computing, storage, networking, and more. </div><div><br /></div><div>You can use Visual Studio Code to connect to Azure services, create and manage resources, debug and test your applications, and set up continuous integration and delivery pipelines. You can also use Azure extensions for Visual Studio Code to work with local emulators and tools for Azure services.</div><div><br /></div><div>Download it from - <a href="https://code.visualstudio.com/docs/azure/extensions">https://code.visualstudio.com/docs/azure/extensions</a></div></span></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><h4 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">SQL server management studio</span></b></h4><div style="text-align: left;"><span style="font-family: verdana; font-size: medium; font-weight: normal;">SQL Server Management Studio (SSMS) and Azure are two products that can help you manage and query your SQL databases in the cloud. SSMS is an integrated environment that provides tools to configure, monitor, and administer instances of SQL Server and databases.</span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium; font-weight: normal;"><br /></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium; font-weight: normal;">Azure is a cloud computing service that offers a range of solutions for hosting, computing, storage, networking, and more. You can use SSMS to connect to Azure SQL Database or Azure SQL Managed Instance, create and manage databases, run queries, and troubleshoot issues. </span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium; font-weight: normal;"><br /></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium; font-weight: normal;">You can also use SSMS to set up automated deployments to Azure using GitHub Actions or Azure Pipelines.</span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium; font-weight: normal;"><br /></span></div><div style="text-align: left;"><span style="font-weight: normal;"><span style="font-family: verdana; font-size: medium;">Download it from - </span></span><span style="font-family: verdana; font-size: medium;"><a href="https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16">https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16</a></span></div><div style="text-align: left;"><span style="font-weight: normal;"><span style="font-family: verdana; font-size: medium;"><br /></span></span></div><h4 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Service Bus Explorer</span></b></h4><div><span style="font-family: verdana; font-size: medium;"><div>Service Bus Explorer and Azure are two products that can help you work with Azure Service Bus, a messaging service that enables communication between applications and services. </div><div><br /></div><div>Service Bus Explorer is a tool that is part of the Azure portal and allows you to perform data operations on Service Bus entities such as queues, topics, and subscriptions. You can use Service Bus Explorer to send, receive, and peek messages, as well as view and manage dead-letter queues. </div><div><br /></div><div>Azure is a cloud computing service that offers a range of solutions for hosting, computing, storage, networking, and more. You can use Azure to create and manage Service Bus namespaces and entities, as well as set up automated deployments using GitHub Actions or Azure Pipelines.</div><div><br /></div><div><br /></div></span><span style="font-family: verdana; font-size: medium;"><div>Download it from-<a href="https://github.com/paolosalvatori/ServiceBusExplorer">https://github.com/paolosalvatori/ServiceBusExplorer</a></div></span></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><h4 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Azure Storage explorer</span></b></h4><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><div><span style="font-family: verdana; font-size: medium;">Azure Storage Explorer and Azure are two products that can help you work with Azure Storage, a service that provides scalable and durable cloud storage for your data. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Azure Storage Explorer is a free tool that you can download and install on your desktop to manage your Azure Storage accounts and resources. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">You can use Azure Storage Explorer to upload, download, and copy blobs, files, queues, tables, and managed disks. You can also create snapshots, migrate data, and configure access policies and permissions. Azure is a cloud computing service that offers a range of solutions for hosting, computing, storage, networking, and more.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">You can use Azure to create and manage Azure Storage accounts and resources, as well as integrate them with other Azure services.</span></div></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Download Link - <a href="https://azure.microsoft.com/en-us/features/storage-explorer/">https://azure.microsoft.com/en-us/features/storage-explorer/</a></span></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><h4 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Azurite</span></b></h4><div><span style="font-family: verdana; font-size: medium;"><div>Azurite and Azure are two products that can help you develop and test your Azure Storage applications locally. Azurite is an open-source emulator that simulates most of the commands supported by Azure Storage, including Blob, Queue, and Table services. </div><div><br /></div><div>You can use Azurite to run your applications without connecting to Azure or paying for storage costs. You can install Azurite on your desktop using various methods, such as npm, Docker, or Visual Studio Code extension. Azure is a cloud computing service that offers a range of solutions for hosting, computing, storage, networking, and more. </div><div><br /></div><div>You can also use Azure Storage Explorer to manage your Azure Storage data on the cloud or on Azurite.</div><div style="font-weight: bold;"><br /></div></span></div><div><span style="font-family: verdana; font-size: large;">Download Link - </span><span style="font-family: verdana; font-size: medium;"><a href="https://github.com/Azure/Azurite">https://github.com/Azure/Azurite</a></span></div><div><br /></div><h4 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Apache Parquet viewer</span></b></h4><div><span style="font-family: verdana; font-size: medium;"><div>Apache Parquet viewer and Azure are two products that can help you view and query Parquet files stored on Azure. Parquet is a columnar file format that is designed for efficient and scalable data processing. Parquet files can be created and read by various tools and frameworks, such as Apache Spark, Apache Hive, and Azure Data Factory. </div><div><br /></div><div>Apache Parquet viewer is a tool that allows you to open and inspect Parquet files on your local machine or on Azure storage. You can use Apache Parquet viewer to view the schema, metadata, statistics, and data of Parquet files. You can also export the data to CSV or JSON formats. </div><div><br /></div><div>Azure is a cloud computing service that offers a range of solutions for hosting, computing, storage, networking, and more. You can use Azure to store and access Parquet files using services such as Azure Blob Storage, Azure Data Lake Storage, or Azure Synapse Analytics. </div><div><br /></div><div>You can also use Azure to query Parquet files using services such as serverless SQL pool in Azure Synapse Analytics or Azure Databricks. </div><div><br /></div></span><span style="font-family: verdana; font-size: medium;"><div>Download Link - <a href="https://parquet.apache.org/">https://parquet.apache.org/</a></div></span></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><h4 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Postman</span></b></h4><div><span style="font-family: verdana; font-size: medium;">Postman allows you to test your APIs.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs—faster.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><div>Postman and Azure are two products that can help you test and integrate your APIs on Azure. Postman is a tool that allows you to create, send, and analyze requests to any API endpoint. You can use Postman to explore the Azure REST APIs, authenticate with Azure AD, and manage your Azure resources.</div><div><br /></div><div>Azure is a cloud computing service that offers a range of solutions for hosting, computing, storage, networking, and more. You can use Azure to create and host your APIs using services such as Azure API Management, Azure Functions, or Azure App Service. You can also use Azure to monitor and secure your APIs using services such as Azure Application Insights, Azure Key Vault, or Azure Active Directory.</div></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div><span style="font-family: verdana; font-size: medium;"><b>Download Link (Browser based) -- </b><a href="https://identity.getpostman.com/signup?continue=https%3A%2F%2Fgo.postman.co%2Fbuild&_ga=2.16068852.391014798.1645863829-313790044.1645863829">https://identity.getpostman.com/signup?continue=https%3A%2F%2Fgo.postman.co%2Fbuild&_ga=2.16068852.391014798.1645863829-313790044.1645863829</a></span></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;"><b>Desktop Client download link -- </b><a href="https://www.postman.com/downloads/?utm_source=postman-home">https://www.postman.com/downloads/?utm_source=postman-home</a></span></div></div><div><br /></div><div><br /></div><h4 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">ARC (Advanced Rest Client)</span></b></h4><div><div><span style="font-family: verdana; font-size: medium;">Advanced REST client allows you to test your APIs.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Easy and clean user interface helps you focus on your API and not tooling.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Store your requests and projects on Google Drive and share it with your team.</span></div></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;">Advanced REST Client and Azure are two products that can help you interact with Azure REST APIs using a graphical interface. Advanced REST Client is a tool that allows you to create, send, and analyze requests to any API endpoint. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">You can use Advanced REST Client to explore the Azure REST APIs, authenticate with Azure AD, and manage your Azure resources. You can also use Advanced REST Client to generate code snippets, create variables and environments, and customize themes.</span></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;"><b>Download Link (</b><b>Browser based - </b><b>chrome extension)</b><b>-- </b><a href="https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo/related">https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo/related</a></span></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;"><b>Desktop Client download link -- </b><span style="background-color: white; color: #3c4043; letter-spacing: 0.00625em; white-space: pre-wrap;"><a href="https://install.advancedrestclient.com">https://install.advancedrestclient.com</a></span></span></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><b><br /></b></span></h3><h4 style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><b>JWT.IO</b></span></h4><div><span style="font-family: verdana; font-size: medium;"><div>JWT.IO and Azure are two products that can help you work with JSON Web Tokens (JWTs) on Azure. JWTs are an open-industry standard method for representing claims securely between two parties. You can use JWTs to authenticate and authorize your APIs on Azure using services such as Azure Active Directory, Azure API Management, or Azure Functions. </div><div><br /></div><div>JWT.IO is a tool that allows you to create, decode, and verify JWTs online. You can use JWT.IO to explore the Azure REST APIs, generate code snippets, and test your JWTs. You can also use JWT.IO to learn more about the JWT format and specifications.<b> </b></div><div><b><br /></b></div><div>Link<b> - </b><a href="https://jwt.io/">https://jwt.io/</a></div><div><br /></div><div><br /></div></span></div><h4 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Azure Studio</span></b></h4><div><span style="font-family: verdana; font-size: medium;"><div>Azure Studio and Azure are two products that can help you manage and query your data on Azure. Azure Studio is a cross-platform database tool that supports various data sources, such as SQL Server, Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics, and PostgreSQL. </div><div><br /></div><div>You can use Azure Studio to create and edit queries, notebooks, and dashboards, as well as to configure and deploy your databases and data warehouses.</div><div><br /></div><div>Download link - <a href="https://learn.microsoft.com/en-us/sql/azure-data-studio/download-azure-data-studio?view=sql-server-ver16&tabs=redhat-install%2Credhat-uninstall">https://learn.microsoft.com/en-us/sql/azure-data-studio/download-azure-data-studio?view=sql-server-ver16&tabs=redhat-install%2Credhat-uninstall</a></div><div><br /></div></span></div><h4 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">base64decode</span></h4><div><span style="font-family: verdana; font-size: medium;"><div>Base64decode and Azure are two products that can help you decode base64 strings on Azure. Base64decode is a function that performs base64 decoding of the input string. You can use base64decode to transform base64 strings to UTF-8 strings or arrays of long values. </div><div><br /></div><div>You can also use base64decode to inspect the contents of JSON Web Tokens (JWTs) or other base64-encoded data. Azure is a cloud computing service that offers a range of solutions for hosting, computing, storage, networking, and more. You can use Azure to store and process base64-encoded data using services such as Azure Data Explorer, Azure Logic Apps, or Azure Functions. </div><div><br /></div><div>You can also use Azure to integrate with other services that use base64 encoding, such as Azure Active Directory or Azure Cognitive Search.</div><div><br /></div><div>Link - <a href="https://www.base64decode.org/">https://www.base64decode.org/</a></div><div><br /></div></span></div><h4 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Notepad ++</span></h4><div><div><span style="font-family: verdana; font-size: medium;">Notepad++ and Azure are two products that can help you edit and upload your files to Azure. Notepad++ is a free and powerful text editor that supports various languages and features. You can use Notepad++ to create and edit your files locally, and then use the NppFTP plugin to connect to your Azure web app or blob storage via FTP. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">You can also use Notepad++ to work with JSON Web Tokens (JWTs) or other base64-encoded data using the base64decode function. Azure is a cloud computing service that offers a range of solutions for hosting, computing, storage, networking, and more. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">You can use Azure to create and manage your web apps or blob storage accounts, as well as to integrate them with other Azure services. You can also use Azure to access and edit your files using the Azure Cloud Shell editor or GitHub Codespaces. </span></div></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">There might be other tools and services which are getting used while working with Azure, if it is missing in above list then feel free to comment about it.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-87755604772486417032023-05-09T16:22:00.005+05:302023-12-26T13:30:36.553+05:30Interview questions and answers on Azure APIM | Interview questions for azure apim developers<span style="font-family: verdana; font-size: medium;"><br />
</span><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><div><span style="font-size: medium;"><span style="font-family: verdana;"><span>This post intends to cover the answers to the questions which a Azure developer can face at an Interview</span><span> </span><span>i.e.</span></span><span style="font-family: verdana;"> Azure Developer Interview Questions and Answers on Azure APIM(API management)</span></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;"><b>For logic app related read following - </b><a href="https://www.tech-findings.com/2019/01/Interview-questions-answers-LogicApps.html" style="white-space: pre-wrap;" target="_blank">Developer Interview questions on Logic App </a></span></div></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><b><span style="font-family: verdana; font-size: medium;">1. What are the available ways to create an Azure APIM instance?</span></b></div><div><span style="font-family: verdana; font-size: medium;">- Azure APIM instances can be created by using:</span></div><div><ul style="text-align: left;"><li><span style="font-family: verdana; font-size: medium;">Azure Portal</span></li><li><span style="font-family: verdana; font-size: medium;">Azure CLI</span></li><li><span style="font-family: verdana; font-size: medium;">ARM Template</span></li><li><span style="font-family: verdana; font-size: medium;">Azure PowerShell</span></li><li><span style="font-family: verdana; font-size: medium;">Visual Studio Code</span></li></ul><div><span style="font-family: verdana; font-size: medium;"><br /></span></div></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><b><span style="font-family: verdana; font-size: medium;">2. Can we use any policy in any of the Scope/sections/stages?</span></b></div><div><span style="font-family: verdana; font-size: medium;"><b>-</b> No that's not how it is.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Each policy has some intention to it, and based on it's intention and applicability it is available in respective scope/section/stages.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">For example rate limit policy - it is for limiting incoming request. So it doesn't make sense to be used in Outbound scope as you would want to limit the rate at first step itself .</span></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><b><span style="font-family: verdana; font-size: medium;">3. What is errorOn section available for?</span></b></div><div><span style="font-family: verdana; font-size: medium;">- A</span><span style="font-family: verdana; font-size: medium;"> section that must be explicitly added and is run when a request processing error occurs. This section is absent by default in policies.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">It can be used to alter the way errors are handled, for as by logging them, producing fresh responses, or retrying requests.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">This section has access to the context.The LastError property has data about the error's origin, cause, message, scope, and section.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Additionally, it can employ specific rules, such as return-response, set-status, send-request, or choose, to deal with the error state.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><b><span style="font-family: verdana; font-size: medium;">4. What is importance of subscriptions and products in Azure APIM?</span></b></div><div><span style="font-family: verdana; font-size: medium;"><b>-</b> Following are the importance of subscriptions and products in Azure Apim</span></div><div><span style="font-family: verdana; font-size: medium;"><div><ul style="text-align: left;"><li>Enable API publishers to control and secure access to their APIs using subscription keys.</li><li>Allow API consumers to discover and request access to the APIs they need.</li><li>Define the scope of access for each subscription, which can be either a product, a single API, or all APIs.</li><li>Support key management and regeneration for security purposes.</li><li>Facilitate B2B integration and scaling by lowering the barrier to integrate business processes and exchange data</li></ul></div></span></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><b><span style="font-family: verdana; font-size: medium;">5. Can we export single API definition using Azure Portal?</span></b></div><div><span style="font-family: verdana; font-size: medium;"><b>-</b><span> No. </span></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Still there is no such provision. When you export, all the api's get exported.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>6. What is Products in Azure API management (APIM)?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- </span><span style="font-family: verdana; font-size: medium;">In Azure API Management, products are collections of one or more APIs that share a usage cap, a set of usage guidelines, and a subscription requirement. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Products enable API providers to manage developers' access to and use of their APIs.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Both open and protected products are possible. Protected products need a subscription and a subscription key to access the APIs, but open products can be accessed by anyone without a subscription.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>7. Is Azure APIM a Proxy?</b></span></div><div><span style="font-family: verdana; font-size: medium;"><span>- </span>Existing APIs can use Azure API Management as a proxy to alter input and output before the information is received or sent. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Azure API Management's API gateway hides the backend architecture from API consumers and routes queries from client apps to the appropriate backend services. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Using the proxy policy, Azure API Management also supports sending requests to backends through an HTTP proxy.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><b><span style="font-family: verdana; font-size: medium;">8.What type of APIs does Azure APIM supports?</span></b></div><div><span style="font-family: verdana; font-size: medium;">- </span><span style="font-family: verdana; font-size: medium;">An endpoint that manages API calls, credentials, use quotas, caching, and other things is the API gateway. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">The gateway supports REST, RESTful, and SOAP API connections. Additionally, it is able to link to the Logic Apps, App Services, Function Apps and Public APIs, or APIs that are accessible to everyone online and can be used.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><b style="font-family: verdana; font-size: large;">9.What is the base URL of Azure APIM?</b></div><div><span style="font-family: verdana; font-size: medium;">-</span><span style="font-family: verdana; font-size: medium;"><span id="input-sentence~0" style="background-color: white; box-sizing: inherit; color: #252525; white-space: pre-wrap;">When we create Azure APIM by default it takes base url as: <b><apim-service-name>. </b></span><span id="input-sentence~1" style="background-color: white; box-sizing: inherit; color: #252525; white-space: pre-wrap;"><b>azure-api.net</b></span></span></div><div><span style="font-family: verdana; font-size: medium;"><span style="background-color: white; box-sizing: inherit; color: #252525; white-space: pre-wrap;"><b><br /></b></span></span></div><div><span style="background-color: white; box-sizing: inherit; white-space: pre-wrap;"><span style="color: #252525; font-family: verdana; font-size: medium;">The APIs exposed by API Management can be accessed at this URL.</span></span></div><div><span style="background-color: white; box-sizing: inherit; white-space: pre-wrap;"><span style="color: #252525; font-family: verdana; font-size: medium;"><br /></span></span></div><div><span style="background-color: white; box-sizing: inherit; white-space: pre-wrap;"><span style="color: #252525; font-family: verdana; font-size: medium;">However, y</span></span><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">ou can also configure a custom domain name for your API Management instance, such as <b>tech-findings.com</b>, using a valid certificate and DNS records. </span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">The custom domain name can be applied to different API Management endpoints, such as Gateway, Developer portal, Management, and SCM.</span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><b>10.What are named values in APIM?</b></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">- To manage constant string values and secrets across all API configurations and policies, Named Values in APIM are a global collection of name/value pairs.
Named values can contain literal strings, policy expressions, or secrets stored in Azure Key Vault.
By using the syntax {{name}}, named values can be referred to in policy statements.
Using the Azure portal, the REST API, or the Azure CLI, named values can be created and managed.</span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><b>11. What is policies in Azure APIM?</b></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">- Policies are the real meat of APIM service. By configuring policies in Azure APIM with XML and C# statements, API behavior can be modified.
Policies are a group of instructions that are executed sequentially on an API request or response at the gateway between the managed API and the API consumer.
Many different tasks, including format conversion, rate limiting, filtering, authentication, caching, and more, can be carried out by policies.
Policies can also access variables and functions that control traffic and alter API behavior without changing any code or the back end by using policy expressions. Policies may be applied to specific APIs or to reusable policy fragments that span multiple APIs.</span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><b>12.What is cache store value in APIM?</b></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">- With the help of a specific key, a value can be stored in the cache by using the cache store value policy in APIM. </span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">The cache store value policy can specify whether the value should be encrypted as well as how long it should be kept in the cache.</span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span><span style="color: #252525; font-family: verdana; font-size: medium; white-space: pre-wrap;">To implement custom caching scenarios, combine the cache store value policy and cache lookup value policy.</span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><b><br /></b></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><b>13.How do I add operations to APIM?</b></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">-Depending on how you want to define and configure them, there are various ways to add operations to APIM.
Several techniques include:
Utilizing the Azure portal: You can manually add an operation to an API using the Azure portal, where you can also specify the operation's URL, method, display name, description, request and response parameters, policies, and other details.
Using the Azure CLI: The <b>az apim api operation create command</b> in the Azure CLI can be used to add a new operation to an API. Using the az apim api operation commands, you can also delete, list, show, or update an already-existing operation.</span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">Using Bicep or ARM templates: You can use Bicep or ARM templates to deploy a service/apis/operations resource type that defines the properties of the operation in an API. You can specify the name, parent API, description, display name, method, policies, request and response parameters, and more.</span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><b>14. How to group API's in APIM?</b></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">- Products can be used in APIM as a way to organize APIs. Products are collections of one or more APIs that share a usage cap, a set of usage guidelines, and a subscription requirement. </span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">Products enable API providers to manage developers' access to and consumption of their APIs.
In APIM, groups can also be used to organize APIs. Groups are employed to control a product's developer visibility. Administrators, Developers, and Guests are the three immutable system groups in APIM. </span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">The APIM service instances are managed by administrators, who also design the operations, products, and APIs. Developers are logged-in users of the developer portal who create applications by using the APIs. Guests are users of the developer portal who are not authenticated and who can only view the APIs, not use them.</span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><b style="white-space: pre-wrap;">15.What is the difference between inbound and backend APIM?</b><span style="white-space: pre-wrap;">
-The policies that control inbound requests from API consumers to the APIM gateway are found in the inbound section. </span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">The work that inbound policies can do includes transformation, caching, rate limiting, authentication, and authorization.
The backend section, on the other hand, contains the policies that control requests that are sent from the APIM gateway to the backend service that implements the API. </span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">Backend policies are capable of setting query parameters, headers, retry logic, mocking responses, and other things.
Whereas policies that control outbound responses from the APIM gateway to the API consumers are found in the outbound section. </span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">The work that outbound policies can do includes transformation, caching, logging, and other things.</span> </span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><b style="white-space: pre-wrap;"><br /></b></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><b style="white-space: pre-wrap;"><br /></b></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><b style="white-space: pre-wrap;">16.What is the difference between APIM external and internal?</b></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">- There are two types of VNet connectivity for an APIM instance: internal and external. APIM is able to manage APIs that are not accessible via the internet thanks to VNet connectivity.
When backend services are present on the network and APIM endpoints are reachable via the open internet, the mode is known as APIM external.</span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">A VPN gateway or an ExpressRoute circuit can be used in external mode to connect to a VNet.
When the APIM endpoints are only reachable within a VNet whose access you control, this is known as APIM internal mode.</span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">Using Azure VPN connections or Azure ExpressRoute, you can use internal mode to securely enable external third-party access to APIs hosted in your private datacenter.</span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><b>17. Is there any restrictions on number of policy each section can have in APIM?</b></span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">- </span></span></div><div><span style="color: #252525; font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div><div><span><span style="color: #252525; font-family: verdana; font-size: medium; white-space-collapse: preserve;"><div><b>Backend Section:</b></div><div><br /></div><div>Single Policy: The backend section can only contain one policy element.</div><div>Default Base Element: API Management automatically configures the forward-request policy at the global scope and the base element at other scopes.</div><div>Customization: You can replace the default policy with another (e.g., send-request), but only one policy is allowed.</div><div><br /></div><div><b>Other Sections</b> (Inbound, Outbound, On-Error):</div><div><br /></div><div>No Numerical Limit: These sections can technically contain multiple policies.</div><div>Performance Considerations: Excessive policies can impact request processing time and APIM performance.</div></span></span></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-60285431226717543862023-05-07T20:21:00.008+05:302023-09-19T10:26:15.289+05:30How to use Logic app Run History | How to troubleshoot Logic App workflow execution<b>{tocify} $title={Table of Contents}</b>
<br />
<div><b><br /></b></div><div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Introduction</span></b></h3><div><b><br /></b></div><div><span style="font-family: verdana; font-size: medium;">Whenever you create an application or any project, one of the important factor which is must needed is the ability to monitor the application/interface etc. - like status, performance issues etc.</span></div><div><b><br /></b></div><div><span style="font-family: verdana; font-size: medium;">If there arises a need to troubleshoot, it should be feasible in as simplified way as much as possible.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Here, we will see how we can monitor Logic App and how to troubleshoot Logic App workflow execution using Run history.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">In order to do so, permission/access is required.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div><span style="font-family: verdana; font-size: medium;">There are two resource-specific roles available in Azure portal which you can assign - <b>Logic App Contributor</b> and <b>Logic App Operator.</b> </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Logic app contributor can do everything on a resource, except managing the access to it while logic app operator can only read the instance details and connections.</span></div></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><h3 style="text-align: left;"><b><span style="font-family: verdana;">How to access the Logic App History</span></b></h3><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;">The Run history of Logic Apps can be obtained using the Get-AzLogicAppRunHistory cmdlet(powershell). This cmdlet returns a collection of WorkflowRun objects.</span></div><div><span style="font-family: verdana; font-size: medium;"><div><br /></div><div>You can specify the logic app and resource group. </div><div><br /></div><div><div>Get-AzLogicAppRunHistory</div><div> -ResourceGroupName <String></div><div> -Name <String></div><div> [-RunName <String>]</div><div> [-FollowNextPageLink]</div><div> [-MaximumFollowNextPageLink <Int32>]</div><div> [-DefaultProfile <IAzureContextContainer>]</div><div> [<CommonParameters>]</div></div><div><br /></div><div>You can also review workflow run history in the Azure portal. Find and open your logic app workflow in the designer.</div><div><br /></div><div>Select your logic app and on your logic app's menu, select Overview. On the Overview pane, select Runs history. </div></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">You should see information about the logic app along with Run History and Trigger History as highlighted below.</span></div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhGPD4yr-X6v9cIHyVcnwZxHj_PNJIS9bW7YNsTmmvYWX0h1_El8DC8Ce8YW1e6jSu7wces5FRfUIg42Oqqa8R7DvJ_pbCCU_IUz8WyVfYwxImBimsjPVd6IsHYAQVPxXhYFD-_LYtSDbMJ5TXYGMfDUI9NS9F8Vum_3TNXJUcclmyEevjilgELEwdw" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Overview page of Logic App" data-original-height="559" data-original-width="1668" height="214" src="https://blogger.googleusercontent.com/img/a/AVvXsEhGPD4yr-X6v9cIHyVcnwZxHj_PNJIS9bW7YNsTmmvYWX0h1_El8DC8Ce8YW1e6jSu7wces5FRfUIg42Oqqa8R7DvJ_pbCCU_IUz8WyVfYwxImBimsjPVd6IsHYAQVPxXhYFD-_LYtSDbMJ5TXYGMfDUI9NS9F8Vum_3TNXJUcclmyEevjilgELEwdw=w640-h214" title="Overview page of Logic App" width="640" /></a></div><span style="font-family: verdana;"><br /></span><h4 style="text-align: left;"><span style="font-family: verdana;">Trigger History</span></h4></div><div><span style="font-family: verdana; font-size: medium;">The trigger history captures all the trigger attempts that your workflow made and information about the inputs and outputs for each trigger attempt. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">It specifies how many times logic apps is invoked or triggered. Trigger activity will have three values—Succeeded, Failed, and Skipped.</span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><b>Status related to Trigger</b></span></div><div><span style="font-family: verdana; font-size: medium;"><b><br /></b></span></div><div><span style="font-size: medium;"><span style="font-family: verdana;">Succeeded: </span><span style="font-family: verdana;">It indicates that the something new was found and it did fire the logic app.</span></span></div><div><span style="font-family: verdana; font-size: medium;">Failed: It indicates that some error occurred.</span></div><div><span style="font-family: verdana; font-size: medium;">Skipped: It indicates that the nothing new was found to fire the logic app.</span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><br /></span></div><h4 style="text-align: left;"><span style="font-family: verdana;">Run History</span></h4><div><br /></div><div><span style="font-family: verdana;"><b>Status related to Run</b></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><div>Aborted: The run started but was interrupted/stopped due to some external error</div><div>Cancelled: The run started but was interrupted/stopped explicitly.</div><div>Failed: The run started but at least one action failed (and no exception handling is there for it)</div><div>Running: The run started but is not completed yet, still in progress.</div><div>Succeeded: The run completed.</div><div>Timed out: The run started but before it completed the current duration exceeded the run duration limit.</div><div>Waiting: The run hasn't started or is paused </div></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><span style="font-size: medium;">Behind the scene Azure Logic Apps relies on Azure Storage to store and automatically encrypt data at rest.</span></span></div><div><b><br /></b></div><div><span style="font-family: verdana; font-size: medium;">By default 90 days Run history is available, however it can be reduced or increased(up to 366 days) in ISE environment, it can be reduced in multi-tenant but can't be increased above 90 days.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">In case of single-tenant (Logic app Standard), Run history is maintained on the external storage used(SQL or Storage account) and is only applicable for <b>Stateful</b> workflows.</span></div><div><br /></div><div><span style="font-family: verdana; font-size: medium;">Run details specifies the status of each action and trigger within the Logic Apps.</span></div><div><span style="font-family: verdana; font-size: large;"><br /></span></div><h3 style="text-align: left;"><b><span style="font-family: verdana;">How to find time taken by each step/action in the Logic App workflow</span></b></h3><div><span style="font-family: verdana; font-size: medium;">Open the workflow in Run history and at right corner of each action you should see the time taken by it.</span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><br /></span><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqjNKricEG48uhhkMRGJxM7-uKZoeGvFEBIu4whRgNKhOs1jdsXsLHrMCGaOJRBHsTE8d1CKGiJSRqlLNNYTcZDYkpmU_9ZD-3Ppzc6wY7Z6rhLll46yHA9ETHTJXmuIa33eFH5DNHlsdsvonN1GgjXt-Jf238R0_Bn6vwN-52FLJl8h_bscu3EPKp/s1170/time%20taken%20by%20each%20action%20in%20logic%20app%20workflow.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="time taken by each action in logic app workflow" border="0" data-original-height="379" data-original-width="1170" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqjNKricEG48uhhkMRGJxM7-uKZoeGvFEBIu4whRgNKhOs1jdsXsLHrMCGaOJRBHsTE8d1CKGiJSRqlLNNYTcZDYkpmU_9ZD-3Ppzc6wY7Z6rhLll46yHA9ETHTJXmuIa33eFH5DNHlsdsvonN1GgjXt-Jf238R0_Bn6vwN-52FLJl8h_bscu3EPKp/w640-h208/time%20taken%20by%20each%20action%20in%20logic%20app%20workflow.PNG" title="time taken by each action in logic app workflow" width="640" /></a></div><br /></div><div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana;">How to check the input passed to an Action and output of an action in Logic App workflow</span></b></h3><div><span style="font-family: verdana; font-size: medium;">In Logic App run, click on the action whose details you want to check</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhThQptD2Tn13lRFvT220SJvpJpksFoh2gBwIwTeZSzHzkrPhOV3i2iio2Hq7jd52sHtFrilPewVyeXjJIqcoFQ9JoiyEyF7zGrzb8iPgLmplX3uW6-z2hURSNy-gLzTusShBNHaOFHFjjblWIeWqHhTCqYP7c_TKN_4B6H8Wy3zVJFvktTtkjUDFOt/s1485/Input%20and%20output%20of%20an%20action.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Input and output of an action" border="0" data-original-height="734" data-original-width="1485" height="316" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhThQptD2Tn13lRFvT220SJvpJpksFoh2gBwIwTeZSzHzkrPhOV3i2iio2Hq7jd52sHtFrilPewVyeXjJIqcoFQ9JoiyEyF7zGrzb8iPgLmplX3uW6-z2hURSNy-gLzTusShBNHaOFHFjjblWIeWqHhTCqYP7c_TKN_4B6H8Wy3zVJFvktTtkjUDFOt/w640-h316/Input%20and%20output%20of%20an%20action.PNG" title="Input and output of an action" width="640" /></a></div><span style="font-family: verdana; font-size: medium;"><br />You should see Input and output, however to see the whole raw data, click on<b> Show raw Inputs </b>or<b> Show raw Outputs</b></span></div><div><b><br /></b></div><h3 style="font-weight: bold; text-align: left;"><span style="font-family: verdana;">Searching for a specific Logic App run by its identifier </span></h3><div style="-webkit-text-stroke-width: 0px; color: black; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span style="font-family: verdana;"><div><span style="font-size: medium;">If you have a Run id of a particular Logic app and need to see the run history, then go to overview and in search box provide the run id and hit enter</span></div><div style="font-family: "Times New Roman"; font-size: medium; font-weight: bold;"><br /></div><div class="separator" style="clear: both; font-family: "Times New Roman"; font-size: medium; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYXPI7jWNGPQ0sXVQmM7LwVkh50DT_gIrC9K9NpgKXjQIF0kImTkm7tNbAYkmd88ZTk6n5YQxoqG5uqPkZ7Bk-Ghtxe0GPDgyQ20mBsP9E94aZ3yASLNI5aTcQHAXmIvN4-I8xYf-3L2YvbrCjQR1d7mV8l3t2MlQy0tmvwFwtQ3R-xvISCcV1xQmb/s1318/search%20run%20with%20id.png" style="margin-left: 1em; margin-right: 1em;"><img alt="search run with id" border="0" data-original-height="667" data-original-width="1318" height="324" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYXPI7jWNGPQ0sXVQmM7LwVkh50DT_gIrC9K9NpgKXjQIF0kImTkm7tNbAYkmd88ZTk6n5YQxoqG5uqPkZ7Bk-Ghtxe0GPDgyQ20mBsP9E94aZ3yASLNI5aTcQHAXmIvN4-I8xYf-3L2YvbrCjQR1d7mV8l3t2MlQy0tmvwFwtQ3R-xvISCcV1xQmb/w640-h324/search%20run%20with%20id.png" title="search run with id" width="640" /></a></div><br /><div style="font-family: "Times New Roman"; font-size: medium; font-weight: bold;"><br /></div><div style="font-family: "Times New Roman"; font-size: medium;"><br /></div></span></div><h3 style="font-weight: bold; text-align: left;"><span style="font-family: verdana;">Searching for a Logic App run by start and end time </span></h3><div style="text-align: left;"><span style="font-weight: normal;"><span style="font-family: verdana; font-size: medium;">If there is a need to find logic app runs and if you have approximate date and time then, you search it either by specifying the start time before that(close to end time) or after that (close to start time)</span></span></div><h3 style="text-align: left;"><div style="font-size: medium; font-weight: 400;"><span style="font-family: verdana; font-size: medium;"><br /></span></div><div style="font-size: medium; font-weight: 400;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVrZjea7eSjeMaAxiHQP-nUOi_E2ivLnjPBw8puo_NWxw5rYKCwhE8fkyxpu8_S8HwhfCeu9NOY6YDVS1FxT7M9VhLVdJoM47lgEiDq1DxpApzeqsFA2vmEHyTyJE79HVhoDD3dEcZ9Gs73T7Cm_Lz42SQmK2SaZVR6lNIZCdJ1IjeI3xyZk-rlg2a/s1411/datetime%20in%20runhistory.png" style="margin-left: 1em; margin-right: 1em;"><img alt="datetime in runhistory" border="0" data-original-height="694" data-original-width="1411" height="314" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVrZjea7eSjeMaAxiHQP-nUOi_E2ivLnjPBw8puo_NWxw5rYKCwhE8fkyxpu8_S8HwhfCeu9NOY6YDVS1FxT7M9VhLVdJoM47lgEiDq1DxpApzeqsFA2vmEHyTyJE79HVhoDD3dEcZ9Gs73T7Cm_Lz42SQmK2SaZVR6lNIZCdJ1IjeI3xyZk-rlg2a/w640-h314/datetime%20in%20runhistory.png" title="datetime in runhistory" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div></h3><h3 style="text-align: left;"><b><span style="font-family: verdana;">How to find number of retries a connector took in Logic App</span></b></h3><div><span style="font-family: verdana; font-size: medium;"><div>In the run details go to the connector action details pane, under Inputs and outputs, select Outputs.</div><div><br /></div><div>On the Outputs pane, expand the body object and look for the retryCount property. </div><div><br /></div><div>This property shows how many times the action retried before succeeding or failing.</div></span></div><div><b><span style="font-family: verdana;"><br /></span></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">How to find who did what with Logic App</span></b></h3><div><b><span style="font-family: verdana;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;">Logic app details such as when Logic App have been stopped or when someone has modified a Logic App's workflow definition, can be find within the Activity log.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFeHNos4pWC5iGbcK05p4fdSAPvm00zK63oimLLz_SCk8WIonJoS9TEbSvl2epqjdCmtr-sM9p68uyKjcWLFsCsazjdlg2NgJVCfEcGkNYLkoXuAphb6E2yjge11qoqnhacSlJe46uSSbqpTjsznM8E2YQ5aASCl56u5ldy_JitsuyjgABgSUXAZWa/s1094/Logic%20app%20Activity%20Log.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Logic app Activity Log" border="0" data-original-height="574" data-original-width="1094" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFeHNos4pWC5iGbcK05p4fdSAPvm00zK63oimLLz_SCk8WIonJoS9TEbSvl2epqjdCmtr-sM9p68uyKjcWLFsCsazjdlg2NgJVCfEcGkNYLkoXuAphb6E2yjge11qoqnhacSlJe46uSSbqpTjsznM8E2YQ5aASCl56u5ldy_JitsuyjgABgSUXAZWa/w640-h336/Logic%20app%20Activity%20Log.PNG" title="Logic app Activity Log" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div></span><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">How to check when and how many times was logic app deployed (Logic App History)</span></h3><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: justify;"><span style="font-family: verdana; font-size: large; text-align: left;">To find out how many changes your logic app has gone through, in your logic app’s menu, under Development Tools, select Versions.</span></div><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana; font-size: large; text-align: left;"><br /></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsrkMVZR57CJwyyZEPHm6fJBmNj2CtBpAFrR9ohfzkx2rHcJy-t0-YfDVRbdkJ746gOQv4L4uRAUWNEShj0ZMcc8zmbw2xJyR_CPd9lbA9GsJ7dRcQaAQTjoPcdkq4TIZsNEGS8SX42hFXjZaOWaYTHiWjLhGr-f-0iT_QsMyIN6On7TM_RmSF-ZMp/s1585/version.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Logic App Version" border="0" data-original-height="625" data-original-width="1585" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsrkMVZR57CJwyyZEPHm6fJBmNj2CtBpAFrR9ohfzkx2rHcJy-t0-YfDVRbdkJ746gOQv4L4uRAUWNEShj0ZMcc8zmbw2xJyR_CPd9lbA9GsJ7dRcQaAQTjoPcdkq4TIZsNEGS8SX42hFXjZaOWaYTHiWjLhGr-f-0iT_QsMyIN6On7TM_RmSF-ZMp/w640-h252/version.png" title="Logic App Version" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;"><div><br /></div><div><br /></div><div>Select the specific Version of which you need to see the details from the list. It will redirect to History version page, where you can see the previous version’s details in read-only mode.</div><div><br /></div><div>In History version page, you have a Designer, Code view & Promote mode. You can use the Promote mode to restore a previous version as the current version if required.</div></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana;"><h3 style="font-weight: bold; text-align: left;"><b><span style="font-family: verdana;">Summary</span></b></h3></span></div><div><span style="font-family: verdana; font-size: medium;">Through this post, we tried to get an understanding of monitoring capabilities associated with Logic app and how it can be used in troubleshooting and in analysis .</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><h3 style="font-family: "Times New Roman";"><span style="font-family: verdana;"><span style="font-size: 18.72px;">Learn More about Logic App</span></span></h3><h3 style="font-family: "Times New Roman";"><div style="font-size: medium; font-weight: 400;"><span style="font-family: verdana;"><span style="font-size: medium;"><ul><li><u style="color: #0000ee;"><a href="https://www.tech-findings.com/2023/09/configure-Logic-App-Standard-workflow-behind-Azure-APIM.html" target="_blank">How to configure Logic App Standard workflow behind Azure APIM</a></u></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/08/How-to-Query-Azure-Table-storage-from-Logic-App%20.html" target="_blank">How to Query Azure Table storage from Logic App | How to filter results of Azure Table storage from Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/expressions-in-logic-apps.html" target="_blank">Understanding expressions in Logic Apps | Frequently used expressions in Logic Apps | What is expressions in Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/How-to-use-Logic-app-Run-History.html" target="_blank">How to use Logic app Run History | How to troubleshoot Logic App workflow execution</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/04/logic-app-slack-channel-integration.html" target="_blank">Logic App and Slack - Sending messages to slack channel | Logic app and slack integration | Connecting Logic App to Slack channel</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2022/12/how-to-access-application-settings-from-logic-app-standard-workflow.html" target="_blank">How to access Application settings fields value from Logic app Standard workflow | Using Application settings as configuration store for Logic app standard workflow</a></u></span></li><li><a href="https://www.tech-findings.com/2022/12/Developing-Logic-app-standard-workflow-locally-deploying-to-Azure.html" target="_blank">Developing Logic app standard workflow which uses Map locally and deploying to Azure</a></li><li><a href="https://www.tech-findings.com/2022/12/developing-logic-app-standard-workflow.html" target="_blank">Developing Logic App Standard Workflow Using Visual Studio Code | Create Logic App Standard Workflow Using Visual Studio Code</a></li><li><a href="https://www.tech-findings.com/2022/12/logic-app-xml-to-json-using-liquid-map.html" target="_blank">Logic App - Xml to Json using Liquid Map | Append in Liquid Map</a></li><li><a href="https://www.tech-findings.com/2022/11/Azure-Event-Grid-Custom-Topic-LogicApp.html" target="_blank">How to use Azure Event Grid Custom Topic | Publishing and Subscribing from Azure Event Grid Custom Topic using Logic App</a></li><li><a href="https://www.tech-findings.com/2022/11/read-write-azure-table-storage-logic-app.html" target="_blank">Using Azure Storage Account Table as Config Store for Logic Apps | How to read and write from Logic App to Azure Storage Account Table</a></li><li><a href="https://www.tech-findings.com/2022/08/get-logic-app-name-in-logic-app.html" target="_blank">Get Logic App Name in Logic App</a></li><li><a href="https://www.tech-findings.com/2022/07/logic-App-consumption-logic-app-standard.html" target="_blank">Difference between Logic App Consumption and Logic App Standard </a></li><li><a href="https://www.tech-findings.com/2022/07/overview-logic-app-standard.html" target="_blank">Getting Started with Logic App Standard | Overview of Logic App Standard | Basics of Logic App Standard</a></li><li><a href="https://www.tech-findings.com/2022/07/find-count-of-Logic-App-executions.html" target="_blank">How to find count of Logic App executions using Azure Portal</a></li><li><a href="https://www.tech-findings.com/2022/07/azure-functions-vs-azure-logic-app.html" target="_blank">Azure Functions vs Azure Logic App | Difference between Azure Functions and Azure Logic App</a></li><li><a href="https://www.tech-findings.com/2022/06/Logic-App-Liquid-Map-Basics.html" target="_blank">Getting started with Logic App : Liquid Map | Using Liquid template in Logic app</a></li><li><a href="https://www.tech-findings.com/2022/06/Exception-Handling-in-Logic-app.html" target="_blank">How to get actual error message of Scope in Logic App | Exception Handling in Logic app</a></li><li><a href="https://www.tech-findings.com/2019/01/Interview-questions-answers-LogicApps.html" target="_blank">Interview questions and answers on Logic Apps | Interview questions for azure logic app developers</a></li><li><span><a href="https://www.tech-findings.com/2022/05/How-to-execute-Stored-Procedure-in-Logic-App.html" target="_blank">How to execute Stored Procedure in Logic App | How to connect to SQL in Logic App</a></span></li><li><a href="https://www.tech-findings.com/2022/05/how-to-get-current-date-in-logic-app.html" target="_blank">How to get current date in logic app | How to format date time in Logic App</a></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/07/BizTalk-Developer-getting-started-with-Logic-App.html" target="_blank">BizTalk Developer getting started with Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2018/03/getting-started-with-logic-apps-fundamentals.html" target="_blank">Getting Started with Logic Apps - Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/10/Getting-Started-with-Logic-Apps-Enterprise-Application-Integration.html" target="_blank">Getting Started with Logic Apps - Enterprise Application Integration</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/09/getting-started-with-logic-apps-as2.html" target="_blank">Getting Started with Logic Apps - AS2</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/edi-x12-fundamentals.html" target="_blank">Getting Started with Logic Apps - EDI X12 Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/getting-started-with-logic-apps-xml-to-EDI-x12.html" target="_blank">Getting Started with Logic Apps - XML to EDI X12</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/getting-started-with-logic-apps-edi-x12-to-xml.html" target="_blank">Getting Started with Logic Apps - EDI X12 to XML</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/10/getting-started-with-logic-apps-what-happened-to-request.html" target="_blank">Getting Started with Logic Apps - What happened to the Request?</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-Multiple-Records-In-On-Prem-SQL-Using-Logic-App.html" target="_blank">Inserting Multiple Records In On Prem SQL Using Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-data-in-On-Premises-SQL-Database-using-Logic-Apps.html" target="_blank">Inserting data in On Premises SQL Database using Logic Apps</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/installing-and-configuring-on-premises-data-gateway.html" target="_blank">Installing and Configuring On Premises Data Gateway - By adding user to Active Directory</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/XML-Batching-Aggregation-in-Logic-App.html" target="_blank">XML Batching(Aggregation) in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/batching-aggregating-messages-in-logic-app.html" target="_blank">Batching(Aggregating) messages in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/Debatching-Splitting-JSON-Message-in-Logic-Apps.html" target="_blank">Debatching(Splitting) JSON Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/debatching-splitting-xml-message-in-Logic-App.html" target="_blank">Debatching(Splitting) XML Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/securing-logic-app-with-azure-active-directory.html" target="_blank">Securing Logic App with Azure Active Directory authentication</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/removing-ns0-prefix-from-xml-output.html" target="_blank">Removing ns0: prefix from xml output from BizTalk/Logic app XSLT map</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/01/using-managed-identity-in-logic-apps.html" target="_blank">Using Managed Identity in Logic Apps for Calling Active Directory Secured Function App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/logic-apps-fetching-isa-and-gs-segment.html" target="_blank">Logic Apps : Fetching ISA and GS Segment Values From Interchange Envelope and Mapping</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2021/07/logic-apps-for-each-inside-for-each.html" target="_blank">Logic Apps : For Each Inside a For Each - Fetching values from field in an array inside an array</a></span></span></li></ul></span></span></div></h3></span></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com1tag:blogger.com,1999:blog-4148344860241019504.post-778366500884186682023-05-04T20:38:00.000+05:302023-05-04T20:38:20.465+05:30The 'from' property value in the 'query' action inputs is of type 'Object'. The value must be an array <b>{tocify} $title={Table of Contents}</b>
<br />
<div><b><br /></b></div><div><b><br /></b></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Scenario</span></h3><div><span style="font-family: verdana; font-size: medium;">In a logic app where I have to read the blob files having specific suffix in name from the list of blobs, I used Filter Array from Data operations.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Input to it is the output of Http call (Previous step) which gets the list of blobs and with filter on Name</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizZyJKTz4f-0W5iuqKeun3wO9LYKQuSILCGM2HXf2nlgnDefY7pM9reTj5ERCZ0F-FxhtlSzcDJ2CJf4P965vJGU0TzW8kuYQ370LW0OuLpOehPy8ftW15N3r0g1W7QVsl6ZFwONiZYileKI_vFW_nc0rrkUH0q06k856Et4FNQ_nen55nTZXoYNKH/s844/FA1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Filter Array with filter on Name" border="0" data-original-height="406" data-original-width="844" height="308" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizZyJKTz4f-0W5iuqKeun3wO9LYKQuSILCGM2HXf2nlgnDefY7pM9reTj5ERCZ0F-FxhtlSzcDJ2CJf4P965vJGU0TzW8kuYQ370LW0OuLpOehPy8ftW15N3r0g1W7QVsl6ZFwONiZYileKI_vFW_nc0rrkUH0q06k856Et4FNQ_nen55nTZXoYNKH/w640-h308/FA1.png" title="Filter Array with filter on Name" width="640" /></a></div><br /><br /></div><div><span style="font-family: verdana; font-size: medium;">Filter array is an action in Azure Logic Apps that can be used to filter an array/list/collection of items/records based on a certain condition.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: large;">It returns an array of items that meet the specified condition. You can use this action to filter an array of objects or an array of strings.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">In testing it worked fine except for one scenario - when there was only one record in the list.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiN5A6XzXreSdZxIe1oXkJWitl37I8imWjfMKkBFPJxDGIchB__opIHZAFtG3wErh38QMq0EmjiEeFVE0J7h4qkY9eNS9dRfe6r9L3EOIh7VT3x48BmUagcG1N2N-mkcHGVIoCOzPVdzGf8Hcie-AFXl-Udoi1Gk2TL-ChtaEpquONcJv1lcEsqg8d/s730/FA2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="The 'from' property value in the 'query' action inputs is of type 'Object'. The value must be an array" border="0" data-original-height="490" data-original-width="730" height="430" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiN5A6XzXreSdZxIe1oXkJWitl37I8imWjfMKkBFPJxDGIchB__opIHZAFtG3wErh38QMq0EmjiEeFVE0J7h4qkY9eNS9dRfe6r9L3EOIh7VT3x48BmUagcG1N2N-mkcHGVIoCOzPVdzGf8Hcie-AFXl-Udoi1Gk2TL-ChtaEpquONcJv1lcEsqg8d/w640-h430/FA2.png" title="The 'from' property value in the 'query' action inputs is of type 'Object'. The value must be an array" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><br /></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Why it happened </span></h3><div><span style="font-family: verdana; font-size: large;">When there was only one blob the http call to get list returned one item/record - so array was not formed, it remained as single JSON object.</span></div><div><span style="font-family: verdana; font-size: large;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpvGo1FrpVX5xxChhYZ7xhqKLagFMQ2yrQFcRFu_g21AylSOqyp3VlY5X2dik_0jyu7IZolFUG1CHcJLFUlIc-ey6PAUsl-ppreLOD-rXFIa2-4xWR4bEO59nNWvvPkChZMntJlgjHhDkeYGdeGLck2MaOm1n30xq5mjt9tSTRiaz3ZMCmNS0Kl0om/s1096/FA3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="single json object as input to filter array" border="0" data-original-height="591" data-original-width="1096" height="346" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpvGo1FrpVX5xxChhYZ7xhqKLagFMQ2yrQFcRFu_g21AylSOqyp3VlY5X2dik_0jyu7IZolFUG1CHcJLFUlIc-ey6PAUsl-ppreLOD-rXFIa2-4xWR4bEO59nNWvvPkChZMntJlgjHhDkeYGdeGLck2MaOm1n30xq5mjt9tSTRiaz3ZMCmNS0Kl0om/w640-h346/FA3.png" title="single json object as input to filter array" width="640" /></a></div><br /><span style="font-family: verdana; font-size: large;"><br /></span></div><div><span style="font-family: verdana; font-size: large;">And it is used as the input to Filter array, but Filter array doesn't allow anything other than array. Thus it throwed the error.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: x-small;">"<b><span style="color: #2b00fe;">BadRequest.</span></b><i><span style="color: #2b00fe;">The 'from' property value in the 'query' action inputs is of type 'Object'. The value must be an array</span></i>. "</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><br /></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">What to do</span></h3><div><span style="font-family: verdana; font-size: medium;">Having a single blob file is a valid scenario, and also the complain by Filter Array action is also valid - so how to solve it.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">We take help of <b>array</b> function, which helps in converting the input into an array</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAOv7G8nEsNt0AsNmnqtOPFVt8FWDpNBRSupn5Ez_5hRqDRA3GOOHvBAZQS_2xa0Yxp4BBnkrI_ESB49LWNVNQV5KokQU_wrJWr7zXgnebRESQ47KagtVqAZKJg_dLyuBZNB1mqIwFWYG9_GK7hERQiWKQy7cM9dl7EI6sheJkp4uXczeoElkmrcEZ/s946/FA4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="using array function in Filter array expression" border="0" data-original-height="493" data-original-width="946" height="334" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAOv7G8nEsNt0AsNmnqtOPFVt8FWDpNBRSupn5Ez_5hRqDRA3GOOHvBAZQS_2xa0Yxp4BBnkrI_ESB49LWNVNQV5KokQU_wrJWr7zXgnebRESQ47KagtVqAZKJg_dLyuBZNB1mqIwFWYG9_GK7hERQiWKQy7cM9dl7EI6sheJkp4uXczeoElkmrcEZ/w640-h334/FA4.png" title="using array function in Filter array expression" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">Thus the input which is already an array will remain so, and if single object is received then it is converted to array.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><h3><span style="font-family: verdana;">Learn More about some more Logic App errors</span></h3><p></p><ul><li><a href="https://www.tech-findings.com/2020/02/The-request-has-both-SAS-authentication-scheme-and-Bearer-authorization-scheme.html" target="_blank"><span style="font-family: verdana; font-size: medium;">The request has both SAS authentication scheme and 'Bearer' authorization scheme. Only one scheme should be used</span></a></li><li><a href="https://www.tech-findings.com/2020/03/selected-file-must-be-between-1-and-2097152-bytes.html" target="_blank"><span style="font-family: verdana; font-size: medium;">Selected file must be between 1 and 2097152 bytes</span></a></li><li><a href="https://www.tech-findings.com/2020/02/spliton-property-doesnt-validate-expression.html" target="_blank"><span style="font-family: verdana; font-size: medium;">SplitOn property doesn't validate expression at design time</span></a></li><li><a href="https://www.tech-findings.com/2020/02/should-not-have-triggers-with-splitOn.html" target="_blank"><span style="font-family: verdana; font-size: medium;">The workflow with 'Response' action type should not have triggers with 'splitOn' property</span></a></li><li><a href="https://www.tech-findings.com/2020/02/first-parameter-to-be-an-XML-object.html" target="_blank"><span style="font-family: verdana; font-size: medium;">The template language function 'xpath' expects its first parameter to be an XML object</span></a></li><li><a href="https://www.tech-findings.com/2019/10/the-template-language-expression-cannot-be-evaluated.html" target="_blank"><span style="font-family: verdana; font-size: medium;">The template language expression 'xxx' cannot be evaluated because property 'xxx' doesn't exist. Property selection is not supported on content of type 'application/xml'</span></a></li></ul><p></p><div><br /></div></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-5539509482058949722023-05-03T09:48:00.004+05:302023-09-19T10:26:44.221+05:30Logic App and Slack - Sending messages to slack channel | Logic app and slack integration | Connecting Logic App to Slack channel<b>{tocify} $title={Table of Contents}</b>
<br />
<div><b><br /></b></div><div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana;">Introduction</span></b></h3><div><span style="font-family: verdana; font-size: medium;">In most of the interfaces there is a need send some alert message to stake holders notifying about some errors or about some specific conditions.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Recently, in one of the interface the ask was to send alert messages(warning/issue/errors) to a slack channel where the business users were able to get notified instantly.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>What is Slack Channel?</b></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Slack is a messaging app for business that connects people to the information they need. (On same line as Microsoft Teams)</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">And Slack channel is a dedicated space for conversations that can be created for any project, topic, or team</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"> </span></div><div><span style="font-family: verdana; font-size: medium;">So how do we integrate Logic app with Slack channel? Is there a out of box connector available for Slack?</span></div><div><b><span style="font-family: verdana;"><br /></span></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana;">Ways to connect to Slack channel</span></b></h3><div><b><span style="font-family: verdana;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;">There are couple of ways to go about it, </span></div><h4 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">1. Using connector</span></b></h4><div><span style="font-family: verdana; font-size: medium;">Yes, there is a connector provided by Microsoft to connect to Slack.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-size: medium;"><span style="font-family: verdana;">Before we use connector, let's first create a workspace in Slack. Go to <a href="https://slack.com/intl/en-in/get-started#/createnew" target="_blank">slack</a> (</span><span style="font-family: verdana;">https://slack.com/intl/en-in/get-started#/createnew)</span></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Enter your email address and continue. Provide the code received over email and continue.</span></div><div><span style="font-family: verdana;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijOS_-wuzwK-wvu11epupHgBquwHK3b-WgHx0wqKF4fc5bQ2joI7Wg7QvcOvcf-NWM5eO1iZW-MBuNueBIKAUine39Dwl4eXBS3SdX9ajXEkpQbcYtdYk0sO4UYz7dtWiPmEDkDq8Y0LNEl8DJiaDp-TYyAMC12ct_ayZp-uW8fSYMzuoLWOYL-xdg/s1426/Slack%20Workspace%20Setup%201.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Create Slack workspace" border="0" data-original-height="760" data-original-width="1426" height="342" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijOS_-wuzwK-wvu11epupHgBquwHK3b-WgHx0wqKF4fc5bQ2joI7Wg7QvcOvcf-NWM5eO1iZW-MBuNueBIKAUine39Dwl4eXBS3SdX9ajXEkpQbcYtdYk0sO4UYz7dtWiPmEDkDq8Y0LNEl8DJiaDp-TYyAMC12ct_ayZp-uW8fSYMzuoLWOYL-xdg/w640-h342/Slack%20Workspace%20Setup%201.png" title="Create Slack workspace" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;">On the first step, provide the name of your workspace </span></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1jlLH-P-gRTONYdNHTen8lWDRL5D30wy3sBlM11eA4qbwC5Ey6asHBtp1LG6kjtoRZMrL7s9i06RdCwTnC8Xeb6LKBV-7rnH2qActoMralfmpzyejURoX4I9XofWDiAR758k5B6NpXqnpnIHDd369dbMecmOMG6XlvkFXQ0nXtfOrn9aA3-bct-6I/s1359/Slack%20Workspace%20Setup%202.png" style="margin-left: 1em; margin-right: 1em;"><img alt="create slack workspace profile" border="0" data-original-height="898" data-original-width="1359" height="422" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1jlLH-P-gRTONYdNHTen8lWDRL5D30wy3sBlM11eA4qbwC5Ey6asHBtp1LG6kjtoRZMrL7s9i06RdCwTnC8Xeb6LKBV-7rnH2qActoMralfmpzyejURoX4I9XofWDiAR758k5B6NpXqnpnIHDd369dbMecmOMG6XlvkFXQ0nXtfOrn9aA3-bct-6I/w640-h422/Slack%20Workspace%20Setup%202.png" title="create slack workspace profile" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana;">Provide your name and photo(optional)</span></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaouvx8b9pr2MvNk8GPn3HbXNN5H-LOZAaA3d8dyP1_26Hf1nrngP9DrtiKi6Z4IlxGk0rc3-MYBFsM5wwMUWQzQ0EQO_A3Rj1dMbAXQrNFi_b7qdgGFC01e7TnVXw6kmISfBeGz3GrcqZfrwRMrvNRk2r7P_6Rzfgs4-39kV0Oq9g-pre-o6rz5RW/s1365/Slack%20Workspace%20Setup%203.png" style="margin-left: 1em; margin-right: 1em;"><img alt="create slack workspace add members" border="0" data-original-height="817" data-original-width="1365" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaouvx8b9pr2MvNk8GPn3HbXNN5H-LOZAaA3d8dyP1_26Hf1nrngP9DrtiKi6Z4IlxGk0rc3-MYBFsM5wwMUWQzQ0EQO_A3Rj1dMbAXQrNFi_b7qdgGFC01e7TnVXw6kmISfBeGz3GrcqZfrwRMrvNRk2r7P_6Rzfgs4-39kV0Oq9g-pre-o6rz5RW/w640-h384/Slack%20Workspace%20Setup%203.png" title="create slack workspace add members" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana;">Add team members in the workspace</span></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZZSV1WpVdvM7QLxepfv_jDtBTPq262pKcdjzSXN7xTZQA3oShPhLUz-hZkVvbQlFiOKp9En4Q0zOjeZrjrZnd_IySnFjPy_tpZOj7t5IE69uqH7aVNv3XD_AwUURGaIj6JA58FE7ToVPboJzjjY64-pvc9j0V36OrtO7oDvvsRMTbajy33Pxde7yX/s1383/Slack%20Workspace%20Setup%204.png" style="margin-left: 1em; margin-right: 1em;"><img alt="create slack workspace add channel" border="0" data-original-height="705" data-original-width="1383" height="326" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZZSV1WpVdvM7QLxepfv_jDtBTPq262pKcdjzSXN7xTZQA3oShPhLUz-hZkVvbQlFiOKp9En4Q0zOjeZrjrZnd_IySnFjPy_tpZOj7t5IE69uqH7aVNv3XD_AwUURGaIj6JA58FE7ToVPboJzjjY64-pvc9j0V36OrtO7oDvvsRMTbajy33Pxde7yX/w640-h326/Slack%20Workspace%20Setup%204.png" title="create slack workspace add channel" width="640" /></a></div><br /><span style="font-family: verdana;">In the last step provide the name of channel. And we are ready to use it.</span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">We will post message to this channel from Logic app using the slack connector</span></div><div><b><span style="font-family: verdana;"><br /></span></b></div><div><b><span style="font-family: verdana;">Let's create logic app</span></b></div><div><b><span style="font-family: verdana;"><br /></span></b></div><div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIm1pCYphePcirNPpEaFYPA8GSAjNJBpWsOu9sTit8i11kKQWDcXRUUZzvoxLeUVqwFZJ9_jVBuT2tHnBEbFVUDwALzIeNgJ12B7XhyTY1XDgqBbudJZk3gE8YBnzQv4LRKy-pr8L3y2woPCkr7uyPioNm0G4sb30VdIzDmmam4nqwi3X1hMHXDd_L/s819/CreateLogicSlack%201.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Create logic app" border="0" data-original-height="819" data-original-width="706" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIm1pCYphePcirNPpEaFYPA8GSAjNJBpWsOu9sTit8i11kKQWDcXRUUZzvoxLeUVqwFZJ9_jVBuT2tHnBEbFVUDwALzIeNgJ12B7XhyTY1XDgqBbudJZk3gE8YBnzQv4LRKy-pr8L3y2woPCkr7uyPioNm0G4sb30VdIzDmmam4nqwi3X1hMHXDd_L/w552-h640/CreateLogicSlack%201.png" title="Create logic app" width="552" /></a></div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana;">Create logic app, provide name, region and select plan type.</span></div><br /><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ4UOn_ihQzeJzIur4r5A5l15DtJMROEtzhq3Cy-w8MTeKbftSsUbyiIOAhF-4LNPkCGx8HWve6b645gajO-jT_w3C0Z-fDRC48LNO3NZNw8SxWgBKsqFx0t4H8R9MNS232LPwVVrmwHWI9-g5fjdC3vNCjsxO9XU2nG6n6O2IHHOFceMZH_KWpgHR/s685/CreateLogicSlack%202.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Add http trigger in logic app" border="0" data-original-height="685" data-original-width="546" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ4UOn_ihQzeJzIur4r5A5l15DtJMROEtzhq3Cy-w8MTeKbftSsUbyiIOAhF-4LNPkCGx8HWve6b645gajO-jT_w3C0Z-fDRC48LNO3NZNw8SxWgBKsqFx0t4H8R9MNS232LPwVVrmwHWI9-g5fjdC3vNCjsxO9XU2nG6n6O2IHHOFceMZH_KWpgHR/w510-h640/CreateLogicSlack%202.png" title="Add http trigger in logic app" width="510" /></a></div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana;">For the sake of demo, creating a simple logic app which will be triggered by http request and will post to slack (same message received over http trigger).</span></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana;"><br /></span></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana;">Add new action and search for<b> Slack. </b>Select<b> Post message (V2) </b>from Actions</span></div><br /><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuEtqxYuu9dlHI1MC6bkwkfppqN5RcERTekZAdei6gS4q_vbk8XxEhBSEJwGiwOc7Kd0gtT7t1xLZjcWLU8_xNU8YETudlQ832FHphbROHNWEkHF6x17abl4GQlFzp487TjcXLtOMrXVhTt91d3NPo2k-oCd3MopzZldlRxFTwCImLXshmPQEW8yQz/s543/CreateLogicSlack%203.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Add slack connector in logic app" border="0" data-original-height="271" data-original-width="543" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuEtqxYuu9dlHI1MC6bkwkfppqN5RcERTekZAdei6gS4q_vbk8XxEhBSEJwGiwOc7Kd0gtT7t1xLZjcWLU8_xNU8YETudlQ832FHphbROHNWEkHF6x17abl4GQlFzp487TjcXLtOMrXVhTt91d3NPo2k-oCd3MopzZldlRxFTwCImLXshmPQEW8yQz/w640-h320/CreateLogicSlack%203.png" title="Add slack connector in logic app" width="640" /></a></div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;">The screen will ask you to Sign in , click on it</span></div><br /><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfEkwjxorjbjzNNplFTbfjkPDX98gUiSnNNtDIR-pbW2IbO9MbB2cb2Go42wDSenL5ltMdu_rwUaBI_7yhFzXdjxqBitYJOr4KRyDTPyNHNaAJn1qVFxlncdw_zQNwVEvHqYHiulUvcAca4dGCMQLMZ3xNQU0qPJ3Suc0NL1bSd30UZRYeR8R4JWbe/s942/CreateLogicSlack%204.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Allow logic app access to slack" border="0" data-original-height="942" data-original-width="735" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfEkwjxorjbjzNNplFTbfjkPDX98gUiSnNNtDIR-pbW2IbO9MbB2cb2Go42wDSenL5ltMdu_rwUaBI_7yhFzXdjxqBitYJOr4KRyDTPyNHNaAJn1qVFxlncdw_zQNwVEvHqYHiulUvcAca4dGCMQLMZ3xNQU0qPJ3Suc0NL1bSd30UZRYeR8R4JWbe/w500-h640/CreateLogicSlack%204.png" title="Allow logic app access to slack" width="500" /></a></div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;">Click on <span style="font-weight: bold;">Allow </span>to permit Logic App to interact with Slack workspace</span></div><br /><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhJHqtHiotfZu2dB6aZ2y3bIeyXcWSIBHzE2D4x9kUTzVVC0nE2OTgxXeqlygDxoBB_3wTWnhujLKmkHlZWGcuCM5gvfVCP05NklwLa0q-__ljrYu4M0Sxy-KlsPu9mmN13pVnOl_1hNAW4TK6MRQiKsZ4v-HB2kpbKIgYEL3OuUjND4aNx9frDbAi/s553/CreateLogicSlack%205.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Select the channel and message to post in Slack channel" border="0" data-original-height="253" data-original-width="553" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhJHqtHiotfZu2dB6aZ2y3bIeyXcWSIBHzE2D4x9kUTzVVC0nE2OTgxXeqlygDxoBB_3wTWnhujLKmkHlZWGcuCM5gvfVCP05NklwLa0q-__ljrYu4M0Sxy-KlsPu9mmN13pVnOl_1hNAW4TK6MRQiKsZ4v-HB2kpbKIgYEL3OuUjND4aNx9frDbAi/w640-h292/CreateLogicSlack%205.png" title="Select the channel and message to post in Slack channel" width="640" /></a></div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><br /></div><span style="font-family: verdana; font-size: medium;">Once connected to the workspace, Configure Post message slack action</span></div><div><br /><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-NvtyoJ3HUeEfpZQ9Nx3WoYn2ZmYX1pUepZbA4yGq6g8Or4bxqULAbJfH4kJxqXraerm5iFRoywtxrwVpWhxxUcCEpKvzrszR7suGrVuJoo7fJDfXb98hRJonv6OrmIdhvUbPPM9Vfp52mLDlA4uVGPLUv9klQ36N7v9cC7AgXU0-l-6AoJEQssmA/s895/CreateLogicSlack%206.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Configure Post message slack action" border="0" data-original-height="604" data-original-width="895" height="432" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-NvtyoJ3HUeEfpZQ9Nx3WoYn2ZmYX1pUepZbA4yGq6g8Or4bxqULAbJfH4kJxqXraerm5iFRoywtxrwVpWhxxUcCEpKvzrszR7suGrVuJoo7fJDfXb98hRJonv6OrmIdhvUbPPM9Vfp52mLDlA4uVGPLUv9klQ36N7v9cC7AgXU0-l-6AoJEQssmA/w640-h432/CreateLogicSlack%206.png" title="Configure Post message slack action" width="640" /></a></div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: justify;"><span style="font-family: verdana; font-size: medium;"><span style="font-weight: 400; text-align: left;">select the </span><b style="font-weight: bold; text-align: left;">Channel name</b><span style="text-align: left;">(demoproject)</span><span style="font-weight: 400; text-align: left;"> where you want to post messages and provide value against </span><b style="font-weight: bold; text-align: left;">Message Text</b><span style="text-align: left;">(body of http request)</span></span></div><div class="separator" style="clear: both; text-align: justify;"><span style="font-family: verdana; font-size: medium; text-align: left;"><br /></span></div><div class="separator" style="clear: both; text-align: justify;"><span style="font-family: verdana; font-size: medium; text-align: left;">Save the workflow and that's it, ready for testing. </span></div><div class="separator" style="clear: both; text-align: justify;"><span style="font-family: verdana; font-size: medium; text-align: left;"><br /></span></div><div class="separator" style="clear: both; text-align: justify;"><span style="font-family: verdana; font-size: medium; text-align: left;">Now run the logic app, with some data . And check the slack channel if message is reached.</span></div><div class="separator" style="clear: both; text-align: justify;"><span style="font-family: verdana; font-size: large; text-align: left;"><br /></span></div><br /><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgXAztI8zhmWqemfFTtFpYT8r5Ai700XZwlZNnBQDoyRbTCAN_ANzGTyToM7shzodR4-e3A1U_-UCK41UxkEB6cQz-JR_y_xhePRd7deU1TQ4gjiaoE1B-lsCUR5aF6yjg2q26wOb7-LyAhJXMHIzGkTBjygBtIpPfdf6B5Zl0__b0Fi2q7v7lLSU-/s1215/slack%20message%20test.png" style="margin-left: 1em; margin-right: 1em;"><img alt="message reached to Slack channel" border="0" data-original-height="846" data-original-width="1215" height="446" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgXAztI8zhmWqemfFTtFpYT8r5Ai700XZwlZNnBQDoyRbTCAN_ANzGTyToM7shzodR4-e3A1U_-UCK41UxkEB6cQz-JR_y_xhePRd7deU1TQ4gjiaoE1B-lsCUR5aF6yjg2q26wOb7-LyAhJXMHIzGkTBjygBtIpPfdf6B5Zl0__b0Fi2q7v7lLSU-/w640-h446/slack%20message%20test.png" title="message reached to Slack channel" width="640" /></a></div><div><br /></div><span style="font-family: verdana; font-size: medium;">As can be seen in above image, message reached to Slack channel which was sent by Logic App.</span><br /><span style="font-family: verdana; font-weight: bold;"><br /></span></div><div><span style="font-family: verdana; font-weight: bold;"><br /></span></div><h4 style="text-align: left;"><b><span style="font-family: verdana;">2. Using Http action (calling slack channel webhook)</span></b></h4><div><span style="font-family: verdana; font-size: medium;">Another option is to use http action in logic app and interact with slack channel, but for that we need to create an App in slack and webhook on top of slack channel.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Go to https://api.slack.com/apps</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXFNRnLZzZaqBGZ0zkJ5BYRtlwszu6vdofAJMmyQ6N_7IPXurMP_NkfGR8ehnXx7Vk5shMi5qUsljCiS7vs7UOpPEeO4AIzJzgVMJq2SkvfyjMWIUYUmo8k9B5aLyCQOrGU8rJUctMKwRs817llzeAB0Od3uiVpSvW8_aDxu-D3gREf0E79NSRMThr/s1365/Webhook%20Step%201.png" style="margin-left: 1em; margin-right: 1em;"><img alt="create slack workspace app" border="0" data-original-height="751" data-original-width="1365" height="352" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXFNRnLZzZaqBGZ0zkJ5BYRtlwszu6vdofAJMmyQ6N_7IPXurMP_NkfGR8ehnXx7Vk5shMi5qUsljCiS7vs7UOpPEeO4AIzJzgVMJq2SkvfyjMWIUYUmo8k9B5aLyCQOrGU8rJUctMKwRs817llzeAB0Od3uiVpSvW8_aDxu-D3gREf0E79NSRMThr/w640-h352/Webhook%20Step%201.png" title="create slack workspace app" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;">Click on Create an App to create slack workspace app</span></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBtxKBMUFaKBizuUDrY8P1_tgQPr547ZN9nMg5MAPocAohKLGGqGVJSGFVFAf_aXoUEB2cTM6YmQZp1vuaD6OZpdpKWpHSfsz1KqoyWv_U9M2IpdPEsEobY_zk6JAswRaojEom8Nz_NmGz-V6LTDpXcR2_iRGA936XW4FhemybqKNp4cfm54_Dcaqs/s1399/Webhook%20Step%202.png" style="margin-left: 1em; margin-right: 1em;"><img alt="create an app from scratch" border="0" data-original-height="822" data-original-width="1399" height="376" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBtxKBMUFaKBizuUDrY8P1_tgQPr547ZN9nMg5MAPocAohKLGGqGVJSGFVFAf_aXoUEB2cTM6YmQZp1vuaD6OZpdpKWpHSfsz1KqoyWv_U9M2IpdPEsEobY_zk6JAswRaojEom8Nz_NmGz-V6LTDpXcR2_iRGA936XW4FhemybqKNp4cfm54_Dcaqs/w640-h376/Webhook%20Step%202.png" title="create an app from scratch" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;">create an app from scratch</span></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUlVgKIh1lxKx9YF9iG1yN4KuuA5Jps3Ez54IXL4vhs8U-JT6Lt4hNiBMNyP-dOyFSxaGJLBH4xVDhGF2Vfzgi8evVnEawGi37z02qRewvP_hbJuHKB-Yh26fJuD-Qg_peBFmuUPd3HbYtOGQ_NX6VUA_oC1kMYU4pEB_FnYgfVSLG_wWb0rulGrdh/s1083/Webhook%20Step%203.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Provide name for App and select workspace" border="0" data-original-height="676" data-original-width="1083" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUlVgKIh1lxKx9YF9iG1yN4KuuA5Jps3Ez54IXL4vhs8U-JT6Lt4hNiBMNyP-dOyFSxaGJLBH4xVDhGF2Vfzgi8evVnEawGi37z02qRewvP_hbJuHKB-Yh26fJuD-Qg_peBFmuUPd3HbYtOGQ_NX6VUA_oC1kMYU4pEB_FnYgfVSLG_wWb0rulGrdh/w640-h400/Webhook%20Step%203.png" title="Provide name for App and select workspace" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;">Provide name for App and select workspace for which you want to create app</span></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg84hbmQQ6lclxwcGPGtNfHOiXmyRXOt4MAiCVfj5wt9eer4gHbktKZM8UyMAIcj_Ckw6MW6z5YFWJ044CCb5SSfWchwnxdb4wnAPuKwQdyvsUwggaS3PYxFuYkCQtJ6CfoT1PX850H1kd95MhW1HOcHiizMxsljMIQy8fOjeJk7K5QfdME_-9eY5_j/s1105/Webhook%20Step%204.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Select Incoming webhooks" border="0" data-original-height="743" data-original-width="1105" height="430" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg84hbmQQ6lclxwcGPGtNfHOiXmyRXOt4MAiCVfj5wt9eer4gHbktKZM8UyMAIcj_Ckw6MW6z5YFWJ044CCb5SSfWchwnxdb4wnAPuKwQdyvsUwggaS3PYxFuYkCQtJ6CfoT1PX850H1kd95MhW1HOcHiizMxsljMIQy8fOjeJk7K5QfdME_-9eY5_j/w640-h430/Webhook%20Step%204.png" title="Select Incoming webhooks" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;">App is created, Select Incoming webhooks</span></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAxaWSSPVgHMIDx9magSOFI1nVl4i4n5lZ5cj5KTwarMP9Mp6imd7GsB6aI5hGs6VsSfymSzoCqxOFyzVr7SxIlvC0ZLVTO4h4_YbWHavPmBh8KqsCxSWbzLEzuGp30pe2wce1vzP64ikOgZt6lJQSgy8pSvNAZQsC_8xUwZ5WZMvi-qk-Sv6ye5W5/s1191/Webhook%20Step%205.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Select Incoming webhooks and make it ON" border="0" data-original-height="716" data-original-width="1191" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAxaWSSPVgHMIDx9magSOFI1nVl4i4n5lZ5cj5KTwarMP9Mp6imd7GsB6aI5hGs6VsSfymSzoCqxOFyzVr7SxIlvC0ZLVTO4h4_YbWHavPmBh8KqsCxSWbzLEzuGp30pe2wce1vzP64ikOgZt6lJQSgy8pSvNAZQsC_8xUwZ5WZMvi-qk-Sv6ye5W5/w640-h384/Webhook%20Step%205.png" title="Select Incoming webhooks and make it ON" width="640" /></a></div><div><br /></div><div><br /></div><span style="font-family: verdana; font-size: medium;">Select Incoming webhooks and against Activate Incoming Webhooks - ON it</span><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr1x6AgJ5sjpD7D8PzwxZKagKaPNacgsSy44SIEyksx48-k-dImwPaqxxgoDmU--0o-Q2suZ9U2Q40uRYMQVHWVenfXUGx5tA1V1IXPDb-ksNZ8SorErqvZKTN_1qjT6ibmWFuolpsIHniTyLjzdquB84RA_z4OdZmybk4bLT3WBFl1dUGXr2Wx-Zz/s717/Webhook%20Step%206.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Select new webhook to workspace" border="0" data-original-height="693" data-original-width="717" height="618" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr1x6AgJ5sjpD7D8PzwxZKagKaPNacgsSy44SIEyksx48-k-dImwPaqxxgoDmU--0o-Q2suZ9U2Q40uRYMQVHWVenfXUGx5tA1V1IXPDb-ksNZ8SorErqvZKTN_1qjT6ibmWFuolpsIHniTyLjzdquB84RA_z4OdZmybk4bLT3WBFl1dUGXr2Wx-Zz/w640-h618/Webhook%20Step%206.png" title="Select new webhook to workspace" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;">Click on Add New Webhook to Workspace</span></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6ZfCp7U342StzuH46sVuLe3f_0LNXMckkcpvNFWHPBjtpX67EopdZj23psDi4g_PUgjfVqeHyA3RcYsz9ySHBZQB6Ua-mf5WhctpBpRLh5ceUpBJBCjLlRSFsAKDRJMtyiP4DYGj9BF6vrJby37jadDwCTwuKeq52NzK-52eKx5nDgtcK01PK2ZaE/s712/Webhook%20Step%207.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Grant permission to the App" border="0" data-original-height="625" data-original-width="712" height="562" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6ZfCp7U342StzuH46sVuLe3f_0LNXMckkcpvNFWHPBjtpX67EopdZj23psDi4g_PUgjfVqeHyA3RcYsz9ySHBZQB6Ua-mf5WhctpBpRLh5ceUpBJBCjLlRSFsAKDRJMtyiP4DYGj9BF6vrJby37jadDwCTwuKeq52NzK-52eKx5nDgtcK01PK2ZaE/w640-h562/Webhook%20Step%207.png" title="Grant permission to the App" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;">Grant permission to the App ,select the channel for which you want webhook to be created.</span></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoiXdkTiINVe5VklrOm14gFi9RW9jwLgZraK9FaEf8uFv-TzZIR8u11gYPGL1efLRw4IA_ZQYBIQiIrSt9bmGfOYZFKNYB4VoihfCTOJVPAWGqBhKsnCugS2CACKb1tQuV-brpeQX8gZPtY5Tt6l15nxbJrcwAbU1gBEOX6gE8Mi4VE_2xTbauwCYe/s724/Webhook%20Step%208.png" style="margin-left: 1em; margin-right: 1em;"><img alt="webhook url generated" border="0" data-original-height="708" data-original-width="724" height="626" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoiXdkTiINVe5VklrOm14gFi9RW9jwLgZraK9FaEf8uFv-TzZIR8u11gYPGL1efLRw4IA_ZQYBIQiIrSt9bmGfOYZFKNYB4VoihfCTOJVPAWGqBhKsnCugS2CACKb1tQuV-brpeQX8gZPtY5Tt6l15nxbJrcwAbU1gBEOX6gE8Mi4VE_2xTbauwCYe/w640-h626/Webhook%20Step%208.png" title="webhook url generated" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;">Copy the webhook url and use it in Logic app to post messages</span></div><span style="font-family: verdana; font-size: medium;"><br /><span><div><span>We will post message to this channel from Logic app over the webhook url</span></div><div><b><span><br /></span></b></div><div><b><span>Let's create logic app</span></b></div></span></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">For the sake of demo, creating a simple logic app which will be triggered by http request and will post to slack channel over the webhook (same message received over http trigger).</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifJ8oPZ5hFTATg88WWVjGeC8fd5BCrD1TVCYWuyO8et7ixrF2UuW-nfaEP0xeQ9GmEO-2xMZsZa5z5lMuPhhlbn43Wwc-KMNYN5M9Pfux8cH8qjm5hUtJuZyun7lo8ahR6jqGCavtdi5EFeADMAno0hZzW5jnSWPrgZro3JPXYU7BLqbEjT1hWBD4Z/s609/LA%20webhook.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Configure slack webhook url in logic app http action" border="0" data-original-height="484" data-original-width="609" height="508" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifJ8oPZ5hFTATg88WWVjGeC8fd5BCrD1TVCYWuyO8et7ixrF2UuW-nfaEP0xeQ9GmEO-2xMZsZa5z5lMuPhhlbn43Wwc-KMNYN5M9Pfux8cH8qjm5hUtJuZyun7lo8ahR6jqGCavtdi5EFeADMAno0hZzW5jnSWPrgZro3JPXYU7BLqbEjT1hWBD4Z/w640-h508/LA%20webhook.png" title="Configure slack webhook url in logic app http action" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">Followed by Http action, with method as POST, configure slack webhook url against URI and against Body -</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="color: #2b00fe; font-family: verdana; font-size: x-small;"><div style="text-align: justify;"><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span>{</div><div style="text-align: justify;"> <span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span>"text": "@{triggerBody()}"</div><div style="text-align: justify;"><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span>}</div></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">So whatever is received over http request is pushed to slack channel.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Note: using <b>text</b> is mandatory and payload should be valid JSON, else it will not be accepted.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Save the logic app and test it.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi29MeBANrh9F-k3CEzp7dXtuDMYXajT253BJNwJgfj-_ynco6hBqHlcnCIaM5zrVYSQZwc-mTn02Tw450iftDefy--2eiAs8FyMgfOb4t88sR_8Eb0akYc7R4i8ru0Hx7n_QNWNztujolt9izpJ8Xy2N5JJO0ae_6_cSDA4tpvi9hERaghj17KGhsV/s1249/webhook%20test.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Testing slack webhook url" border="0" data-original-height="841" data-original-width="1249" height="430" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi29MeBANrh9F-k3CEzp7dXtuDMYXajT253BJNwJgfj-_ynco6hBqHlcnCIaM5zrVYSQZwc-mTn02Tw450iftDefy--2eiAs8FyMgfOb4t88sR_8Eb0akYc7R4i8ru0Hx7n_QNWNztujolt9izpJ8Xy2N5JJO0ae_6_cSDA4tpvi9hERaghj17KGhsV/w640-h430/webhook%20test.png" title="Testing slack webhook url" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">If you see in above snap, it shows that message is posted by <b>DemoProjectApp </b>and not Logic app. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">It is because we had created the webhook for channel through this App, and the url generated is associated to this App.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Summary</span></h3><div><span style="font-family: verdana; font-size: medium;">We saw that we have two options to post messages to slack channel and off course this will raise a question - which one to use?</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">What I observed is that - with slack connector you have to manually authorize every time you deploy the logic app to another environment .</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEi5LeS_hYynoxDcp0gXWb2kS3gxlfb6a_vDhPbLwsycwAfHoRQwtBVeHQx2G9vmyTWASPF-qH-YfNUkjfOd637I419FB8O6Pn-rrfglKVRkxdNL6mS1siZyZTZoTyOKDCaj_EXdnImjUKBWMVP94cuR4pwpBTrOPOlTbqPe-Zdb4MA9xt3GylKflqx0" style="margin-left: 1em; margin-right: 1em;"><img alt="authorization every time you deploy" data-original-height="640" data-original-width="499" height="640" src="https://blogger.googleusercontent.com/img/a/AVvXsEi5LeS_hYynoxDcp0gXWb2kS3gxlfb6a_vDhPbLwsycwAfHoRQwtBVeHQx2G9vmyTWASPF-qH-YfNUkjfOd637I419FB8O6Pn-rrfglKVRkxdNL6mS1siZyZTZoTyOKDCaj_EXdnImjUKBWMVP94cuR4pwpBTrOPOlTbqPe-Zdb4MA9xt3GylKflqx0=w499-h640" title="authorization every time you deploy" width="499" /></a></div><br /><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">And that is not required in case of webhook url, as the auth code is already part of the URL .</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">So, my preferred option is go with Webhook way !!!</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><h3 style="font-family: "Times New Roman";"><span style="font-family: verdana;"><span style="font-size: 18.72px;">Learn More about Logic App</span></span></h3><div style="font-family: "Times New Roman"; font-size: medium;"><span style="font-family: verdana;"><span style="font-size: medium;"><ul><li><u style="color: #0000ee;"><a href="https://www.tech-findings.com/2023/09/configure-Logic-App-Standard-workflow-behind-Azure-APIM.html" target="_blank">How to configure Logic App Standard workflow behind Azure APIM</a></u></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/08/How-to-Query-Azure-Table-storage-from-Logic-App%20.html" target="_blank">How to Query Azure Table storage from Logic App | How to filter results of Azure Table storage from Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/expressions-in-logic-apps.html" target="_blank">Understanding expressions in Logic Apps | Frequently used expressions in Logic Apps | What is expressions in Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/How-to-use-Logic-app-Run-History.html" target="_blank">How to use Logic app Run History | How to troubleshoot Logic App workflow execution</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/04/logic-app-slack-channel-integration.html" target="_blank">Logic App and Slack - Sending messages to slack channel | Logic app and slack integration | Connecting Logic App to Slack channel</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2022/12/how-to-access-application-settings-from-logic-app-standard-workflow.html" target="_blank">How to access Application settings fields value from Logic app Standard workflow | Using Application settings as configuration store for Logic app standard workflow</a></u></span></li><li><a href="https://www.tech-findings.com/2022/12/Developing-Logic-app-standard-workflow-locally-deploying-to-Azure.html" target="_blank">Developing Logic app standard workflow which uses Map locally and deploying to Azure</a></li><li><a href="https://www.tech-findings.com/2022/12/developing-logic-app-standard-workflow.html" target="_blank">Developing Logic App Standard Workflow Using Visual Studio Code | Create Logic App Standard Workflow Using Visual Studio Code</a></li><li><a href="https://www.tech-findings.com/2022/12/logic-app-xml-to-json-using-liquid-map.html" target="_blank">Logic App - Xml to Json using Liquid Map | Append in Liquid Map</a></li><li><a href="https://www.tech-findings.com/2022/11/Azure-Event-Grid-Custom-Topic-LogicApp.html" target="_blank">How to use Azure Event Grid Custom Topic | Publishing and Subscribing from Azure Event Grid Custom Topic using Logic App</a></li><li><a href="https://www.tech-findings.com/2022/11/read-write-azure-table-storage-logic-app.html" target="_blank">Using Azure Storage Account Table as Config Store for Logic Apps | How to read and write from Logic App to Azure Storage Account Table</a></li><li><a href="https://www.tech-findings.com/2022/08/get-logic-app-name-in-logic-app.html" target="_blank">Get Logic App Name in Logic App</a></li><li><a href="https://www.tech-findings.com/2022/07/logic-App-consumption-logic-app-standard.html" target="_blank">Difference between Logic App Consumption and Logic App Standard </a></li><li><a href="https://www.tech-findings.com/2022/07/overview-logic-app-standard.html" target="_blank">Getting Started with Logic App Standard | Overview of Logic App Standard | Basics of Logic App Standard</a></li><li><a href="https://www.tech-findings.com/2022/07/find-count-of-Logic-App-executions.html" target="_blank">How to find count of Logic App executions using Azure Portal</a></li><li><a href="https://www.tech-findings.com/2022/07/azure-functions-vs-azure-logic-app.html" target="_blank">Azure Functions vs Azure Logic App | Difference between Azure Functions and Azure Logic App</a></li><li><a href="https://www.tech-findings.com/2022/06/Logic-App-Liquid-Map-Basics.html" target="_blank">Getting started with Logic App : Liquid Map | Using Liquid template in Logic app</a></li><li><a href="https://www.tech-findings.com/2022/06/Exception-Handling-in-Logic-app.html" target="_blank">How to get actual error message of Scope in Logic App | Exception Handling in Logic app</a></li><li><a href="https://www.tech-findings.com/2019/01/Interview-questions-answers-LogicApps.html" target="_blank">Interview questions and answers on Logic Apps | Interview questions for azure logic app developers</a></li><li><span><a href="https://www.tech-findings.com/2022/05/How-to-execute-Stored-Procedure-in-Logic-App.html" target="_blank">How to execute Stored Procedure in Logic App | How to connect to SQL in Logic App</a></span></li><li><a href="https://www.tech-findings.com/2022/05/how-to-get-current-date-in-logic-app.html" target="_blank">How to get current date in logic app | How to format date time in Logic App</a></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/07/BizTalk-Developer-getting-started-with-Logic-App.html" target="_blank">BizTalk Developer getting started with Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2018/03/getting-started-with-logic-apps-fundamentals.html" target="_blank">Getting Started with Logic Apps - Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/10/Getting-Started-with-Logic-Apps-Enterprise-Application-Integration.html" target="_blank">Getting Started with Logic Apps - Enterprise Application Integration</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/09/getting-started-with-logic-apps-as2.html" target="_blank">Getting Started with Logic Apps - AS2</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/edi-x12-fundamentals.html" target="_blank">Getting Started with Logic Apps - EDI X12 Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/getting-started-with-logic-apps-xml-to-EDI-x12.html" target="_blank">Getting Started with Logic Apps - XML to EDI X12</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/getting-started-with-logic-apps-edi-x12-to-xml.html" target="_blank">Getting Started with Logic Apps - EDI X12 to XML</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/10/getting-started-with-logic-apps-what-happened-to-request.html" target="_blank">Getting Started with Logic Apps - What happened to the Request?</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-Multiple-Records-In-On-Prem-SQL-Using-Logic-App.html" target="_blank">Inserting Multiple Records In On Prem SQL Using Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-data-in-On-Premises-SQL-Database-using-Logic-Apps.html" target="_blank">Inserting data in On Premises SQL Database using Logic Apps</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/installing-and-configuring-on-premises-data-gateway.html" target="_blank">Installing and Configuring On Premises Data Gateway - By adding user to Active Directory</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/XML-Batching-Aggregation-in-Logic-App.html" target="_blank">XML Batching(Aggregation) in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/batching-aggregating-messages-in-logic-app.html" target="_blank">Batching(Aggregating) messages in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/Debatching-Splitting-JSON-Message-in-Logic-Apps.html" target="_blank">Debatching(Splitting) JSON Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/debatching-splitting-xml-message-in-Logic-App.html" target="_blank">Debatching(Splitting) XML Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/securing-logic-app-with-azure-active-directory.html" target="_blank">Securing Logic App with Azure Active Directory authentication</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/removing-ns0-prefix-from-xml-output.html" target="_blank">Removing ns0: prefix from xml output from BizTalk/Logic app XSLT map</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/01/using-managed-identity-in-logic-apps.html" target="_blank">Using Managed Identity in Logic Apps for Calling Active Directory Secured Function App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/logic-apps-fetching-isa-and-gs-segment.html" target="_blank">Logic Apps : Fetching ISA and GS Segment Values From Interchange Envelope and Mapping</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2021/07/logic-apps-for-each-inside-for-each.html" target="_blank">Logic Apps : For Each Inside a For Each - Fetching values from field in an array inside an array</a></span></span></li></ul></span></span></div></span></div><div><br /></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com1tag:blogger.com,1999:blog-4148344860241019504.post-42813657683510219482023-02-22T20:14:00.000+05:302023-02-22T20:14:48.010+05:30Interview questions and answers on Azure Service Bus | Interview questions for azure Service bus developers<div><span style="font-size: medium;"><span style="font-family: verdana;"><span>This post intends to cover the answers to the questions which a Azure developer can face at an Interview</span><span> </span><span>i.e.</span></span><span style="font-family: verdana;"> Azure Developer Interview Questions and Answers on Azure Service Bus</span></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;"><b>For logic app related read following - </b><a href="https://www.tech-findings.com/2019/01/Interview-questions-answers-LogicApps.html" style="white-space: pre-wrap;" target="_blank">Developer Interview questions on Logic App </a></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>1. What are the services offered under Service Bus ?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- There are three services offered under Service Bus</span></div><div><span style="font-family: verdana; font-size: medium;">i. Service Bus Queue</span></div><div><span style="font-family: verdana; font-size: medium;">ii. Service Bus Topic</span></div><div><span style="font-family: verdana; font-size: medium;">iii. Service Bus Relay</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Queues and Topics, store messages until they are consumed and support one-directional communication. Whereas Relays does not store messages and provide bi-directional communication.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>2. Does service bus support push-push model?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- No. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">It only supports push - pull model.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Where the publisher pushes messages in service bus queue/topic and the subscriber/consumer have to pull the message.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Service bus doesn't push messages to consumer/subscriber and it stores the message until it is consumed or it's TTL is met.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>3. Can we use queue and topic interchangeably?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Technically Topic can be used and can be implemented to behave as queue.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">i.e. having a Topic with single subscriber/consumer.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">However, the opposite(making queue behave like Topic) is difficult to implement.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>4. In which scenario will you recommend Service Bus ?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- In a scenario, where we are looking for communication which is not synchronous and reliability is of most important, Azure service Bus is good candidate.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">In an asynchronous scenario where the consumer system takes some time to process, having the messages stored is important.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">In a scenario where there is requirement of Enterprise level features (see question 7).</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Where there is need to decouple applications of any size hosted natively on Azure, on-premise, or from any other cloud vendor.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>5. What is difference between Receive-and-delete and peek-lock mode?</b></span></div><div><span style="font-family: verdana; font-size: medium;"><b>- </b></span><span style="font-family: verdana; font-size: medium;">Both are modes in which consumers can receive messages from Service Bus.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><b style="font-family: verdana; font-size: large;">Receive-and-delete </b><span style="font-family: verdana; font-size: medium;">process is often called <b>at-most once processing</b>(each message is processed at most once - chances of message loss in case of any failure ). Deletes the messages as soon as it is picked by consumer for processing.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>Peek-lock </b></span><span style="font-family: verdana; font-size: medium;">process is often called <b>at-least once processing</b>(each message is processed at least once </span><span style="font-family: verdana; font-size: large;">-</span><span style="font-size: medium;"><span style="font-family: verdana;"> less chances of message loss in case of any failure)</span><span style="font-family: verdana;">. When the message is picked, a lock is placed on it making it unavailable to other competing consumers and once processing is completed it will invoke Complete() function and message will be removed from queue. If consumer fails to process or does not respond within specified time interval(default 5 mins), Abandon() function will be invoked and message will be available for other consumers.</span></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>6. What are the protocols used to connect to Service Bus?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- The protocols which can be used to connect to service bus can be either of </span></div><div><span style="font-family: verdana; font-size: medium;">i. SB-Messaging</span></div><div><span style="font-family: verdana; font-size: medium;">ii. AMQP</span></div><div><span style="font-family: verdana; font-size: medium;">iii. HTTP/REST</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>7. What are the features of Azure Service Bus?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Below are some of the out of box features of Azure service Bus</span></div><div><div><ul style="text-align: left;"><li><span style="font-family: verdana; font-size: medium;">Scheduling</span></li><li><span style="font-family: verdana; font-size: medium;">Dead-lettering</span></li><li><span style="font-family: verdana; font-size: medium;">Transactional processing</span></li><li><span style="font-family: verdana; font-size: medium;">Message ordering</span></li><li><span style="font-family: verdana; font-size: medium;">Expiration (TTL)</span></li><li><span style="font-family: verdana; font-size: medium;">Duplicate detection</span></li><li><span style="font-family: verdana; font-size: medium;">Deferring</span></li><li><span style="font-family: verdana; font-size: medium;">Pub/Sub</span></li><li><span style="font-family: verdana; font-size: medium;">Filtering</span></li></ul></div></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>8. What does Service Bus Message consists of?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Service Bus Message consists of two parts</span></div><div><ol style="text-align: left;"><li><span style="font-family: verdana; font-size: medium;">Message properties</span></li><li><span style="font-family: verdana; font-size: medium;">Message payload. </span></li></ol></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Message properties is in a key value form i.e. dictionary of values against property keys. Whereas message payload is in binary format, which can contain XML, JSON or text data.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>9. Does Azure Service bus support synchronous communication?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- With Relay option only, synchronous communication is supported.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>10. Does Azure service bus store data?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Yes and no.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">If Azure service Bus queue and Azure service Bus Topic is used then yes it stores data, whereas if Azure Service Bus relay is used then no data is stored.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>11. What is the message delivery/consumption mode used in Azure Service Bus Queue and Topic?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Following delivery/consumption mode - pub/sub with a pull model, competing consumers and partitioning can be achieved with the use of topics, subscriptions and actions.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>12. What is namespace in Azure service bus?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- It is a logical container of the components of Service Bus - Queues, Topics, Relays.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">There is one to many relationship i.e. one namespace can have multiple queues, topics etc. created within it.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>13. Can I migrate Azure Service Bus namespace from one subscription to another?</b></span></div><div><span style="font-family: verdana; font-size: medium;">- Yes it is possible and it can be done using Azure portal and also with help of powershell commands provided below two conditions are satisfied</span></div><div><div><ol style="text-align: left;"><li><span style="font-family: verdana; font-size: medium;">The Azure service bus namespace must already be active.</span></li><li><span style="font-family: verdana; font-size: medium;">The user executing the commands must be an administrator on both the source and target subscriptions.</span></li></ol><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>14. How can we secure access to Azure Service Bus?</b></span></div></div></div><div><span style="font-family: verdana; font-size: medium;">- With the help of RBAC, Shared access signature and Managed Identity.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><b><span style="font-family: verdana; font-size: medium;">15. What are the types of messages supported by Azure Service Bus?</span></b></div><div><span style="font-family: verdana; font-size: medium;">- Two types of messages are supported by Azure Service Bus</span></div><div><span face="Calibri, sans-serif" style="font-size: 11pt; white-space: pre-wrap;"><br /></span></div><div><ol style="text-align: left;"><li><span style="white-space: pre-wrap;"><span style="font-family: verdana; font-size: medium;">Relayed message – part of synchronous communication – used with Service bus relay</span></span></li><li><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana; font-size: medium;">Brokered message – part of asynchronous communication – used with Service bus queue and topic</span></span></li></ol><div><span style="font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;"><br /></span></span></div></div><span id="docs-internal-guid-3cb6a496-7fff-db84-e06f-d719764ed18d"><div><span face="Calibri, sans-serif" style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div></span>
Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-76167083998931275622022-12-28T18:22:00.002+05:302023-09-19T10:27:08.868+05:30How to access Application settings fields value from Logic app Standard workflow | Using Application settings as configuration store for Logic app standard workflow<b>{tocify} $title={Table of Contents}</b>
<br />
<div><b><br /></b></div><div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana;">Introduction</span></b></h3><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Most of the time, there is a need to have a configuration store where we can </span><span style="font-family: verdana; font-size: medium;">store key-value settings and consume stored settings from applications.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Same is true with Logic app as well, in few scenarios we do need to have such store.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Is there any way in Azure Logic App to create and use configurable values?</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: large;">I</span><span style="font-size: medium;"><span style="font-family: verdana;">n case of </span><b style="font-family: verdana;">Logic app consumption</b><span style="font-family: verdana;"> - there is no such provision. Following post shows an example about how to do it with help of Azure Table storage - </span><a href="https://www.tech-findings.com/2022/11/read-write-azure-table-storage-logic-app.html" style="font-family: verdana;" target="_blank">Using Azure Storage Account Table as Config Store for Logic Apps Consumption</a></span></div><div><br /></div><div><br /></div><div><span style="font-family: verdana; font-size: medium;">However, in case of <b>Logic app standard</b> - there is a provision. We can make use of <b>Application Settings</b> under <b>Configuration</b>.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Let's see with an example</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Scenario</span></h3><div><span style="font-family: verdana; font-size: medium;">Say, in the workflow you want to execute few steps which is based on a flag. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">But the flag value depends upon business team's advice. If it is set to yes then it is to be processed else not.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Here, for the sake of demo, we will send different responses based on flag value.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Let's look at the example</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Create Solution </span></h3><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">First, we will add key/value pair in Application settings with key as ProcessFlag and value as True, followed by creating a workflow in which we read value of it.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><h4 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Add ProcessFlag(key value pair) in Application Settings</span></h4><div><span style="font-family: verdana; font-size: medium;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOiQebikjl3UcXo6p4KJ0Bo6fRoyM2y2JmUTCzMj1ajgLtQ6y0leMAnvPJalJvKXZX-AfQKP1pSJo6Gn5-kolsrLI1IAFUSnOI8GeEDeS4Gjn2VBKsrZnVTKjTJxii3De28drIz3p-v8B__Ijdnb8zSHRzHzau0h0vwvVOzglMZIZ0ga0bHdR_5yZ4/s848/Add%20processflag.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Add ProcessFlag(key value pair) in Application Settings" border="0" data-original-height="653" data-original-width="848" height="492" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOiQebikjl3UcXo6p4KJ0Bo6fRoyM2y2JmUTCzMj1ajgLtQ6y0leMAnvPJalJvKXZX-AfQKP1pSJo6Gn5-kolsrLI1IAFUSnOI8GeEDeS4Gjn2VBKsrZnVTKjTJxii3De28drIz3p-v8B__Ijdnb8zSHRzHzau0h0vwvVOzglMZIZ0ga0bHdR_5yZ4/w640-h492/Add%20processflag.PNG" title="Add ProcessFlag(key value pair) in Application Settings" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div></span></div><div><br /></div><div><span style="font-family: verdana; font-size: medium;"><b>Note: Any setting(key/value pair) in Application setting is available for all the workflows in Logic app.</b></span></div><div><span style="font-family: verdana; font-size: medium;"><b><br /></b></span></div><h4 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Create a Logic app standard workflow to access flag value from Application settings</span></h4><div><span style="font-family: verdana; font-size: medium;">Add a new workflow in Logic App with http trigger, followed by <b>Initialize variable</b> action</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhPK8IIKKQEpHF0aJK2Wo2PNaHvcJxyjqRX31Pacs45TYK5JOWlcliRrSC-zKcgCVtCbMWYAQZ6Z-Itq8LniN--iaL4GbXQjyEPhEDyBPMLVWz8jrtvXIXy9WJ8xSWWSOgzlPIzsBbbul6kKTCIlTVjfAFEc8ahufTB-16CBKk23iml5NmgeTQp5_o/s1451/Initialize%20variable.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Add Initialize variable action" border="0" data-original-height="465" data-original-width="1451" height="206" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhPK8IIKKQEpHF0aJK2Wo2PNaHvcJxyjqRX31Pacs45TYK5JOWlcliRrSC-zKcgCVtCbMWYAQZ6Z-Itq8LniN--iaL4GbXQjyEPhEDyBPMLVWz8jrtvXIXy9WJ8xSWWSOgzlPIzsBbbul6kKTCIlTVjfAFEc8ahufTB-16CBKk23iml5NmgeTQp5_o/w640-h206/Initialize%20variable.PNG" title="Add Initialize variable action" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">Provide a name, type as string and against value provide following expression which uses <b>appsetting</b> template function</span></div><div><span style="font-family: verdana; font-size: medium;"> </span></div><div><span style="font-family: verdana;"> appsetting('ProcessFlag')</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">This function does lookup in Application setting with the Key provided to it and returns the value which is set against it.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIfwWTqEt0IP6gwArxWZVGE0MKWyPUVPb1_lSijvJXtLbs07X6302Cbv4U1aZYgGp9omdy62CcasP6F74kBcNvlEixJtyJANO__7zqxN_AGens8Ff0p8IVzVvPJpbRWv5WzVNyG9Qu6Da4-ZOS4JPeDKXOerL42v94qBjtpDEUXQ82F1gyaTVIy1Kg/s1297/Add%20condition%20to%20check%20value%20of%20above%20variable%20at%20runtime.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Add condition to check value of above variable at runtime" border="0" data-original-height="363" data-original-width="1297" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIfwWTqEt0IP6gwArxWZVGE0MKWyPUVPb1_lSijvJXtLbs07X6302Cbv4U1aZYgGp9omdy62CcasP6F74kBcNvlEixJtyJANO__7zqxN_AGens8Ff0p8IVzVvPJpbRWv5WzVNyG9Qu6Da4-ZOS4JPeDKXOerL42v94qBjtpDEUXQ82F1gyaTVIy1Kg/w640-h180/Add%20condition%20to%20check%20value%20of%20above%20variable%20at%20runtime.PNG" title="Add condition to check value of above variable at runtime" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">Add condition to check value of above variable at runtime</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXHvtmSYs9mBIDi9qyax-SQAGjNADqYTLWuYvlYm1W3zcSfmFRKEQfmTW4YUxYry40SgYUMnqBZRdHFKFCiZqHKCf_BTmvH2Za9h0gBt_ueWmfp_K0Qb3GGv7ffmeoJDtOkjlRLXUddZlSUBAyuK4JR5nQgVNGIVNM6s-4oaePYi6D4ZMRZHEYtgX9/s1337/Processed%20Response.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Processed Response" border="0" data-original-height="494" data-original-width="1337" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXHvtmSYs9mBIDi9qyax-SQAGjNADqYTLWuYvlYm1W3zcSfmFRKEQfmTW4YUxYry40SgYUMnqBZRdHFKFCiZqHKCf_BTmvH2Za9h0gBt_ueWmfp_K0Qb3GGv7ffmeoJDtOkjlRLXUddZlSUBAyuK4JR5nQgVNGIVNM6s-4oaePYi6D4ZMRZHEYtgX9/w640-h236/Processed%20Response.PNG" title="Processed Response" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Set Response body as "</span><span style="font-family: verdana;">Request Processed as Process flag is : @{variables('Value_AppSetting')}</span><span style="font-family: verdana; font-size: medium;">" when variable value is True</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbSLKrxbpIl-EMdoZoMTpES6wBh_lAIdb2mwC20AqXvMN5MO2XC-ZjJrl_WArs3pP_TlAESDU2XAxmFOpnrGaeXhRuj_lnUFmho2TD8Ja1e781apP1ChsbdKT3Ec4NEkJvyZBHdtgUFF2fUC-19OnbxJBBzGMNWMUm9YkZzaeqmu7vRvKV71fN04P0/s1324/Unprocessed%20response.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Unprocessed response" border="0" data-original-height="497" data-original-width="1324" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbSLKrxbpIl-EMdoZoMTpES6wBh_lAIdb2mwC20AqXvMN5MO2XC-ZjJrl_WArs3pP_TlAESDU2XAxmFOpnrGaeXhRuj_lnUFmho2TD8Ja1e781apP1ChsbdKT3Ec4NEkJvyZBHdtgUFF2fUC-19OnbxJBBzGMNWMUm9YkZzaeqmu7vRvKV71fN04P0/w640-h240/Unprocessed%20response.PNG" title="Unprocessed response" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Set Response body as "</span><span style="font-family: verdana;">Request is not Processed as Process flag is : @{variables('Value_AppSetting')}</span><span style="font-family: verdana; font-size: medium;">" when variable value is False</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Testing</span></h3><div><span style="font-family: verdana; font-size: medium;">Any rest api client can be used to test it, here postman is used.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Copy the url from Overview page of workflow and use it for testing for following test cases.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><span>1. When </span>Process Flag is set to True in Application Settings</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZa6SPT_KAc0PpxHokjmmN0fQCDYbHCADhQfipVB3ITTWLhP4a-YtEJ5Cf0HR3HA_p-krEbr_x6wQNWcnCsvKhpw4e6QC5MfI4tovzDxAYtnqhFaxhB9R5G2XERYzoJ_OYRjfGfX-iywaTOicpW8LCjmFCW5jLIMEy2elK5F43uAlP9aOIOEh1eiuu/s1427/Output%20when%20Process%20Flag%20is%20set%20to%20True.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Output when process flag is set to True" border="0" data-original-height="704" data-original-width="1427" height="316" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZa6SPT_KAc0PpxHokjmmN0fQCDYbHCADhQfipVB3ITTWLhP4a-YtEJ5Cf0HR3HA_p-krEbr_x6wQNWcnCsvKhpw4e6QC5MfI4tovzDxAYtnqhFaxhB9R5G2XERYzoJ_OYRjfGfX-iywaTOicpW8LCjmFCW5jLIMEy2elK5F43uAlP9aOIOEh1eiuu/w640-h316/Output%20when%20Process%20Flag%20is%20set%20to%20True.PNG" title="Output when process flag is set to True" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><br /></span></div><div><span style="font-family: verdana; font-size: medium;">2. When Process Flag is set to False in Application Settings</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJnUNCFp1s5JP4qSZpnP6k2Jz2vFxBBZG8rhGjMuYqyp3U7huL40924RMYulxP9342ZZp4ugrPHGGm24nZEr07l8XO97KwHqlSUuKtpiduAbapkJc3R-JChuEZ91BZwf0wmxbskdZZT2BhKDLmD6kB8R_K-PU-kPOYfjHiwSa7g6i3peFOsdvAiHCg/s1440/Output%20when%20Process%20Flag%20is%20set%20to%20False.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Output when Process Flag is set to False" border="0" data-original-height="654" data-original-width="1440" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJnUNCFp1s5JP4qSZpnP6k2Jz2vFxBBZG8rhGjMuYqyp3U7huL40924RMYulxP9342ZZp4ugrPHGGm24nZEr07l8XO97KwHqlSUuKtpiduAbapkJc3R-JChuEZ91BZwf0wmxbskdZZT2BhKDLmD6kB8R_K-PU-kPOYfjHiwSa7g6i3peFOsdvAiHCg/w640-h290/Output%20when%20Process%20Flag%20is%20set%20to%20False.PNG" title="Output when Process Flag is set to False" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><br /></div></span><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Summary</span></h3><span style="font-family: verdana; font-size: medium;">With this post we saw that with Logic App Standard, there is a provision to store workflow specific settings/configurations in Application settings.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">And how we can access/read it from workflow with the help of <b>appsetting</b> template function, also how the change in setting does not require any code changes in workflow.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">It's good add on, which can help to control behavior of workflow from outside.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><h3><span style="font-family: verdana;">Learn More about Logic App</span></h3><h3><div style="font-size: medium; font-weight: 400;"><span style="font-family: verdana;"><span style="font-size: medium;"><ul><li><u style="color: #0000ee;"><a href="https://www.tech-findings.com/2023/09/configure-Logic-App-Standard-workflow-behind-Azure-APIM.html" target="_blank">How to configure Logic App Standard workflow behind Azure APIM</a></u></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/08/How-to-Query-Azure-Table-storage-from-Logic-App%20.html" target="_blank">How to Query Azure Table storage from Logic App | How to filter results of Azure Table storage from Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/expressions-in-logic-apps.html" target="_blank">Understanding expressions in Logic Apps | Frequently used expressions in Logic Apps | What is expressions in Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/How-to-use-Logic-app-Run-History.html" target="_blank">How to use Logic app Run History | How to troubleshoot Logic App workflow execution</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/04/logic-app-slack-channel-integration.html" target="_blank">Logic App and Slack - Sending messages to slack channel | Logic app and slack integration | Connecting Logic App to Slack channel</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2022/12/how-to-access-application-settings-from-logic-app-standard-workflow.html" target="_blank">How to access Application settings fields value from Logic app Standard workflow | Using Application settings as configuration store for Logic app standard workflow</a></u></span></li><li><a href="https://www.tech-findings.com/2022/12/Developing-Logic-app-standard-workflow-locally-deploying-to-Azure.html" target="_blank">Developing Logic app standard workflow which uses Map locally and deploying to Azure</a></li><li><a href="https://www.tech-findings.com/2022/12/developing-logic-app-standard-workflow.html" target="_blank">Developing Logic App Standard Workflow Using Visual Studio Code | Create Logic App Standard Workflow Using Visual Studio Code</a></li><li><a href="https://www.tech-findings.com/2022/12/logic-app-xml-to-json-using-liquid-map.html" target="_blank">Logic App - Xml to Json using Liquid Map | Append in Liquid Map</a></li><li><a href="https://www.tech-findings.com/2022/11/Azure-Event-Grid-Custom-Topic-LogicApp.html" target="_blank">How to use Azure Event Grid Custom Topic | Publishing and Subscribing from Azure Event Grid Custom Topic using Logic App</a></li><li><a href="https://www.tech-findings.com/2022/11/read-write-azure-table-storage-logic-app.html" target="_blank">Using Azure Storage Account Table as Config Store for Logic Apps | How to read and write from Logic App to Azure Storage Account Table</a></li><li><a href="https://www.tech-findings.com/2022/08/get-logic-app-name-in-logic-app.html" target="_blank">Get Logic App Name in Logic App</a></li><li><a href="https://www.tech-findings.com/2022/07/logic-App-consumption-logic-app-standard.html" target="_blank">Difference between Logic App Consumption and Logic App Standard </a></li><li><a href="https://www.tech-findings.com/2022/07/overview-logic-app-standard.html" target="_blank">Getting Started with Logic App Standard | Overview of Logic App Standard | Basics of Logic App Standard</a></li><li><a href="https://www.tech-findings.com/2022/07/find-count-of-Logic-App-executions.html" target="_blank">How to find count of Logic App executions using Azure Portal</a></li><li><a href="https://www.tech-findings.com/2022/07/azure-functions-vs-azure-logic-app.html" target="_blank">Azure Functions vs Azure Logic App | Difference between Azure Functions and Azure Logic App</a></li><li><a href="https://www.tech-findings.com/2022/06/Logic-App-Liquid-Map-Basics.html" target="_blank">Getting started with Logic App : Liquid Map | Using Liquid template in Logic app</a></li><li><a href="https://www.tech-findings.com/2022/06/Exception-Handling-in-Logic-app.html" target="_blank">How to get actual error message of Scope in Logic App | Exception Handling in Logic app</a></li><li><a href="https://www.tech-findings.com/2019/01/Interview-questions-answers-LogicApps.html" target="_blank">Interview questions and answers on Logic Apps | Interview questions for azure logic app developers</a></li><li><span><a href="https://www.tech-findings.com/2022/05/How-to-execute-Stored-Procedure-in-Logic-App.html" target="_blank">How to execute Stored Procedure in Logic App | How to connect to SQL in Logic App</a></span></li><li><a href="https://www.tech-findings.com/2022/05/how-to-get-current-date-in-logic-app.html" target="_blank">How to get current date in logic app | How to format date time in Logic App</a></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/07/BizTalk-Developer-getting-started-with-Logic-App.html" target="_blank">BizTalk Developer getting started with Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2018/03/getting-started-with-logic-apps-fundamentals.html" target="_blank">Getting Started with Logic Apps - Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/10/Getting-Started-with-Logic-Apps-Enterprise-Application-Integration.html" target="_blank">Getting Started with Logic Apps - Enterprise Application Integration</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/09/getting-started-with-logic-apps-as2.html" target="_blank">Getting Started with Logic Apps - AS2</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/edi-x12-fundamentals.html" target="_blank">Getting Started with Logic Apps - EDI X12 Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/getting-started-with-logic-apps-xml-to-EDI-x12.html" target="_blank">Getting Started with Logic Apps - XML to EDI X12</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/getting-started-with-logic-apps-edi-x12-to-xml.html" target="_blank">Getting Started with Logic Apps - EDI X12 to XML</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/10/getting-started-with-logic-apps-what-happened-to-request.html" target="_blank">Getting Started with Logic Apps - What happened to the Request?</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-Multiple-Records-In-On-Prem-SQL-Using-Logic-App.html" target="_blank">Inserting Multiple Records In On Prem SQL Using Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-data-in-On-Premises-SQL-Database-using-Logic-Apps.html" target="_blank">Inserting data in On Premises SQL Database using Logic Apps</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/installing-and-configuring-on-premises-data-gateway.html" target="_blank">Installing and Configuring On Premises Data Gateway - By adding user to Active Directory</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/XML-Batching-Aggregation-in-Logic-App.html" target="_blank">XML Batching(Aggregation) in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/batching-aggregating-messages-in-logic-app.html" target="_blank">Batching(Aggregating) messages in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/Debatching-Splitting-JSON-Message-in-Logic-Apps.html" target="_blank">Debatching(Splitting) JSON Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/debatching-splitting-xml-message-in-Logic-App.html" target="_blank">Debatching(Splitting) XML Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/securing-logic-app-with-azure-active-directory.html" target="_blank">Securing Logic App with Azure Active Directory authentication</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/removing-ns0-prefix-from-xml-output.html" target="_blank">Removing ns0: prefix from xml output from BizTalk/Logic app XSLT map</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/01/using-managed-identity-in-logic-apps.html" target="_blank">Using Managed Identity in Logic Apps for Calling Active Directory Secured Function App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/logic-apps-fetching-isa-and-gs-segment.html" target="_blank">Logic Apps : Fetching ISA and GS Segment Values From Interchange Envelope and Mapping</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2021/07/logic-apps-for-each-inside-for-each.html" target="_blank">Logic Apps : For Each Inside a For Each - Fetching values from field in an array inside an array</a></span></span></li></ul></span></span></div></h3></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-27244540452827042502022-12-22T17:06:00.003+05:302022-12-24T11:35:30.135+05:30The service provider action failed with error code 'InvalidServiceProviderConnection' and error message 'Provide either a connection string or endpoint for your storage account'<b>{tocify} $title={Table of Contents}</b>
<br />
<div><b><br /></b></div><div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Issue</span></b></h3><div><b><br /></b></div><div><span style="font-family: verdana; font-size: medium;">In a POC for testing the connectivity to Azure services from logic app standard workflow developed locally, created a workflow which gets triggered by http request, does the transformation to json format and uploads the transformed content in a container as blob.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgImz5YA6Mqt982tX1kr8rZVxsov_dI4eyfzLLPFZY_O8ZcsGjCEdmim6qMcJMwaCjam11TrcVQZx6HIs5Tyi69KUUaHHU31sJkUWI4Rf2ejxNkOV842uEfCENIp-d8zfS5EfZEfpcD3qFwDrTEcAor2IK-QxcbhefNV8dw3Rmpt-7C7hX76gzZN7Dc" style="margin-left: 1em; margin-right: 1em;"><img alt="Logic app standard workflow - creating blob in container" data-original-height="425" data-original-width="179" height="640" src="https://blogger.googleusercontent.com/img/a/AVvXsEgImz5YA6Mqt982tX1kr8rZVxsov_dI4eyfzLLPFZY_O8ZcsGjCEdmim6qMcJMwaCjam11TrcVQZx6HIs5Tyi69KUUaHHU31sJkUWI4Rf2ejxNkOV842uEfCENIp-d8zfS5EfZEfpcD3qFwDrTEcAor2IK-QxcbhefNV8dw3Rmpt-7C7hX76gzZN7Dc=w269-h640" title="Logic app standard workflow - creating blob in container" width="269" /></a></div><br /><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Tested it locally and it did work absolutely fine.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Next, deployed the project to Azure Logic app and sent a http request via postman to test it.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">However, the execution failed.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiUOG2QessK7bniEyuO_npzJ0U8NmBt9ySMotU9QQgc026abyzJBZsssJbRp71lk6awBlD0rsN1jguNW6CpIKOsXWtXvZtSSb4vjzKUkUgyJe1LU-tKg2wAMW4ssXTmCiiojmAL7xvpks0VAetHdiYauoqelTG-vV4UJd5Bg-DAFcmqEr0YAU5URSx9" style="margin-left: 1em; margin-right: 1em;"><img alt="Provide either a connection string or endpoint for your storage account" data-original-height="733" data-original-width="1890" height="248" src="https://blogger.googleusercontent.com/img/a/AVvXsEiUOG2QessK7bniEyuO_npzJ0U8NmBt9ySMotU9QQgc026abyzJBZsssJbRp71lk6awBlD0rsN1jguNW6CpIKOsXWtXvZtSSb4vjzKUkUgyJe1LU-tKg2wAMW4ssXTmCiiojmAL7xvpks0VAetHdiYauoqelTG-vV4UJd5Bg-DAFcmqEr0YAU5URSx9=w640-h248" title="Provide either a connection string or endpoint for your storage account" width="640" /></a></div><br /><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Bad Request with following Error :</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><pre style="overflow-wrap: break-word; white-space: pre-wrap;">{"statusCode":"BadRequest","body":{"code":"ServiceProviderActionFailed","message":"The service provider action failed with error code 'InvalidServiceProviderConnection' and error message 'Provide either a connection string or endpoint for your storage account.'."}}</pre></div><div><b><br /></b></div><div><b><br /></b></div><div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;"><br /></span></b><b><span style="font-family: verdana; font-size: medium;">Why it happened</span></b></h3><div><span style="font-family: verdana; font-size: medium;">Something went missing after the deployment and as the error points </span><b> <span style="font-family: verdana; font-size: medium;">- </span></b><span style="white-space: pre-wrap;"><span style="font-family: verdana; font-size: medium;">Provide either a connection string or endpoint for your storage account.</span></span></div><div><span style="white-space: pre-wrap;"><span style="font-family: verdana; font-size: medium;"><br /></span></span></div><div><span style="white-space: pre-wrap;"><span style="font-family: verdana; font-size: medium;">So missing was connection string to storage account which has the container in which blob is to be written.</span></span></div><div><span style="white-space: pre-wrap;"><span style="font-family: verdana; font-size: medium;"><br /></span></span></div><div><span style="white-space: pre-wrap;"><span style="font-family: verdana; font-size: medium;">I cross checked the local.settings.json in Visual studio code with Logic App->Configuration->Application Settings and found following missing in later.</span></span></div><div><span style="white-space: pre-wrap;"><span style="font-family: verdana; font-size: medium;"><br /></span></span></div><div><div style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"> <span style="color: #0451a5;">"AzureBlob_connectionString"</span>: <span style="color: #a31515;">"DefaultEndpointsProtocol=https;AccountName=firstdemo4b7531;</span></div><div style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><span style="color: #a31515;"> AccountKey=gqYNYbqNxmxsqJMerzFvkTLLkmFB0PXpj/FRGOhhzGqpHp+ASthzaqCg==;</span></div><div style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><span style="color: #a31515;"> EndpointSuffix=core.windows.net"</span></div></div><div><b><br /></b></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium; font-weight: normal;">And this was implicitly included in local.settings.json file, when I created connection to storage account while designing the workflow.</span></h3><div><span style="font-family: verdana; font-size: medium; font-weight: normal;">But it was not moved while deployment.</span></div><h3 style="text-align: left;"><br /></h3><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><b>What to do</b></span></h3><div><span style="font-family: verdana; font-size: medium;">Whenever we do deployment of Logic app Standard, we should check if all the settings are reflected in </span><span style="font-family: verdana; font-size: large; white-space: pre-wrap;">Logic App->Configuration->Application Settings.</span></div><div><span style="font-family: verdana; font-size: large; white-space: pre-wrap;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><span style="white-space: pre-wrap;">It is because only default settings are moved, any thing custom is not moved. And needs to be added explicitly after deployment.</span></span></div><div><span style="font-family: verdana; font-size: large; white-space: pre-wrap;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">So here we need to add storage account connection string in Application settings of Logic App and save it.</span></div><div><span style="font-family: verdana; font-size: medium;"><b><br /></b></span></div><div><span style="font-family: verdana; font-size: medium;"><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhJ_a9T2DaqY-Yvo47g4jajn2bpZiVWXO2SWxl8c3agz2Cn03mcKDbokGlTTu6SYc3HYCA-ePn-MQq5TNBKOmM8lTfJJLdebljU2Lm-l_0BNrZ1cNDxwXOF9mhKM2stzEzpYAWWoD5OJS2ZgTVwrWdvFV78NDozXHXLs0HTTdIGcN7t3ldQZkFKvKYy" style="margin-left: 1em; margin-right: 1em;"><img alt="Add storage account connection string in Application settings of Logic App" data-original-height="571" data-original-width="1683" height="218" src="https://blogger.googleusercontent.com/img/a/AVvXsEhJ_a9T2DaqY-Yvo47g4jajn2bpZiVWXO2SWxl8c3agz2Cn03mcKDbokGlTTu6SYc3HYCA-ePn-MQq5TNBKOmM8lTfJJLdebljU2Lm-l_0BNrZ1cNDxwXOF9mhKM2stzEzpYAWWoD5OJS2ZgTVwrWdvFV78NDozXHXLs0HTTdIGcN7t3ldQZkFKvKYy=w640-h218" title="Add storage account connection string in Application settings of Logic App" width="640" /></a></div><br />That's all needed, the workflow executed successfully then after.</span></div><div><span style="font-family: verdana; font-size: medium;"><b><br /></b></span></div><div><span style="font-family: verdana; font-size: medium;"><b>Note: Application settings are shared by all the workflows in Logic app</b></span></div><div><span style="font-family: verdana; font-size: medium;"><b><br /></b></span></div><div><span style="font-family: verdana; font-size: medium;"><b><br /></b></span></div><div><span style="font-family: verdana; font-size: medium;"><h3 style="font-family: "Times New Roman";"><span style="font-family: verdana;"><span style="font-size: 18.72px;">Learn More about Logic App</span></span></h3><div style="font-family: "Times New Roman"; font-size: medium;"><span style="font-family: verdana;"><span style="font-size: medium;"><ul><li><a href="https://www.tech-findings.com/2022/12/Developing-Logic-app-standard-workflow-locally-deploying-to-Azure.html" target="_blank">Developing Logic app standard workflow which uses Map locally and deploying to Azure</a></li><li><a href="https://www.tech-findings.com/2022/12/developing-logic-app-standard-workflow.html" target="_blank">Developing Logic App Standard Workflow Using Visual Studio Code | Create Logic App Standard Workflow Using Visual Studio Code</a></li><li><a href="https://www.tech-findings.com/2022/12/logic-app-xml-to-json-using-liquid-map.html" target="_blank">Logic App - Xml to Json using Liquid Map | Append in Liquid Map</a></li><li><a href="https://www.tech-findings.com/2022/11/Azure-Event-Grid-Custom-Topic-LogicApp.html" target="_blank">How to use Azure Event Grid Custom Topic | Publishing and Subscribing from Azure Event Grid Custom Topic using Logic App</a></li><li><a href="https://www.tech-findings.com/2022/11/read-write-azure-table-storage-logic-app.html" target="_blank">Using Azure Storage Account Table as Config Store for Logic Apps | How to read and write from Logic App to Azure Storage Account Table</a></li><li><a href="https://www.tech-findings.com/2022/08/get-logic-app-name-in-logic-app.html" target="_blank">Get Logic App Name in Logic App</a></li><li><a href="https://www.tech-findings.com/2022/07/logic-App-consumption-logic-app-standard.html" target="_blank">Difference between Logic App Consumption and Logic App Standard </a></li><li><a href="https://www.tech-findings.com/2022/07/overview-logic-app-standard.html" target="_blank">Getting Started with Logic App Standard | Overview of Logic App Standard | Basics of Logic App Standard</a></li><li><a href="https://www.tech-findings.com/2022/07/find-count-of-Logic-App-executions.html" target="_blank">How to find count of Logic App executions using Azure Portal</a></li><li><a href="https://www.tech-findings.com/2022/07/azure-functions-vs-azure-logic-app.html" target="_blank">Azure Functions vs Azure Logic App | Difference between Azure Functions and Azure Logic App</a></li><li><a href="https://www.tech-findings.com/2022/06/Logic-App-Liquid-Map-Basics.html" target="_blank">Getting started with Logic App : Liquid Map | Using Liquid template in Logic app</a></li><li><a href="https://www.tech-findings.com/2022/06/Exception-Handling-in-Logic-app.html" target="_blank">How to get actual error message of Scope in Logic App | Exception Handling in Logic app</a></li><li><a href="https://www.tech-findings.com/2019/01/Interview-questions-answers-LogicApps.html" target="_blank">Interview questions and answers on Logic Apps | Interview questions for azure logic app developers</a></li><li><span><a href="https://www.tech-findings.com/2022/05/How-to-execute-Stored-Procedure-in-Logic-App.html" target="_blank">How to execute Stored Procedure in Logic App | How to connect to SQL in Logic App</a></span></li><li><a href="https://www.tech-findings.com/2022/05/how-to-get-current-date-in-logic-app.html" target="_blank">How to get current date in logic app | How to format date time in Logic App</a></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/07/BizTalk-Developer-getting-started-with-Logic-App.html" target="_blank">BizTalk Developer getting started with Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2018/03/getting-started-with-logic-apps-fundamentals.html" target="_blank">Getting Started with Logic Apps - Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/10/Getting-Started-with-Logic-Apps-Enterprise-Application-Integration.html" target="_blank">Getting Started with Logic Apps - Enterprise Application Integration</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/09/getting-started-with-logic-apps-as2.html" target="_blank">Getting Started with Logic Apps - AS2</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/edi-x12-fundamentals.html" target="_blank">Getting Started with Logic Apps - EDI X12 Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/getting-started-with-logic-apps-xml-to-EDI-x12.html" target="_blank">Getting Started with Logic Apps - XML to EDI X12</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/getting-started-with-logic-apps-edi-x12-to-xml.html" target="_blank">Getting Started with Logic Apps - EDI X12 to XML</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/10/getting-started-with-logic-apps-what-happened-to-request.html" target="_blank">Getting Started with Logic Apps - What happened to the Request?</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-Multiple-Records-In-On-Prem-SQL-Using-Logic-App.html" target="_blank">Inserting Multiple Records In On Prem SQL Using Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-data-in-On-Premises-SQL-Database-using-Logic-Apps.html" target="_blank">Inserting data in On Premises SQL Database using Logic Apps</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/installing-and-configuring-on-premises-data-gateway.html" target="_blank">Installing and Configuring On Premises Data Gateway - By adding user to Active Directory</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/XML-Batching-Aggregation-in-Logic-App.html" target="_blank">XML Batching(Aggregation) in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/batching-aggregating-messages-in-logic-app.html" target="_blank">Batching(Aggregating) messages in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/Debatching-Splitting-JSON-Message-in-Logic-Apps.html" target="_blank">Debatching(Splitting) JSON Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/debatching-splitting-xml-message-in-Logic-App.html" target="_blank">Debatching(Splitting) XML Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/securing-logic-app-with-azure-active-directory.html" target="_blank">Securing Logic App with Azure Active Directory authentication</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/removing-ns0-prefix-from-xml-output.html" target="_blank">Removing ns0: prefix from xml output from BizTalk/Logic app XSLT map</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/01/using-managed-identity-in-logic-apps.html" target="_blank">Using Managed Identity in Logic Apps for Calling Active Directory Secured Function App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/logic-apps-fetching-isa-and-gs-segment.html" target="_blank">Logic Apps : Fetching ISA and GS Segment Values From Interchange Envelope and Mapping</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2021/07/logic-apps-for-each-inside-for-each.html" target="_blank">Logic Apps : For Each Inside a For Each - Fetching values from field in an array inside an array</a></span></span></li></ul></span></span></div></span></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-46227163541245409052022-12-18T12:47:00.004+05:302023-09-19T10:28:25.682+05:30Developing Logic app standard workflow which uses Map locally and deploying to Azure<b>{tocify} $title={Table of Contents}</b>
<br />
<div><b><br /></b></div><div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Introduction</span></b></h3><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">We saw overview of Logic app standard in following post -<a href="https://www.tech-findings.com/2022/07/overview-logic-app-standard.html" target="_blank"> Getting Started with Logic App Standard | Overview of Logic App Standard | Basics of Logic App Standard</a></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">How to setup local development environment using Visual studio code along with an example of creating first stateful workflow and testing it locally in following post - <a href="https://www.tech-findings.com/2022/12/developing-logic-app-standard-workflow.html" target="_blank">Developing Logic App Standard Workflow Using Visual Studio Code | Create Logic App Standard Workflow Using Visual Studio Code</a></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">In this post we will create another workflow in same project/logic app, where we will see how to use map in logic app standard workflow, test it locally.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Also how to deploy Logic app standard project in Azure logic app followed by verifying and testing the workflows.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Let's start with creation of the sample </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Developing Logic app standard workflow using Visual studio code locally</span></h3><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">In this sample, we will make use of a liquid map which accepts xml message and produces json message.</span></div><div><b><br /></b></div><div><span style="font-family: verdana; font-size: medium;">It is the same map which we covered in following post - </span><span style="font-family: verdana; font-size: medium;"><a href="https://www.tech-findings.com/2022/12/logic-app-xml-to-json-using-liquid-map.html" target="_blank">Logic App - Xml to Json using Liquid Map | Append in Liquid Map</a></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">If new to liquid map, following post can help to get more insights - <a href="https://www.tech-findings.com/2022/06/Logic-App-Liquid-Map-Basics.html" target="_blank">Getting started with Logic App : Liquid Map | Using Liquid template in Logic app</a></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><div>If you have observed, when we create project in Visual Studio code, there is a new folder called Artifacts. </div><div><br /></div><div>Within this folder we have separate sub-folders-Maps and Schemas. </div><div><br /></div><div>This are there to add maps and schemas which are used in project respectively.</div><div><br /></div><div>And this is shared across all the workflows in same project/Logic app.</div><div><br /></div></span></div><h4 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Add map file under Maps folder</span></b></h4><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;">In the explorer, go to Project->Artifacts->Maps and click on Add file icon.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuSmhilJA8HfLmuDjEHKa9NzFcA3nYxHiGwTzMc-Di4Zp-ucSLialBrVZVPUFtcrLg4-9UNZIDUaRbKmxD-JT114_sLW2xJcL_RmdXvHJxRMb22ihsy6zQ5kdGRoyU9YO24eQzboZmWhs_revsNDbAlhV3g4TswUJwf33NqTHbMmm770L9ODIi6aG_/s1049/Add%20map%20file%20under%20Map%20folder.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Add map file under Map folder" border="0" data-original-height="652" data-original-width="1049" height="398" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuSmhilJA8HfLmuDjEHKa9NzFcA3nYxHiGwTzMc-Di4Zp-ucSLialBrVZVPUFtcrLg4-9UNZIDUaRbKmxD-JT114_sLW2xJcL_RmdXvHJxRMb22ihsy6zQ5kdGRoyU9YO24eQzboZmWhs_revsNDbAlhV3g4TswUJwf33NqTHbMmm770L9ODIi6aG_/w640-h398/Add%20map%20file%20under%20Map%20folder.PNG" title="Add map file under Map folder" width="640" /></a></div><br /><b><br /></b></div><div><div><span style="font-family: verdana; font-size: medium;">Provide a name and hit enter, you should see blank file opened in right pane.</span></div></div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhrUUpiEkAhtLyen2Z4k5CFDD6AyObJbn7AgMTyw6gcZ54QZLZvKLQzdgRCABFXIsYc5FV9338EYtWPZgBAsY8izD21HLYvLaK1q-0fcDYNXH7nQkyrPlOB-WrbD_i0SoERklEdn1mBMRbRBxiP5UhFkaCQBr9pV61DNF-pHtus0iXb958goDIakV3/s1214/Add%20the%20code%20in%20map%20file.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Add the code in map file" border="0" data-original-height="704" data-original-width="1214" height="372" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhrUUpiEkAhtLyen2Z4k5CFDD6AyObJbn7AgMTyw6gcZ54QZLZvKLQzdgRCABFXIsYc5FV9338EYtWPZgBAsY8izD21HLYvLaK1q-0fcDYNXH7nQkyrPlOB-WrbD_i0SoERklEdn1mBMRbRBxiP5UhFkaCQBr9pV61DNF-pHtus0iXb958goDIakV3/w640-h372/Add%20the%20code%20in%20map%20file.PNG" title="Add the code in map file" width="640" /></a></div><br /><b><br /></b></div><div><b><br /></b></div><div><div><span style="font-family: verdana; font-size: medium;">Add the code in map file and save it. We will be using it in the workflow.</span></div></div><div><b><br /></b></div><div><b><br /></b></div><h4 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Create the workflow</span></b></h4><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">To create workflow we will click on logic app icon, this will add another workflow in the existing project/Logic app</span></div><div><b><br /></b></div><div><b><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhpPnGLqOh1cMhk1SdHtg7LvcWrh2ZDLPwQjKLEBOtiSklL9lqtQzjSj-KFU2Po7C4likcUGeNE8o1aLYmBGz8_-o292zKzMzjt8uvgIj0eIUbSr0hW_0wdBEQc041jkK14lZj5I1ZzR3Z4lkTl8MjT9g4vNoV5yyQl3nHM1bm8Qh_RJKbtjP_P79pZ" style="margin-left: 1em; margin-right: 1em;"><img alt="create workflow in logic app standard locally" data-original-height="394" data-original-width="606" height="416" src="https://blogger.googleusercontent.com/img/a/AVvXsEhpPnGLqOh1cMhk1SdHtg7LvcWrh2ZDLPwQjKLEBOtiSklL9lqtQzjSj-KFU2Po7C4likcUGeNE8o1aLYmBGz8_-o292zKzMzjt8uvgIj0eIUbSr0hW_0wdBEQc041jkK14lZj5I1ZzR3Z4lkTl8MjT9g4vNoV5yyQl3nHM1bm8Qh_RJKbtjP_P79pZ=w640-h416" title="create workflow in logic app standard locally" width="640" /></a></div><br /><br /></b></div><div><b><span style="font-family: verdana; font-size: medium;">Note:</span> </b><span style="font-family: verdana; font-size: medium;">We are using same project used in last post - </span><a href="https://www.tech-findings.com/2022/12/developing-logic-app-standard-workflow.html" target="_blank"><span style="font-family: verdana; font-size: medium;">Developing Logic App Standard Workflow Using Visual Studio Code | Create Logic App Standard Workflow Using Visual Studio Code</span></a></div><div><span style="font-family: verdana; font-size: large;"><br /></span></div><div><span style="font-family: verdana; font-size: large;"><br /></span></div><div><span style="font-size: medium;"><span style="font-family: verdana;">Give the name to workflow (here it is Stateful_WithMap) </span><span style="font-family: verdana;">and right click on workflow.json file and select <b>Open in Designer</b> </span></span></div><div><span style="font-family: verdana; font-size: large;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Add http trigger as the first step in workflow (When a HTTP request is received).</span></div><div><br /></div><div><b><br /></b></div><div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj9siYxjqjXM3zMpMjmmHSo_reVX-jZorKzXpDXZGX9q-q4BRFgaZhB_xEUee3z1mZe_PhtGIHrD8z_NrCXLbG6hK5YQ-Jn0W-LN3I2hPU8-xVxjd3tMTGI0A40i6qKLr15dE0oXVl6qgXb-n3FWwiFazfY9AqwPVujsVOjK7WARIwjkICsnWjBwtpr" style="margin-left: 1em; margin-right: 1em;"><img alt="Add Transform XML to JSON action" data-original-height="451" data-original-width="952" height="304" src="https://blogger.googleusercontent.com/img/a/AVvXsEj9siYxjqjXM3zMpMjmmHSo_reVX-jZorKzXpDXZGX9q-q4BRFgaZhB_xEUee3z1mZe_PhtGIHrD8z_NrCXLbG6hK5YQ-Jn0W-LN3I2hPU8-xVxjd3tMTGI0A40i6qKLr15dE0oXVl6qgXb-n3FWwiFazfY9AqwPVujsVOjK7WARIwjkICsnWjBwtpr=w640-h304" title="Add Transform XML to JSON action" width="640" /></a></div><br /><div class="separator" style="clear: both; font-weight: bold; text-align: justify;"><span style="font-family: verdana; font-size: large; font-weight: 400; text-align: left;"><br /></span></div><div class="separator" style="clear: both; font-weight: bold; text-align: justify;"><span style="font-size: medium;"><span style="font-family: verdana; font-weight: 400; text-align: left;">Next add</span><b style="font-family: verdana; text-align: left;"> Transform XML to JSON </b><span style="font-family: verdana; font-weight: 400; text-align: left;">action (Liquid operations)</span></span></div><div class="separator" style="clear: both; font-weight: bold; text-align: justify;"><span style="font-family: verdana; font-size: large; font-weight: 400; text-align: left;"><br /></span></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhsFUzkWpXi9YbFAWtDvn0Lz3BIQlwAWqkUZHnKfECdqcZWNJXwPFcFoCCwD1FgE3fy0aEZ_YdvZDs6hZlnQhZPkkt38MoFky0WFKg0ILuZI18VgxMdFwMO8SvPL6etFTrvsKULqgZCyL3Z4ttqoq6aTDHu6Tv5BHjojQIc2fOEQ_hB1uU9XqcRPmiI" style="margin-left: 1em; margin-right: 1em;"><img alt="Add trigger body against content" data-original-height="495" data-original-width="1218" height="260" src="https://blogger.googleusercontent.com/img/a/AVvXsEhsFUzkWpXi9YbFAWtDvn0Lz3BIQlwAWqkUZHnKfECdqcZWNJXwPFcFoCCwD1FgE3fy0aEZ_YdvZDs6hZlnQhZPkkt38MoFky0WFKg0ILuZI18VgxMdFwMO8SvPL6etFTrvsKULqgZCyL3Z4ttqoq6aTDHu6Tv5BHjojQIc2fOEQ_hB1uU9XqcRPmiI=w640-h260" title="Add trigger body against content" width="640" /></a></div><span style="text-align: center;"><span style="font-family: verdana; font-size: medium;"><div><span style="text-align: center;"><span style="font-family: verdana; font-size: medium;"><br /></span></span></div>Add trigger body against content</span></span><br /><br /></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwIvRruesFHCqd5hYJxQXWqtHq041SuPgML8zlFdlc92OJjNR0nrO4Ac8dPqLzt50Vhpcdi7-E2gPzV1RoTIGFLw_hwBMu92OOHUL4nrTi8vuBvWOR4KmGzUYstgUcSAN6z1duNPPdayFtiV9O3gbq1NHrL8NtPKbRkWifU4pwaqUQpKJ3Gss3NlMl/s1241/Select%20Logic%20App%20as%20source.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Select Logic App as source" border="0" data-original-height="298" data-original-width="1241" height="154" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwIvRruesFHCqd5hYJxQXWqtHq041SuPgML8zlFdlc92OJjNR0nrO4Ac8dPqLzt50Vhpcdi7-E2gPzV1RoTIGFLw_hwBMu92OOHUL4nrTi8vuBvWOR4KmGzUYstgUcSAN6z1duNPPdayFtiV9O3gbq1NHrL8NtPKbRkWifU4pwaqUQpKJ3Gss3NlMl/w640-h154/Select%20Logic%20App%20as%20source.PNG" title="Select Logic App as source" width="640" /></a></div><br /><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Select <b>Logic App</b> as source, here there is another option to choose <b>Integration Account </b></span></div><div><br /></div><div><br /></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigIO3QEarXhSVpSiB2JpcNWOsjymh-i0OnM-cMpWzn7DkU4YsplxOqUJoUKfRk3-PqNpwbiw9fZ1fLlJjHHOsBgyH2g-CI5l8PvdRo2rpXZuscPEmn8id48GXKkxcH_g9G3x-0-pYWjGM7IEY8FEhUYB1ZEhIM476CZqMcSZRQHnrM-l3xWaE6R3__/s1232/Select%20map%20from%20list%20against%20Name.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Select map from list against Name" border="0" data-original-height="293" data-original-width="1232" height="152" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigIO3QEarXhSVpSiB2JpcNWOsjymh-i0OnM-cMpWzn7DkU4YsplxOqUJoUKfRk3-PqNpwbiw9fZ1fLlJjHHOsBgyH2g-CI5l8PvdRo2rpXZuscPEmn8id48GXKkxcH_g9G3x-0-pYWjGM7IEY8FEhUYB1ZEhIM476CZqMcSZRQHnrM-l3xWaE6R3__/w640-h152/Select%20map%20from%20list%20against%20Name.PNG" title="Select map from list against Name" width="640" /></a></div><br /><div><span style="font-family: verdana; font-size: medium;">Select map from list against Name, the map which we developed in step one.</span></div><div><br /></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgep6xRhTtXZ-PjLLBX5VVVQ6ZFdt7x4W3V6QuPGA9yK1xPk6SLohhpNin1WH-tqoy66HtxNu2QkxgyqLRWLb55MjITzrs4Ei0TAaLmRv_2bR8YRNMlorIybPtv8217UrnaVzbADObuXYoUelKgSHHJqhV2LmkAaRfLJ2xghQPraeQQ7l2jylM7EyM2/s1237/Add%20http%20response%20in%20workflow.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Add http response in workflow" border="0" data-original-height="647" data-original-width="1237" height="334" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgep6xRhTtXZ-PjLLBX5VVVQ6ZFdt7x4W3V6QuPGA9yK1xPk6SLohhpNin1WH-tqoy66HtxNu2QkxgyqLRWLb55MjITzrs4Ei0TAaLmRv_2bR8YRNMlorIybPtv8217UrnaVzbADObuXYoUelKgSHHJqhV2LmkAaRfLJ2xghQPraeQQ7l2jylM7EyM2/w640-h334/Add%20http%20response%20in%20workflow.PNG" title="Add http response in workflow" width="640" /></a></div><br /><div><span style="font-family: verdana; font-size: medium;">Add http response in workflow </span></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbl9knhlRyQPM1ZMzH-9rnQX7Tlve-CWFMi3F7dQtlC-gt7rG9AUlDxdvoRDp49r-rb-hUhuM-MMMNfS1c0lOQMRGy8x4P6DeSp_N8KefNJh0GV33cLF-xKJWL9geOZSfr13Pc1F9f8a7P-ZD26nvgbt9iFXZR1xh-jVZuWFR9HoM0nmoaxV6K-5o_/s1230/Transformed%20content%20as%20body%20of%20respose.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Transformed content as body of response" border="0" data-original-height="650" data-original-width="1230" height="338" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbl9knhlRyQPM1ZMzH-9rnQX7Tlve-CWFMi3F7dQtlC-gt7rG9AUlDxdvoRDp49r-rb-hUhuM-MMMNfS1c0lOQMRGy8x4P6DeSp_N8KefNJh0GV33cLF-xKJWL9geOZSfr13Pc1F9f8a7P-ZD26nvgbt9iFXZR1xh-jVZuWFR9HoM0nmoaxV6K-5o_/w640-h338/Transformed%20content%20as%20body%20of%20respose.PNG" title="Transformed content as body of response" width="640" /></a></div><br /><div><span style="font-family: verdana; font-size: medium;">Provide <b>Transformed content</b> as body of response.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Save the workflow and it's ready to test.</span></div><div><br /></div><div><br /></div><h4 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Testing Logic app workflow locally</span></h4><div><br /></div><div><span style="font-family: verdana; font-size: medium;">We will make use of postman app to test the workflow locally, ngork service can be used to test it publicly.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Following is the Input:</span></div><div><span style="color: #2b00fe;"><br /></span></div><div><div><span style="color: #2b00fe;"><?xml version="1.0" encoding="UTF-8"?></span></div><div><span style="color: #2b00fe;"><Products></span></div><div><span style="color: #2b00fe;"><span style="white-space: pre;"> </span><Product></span></div><div><span style="color: #2b00fe;"><span style="white-space: pre;"> </span><productname>iPhone</productname></span></div><div><span style="color: #2b00fe;"><span style="white-space: pre;"> </span><productid>EL123</productid></span></div><div><span style="color: #2b00fe;"><span style="white-space: pre;"> </span><productcategory>Electronics</productcategory></span></div><div><span style="color: #2b00fe;"><span style="white-space: pre;"> </span></Product></span></div><div><span style="color: #2b00fe;"><span style="white-space: pre;"> </span><Product></span></div><div><span style="color: #2b00fe;"><span style="white-space: pre;"> </span><productname>OnePlus</productname></span></div><div><span style="color: #2b00fe;"><span style="white-space: pre;"> </span><productid>EL124</productid></span></div><div><span style="color: #2b00fe;"><span style="white-space: pre;"> </span><productcategory>Electronics</productcategory></span></div><div><span style="color: #2b00fe;"><span style="white-space: pre;"> </span></Product></span></div><div><span style="color: #2b00fe;"><span style="white-space: pre;"> </span><Product></span></div><div><span style="color: #2b00fe;"><span style="white-space: pre;"> </span><productname>Xioami</productname></span></div><div><span style="color: #2b00fe;"><span style="white-space: pre;"> </span><productid>EL125</productid></span></div><div><span style="color: #2b00fe;"><span style="white-space: pre;"> </span><productcategory>Electronics</productcategory></span></div><div><span style="color: #2b00fe;"><span style="white-space: pre;"> </span></Product></span></div><div><span style="color: #2b00fe;"></Products></span></div></div><div><br /></div><div><br /></div><div><span style="font-family: verdana; font-size: medium;">Before we test, Azurite service needs to be started and the project has to be either Run or Debug</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjVHrhREm6iV7akWIwCBgQ-cdUMRELjJzbPxh2r01417LOhK18S9MBb-krJuN_9mPY-SybIP9CiQhvPg1nd0UXOFZyD-9M5xFAj9-JKMcyevtaO-CsoNqJFG9cGtAYKGFQ58AZQnys7xqjR6PkZfW9PY_yxiWGqhtevwqJmUAE7xtQ33s3Rse_v0wXZ" style="margin-left: 1em; margin-right: 1em;"><img alt="Start Azurite and run the logic app standard project" data-original-height="549" data-original-width="1806" height="194" src="https://blogger.googleusercontent.com/img/a/AVvXsEjVHrhREm6iV7akWIwCBgQ-cdUMRELjJzbPxh2r01417LOhK18S9MBb-krJuN_9mPY-SybIP9CiQhvPg1nd0UXOFZyD-9M5xFAj9-JKMcyevtaO-CsoNqJFG9cGtAYKGFQ58AZQnys7xqjR6PkZfW9PY_yxiWGqhtevwqJmUAE7xtQ33s3Rse_v0wXZ=w640-h194" title="Start Azurite and run the logic app standard project" width="640" /></a></div><br />Next, to get the url go the overview of the workflow</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhHFTfzg-ZwCv2opT5RXseEVrlU6iO8JuHfW6sTZcqM-KcPeXvKNTrUDo6Hl7RRE9dl5vAY_NDT8mQaqSterqlTtpDzfoFZoqNMY2T9-2zIl9pcD6DEXvceHNWCTnQNOknUydT6uXEqdnamweNMPSYCeWF0D6oujCSNG2cZlOq1cnHtP4eAy3bzmf6l" style="margin-left: 1em; margin-right: 1em;"><img alt="callback url of logic app standard workflow" data-original-height="375" data-original-width="1890" height="126" src="https://blogger.googleusercontent.com/img/a/AVvXsEhHFTfzg-ZwCv2opT5RXseEVrlU6iO8JuHfW6sTZcqM-KcPeXvKNTrUDo6Hl7RRE9dl5vAY_NDT8mQaqSterqlTtpDzfoFZoqNMY2T9-2zIl9pcD6DEXvceHNWCTnQNOknUydT6uXEqdnamweNMPSYCeWF0D6oujCSNG2cZlOq1cnHtP4eAy3bzmf6l=w640-h126" title="callback url of logic app standard workflow" width="640" /></a></div><br /><br /></span></div><div><span style="font-family: verdana; font-size: medium;">In postman app provide the above captured url, select Post as method, in Body provide the input and click on Send.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg800xd_-TDRAEmX5XIP4BEA1yek9A9WHnzHWAGGgCg85QIoN-uP7g5JLUPH1jdGAmMo_JpKXmuGkXdiF9oG4WFNTdCySYqspjW1jwDOz0ZtmJYdBG8b_06B40-z04PX1gV2rPF3-npumTY-WEPnDfzY-jFcQ08ERK2lsbjsq2WGLw6Okq2GY_UUxpX/s1434/Postman%20testing.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Postman testing" border="0" data-original-height="751" data-original-width="1434" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg800xd_-TDRAEmX5XIP4BEA1yek9A9WHnzHWAGGgCg85QIoN-uP7g5JLUPH1jdGAmMo_JpKXmuGkXdiF9oG4WFNTdCySYqspjW1jwDOz0ZtmJYdBG8b_06B40-z04PX1gV2rPF3-npumTY-WEPnDfzY-jFcQ08ERK2lsbjsq2WGLw6Okq2GY_UUxpX/w640-h336/Postman%20testing.PNG" title="Postman testing" width="640" /></a></div><br /><div><span style="font-family: verdana; font-size: medium;">The call was successful with a response having JSON messages as per the map definition.</span></div><div><br /></div><div><span style="font-family: verdana; font-size: medium;">Following is the Output:</span></div><div><br /></div><div><div style="background-color: #fffffe; line-height: 18px;"><div style="font-size: 12px; white-space: pre;">{</div><div style="font-size: 12px; white-space: pre;"> <span style="color: #a31515;">"Products"</span>: [</div><div style="font-size: 12px; white-space: pre;"> {</div><div style="font-size: 12px; white-space: pre;"> <span style="color: #a31515;">"name"</span>: <span style="color: #0451a5;">"iPhone"</span>,</div><div style="font-size: 12px; white-space: pre;"> <span style="color: #a31515;">"id"</span>: <span style="color: #0451a5;">"EL123"</span>,</div><div style="font-size: 12px; white-space: pre;"> <span style="color: #a31515;">"category"</span>: <span style="color: #0451a5;">"Electronics"</span></div><div style="font-size: 12px; white-space: pre;"> },</div><div style="font-size: 12px; white-space: pre;"> {</div><div style="font-size: 12px; white-space: pre;"> <span style="color: #a31515;">"name"</span>: <span style="color: #0451a5;">"OnePlus"</span>,</div><div style="font-size: 12px; white-space: pre;"> <span style="color: #a31515;">"id"</span>: <span style="color: #0451a5;">"EL124"</span>,</div><div style="font-size: 12px; white-space: pre;"> <span style="color: #a31515;">"category"</span>: <span style="color: #0451a5;">"Electronics"</span></div><div style="font-size: 12px; white-space: pre;"> },</div><div style="font-size: 12px; white-space: pre;"> {</div><div style="font-size: 12px; white-space: pre;"> <span style="color: #a31515;">"name"</span>: <span style="color: #0451a5;">"Xioami"</span>,</div><div style="font-size: 12px; white-space: pre;"> <span style="color: #a31515;">"id"</span>: <span style="color: #0451a5;">"EL125"</span>,</div><div style="font-size: 12px; white-space: pre;"> <span style="color: #a31515;">"category"</span>: <span style="color: #0451a5;">"Electronics"</span></div><div style="font-size: 12px; white-space: pre;"> }</div><div style="font-size: 12px; white-space: pre;"> ],</div><div style="font-size: 12px; white-space: pre;"> <span style="color: #a31515;">"ProductsSummary"</span>: {</div><div style="font-size: 12px; white-space: pre;"> <span style="color: #a31515;">"listofitems"</span>: <span style="color: #0451a5;">"iPhone,OnePlus,Xioami"</span>,</div><div style="font-size: 12px; white-space: pre;"> <span style="color: #a31515;">"itemCount"</span>: <span style="color: #0451a5;">"3"</span></div><div style="font-size: 12px; white-space: pre;"> }</div><div style="font-size: 12px; white-space: pre;">}</div><div style="font-size: 12px; white-space: pre;"><br /></div><div><span style="font-family: verdana; font-size: medium; white-space: pre;">Workflow run history on local dev env can be checked by visiting the </span></div><div><span style="font-family: verdana; font-size: medium; white-space: pre;">overview page</span></div><div><span style="font-size: 12px; white-space: pre;"><br /></span></div><div><span style="font-size: 12px; white-space: pre;"><br /></span></div><div><span style="font-size: 12px; white-space: pre;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgVityjOZnPaAuK2mG3xJQX5tQb1Z6aoH6u5WXnBy3ZC_-IZCQYZDYj4LYjdhca7CdDDQLxpyV3341YByFSNc2KzYqbmshDzOg05XXFpUFgZhKstLqyWK-Eeqg6ObQ8YZKtiC0FFi0fDr3s31vNwUZe0Xluk1Xx3XXHIoqB1tQayz54LadHe4DCV18s" style="margin-left: 1em; margin-right: 1em;"><img alt="Workflow run history" data-original-height="860" data-original-width="1228" height="448" src="https://blogger.googleusercontent.com/img/a/AVvXsEgVityjOZnPaAuK2mG3xJQX5tQb1Z6aoH6u5WXnBy3ZC_-IZCQYZDYj4LYjdhca7CdDDQLxpyV3341YByFSNc2KzYqbmshDzOg05XXFpUFgZhKstLqyWK-Eeqg6ObQ8YZKtiC0FFi0fDr3s31vNwUZe0Xluk1Xx3XXHIoqB1tQayz54LadHe4DCV18s=w640-h448" title="Workflow run history" width="640" /></a></div><br /><br /></span></div><div><span style="font-family: verdana; font-size: medium; white-space: pre;">All right then all good on local env, let's deploy to azure now and test it.</span></div><div><span style="font-size: 12px; white-space: pre;"><br /></span></div><div><span style="font-size: 12px; white-space: pre;"><br /></span></div><div><span style="font-size: 12px; white-space: pre;"><br /></span></div><div><span style="font-size: 12px; white-space: pre;"><h3 style="white-space: normal;"><span style="font-family: verdana; font-size: medium;">Deploying Logic app standard workflow from Visual studio code locally to Azure Logic app</span></h3><div><span style="font-family: verdana; font-size: medium;"><br /></span></div></span></div><div><span style="font-size: 12px; white-space: pre;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj_7fcPe3jfCVQuWniJH4U4G_SEJDzdoSGMN57J6sJyT2SkdSq1_nq5M6qA07DPKu1OpekQMTUqvpjTivyTMAiJAZTmDAS21xnYp1J3EArOoa4gD5JH9i6lHsAGCd7VzTVfzAvdnRPWoSofR9xmyZeoA-B9htsQwPaaULfgk9em7NdHTzsl9l6A781A" style="margin-left: 1em; margin-right: 1em;"><img alt="Sign in to Azure" data-original-height="511" data-original-width="1217" height="268" src="https://blogger.googleusercontent.com/img/a/AVvXsEj_7fcPe3jfCVQuWniJH4U4G_SEJDzdoSGMN57J6sJyT2SkdSq1_nq5M6qA07DPKu1OpekQMTUqvpjTivyTMAiJAZTmDAS21xnYp1J3EArOoa4gD5JH9i6lHsAGCd7VzTVfzAvdnRPWoSofR9xmyZeoA-B9htsQwPaaULfgk9em7NdHTzsl9l6A781A=w640-h268" title="Sign in to Azure" width="640" /></a></div><br /><br /></span></div><div><span style="font-family: verdana; font-size: medium; white-space: pre;">First step is to sign in to Azure if not already and select subscription(if</span></div><div><span style="font-family: verdana; font-size: medium; white-space: pre;"> muliple)</span></div><div><span style="font-size: 12px; white-space: pre;"><br /></span></div><div><span style="font-size: 12px; white-space: pre;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgiyAdbJh7J7p58-B1KPndF_HPEmPFG84g-vfzLPQewVEbSg2gTSaSLe7EZo83wBhlm3DfepiLQF52xJwGZZ2gi3Z-43Ws2glq2WslvwASo5ou5E3WNVmlXT1zVS-Mgt8Ln1IH20beu-deBeUm6jrV3mhC3XakZIVdknQAYE83MZnxWF7ifWPYbsfj1" style="margin-left: 1em; margin-right: 1em;"><img alt="Deploy to logic app" data-original-height="187" data-original-width="1833" height="66" src="https://blogger.googleusercontent.com/img/a/AVvXsEgiyAdbJh7J7p58-B1KPndF_HPEmPFG84g-vfzLPQewVEbSg2gTSaSLe7EZo83wBhlm3DfepiLQF52xJwGZZ2gi3Z-43Ws2glq2WslvwASo5ou5E3WNVmlXT1zVS-Mgt8Ln1IH20beu-deBeUm6jrV3mhC3XakZIVdknQAYE83MZnxWF7ifWPYbsfj1=w640-h66" title="Deploy to logic app" width="640" /></a></div><br /><span style="font-family: verdana; font-size: large;">Click on upward arrow icon, select create new logic app</span></span></div><div><br /></div><div><span style="font-size: 12px; white-space: pre;"><br /></span></div><div><span style="white-space: pre;"><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; font-size: 12px; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjLJG7UVCuI2BTLLK8FtKfnv5rz3Yf7Ll2Q3YdP2oLVTnlWzn-fsJ8wVX_Eawo6v4C-cPngJSEvfW2vQ4zoqAJBfePhRbU8T_akStx3eEOALAG8algkT-sYY7pPI0V3jUKoqy65At4s-mb0NRYsihUlrz0LbosOvY1ZhMfqX9pjLbWA_yOF0Gkr96H5" style="margin-left: 1em; margin-right: 1em;"><img alt="Give logic app name and select region" data-original-height="669" data-original-width="1274" height="336" src="https://blogger.googleusercontent.com/img/a/AVvXsEjLJG7UVCuI2BTLLK8FtKfnv5rz3Yf7Ll2Q3YdP2oLVTnlWzn-fsJ8wVX_Eawo6v4C-cPngJSEvfW2vQ4zoqAJBfePhRbU8T_akStx3eEOALAG8algkT-sYY7pPI0V3jUKoqy65At4s-mb0NRYsihUlrz0LbosOvY1ZhMfqX9pjLbWA_yOF0Gkr96H5=w640-h336" title="Give logic app name and select region" width="640" /></a></div><span><span style="font-size: 12px;"><br /></span><div style="text-align: justify;"><span style="font-family: verdana; font-size: medium; text-align: left;">Give logic app name(it has to be unique) and select the region</span></div></span></div><span style="font-size: 12px;"><br /><br /></span></span></div><div><span style="white-space: pre;"><div class="separator" style="clear: both; font-size: 12px; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEi4Ewsx7Lao5XLeVr-aHljxtn6KWahOs38Nj-5aP4wzeysLroIkcGMEb2IjPVUs1rOBJnT8_7mxdyNumlxmvRzGz6pocUe8eTPfhPYlk7C2dduDvzdUXtflU7QFjVCkDOhg2C3fHD0RpTaepocjOiiit9jOYAyEeRmCZOFrJcCWcaRiLP3RBQaeD6uo" style="margin-left: 1em; margin-right: 1em;"><img alt="select hosting plan" data-original-height="542" data-original-width="1308" height="266" src="https://blogger.googleusercontent.com/img/a/AVvXsEi4Ewsx7Lao5XLeVr-aHljxtn6KWahOs38Nj-5aP4wzeysLroIkcGMEb2IjPVUs1rOBJnT8_7mxdyNumlxmvRzGz6pocUe8eTPfhPYlk7C2dduDvzdUXtflU7QFjVCkDOhg2C3fHD0RpTaepocjOiiit9jOYAyEeRmCZOFrJcCWcaRiLP3RBQaeD6uo=w640-h266" title="select hosting plan" width="640" /></a></div><div style="font-size: 12px;"><span style="font-size: 12px; white-space: pre;"><br /></span></div><span style="font-family: verdana; font-size: medium;">Select Hosting plan as Workflow standard (App Service plan is to be </span></span></div><div><span style="white-space: pre;"><span style="font-family: verdana; font-size: medium;">selected if you wish to go with App service env), create new app </span></span></div><div><span style="white-space: pre;"><span style="font-family: verdana; font-size: medium;">service plan and provide a name.</span><span style="font-size: 12px;"><br /><br /></span></span></div><div><br /></div><div><span style="white-space: pre;"><div class="separator" style="clear: both; font-size: 12px; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhueDoWKpzvtkDWy2vuMUtMH_E1L7uJ79JjbeTAthswnhIieswG3RHFuglYbEeFuDo7TH06UxUxDL6TNIVzx2Bwo4VfDx9sLnKUzp_3aBwE7LtDpymwCbWcEGXsIHx_9kcQR9mhaUCSfWPY5xsV67IYW15ks7OwIPRby8y3kjXlG3kmpEyz_EVgFWIS" style="margin-left: 1em; margin-right: 1em;"><img alt="Select pricing tier and resource group" data-original-height="636" data-original-width="1398" height="292" src="https://blogger.googleusercontent.com/img/a/AVvXsEhueDoWKpzvtkDWy2vuMUtMH_E1L7uJ79JjbeTAthswnhIieswG3RHFuglYbEeFuDo7TH06UxUxDL6TNIVzx2Bwo4VfDx9sLnKUzp_3aBwE7LtDpymwCbWcEGXsIHx_9kcQR9mhaUCSfWPY5xsV67IYW15ks7OwIPRby8y3kjXlG3kmpEyz_EVgFWIS=w640-h292" title="Select pricing tier and resource group" width="640" /></a></div><span style="font-size: 12px;"><br /></span><span style="font-family: verdana; font-size: medium;">Select pricing tier and resource group</span></span></div><div><span style="font-size: 12px; white-space: pre;"><br /></span></div><div><span style="white-space: pre;"><div class="separator" style="clear: both; font-size: 12px; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjIIqFqswl_4PUiGM1eELwS7Bbyhdhk_7HC_1CNmuF_xfxKEA34B_ELVlwaiwUNcbIOym8F9As-LQjTswRl8YmpZUqnuHJmFwCqsTcUzBXOlE8oWK--ZhyIrJ6ADUzP6NTM-WGlj7jw64VcxRU5uTzrIx-Eq_32lwQljrPe6GXWfU_GH7ocbQV5AFU8" style="margin-left: 1em; margin-right: 1em;"><img alt="Deployment Successful" data-original-height="632" data-original-width="1120" height="362" src="https://blogger.googleusercontent.com/img/a/AVvXsEjIIqFqswl_4PUiGM1eELwS7Bbyhdhk_7HC_1CNmuF_xfxKEA34B_ELVlwaiwUNcbIOym8F9As-LQjTswRl8YmpZUqnuHJmFwCqsTcUzBXOlE8oWK--ZhyIrJ6ADUzP6NTM-WGlj7jw64VcxRU5uTzrIx-Eq_32lwQljrPe6GXWfU_GH7ocbQV5AFU8=w640-h362" title="Deployment Successful" width="640" /></a></div><span style="font-size: 12px;"><br /></span><span style="font-family: verdana; font-size: medium;">Wait for few minutes.</span></span></div><div><span style="white-space: pre;"><span style="font-family: verdana; font-size: medium;"><br /></span></span></div><div><span style="font-family: verdana; font-size: medium;"><span style="white-space: pre;">Deployment Successful. </span><span style="white-space: pre;">Let's verify, go to Azure portal --> Logic apps</span></span></div><div><span style="font-size: 12px; white-space: pre;"><br /></span></div><div><span style="white-space: pre;"><div class="separator" style="clear: both; font-size: 12px; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhn0GgndmMtyhbMQjwMVEceV2gQ3hbJ__SlkZrPWG053PMoT1Fe18oy8t_kUdLAOmaP27iBWCasJ2BSMWxcZk7zkEay1qukY7jTu6I3XjzzV0ulzkgmvT-dKxif5w8czUQ_m6bK1zNGk_fBVPGsP8uXu1wGcs9Vz-arRpgQ26kJCpWlRKIkgyv4E6H8" style="margin-left: 1em; margin-right: 1em;"><img alt="Logic app deployed on Azure" data-original-height="462" data-original-width="950" height="312" src="https://blogger.googleusercontent.com/img/a/AVvXsEhn0GgndmMtyhbMQjwMVEceV2gQ3hbJ__SlkZrPWG053PMoT1Fe18oy8t_kUdLAOmaP27iBWCasJ2BSMWxcZk7zkEay1qukY7jTu6I3XjzzV0ulzkgmvT-dKxif5w8czUQ_m6bK1zNGk_fBVPGsP8uXu1wGcs9Vz-arRpgQ26kJCpWlRKIkgyv4E6H8=w640-h312" title="Logic app deployed on Azure" width="640" /></a></div><span style="font-size: 12px;"><br /></span><span style="font-family: verdana; font-size: medium;">As can be seen, both (one created in last post and one in this post) the</span></span></div><div><span style="white-space: pre;"><span style="font-family: verdana; font-size: medium;">workflow is visible under single logic app.</span></span></div><div><span style="white-space: pre;"><span style="font-family: verdana; font-size: medium;"><br /></span></span></div><div><span><h4 style="text-align: left; white-space: normal;"><span style="font-family: verdana; font-size: medium;">Testing Logic app workflow on Azure Portal</span></h4><div style="font-size: 12px; white-space: pre;"><br /></div><div style="white-space: pre;"><span style="font-family: verdana; font-size: medium;">We can use any rest api client like Postman/Arc or we can test using </span></div><div style="white-space: pre;"><span style="font-family: verdana; font-size: medium;">Azure portal itself(here we use this)</span><span style="font-size: 12px;">.</span></div><div style="font-size: 12px; white-space: pre;"><br /></div><div style="font-size: 12px; white-space: pre;"><br /></div><div style="font-size: 12px; white-space: pre;"><br /></div><div><div class="separator" style="clear: both; font-size: 12px; text-align: center; white-space: pre;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEitJFzfN8fUZ-Phkwupw9GGuDeFB4LaRO7ybmHSniYfiUqDO2d5NwpeRmjv1_dMd4uCNnAIB0oU8oeYs1Gs_vM8J1_qNXl0nxYfW9PN1LgeEDbUiShl8cNgxP7hBIF6UUbziOX9Dh_Z4gqtfJdt5M2AmL0bjF1s5jmbwiNHKo4qxS0s1qg-CHiPNPWN" style="margin-left: 1em; margin-right: 1em;"><img alt="Run with Payload" data-original-height="732" data-original-width="1525" height="308" src="https://blogger.googleusercontent.com/img/a/AVvXsEitJFzfN8fUZ-Phkwupw9GGuDeFB4LaRO7ybmHSniYfiUqDO2d5NwpeRmjv1_dMd4uCNnAIB0oU8oeYs1Gs_vM8J1_qNXl0nxYfW9PN1LgeEDbUiShl8cNgxP7hBIF6UUbziOX9Dh_Z4gqtfJdt5M2AmL0bjF1s5jmbwiNHKo4qxS0s1qg-CHiPNPWN=w640-h308" title="Run with Payload" width="640" /></a></div><span style="white-space: pre;"><span style="font-family: verdana; font-size: medium;">Select the workflow, Click on Run Trigger (Run with payload), provide the</span></span></div><div><span style="white-space: pre;"><span style="font-family: verdana; font-size: medium;">body and click on send and it was successful.</span></span></div><div><span style="white-space: pre;"><span style="font-family: verdana; font-size: medium;"><br /></span></span></div><div><span style="font-size: 12px; white-space: pre;"><br /></span></div><div><span style="font-size: 12px; white-space: pre;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhUJuzI4fBh8PijUun05tZjanUNUF39GFOOxXPw-NDp0RcHabBa-zSxjBUUZTQxpO-pqeNkeh-bsKNsTl0oGjL3-1W1vE7njnZqxxxc1wdRf9RhgvSYwe3Ndf8DHYlFo-xlXDz32ZLKhz6Ccp0aAXZaySVsvCov6xJBW2s2hw_xSkreh5OffUMhMcrg" style="margin-left: 1em; margin-right: 1em;"><img alt="Workflow run history in Azure portal" data-original-height="689" data-original-width="1892" height="234" src="https://blogger.googleusercontent.com/img/a/AVvXsEhUJuzI4fBh8PijUun05tZjanUNUF39GFOOxXPw-NDp0RcHabBa-zSxjBUUZTQxpO-pqeNkeh-bsKNsTl0oGjL3-1W1vE7njnZqxxxc1wdRf9RhgvSYwe3Ndf8DHYlFo-xlXDz32ZLKhz6Ccp0aAXZaySVsvCov6xJBW2s2hw_xSkreh5OffUMhMcrg=w640-h234" title="Workflow run history in Azure portal" width="640" /></a></div><br /><br /></span><span style="font-family: verdana; font-size: medium;">Go to overview, and you should see the succeeded run - open it to see the workflow run history</span></div><div style="font-size: 12px; white-space: pre;"><br /></div><div style="font-size: 12px; white-space: pre;"><br /></div><h3 style="text-align: left; white-space: pre;"><span style="font-family: verdana; font-size: medium;">Summary</span></h3><div style="white-space: pre;"><span style="font-family: verdana; font-size: medium;">In this post we covered</span></div><div style="white-space: pre;"><span style="font-family: verdana; font-size: medium;"><br /></span></div><div style="white-space: pre;"><ul style="text-align: left;"><li><span style="font-family: verdana; font-size: medium;">How to add map in visual studio code local env</span></li><li><span style="font-family: verdana; font-size: medium;">How to use the map in logic app standard workflow</span></li><li><span style="font-family: verdana; font-size: medium;">How to add multiple workflows in single project/Logic app</span></li><li><span style="font-family: verdana; font-size: medium;">How to test workflow locally</span></li><li><span style="font-family: verdana; font-size: medium;">How to deploy workflows developed locally to Azure Logic apps</span></li></ul></div><div style="font-size: 12px; white-space: pre;"><br /></div><div style="font-size: 12px; white-space: pre;"><br /></div><div style="font-size: 12px; white-space: pre;"><br /></div><div style="font-size: 12px; white-space: pre;"><h3 style="white-space: normal;"><span style="font-family: verdana;"><span style="font-size: 18.72px;">Learn More about Logic App</span></span></h3><h3 style="white-space: normal;"><div style="font-size: medium; font-weight: 400;"><span style="font-family: verdana;"><span style="font-size: medium;"><ul><li><u style="color: #0000ee;"><a href="https://www.tech-findings.com/2023/09/configure-Logic-App-Standard-workflow-behind-Azure-APIM.html" target="_blank">How to configure Logic App Standard workflow behind Azure APIM</a></u></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/08/How-to-Query-Azure-Table-storage-from-Logic-App%20.html" target="_blank">How to Query Azure Table storage from Logic App | How to filter results of Azure Table storage from Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/expressions-in-logic-apps.html" target="_blank">Understanding expressions in Logic Apps | Frequently used expressions in Logic Apps | What is expressions in Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/How-to-use-Logic-app-Run-History.html" target="_blank">How to use Logic app Run History | How to troubleshoot Logic App workflow execution</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/04/logic-app-slack-channel-integration.html" target="_blank">Logic App and Slack - Sending messages to slack channel | Logic app and slack integration | Connecting Logic App to Slack channel</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2022/12/how-to-access-application-settings-from-logic-app-standard-workflow.html" target="_blank">How to access Application settings fields value from Logic app Standard workflow | Using Application settings as configuration store for Logic app standard workflow</a></u></span></li><li><a href="https://www.tech-findings.com/2022/12/Developing-Logic-app-standard-workflow-locally-deploying-to-Azure.html" target="_blank">Developing Logic app standard workflow which uses Map locally and deploying to Azure</a></li><li><a href="https://www.tech-findings.com/2022/12/developing-logic-app-standard-workflow.html" target="_blank">Developing Logic App Standard Workflow Using Visual Studio Code | Create Logic App Standard Workflow Using Visual Studio Code</a></li><li><a href="https://www.tech-findings.com/2022/12/logic-app-xml-to-json-using-liquid-map.html" target="_blank">Logic App - Xml to Json using Liquid Map | Append in Liquid Map</a></li><li><a href="https://www.tech-findings.com/2022/11/Azure-Event-Grid-Custom-Topic-LogicApp.html" target="_blank">How to use Azure Event Grid Custom Topic | Publishing and Subscribing from Azure Event Grid Custom Topic using Logic App</a></li><li><a href="https://www.tech-findings.com/2022/11/read-write-azure-table-storage-logic-app.html" target="_blank">Using Azure Storage Account Table as Config Store for Logic Apps | How to read and write from Logic App to Azure Storage Account Table</a></li><li><a href="https://www.tech-findings.com/2022/08/get-logic-app-name-in-logic-app.html" target="_blank">Get Logic App Name in Logic App</a></li><li><a href="https://www.tech-findings.com/2022/07/logic-App-consumption-logic-app-standard.html" target="_blank">Difference between Logic App Consumption and Logic App Standard </a></li><li><a href="https://www.tech-findings.com/2022/07/overview-logic-app-standard.html" target="_blank">Getting Started with Logic App Standard | Overview of Logic App Standard | Basics of Logic App Standard</a></li><li><a href="https://www.tech-findings.com/2022/07/find-count-of-Logic-App-executions.html" target="_blank">How to find count of Logic App executions using Azure Portal</a></li><li><a href="https://www.tech-findings.com/2022/07/azure-functions-vs-azure-logic-app.html" target="_blank">Azure Functions vs Azure Logic App | Difference between Azure Functions and Azure Logic App</a></li><li><a href="https://www.tech-findings.com/2022/06/Logic-App-Liquid-Map-Basics.html" target="_blank">Getting started with Logic App : Liquid Map | Using Liquid template in Logic app</a></li><li><a href="https://www.tech-findings.com/2022/06/Exception-Handling-in-Logic-app.html" target="_blank">How to get actual error message of Scope in Logic App | Exception Handling in Logic app</a></li><li><a href="https://www.tech-findings.com/2019/01/Interview-questions-answers-LogicApps.html" target="_blank">Interview questions and answers on Logic Apps | Interview questions for azure logic app developers</a></li><li><span><a href="https://www.tech-findings.com/2022/05/How-to-execute-Stored-Procedure-in-Logic-App.html" target="_blank">How to execute Stored Procedure in Logic App | How to connect to SQL in Logic App</a></span></li><li><a href="https://www.tech-findings.com/2022/05/how-to-get-current-date-in-logic-app.html" target="_blank">How to get current date in logic app | How to format date time in Logic App</a></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/07/BizTalk-Developer-getting-started-with-Logic-App.html" target="_blank">BizTalk Developer getting started with Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2018/03/getting-started-with-logic-apps-fundamentals.html" target="_blank">Getting Started with Logic Apps - Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/10/Getting-Started-with-Logic-Apps-Enterprise-Application-Integration.html" target="_blank">Getting Started with Logic Apps - Enterprise Application Integration</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/09/getting-started-with-logic-apps-as2.html" target="_blank">Getting Started with Logic Apps - AS2</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/edi-x12-fundamentals.html" target="_blank">Getting Started with Logic Apps - EDI X12 Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/getting-started-with-logic-apps-xml-to-EDI-x12.html" target="_blank">Getting Started with Logic Apps - XML to EDI X12</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/getting-started-with-logic-apps-edi-x12-to-xml.html" target="_blank">Getting Started with Logic Apps - EDI X12 to XML</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/10/getting-started-with-logic-apps-what-happened-to-request.html" target="_blank">Getting Started with Logic Apps - What happened to the Request?</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-Multiple-Records-In-On-Prem-SQL-Using-Logic-App.html" target="_blank">Inserting Multiple Records In On Prem SQL Using Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-data-in-On-Premises-SQL-Database-using-Logic-Apps.html" target="_blank">Inserting data in On Premises SQL Database using Logic Apps</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/installing-and-configuring-on-premises-data-gateway.html" target="_blank">Installing and Configuring On Premises Data Gateway - By adding user to Active Directory</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/XML-Batching-Aggregation-in-Logic-App.html" target="_blank">XML Batching(Aggregation) in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/batching-aggregating-messages-in-logic-app.html" target="_blank">Batching(Aggregating) messages in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/Debatching-Splitting-JSON-Message-in-Logic-Apps.html" target="_blank">Debatching(Splitting) JSON Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/debatching-splitting-xml-message-in-Logic-App.html" target="_blank">Debatching(Splitting) XML Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/securing-logic-app-with-azure-active-directory.html" target="_blank">Securing Logic App with Azure Active Directory authentication</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/removing-ns0-prefix-from-xml-output.html" target="_blank">Removing ns0: prefix from xml output from BizTalk/Logic app XSLT map</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/01/using-managed-identity-in-logic-apps.html" target="_blank">Using Managed Identity in Logic Apps for Calling Active Directory Secured Function App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/logic-apps-fetching-isa-and-gs-segment.html" target="_blank">Logic Apps : Fetching ISA and GS Segment Values From Interchange Envelope and Mapping</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2021/07/logic-apps-for-each-inside-for-each.html" target="_blank">Logic Apps : For Each Inside a For Each - Fetching values from field in an array inside an array</a></span></span></li></ul></span></span></div></h3></div></span></div></div></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-90389288104633751172022-12-16T11:11:00.002+05:302023-09-19T10:28:49.989+05:30Developing Logic App Standard Workflow Using Visual Studio Code | Create Logic App Standard Workflow Using Visual Studio Code<b>{tocify} $title={Table of Contents}</b>
<br />
<div><b><br /></b></div><div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Introduction</span></b></h3><div><br /></div><div><span style="font-family: verdana; font-size: medium;">We discussed about logic app standard offering in following post - </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><a href="https://www.tech-findings.com/2022/07/overview-logic-app-standard.html">https://www.tech-findings.com/2022/07/overview-logic-app-standard.html</a></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><br /></div><div><span style="font-family: verdana; font-size: medium;">One of the feature is that we can develop logic app standard workflow locally using Visual studio code. </span></div><div><br /></div><div><span style="font-family: verdana; font-size: medium;">In this post we will see how to setup the local dev env and an example of http triggered based stateful workflow using the env we setup.</span></div><div><br /></div><div><br /></div><h3 style="text-align: left;"><span style="font-family: verdana;">Setting up local dev environment </span></h3><div><span style="font-family: verdana;"><br /></span></div><h4 style="text-align: left;"><b><span style="font-family: verdana;">Visual studio code</span></b></h4><div><span style="font-family: verdana; font-size: medium;">It's a free IDE and can be downloaded from - <a href="https://code.visualstudio.com/">https://code.visualstudio.com/</a> and install it.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">After installation is done we need to add few extensions into it.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><b><br /></b></div><h4 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Add Azurite</span></b></h4><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">As we need to set up a local data store for logic app project and workflows to use for running in your local development environment.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Open visual studio code and go to Extension and search for Azurite and install it (as highlighted below)</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><br /></div><div><b><br /></b></div><div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGDmt-LkDHFZ7C2H4NMW3fCq0N_Ui0Z2ZgeL0J2PSVpr3y1pFzAIvh6jMdj8bhuvcZzvIYoqRiXN7GeGbDOe2-g3o0wqQ61kAZsCP1jloNkaek_W5MvnZxMhi6v4ZXO97iTWNKsN7YBWtyhSczUQIL8rfcznK4fU_y6W28RFGY3xFNeyZL996GS3N0/s620/azurite.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Add Azurite extension in Visual Studio" border="0" data-original-height="502" data-original-width="620" height="518" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGDmt-LkDHFZ7C2H4NMW3fCq0N_Ui0Z2ZgeL0J2PSVpr3y1pFzAIvh6jMdj8bhuvcZzvIYoqRiXN7GeGbDOe2-g3o0wqQ61kAZsCP1jloNkaek_W5MvnZxMhi6v4ZXO97iTWNKsN7YBWtyhSczUQIL8rfcznK4fU_y6W28RFGY3xFNeyZL996GS3N0/w640-h518/azurite.PNG" title="Add Azurite extension in Visual Studio" width="640" /></a></div><br /><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Alternatively it can be downloaded and installed from - <a href="https://www.npmjs.com/package/azurite">https://www.npmjs.com/package/azurite</a></span></div><div style="font-weight: bold;"><br style="font-weight: 400; text-align: left;" /></div></div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><br /></div><div class="separator" style="clear: both; font-weight: bold; text-align: left;"><br /></div><h4 style="clear: both; text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Azure Account Extension</span></b></h4><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><span style="font-family: verdana; font-size: medium;">It provides a single common Azure sign-in and subscription filtering experience for all other Azure extensions in Visual Studio Code.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">In the extension search for Azure account and install it (as highlighted below)<br /></span><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMWLx3TuRm4-acdoL09tEx4Q0TQFc2ULWFcJx2tv8yT7ACSIQoVwuoTi76VzMQrGGQ_2AAgtwI7vVz2sWyNd-LJ35ufzR06HH46Ro-uriW_59mgwtssEkp86hiEHq8dyqLKP-8MW4Kpw_P7WbDl3_B5aUQIPWW7MgD0V04OWUANa8qLWierEc_IV1F/s455/azure%20account.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Azure Account" border="0" data-original-height="445" data-original-width="455" height="626" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMWLx3TuRm4-acdoL09tEx4Q0TQFc2ULWFcJx2tv8yT7ACSIQoVwuoTi76VzMQrGGQ_2AAgtwI7vVz2sWyNd-LJ35ufzR06HH46Ro-uriW_59mgwtssEkp86hiEHq8dyqLKP-8MW4Kpw_P7WbDl3_B5aUQIPWW7MgD0V04OWUANa8qLWierEc_IV1F/w640-h626/azure%20account.PNG" title="Azure Account" width="640" /></a></div><br /><div><b><br /></b></div><h4 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">C# </span></b></h4><div><b><br /></b></div><div><span style="font-family: verdana; font-size: medium;">It enables F5 and ctrl+f5 functionality to run and debug your logic app.</span></div><div><b><br /></b></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgblQKda6W2c38OhmRiR5GwBqXjl1ncZG0qXcwikP_3dro537J3ZJ4JUm5HgQxv10GuQhHCqZAY6_HFRxcTfJ8payDyibnfh1EiZe6ssXg3jxGd9m6GpScTnPbcH1IzCErPfyAcphbM3wzgPTHjjMWpnB_ucRxd8TntSjki5zFm6O5B9c1ArGLvkdq_/s472/c%23.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="c# extension in visual studio code" border="0" data-original-height="472" data-original-width="456" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgblQKda6W2c38OhmRiR5GwBqXjl1ncZG0qXcwikP_3dro537J3ZJ4JUm5HgQxv10GuQhHCqZAY6_HFRxcTfJ8payDyibnfh1EiZe6ssXg3jxGd9m6GpScTnPbcH1IzCErPfyAcphbM3wzgPTHjjMWpnB_ucRxd8TntSjki5zFm6O5B9c1ArGLvkdq_/w618-h640/c%23.PNG" title="c# extension in visual studio code" width="618" /></a></div><br /><br /></div><h4 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Azure Functions core tools (4.x version) using msi</span></h4><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Download the Azure Functions core tools (4.x version) from - <a href="https://github.com/Azure/azure-functions-core-tools/releases/tag/4.0.4865">https://github.com/Azure/azure-functions-core-tools/releases/tag/4.0.4865</a> and install it.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><br /></div><div><b><br /></b></div><div><b><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjfWFWttOvY9WNMBAc-ry8Wt89hvLYeKMCbc2c6tDu6648wGZWiC00st_h5MqiYsX9Il63Hg_mLV0N4mbbOgey5MW66GhMH66_lPTCka14Zc9KdckIsoNnv6lsv0ie1cPFu4nnf3WNuRvXVmvukFjwZMxFU9bAfTrtP4StgyJLJ_DANSQE8yKcckWRL" style="margin-left: 1em; margin-right: 1em;"><img alt="Azure Functions Core tools - 4" data-original-height="606" data-original-width="775" height="500" src="https://blogger.googleusercontent.com/img/a/AVvXsEjfWFWttOvY9WNMBAc-ry8Wt89hvLYeKMCbc2c6tDu6648wGZWiC00st_h5MqiYsX9Il63Hg_mLV0N4mbbOgey5MW66GhMH66_lPTCka14Zc9KdckIsoNnv6lsv0ie1cPFu4nnf3WNuRvXVmvukFjwZMxFU9bAfTrtP4StgyJLJ_DANSQE8yKcckWRL=w640-h500" title="Azure Functions Core tools - 4" width="640" /></a></div><br /><br /></b></div><div><span style="font-family: verdana; font-size: medium;"><b>Note </b>: G</span><span style="font-family: verdana; font-size: large;">oing forward 3.x version will not be supported - </span><a href="https://techcommunity.microsoft.com/t5/integrations-on-azure-blog/azure-logic-apps-standard-now-supports-azure-functions-v4/ba-p/3656072" style="font-family: verdana; font-size: large;">https://techcommunity.microsoft.com/t5/integrations-on-azure-blog/azure-logic-apps-standard-now-supports-azure-functions-v4/ba-p/3656072</a></div><div><br /></div><div><b><br /></b></div><h4 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Azure Logic Apps Standard Extension</span></b></h4><div><b><br /></b></div><div><span style="font-family: verdana; font-size: medium;">In visual studio code, click on Extension Icon and search for Logic App and from the results displayed - click Install button for Azure Logic Apps (Standard)</span></div><div><b><br /></b></div><div><b><br /></b></div><div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh8Cn104E-pTj5GSEhZJqjwcSCjj3slBE4txzSGjTGagq9JQhsMEnDmC8uCWNUgqEJyUzKme6nmq4bpbJYgK3nRiiZPfalZDE_urIjhSzxd-TD9IralDzxVRi6exgXMxWcs_MTn_ZTE_zHtsrtj-UKE1D7GbjnX6fn6qrJSThQpOiy0Zo8TGDODn1ZK" style="margin-left: 1em; margin-right: 1em;"><img alt="Add logic App standard extension in Visual Studio Code" data-original-height="730" data-original-width="803" height="582" src="https://blogger.googleusercontent.com/img/a/AVvXsEh8Cn104E-pTj5GSEhZJqjwcSCjj3slBE4txzSGjTGagq9JQhsMEnDmC8uCWNUgqEJyUzKme6nmq4bpbJYgK3nRiiZPfalZDE_urIjhSzxd-TD9IralDzxVRi6exgXMxWcs_MTn_ZTE_zHtsrtj-UKE1D7GbjnX6fn6qrJSThQpOiy0Zo8TGDODn1ZK=w640-h582" title="Add logic App standard extension in Visual Studio Code" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"> Once it is installed, it should be visible as seen in image below</span></div><div><b><br /></b></div><div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEi_Z4TFoAE1aPm4bflv8ID1zzRGbkDiEqtbLNG0l979poQQTvfJEZGWgp7KKVnKcQOAOn4o4oq9va7JyCU6sui_jqpMChAHc_FFGvEotn8fKCbn5NNMuY91D8-UU-VkiSRvhTvu8Dgh9xavDrEXRNlgPOMcJkCSWu36AoTkEwj_Ybup6WXZWgt80r8H" style="margin-left: 1em; margin-right: 1em;"><img alt="Azure added as extension in Visual Studio Code" data-original-height="748" data-original-width="763" height="627" src="https://blogger.googleusercontent.com/img/a/AVvXsEi_Z4TFoAE1aPm4bflv8ID1zzRGbkDiEqtbLNG0l979poQQTvfJEZGWgp7KKVnKcQOAOn4o4oq9va7JyCU6sui_jqpMChAHc_FFGvEotn8fKCbn5NNMuY91D8-UU-VkiSRvhTvu8Dgh9xavDrEXRNlgPOMcJkCSWu36AoTkEwj_Ybup6WXZWgt80r8H=w640-h627" title="Azure added as extension in Visual Studio Code" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;"> All right, setup is done.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Developing Logic App Standard Workflow Using Visual Studio Code</span></h3><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">First thing is to sign in to Azure .</span></div><div><b><br /></b></div><div><span style="font-family: verdana; font-size: medium;">Next is to click on folder Icon to create new project, select the folder you want </span></div><div><b><br /></b></div><div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh3wKGcY6Tah-e1UFuXQRtCHbdx-jf7F1Io_23wnR8mgLTl_TLbc8oUvfDbwO0LNouLi0e392bZplaZ35AqqGyfx0NytcaZ9Axpdxm0kAGZYDHXfhHvfa1bLWnNL0h8Y5AiKJrHrMBiwRln0HCuesPWGMwElNat4wV9Nb0jVs_CyI3wt7psNtffb8zd" style="margin-left: 1em; margin-right: 1em;"><img alt="Logic App standard - create new project" data-original-height="745" data-original-width="1444" height="330" src="https://blogger.googleusercontent.com/img/a/AVvXsEh3wKGcY6Tah-e1UFuXQRtCHbdx-jf7F1Io_23wnR8mgLTl_TLbc8oUvfDbwO0LNouLi0e392bZplaZ35AqqGyfx0NytcaZ9Axpdxm0kAGZYDHXfhHvfa1bLWnNL0h8Y5AiKJrHrMBiwRln0HCuesPWGMwElNat4wV9Nb0jVs_CyI3wt7psNtffb8zd=w640-h330" title="Logic App standard - create new project" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">After selecting folder, you will be presented with an option of creating workflow</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgZkUhxbhCt6ekDX_PT_P-4DKDH_vGqt6iSJ7Ct7YSXYYhSlWweKl5PlpF1vqN9NDJ8f9kch9UG31WC2iVRkgLRUKBsU0S7ns4HqmcH9hgfkleBZGOtQGhdI_agNylRJuslMgIKnsi451KNGxRoatgQJZ8OIHbyvZxcnGsc3fsycRx4tOMQWXLZttkF" style="margin-left: 1em; margin-right: 1em;"><img alt="Create stateful workflow in Logic App Standard" data-original-height="652" data-original-width="1419" height="294" src="https://blogger.googleusercontent.com/img/a/AVvXsEgZkUhxbhCt6ekDX_PT_P-4DKDH_vGqt6iSJ7Ct7YSXYYhSlWweKl5PlpF1vqN9NDJ8f9kch9UG31WC2iVRkgLRUKBsU0S7ns4HqmcH9hgfkleBZGOtQGhdI_agNylRJuslMgIKnsi451KNGxRoatgQJZ8OIHbyvZxcnGsc3fsycRx4tOMQWXLZttkF=w640-h294" title="Create stateful workflow in Logic App Standard" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">After I press Enter, nothing came up, instead on the right bottom saw an error message</span></div><div><b><br /></b></div><div><b><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEi2t_Ud9yxWCUvmxTujo_bmimPYuGjV8R_iRU6LlwRcCp031s5OStQqGqPYU-DMqDAUQULy-W82JYCEn_3-6dSpaWno-RxnLtkTpU74B_WqJGeczt8jsYFm2zhavHOBpWyGhm7_fispZC-ddQeo-iu-HkL6PK09m4fTv6E8SW6kP_U0bolQKe9qNAn7" style="margin-left: 1em; margin-right: 1em;"><img alt=".net core sdk required" data-original-height="78" data-original-width="681" height="74" src="https://blogger.googleusercontent.com/img/a/AVvXsEi2t_Ud9yxWCUvmxTujo_bmimPYuGjV8R_iRU6LlwRcCp031s5OStQqGqPYU-DMqDAUQULy-W82JYCEn_3-6dSpaWno-RxnLtkTpU74B_WqJGeczt8jsYFm2zhavHOBpWyGhm7_fispZC-ddQeo-iu-HkL6PK09m4fTv6E8SW6kP_U0bolQKe9qNAn7=w640-h74" title=".net core sdk required" width="640" /></a></div><br /><br /></b></div><div><span style="font-family: verdana; font-size: medium;">So we also need .Net core SDK , it can be downloaded from - <a href="https://dotnet.microsoft.com/en-us/download">https://dotnet.microsoft.com/en-us/download</a></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">After downloading the setup, run it</span></div><div><b><br /></b></div><div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjcFPFg6lKrjJzXVZ060iwgKDL66w5g6QP7eIy1e6GJ6o5dIuwWShVYTiepvjm1QuKBt2VFVoHZVpUhIQLq0xBSz12ou0r4dKVg9-vbBTAqUaHJPCDDve1SZuUgq889VvQF-3IoRpvX2vUVrvn6ytxPs24y2LqqP6sJK_CDyd5JM8EUxhVMpc6zba08" style="margin-left: 1em; margin-right: 1em;"><img alt=".net sdk installation 1" data-original-height="724" data-original-width="971" height="478" src="https://blogger.googleusercontent.com/img/a/AVvXsEjcFPFg6lKrjJzXVZ060iwgKDL66w5g6QP7eIy1e6GJ6o5dIuwWShVYTiepvjm1QuKBt2VFVoHZVpUhIQLq0xBSz12ou0r4dKVg9-vbBTAqUaHJPCDDve1SZuUgq889VvQF-3IoRpvX2vUVrvn6ytxPs24y2LqqP6sJK_CDyd5JM8EUxhVMpc6zba08=w640-h478" title=".net sdk installation 1" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Click on install</span></div><div><b><br /></b></div><div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhBhSDw-37a76fLApEu1TpwfWldCPD905HqiaDW_8r7EuHgAKwWP85Jiv_4SLZXhMLNfKmDEliJkTkeG7Wx7GFxmw8c5NkyS42gtrqU4Oakcrf_RPcf0i2UkhrqtUr3VpkyqNPjRzme6D13iwYo1bMEn6fNFQSvpq9BN6ZuywOdKEWSERkQ3V7xRMB3" style="margin-left: 1em; margin-right: 1em;"><img alt=".net sdk installation" data-original-height="731" data-original-width="977" height="478" src="https://blogger.googleusercontent.com/img/a/AVvXsEhBhSDw-37a76fLApEu1TpwfWldCPD905HqiaDW_8r7EuHgAKwWP85Jiv_4SLZXhMLNfKmDEliJkTkeG7Wx7GFxmw8c5NkyS42gtrqU4Oakcrf_RPcf0i2UkhrqtUr3VpkyqNPjRzme6D13iwYo1bMEn6fNFQSvpq9BN6ZuywOdKEWSERkQ3V7xRMB3=w640-h478" title=".net sdk installation" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">Close once installation done</span></div><div><b><br /></b></div><div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgmN6WrysbqBenLWCoa4DyXMqrCtJ0aCwCUqLXx4Dwkq2PQWqmFyJSXEBTl7arlfTL78zjLKi1GgYzqNFZbhXeuTWN8-cRD_95h6kD5gkyVs9m8E66uAZM55Wsl4g111aqkE56ErNHbjvZ8sFfhrPR0fZ6QlJzCuU6762haJit_QYtYkN-a7g32UhfZ" style="margin-left: 1em; margin-right: 1em;"><img alt=".net sdk installation completed" data-original-height="724" data-original-width="971" height="478" src="https://blogger.googleusercontent.com/img/a/AVvXsEgmN6WrysbqBenLWCoa4DyXMqrCtJ0aCwCUqLXx4Dwkq2PQWqmFyJSXEBTl7arlfTL78zjLKi1GgYzqNFZbhXeuTWN8-cRD_95h6kD5gkyVs9m8E66uAZM55Wsl4g111aqkE56ErNHbjvZ8sFfhrPR0fZ6QlJzCuU6762haJit_QYtYkN-a7g32UhfZ=w640-h478" title=".net sdk installation completed" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">After above installation, tried creating project again and got the same error.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Just closed the visual studio code, opened again and tried to create project and it allowed now.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Click on the Folder with bolt and provide folder</span></div><div><b><br /></b></div><div><b><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiEWit7sPwySy4LRFBtKYW_efA6EGa6ZAWlGDPzfudTB8qUBLFNYC8eqywCWuuQzaUzr-J9gcyzA0JqJn7kLtA5ObiROPSqa0q42Ibw2q6AFEEnKiiCxbgYbmR_yg8CXp99rq9Wy3Qvlv6WjfAAGghtPYQPhpU04Y4J503n7mpMa7X0ir7vIqmcNFZL" style="margin-left: 1em; margin-right: 1em;"><img alt="Logic app standard - create stateful workflow" data-original-height="652" data-original-width="1419" height="294" src="https://blogger.googleusercontent.com/img/a/AVvXsEiEWit7sPwySy4LRFBtKYW_efA6EGa6ZAWlGDPzfudTB8qUBLFNYC8eqywCWuuQzaUzr-J9gcyzA0JqJn7kLtA5ObiROPSqa0q42Ibw2q6AFEEnKiiCxbgYbmR_yg8CXp99rq9Wy3Qvlv6WjfAAGghtPYQPhpU04Y4J503n7mpMa7X0ir7vIqmcNFZL=w640-h294" title="Logic app standard - create stateful workflow" width="640" /></a></div><br /><br /></b></div><div><span style="font-family: verdana; font-size: medium;">If you see below message then just click on<b> Yes, I trust the authors</b></span></div><div><b><br /></b></div><div><b><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhvcz4D8-w0qTBtqL3hVVCC8g3g4E4oovrmRJbLYrc4gELnHtzGdfID7fZTW49zoDJl6q1YJAc1ZsziBzxwk7cET3cEhqEqTvWckiBbJjTSXj8sUaEst8w3urDjyfM9O47hcM6FzhiSZG5Y0ayR3Ew8mBUxdvNXzwx2jlQqjsHipFQaX9FYrAViNvs6" style="margin-left: 1em; margin-right: 1em;"><img alt="Select, yes I trust the authors" data-original-height="745" data-original-width="1838" height="260" src="https://blogger.googleusercontent.com/img/a/AVvXsEhvcz4D8-w0qTBtqL3hVVCC8g3g4E4oovrmRJbLYrc4gELnHtzGdfID7fZTW49zoDJl6q1YJAc1ZsziBzxwk7cET3cEhqEqTvWckiBbJjTSXj8sUaEst8w3urDjyfM9O47hcM6FzhiSZG5Y0ayR3Ew8mBUxdvNXzwx2jlQqjsHipFQaX9FYrAViNvs6=w640-h260" title="Select, yes I trust the authors" width="640" /></a></div><br /><br /></b></div><div><span style="font-family: verdana; font-size: medium;">Following should appear on the screen,<b> workflow.json </b>file gets added</span></div><div><b><br /></b></div><div><b><br /></b></div><div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjd3m8fp8fjiYeZG6hBATqNVLiy6sHXHBGx8j58OZL3ICOhyOQeqId90gJmkV3IMw7FDShGqB5KDtWge0MDcJ7mxKuTbJuQ0gfFIlCaZJRXNR47wS-SGyuDvK_UC5VV_NSqk5JGHGk4slxzRwc1NnLrKk9MiF_VqiCnt29AEF8GvZthbdNjIEirNvTg" style="margin-left: 1em; margin-right: 1em;"><img alt="workflow.json gets added in Logic app standard" data-original-height="413" data-original-width="1787" height="148" src="https://blogger.googleusercontent.com/img/a/AVvXsEjd3m8fp8fjiYeZG6hBATqNVLiy6sHXHBGx8j58OZL3ICOhyOQeqId90gJmkV3IMw7FDShGqB5KDtWge0MDcJ7mxKuTbJuQ0gfFIlCaZJRXNR47wS-SGyuDvK_UC5VV_NSqk5JGHGk4slxzRwc1NnLrKk9MiF_VqiCnt29AEF8GvZthbdNjIEirNvTg=w640-h148" title="workflow.json gets added in Logic app standard" width="640" /></a></div><div style="font-weight: bold;"><b><br /></b></div><span style="font-family: verdana; font-size: medium;">Right click on workflow.json and select open in designer</span></div><div><b><br /></b></div><div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhCYYyCQEywLQDopZrMXAoFOgxdjsDaSAjLTYJvKsDWAUxVbCINJGs_7TZk_7RkuaYgdkvF9VajOUYd2K16nzAbbTDozS8N3QfPatqGnX26aidwDxqDwG4WNpGE_GIrDY1b-_13huYufxVBjfAfYglbzbQvDq4LpDYUsXWeks6vJvZu-EBWqtprgUIi" style="margin-left: 1em; margin-right: 1em;"><img alt="Right click on workflow.json and select open in designer" data-original-height="736" data-original-width="1791" height="264" src="https://blogger.googleusercontent.com/img/a/AVvXsEhCYYyCQEywLQDopZrMXAoFOgxdjsDaSAjLTYJvKsDWAUxVbCINJGs_7TZk_7RkuaYgdkvF9VajOUYd2K16nzAbbTDozS8N3QfPatqGnX26aidwDxqDwG4WNpGE_GIrDY1b-_13huYufxVBjfAfYglbzbQvDq4LpDYUsXWeks6vJvZu-EBWqtprgUIi=w640-h264" title="Right click on workflow.json and select open in designer" width="640" /></a></div><br /><br /><span style="font-family: verdana; font-size: medium;"><b>workflow-designtime</b> file gets added and following screen on right is presented</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><b><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgvRGI4A5Y8aBhWISglwQc5hKEyi33IlcsR8-TKVwBoemeuBqOxAA6jTU8UsF-v7TQ2k22oEAaZwG8N_oaJWyFsr145Jio2Z-zpUOD3X0y-JvgItnGn5-Qap0p-909w4iY9A6ERqwEr1n9fYjWCgDR_ai2a9oLgKpJDQhHduYwM_4dwi_xQw5laOuDJ" style="margin-left: 1em; margin-right: 1em;"><img alt="workflow designer in Logic app Standard" data-original-height="725" data-original-width="1874" height="248" src="https://blogger.googleusercontent.com/img/a/AVvXsEgvRGI4A5Y8aBhWISglwQc5hKEyi33IlcsR8-TKVwBoemeuBqOxAA6jTU8UsF-v7TQ2k22oEAaZwG8N_oaJWyFsr145Jio2Z-zpUOD3X0y-JvgItnGn5-Qap0p-909w4iY9A6ERqwEr1n9fYjWCgDR_ai2a9oLgKpJDQhHduYwM_4dwi_xQw5laOuDJ=w640-h248" title="workflow designer in Logic app Standard" width="640" /></a></div><br /><br /></b></div><div><span style="font-family: verdana; font-size: medium;">For the sake of demo, will create a simple request response workflow.</span></div><div><b><br /></b></div><div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgluilO-pRNkEcQ0fVPQGR8rUxzc8LQGTxqiuLb4FmxtAhnypLEfrOgLNDfaEth1Q4OxMrRHIgapGdguKhC3VYAabAg3eHGwGtpLNC01YPRal9HOWjkIE0QXhNbfA6LWQ-qHAJb5kjeI5b3OhhH4v_QQucYxDlm2O0UriBr4rh9y3Tn5qyrl52MNkiW" style="margin-left: 1em; margin-right: 1em;"><img alt="Add http trigger in logic app standard workflow" data-original-height="574" data-original-width="1893" height="194" src="https://blogger.googleusercontent.com/img/a/AVvXsEgluilO-pRNkEcQ0fVPQGR8rUxzc8LQGTxqiuLb4FmxtAhnypLEfrOgLNDfaEth1Q4OxMrRHIgapGdguKhC3VYAabAg3eHGwGtpLNC01YPRal9HOWjkIE0QXhNbfA6LWQ-qHAJb5kjeI5b3OhhH4v_QQucYxDlm2O0UriBr4rh9y3Tn5qyrl52MNkiW=w640-h194" title="Add http trigger in logic app standard workflow" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">Add a http trigger and add new step</span></div><div><b><br /></b></div><div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgyBT9NSrZ1-UsifCS93XCuYzUM4VrrIg4DNotxRJK9GGEYd97S0komfXSmygF_kiuLiDidsHB_qb5y8eM9CrLn62yq_EvOlNaScCJMz1FLYkFnsV9Z95YKYz3cDQzltttElXxljFqR9T804YGw2ZepbKs0NmSaosv4CLghzNgAPd9FONTVcZvBR55Y" style="margin-left: 1em; margin-right: 1em;"><img alt="Add http response in logic app standard workflow" data-original-height="643" data-original-width="1238" height="332" src="https://blogger.googleusercontent.com/img/a/AVvXsEgyBT9NSrZ1-UsifCS93XCuYzUM4VrrIg4DNotxRJK9GGEYd97S0komfXSmygF_kiuLiDidsHB_qb5y8eM9CrLn62yq_EvOlNaScCJMz1FLYkFnsV9Z95YKYz3cDQzltttElXxljFqR9T804YGw2ZepbKs0NmSaosv4CLghzNgAPd9FONTVcZvBR55Y=w640-h332" title="Add http response in logic app standard workflow" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">Add http response in logic app standard workflow and configure it</span></div><div><b><br /></b></div><div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhv4HZSjSqOP79IUtEVQX1uBP-HrZg-K09uproZfwOJKZiuRmiBTxb6LNtSaEeUtxWL40xH6sF-BKbwCGuXmqmgAAV6MF_Pw0qpkJYqfOf9ukEN6QJ_bdEYZ9Xv1jvvBSmL91ZO5SLu25eY8Tf21p2zZquNzdIQ44OdhxCyNUe3VQ0AbaENQ7hqR-KB" style="margin-left: 1em; margin-right: 1em;"><img alt="configure http response" data-original-height="645" data-original-width="1538" height="268" src="https://blogger.googleusercontent.com/img/a/AVvXsEhv4HZSjSqOP79IUtEVQX1uBP-HrZg-K09uproZfwOJKZiuRmiBTxb6LNtSaEeUtxWL40xH6sF-BKbwCGuXmqmgAAV6MF_Pw0qpkJYqfOf9ukEN6QJ_bdEYZ9Xv1jvvBSmL91ZO5SLu25eY8Tf21p2zZquNzdIQ44OdhxCyNUe3VQ0AbaENQ7hqR-KB=w640-h268" title="configure http response" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">Provide body of trigger as body of the response.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Save the workflow. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Let's test it now.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Testing</span></h3><div><b><br /></b></div><div><span style="font-family: verdana; font-size: medium;">Read about the error I faced when started testing - <a href="https://www.tech-findings.com/2022/12/failed-to-execute-fetch-on-window-failed-to-parse-url.html">https://www.tech-findings.com/2022/12/failed-to-execute-fetch-on-window-failed-to-parse-url.html</a></span></div><div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><span style="font-family: verdana; font-size: medium;">We would use Postman app to test locally and b</span><span style="font-family: verdana; font-size: large;">efore we run or debug logic app we need to Start Azurite</span></div><div><b><br /></b></div><div><b><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEi78FfBSxg39qMQLqZ2eP6nQYdJymvhbzBpGSbuM3jiSN7a29A5gPOdbk5ysQ5r-ZKVfzKdq9B6Fd89z13jPg76XLg6isVIpKdRAD-nrWvzJ3E1ECPJfDPaJv51Y7z3UDkJYz7YXUU8dF-djCYdITdqvZy6CpHhguWtVLgUq7cikr678pM1sJlH7bjG" style="margin-left: 1em; margin-right: 1em;"><img alt="Start Azurite" data-original-height="474" data-original-width="1880" height="162" src="https://blogger.googleusercontent.com/img/a/AVvXsEi78FfBSxg39qMQLqZ2eP6nQYdJymvhbzBpGSbuM3jiSN7a29A5gPOdbk5ysQ5r-ZKVfzKdq9B6Fd89z13jPg76XLg6isVIpKdRAD-nrWvzJ3E1ECPJfDPaJv51Y7z3UDkJYz7YXUU8dF-djCYdITdqvZy6CpHhguWtVLgUq7cikr678pM1sJlH7bjG=w640-h162" title="Start Azurite" width="640" /></a></div><br /><br /></b></div><div><span style="font-family: verdana; font-size: medium;">Click on Run or debug, and you should see the url under <b>Terminal</b> section (we are not going to use it)</span></div><div><b><br /></b></div><div><b><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEg6I8Q1VlXvFMjmAKK6rwucg3J496zBQApTTKjEYdO-xlZnXL9AC6lf91Slea1rITPjLKfxf4bJGoSs8lDwBP-ZXZg8HNIwwVN3AM9y7KhOtZHFbjvXweira-bny6wwo91Xnp8jG6FhKODwrzyO-2ZDvBYE8mNddUs5-rnkd6fC8txkzZ3vEbwu6lpv" style="margin-left: 1em; margin-right: 1em;"><img alt="After run url is shown" data-original-height="545" data-original-width="964" height="362" src="https://blogger.googleusercontent.com/img/a/AVvXsEg6I8Q1VlXvFMjmAKK6rwucg3J496zBQApTTKjEYdO-xlZnXL9AC6lf91Slea1rITPjLKfxf4bJGoSs8lDwBP-ZXZg8HNIwwVN3AM9y7KhOtZHFbjvXweira-bny6wwo91Xnp8jG6FhKODwrzyO-2ZDvBYE8mNddUs5-rnkd6fC8txkzZ3vEbwu6lpv=w640-h362" title="After run url is shown" width="640" /></a></div><br /><br /></b></div><div><span style="font-family: verdana; font-size: medium;">Go to overview and capture the Callback url</span></div><div><b><br /></b></div><div><b><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiN-Y1DxBrwy0BDi0vyDLYR7a7zNC5OHPsFP9rCYr4ImyRFD2RmDzxQnzJ2t8NISqkOo8sBJdxtEBV1Hl3O80_jWBKKE7VsI3G2bczfIAq5sHtFECfRSFjL029fj5416tcWOcjsQ9WflDbjBtTZkWvSyHXa9RJZJfuWrjpUxPUXTfpVJBnx9IBOYL3e" style="margin-left: 1em; margin-right: 1em;"><img alt="Callback URL" data-original-height="748" data-original-width="1886" height="254" src="https://blogger.googleusercontent.com/img/a/AVvXsEiN-Y1DxBrwy0BDi0vyDLYR7a7zNC5OHPsFP9rCYr4ImyRFD2RmDzxQnzJ2t8NISqkOo8sBJdxtEBV1Hl3O80_jWBKKE7VsI3G2bczfIAq5sHtFECfRSFjL029fj5416tcWOcjsQ9WflDbjBtTZkWvSyHXa9RJZJfuWrjpUxPUXTfpVJBnx9IBOYL3e=w640-h254" title="Callback URL" width="640" /></a></div><br /><br /></b></div><div><span style="font-family: verdana; font-size: medium;">Use this url for testing, in postman app</span></div><div><b><br /></b></div><div><b><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhwyX1mL6zlN8ICmlWAG1zowme_VyeunFqOZlL_29udU3NVT0egrWj_yuMkVTUjdE7h7rckm1mNAOcCx7uRXSM--nQV5ozp__HjhV0gr3pM059Wx-DyWNXsmu8T3BXdFibUCx2WmE5FPZ9DkbN1ej8aQ0mR4nB4TwkyybMZdia42QrgfTE1Q2AIQPDS" style="margin-left: 1em; margin-right: 1em;"><img alt="Testing using postman" data-original-height="420" data-original-width="961" height="280" src="https://blogger.googleusercontent.com/img/a/AVvXsEhwyX1mL6zlN8ICmlWAG1zowme_VyeunFqOZlL_29udU3NVT0egrWj_yuMkVTUjdE7h7rckm1mNAOcCx7uRXSM--nQV5ozp__HjhV0gr3pM059Wx-DyWNXsmu8T3BXdFibUCx2WmE5FPZ9DkbN1ej8aQ0mR4nB4TwkyybMZdia42QrgfTE1Q2AIQPDS=w640-h280" title="Testing using postman" width="640" /></a></div><br /><br /></b></div><div><span style="font-family: verdana; font-size: medium;">Let's now check if we can see the run history, go to Overview </span></div><div><b><br /></b></div><div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEinni0SBxjKca51-r0_umczAgrWZtAyl6olPmlOUBdzO9ulsSIiGuBSqR8HK0fju-pUq78D8PYZg4Sj-uOVummEo81xw9KHdRYFq9N3zy4zBa9Fs3SEfa0yIXXzjJS_9QAizpJKd_ACRHDj2Jgyi-vyUXpQkObJc6CihC9WEp9k3AH3oL0VRHHgE6GE" style="margin-left: 1em; margin-right: 1em;"><img alt="Run history in logic app standard overview" data-original-height="509" data-original-width="963" height="338" src="https://blogger.googleusercontent.com/img/a/AVvXsEinni0SBxjKca51-r0_umczAgrWZtAyl6olPmlOUBdzO9ulsSIiGuBSqR8HK0fju-pUq78D8PYZg4Sj-uOVummEo81xw9KHdRYFq9N3zy4zBa9Fs3SEfa0yIXXzjJS_9QAizpJKd_ACRHDj2Jgyi-vyUXpQkObJc6CihC9WEp9k3AH3oL0VRHHgE6GE=w640-h338" title="Run history in logic app standard overview" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">Select show run and you should be able to see the workflow run</span></div><div><b><br /></b></div><div><b><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjF5Stkl76mCrSkSnUyufNnkqsIo0j1fkxHHK_fQCD0zWCoENw3uvfXW7CkeeL4K3SwxRQOUaWGJcUzhfeh2FWvmsCGwp8oU7mQRiuMtihW6j0ZqMO0C4VvdVdyMwFo_MU8GX1NyRe8HL-D_btDpJP7oyiNY1fOvPLiUlDCzzJZRAktToNJeGvr4m4-" style="margin-left: 1em; margin-right: 1em;"><img alt="Workflow run" data-original-height="844" data-original-width="1864" height="290" src="https://blogger.googleusercontent.com/img/a/AVvXsEjF5Stkl76mCrSkSnUyufNnkqsIo0j1fkxHHK_fQCD0zWCoENw3uvfXW7CkeeL4K3SwxRQOUaWGJcUzhfeh2FWvmsCGwp8oU7mQRiuMtihW6j0ZqMO0C4VvdVdyMwFo_MU8GX1NyRe8HL-D_btDpJP7oyiNY1fOvPLiUlDCzzJZRAktToNJeGvr4m4-=w640-h290" title="Workflow run" width="640" /></a></div><br /><br /></b></div><div><b><span style="font-family: verdana; font-size: medium;">Note :</span> </b><span style="font-family: verdana; font-size: medium;">Here we tested the workflow locally via localhost url. If you want to test it over internet or publically then you can use a forwarding service and tool such as ngrok (<a href="https://ngrok.com/">https://ngrok.com/</a>)</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><h3 style="font-family: "Times New Roman";"><span style="font-family: verdana;"><span style="font-size: 18.72px;">Learn More about Logic App</span></span></h3><h3 style="font-family: "Times New Roman";"><div style="font-size: medium; font-weight: 400;"><span style="font-family: verdana;"><span style="font-size: medium;"><ul><li><u style="color: #0000ee;"><a href="https://www.tech-findings.com/2023/09/configure-Logic-App-Standard-workflow-behind-Azure-APIM.html" target="_blank">How to configure Logic App Standard workflow behind Azure APIM</a></u></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/08/How-to-Query-Azure-Table-storage-from-Logic-App%20.html" target="_blank">How to Query Azure Table storage from Logic App | How to filter results of Azure Table storage from Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/expressions-in-logic-apps.html" target="_blank">Understanding expressions in Logic Apps | Frequently used expressions in Logic Apps | What is expressions in Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/How-to-use-Logic-app-Run-History.html" target="_blank">How to use Logic app Run History | How to troubleshoot Logic App workflow execution</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/04/logic-app-slack-channel-integration.html" target="_blank">Logic App and Slack - Sending messages to slack channel | Logic app and slack integration | Connecting Logic App to Slack channel</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2022/12/how-to-access-application-settings-from-logic-app-standard-workflow.html" target="_blank">How to access Application settings fields value from Logic app Standard workflow | Using Application settings as configuration store for Logic app standard workflow</a></u></span></li><li><a href="https://www.tech-findings.com/2022/12/Developing-Logic-app-standard-workflow-locally-deploying-to-Azure.html" target="_blank">Developing Logic app standard workflow which uses Map locally and deploying to Azure</a></li><li><a href="https://www.tech-findings.com/2022/12/developing-logic-app-standard-workflow.html" target="_blank">Developing Logic App Standard Workflow Using Visual Studio Code | Create Logic App Standard Workflow Using Visual Studio Code</a></li><li><a href="https://www.tech-findings.com/2022/12/logic-app-xml-to-json-using-liquid-map.html" target="_blank">Logic App - Xml to Json using Liquid Map | Append in Liquid Map</a></li><li><a href="https://www.tech-findings.com/2022/11/Azure-Event-Grid-Custom-Topic-LogicApp.html" target="_blank">How to use Azure Event Grid Custom Topic | Publishing and Subscribing from Azure Event Grid Custom Topic using Logic App</a></li><li><a href="https://www.tech-findings.com/2022/11/read-write-azure-table-storage-logic-app.html" target="_blank">Using Azure Storage Account Table as Config Store for Logic Apps | How to read and write from Logic App to Azure Storage Account Table</a></li><li><a href="https://www.tech-findings.com/2022/08/get-logic-app-name-in-logic-app.html" target="_blank">Get Logic App Name in Logic App</a></li><li><a href="https://www.tech-findings.com/2022/07/logic-App-consumption-logic-app-standard.html" target="_blank">Difference between Logic App Consumption and Logic App Standard </a></li><li><a href="https://www.tech-findings.com/2022/07/overview-logic-app-standard.html" target="_blank">Getting Started with Logic App Standard | Overview of Logic App Standard | Basics of Logic App Standard</a></li><li><a href="https://www.tech-findings.com/2022/07/find-count-of-Logic-App-executions.html" target="_blank">How to find count of Logic App executions using Azure Portal</a></li><li><a href="https://www.tech-findings.com/2022/07/azure-functions-vs-azure-logic-app.html" target="_blank">Azure Functions vs Azure Logic App | Difference between Azure Functions and Azure Logic App</a></li><li><a href="https://www.tech-findings.com/2022/06/Logic-App-Liquid-Map-Basics.html" target="_blank">Getting started with Logic App : Liquid Map | Using Liquid template in Logic app</a></li><li><a href="https://www.tech-findings.com/2022/06/Exception-Handling-in-Logic-app.html" target="_blank">How to get actual error message of Scope in Logic App | Exception Handling in Logic app</a></li><li><a href="https://www.tech-findings.com/2019/01/Interview-questions-answers-LogicApps.html" target="_blank">Interview questions and answers on Logic Apps | Interview questions for azure logic app developers</a></li><li><span><a href="https://www.tech-findings.com/2022/05/How-to-execute-Stored-Procedure-in-Logic-App.html" target="_blank">How to execute Stored Procedure in Logic App | How to connect to SQL in Logic App</a></span></li><li><a href="https://www.tech-findings.com/2022/05/how-to-get-current-date-in-logic-app.html" target="_blank">How to get current date in logic app | How to format date time in Logic App</a></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/07/BizTalk-Developer-getting-started-with-Logic-App.html" target="_blank">BizTalk Developer getting started with Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2018/03/getting-started-with-logic-apps-fundamentals.html" target="_blank">Getting Started with Logic Apps - Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/10/Getting-Started-with-Logic-Apps-Enterprise-Application-Integration.html" target="_blank">Getting Started with Logic Apps - Enterprise Application Integration</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/09/getting-started-with-logic-apps-as2.html" target="_blank">Getting Started with Logic Apps - AS2</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/edi-x12-fundamentals.html" target="_blank">Getting Started with Logic Apps - EDI X12 Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/getting-started-with-logic-apps-xml-to-EDI-x12.html" target="_blank">Getting Started with Logic Apps - XML to EDI X12</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/getting-started-with-logic-apps-edi-x12-to-xml.html" target="_blank">Getting Started with Logic Apps - EDI X12 to XML</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/10/getting-started-with-logic-apps-what-happened-to-request.html" target="_blank">Getting Started with Logic Apps - What happened to the Request?</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-Multiple-Records-In-On-Prem-SQL-Using-Logic-App.html" target="_blank">Inserting Multiple Records In On Prem SQL Using Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-data-in-On-Premises-SQL-Database-using-Logic-Apps.html" target="_blank">Inserting data in On Premises SQL Database using Logic Apps</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/installing-and-configuring-on-premises-data-gateway.html" target="_blank">Installing and Configuring On Premises Data Gateway - By adding user to Active Directory</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/XML-Batching-Aggregation-in-Logic-App.html" target="_blank">XML Batching(Aggregation) in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/batching-aggregating-messages-in-logic-app.html" target="_blank">Batching(Aggregating) messages in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/Debatching-Splitting-JSON-Message-in-Logic-Apps.html" target="_blank">Debatching(Splitting) JSON Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/debatching-splitting-xml-message-in-Logic-App.html" target="_blank">Debatching(Splitting) XML Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/securing-logic-app-with-azure-active-directory.html" target="_blank">Securing Logic App with Azure Active Directory authentication</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/removing-ns0-prefix-from-xml-output.html" target="_blank">Removing ns0: prefix from xml output from BizTalk/Logic app XSLT map</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/01/using-managed-identity-in-logic-apps.html" target="_blank">Using Managed Identity in Logic Apps for Calling Active Directory Secured Function App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/logic-apps-fetching-isa-and-gs-segment.html" target="_blank">Logic Apps : Fetching ISA and GS Segment Values From Interchange Envelope and Mapping</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2021/07/logic-apps-for-each-inside-for-each.html" target="_blank">Logic Apps : For Each Inside a For Each - Fetching values from field in an array inside an array</a></span></span></li></ul></span></span></div></h3></span></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-23128418137825707102022-12-15T13:19:00.004+05:302022-12-24T11:37:15.182+05:30Failed to execute 'fetch' on 'Window': Failed to parse URL from http://localhost:undefined/runtime/XXXX/XXXX | How to see Logic app standard http based workflow url in local dev env<b>{tocify} $title={Table of Contents}</b>
<br />
<div><b><br /></b></div><div><b><br /></b></div><div><b><br /></b></div><div><b><br /></b></div><div><b><br /></b></div><div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Issue</span></b></h3><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">After creating a http trigger based logic app standard stateful workflow in Visual studio code locally, it was time to test.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">To test it, url was to be fetched - thus right clicked on <b>workflow.json</b> and selected <b>Overview</b></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">However url was not shown, instead following error was presented.</span></div><div><b><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><br /></div></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgV6Av6pRa40CUkmxOsycXrmCM8Y7GG7ueLS4uu9GihYhhetuMUSKGnn696Sjeb40v5rU-DzeUjECknhEOh34yK337A6gB2Hr4Nm_woej-N5Wf-i0Jwuwd-eEdBQHTFv6BhqjTUhLEBCnTaMdqGt_anijsQxRnrZ36rDehQCMCqqaMKgygnUtOGR3Db/s1884/Failed%20to%20fetch%20on%20windows.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Failed to execute fetch on window" border="0" data-original-height="409" data-original-width="1884" height="138" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgV6Av6pRa40CUkmxOsycXrmCM8Y7GG7ueLS4uu9GihYhhetuMUSKGnn696Sjeb40v5rU-DzeUjECknhEOh34yK337A6gB2Hr4Nm_woej-N5Wf-i0Jwuwd-eEdBQHTFv6BhqjTUhLEBCnTaMdqGt_anijsQxRnrZ36rDehQCMCqqaMKgygnUtOGR3Db/w640-h138/Failed%20to%20fetch%20on%20windows.PNG" title="Failed to execute fetch on window" width="640" /></a></div><br /><br /><br /></b></div><div><span style="color: #2b00fe;">"Failed to execute 'fetch' on 'Window': Failed to parse URL from http://localhost:undefined/runtime/XXXX/XXXX"</span></div><div><b><br /></b></div><div><b><br /></b></div><div><b><br /></b></div><h3 style="text-align: left;"><span style="font-size: medium;"><b><br /></b><b>Why it happened</b></span></h3><div><b><br /></b></div><div><span style="font-family: verdana; font-size: medium;">Ideally after you save the workflow - it should generate the url like it does on portal.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">But when you are doing it on local dev env, it does not, but why ?</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">First probable reason is the storage. When we develop in portal, we associate a storage account which holds the details where as when we do it locally we don't have a permanent storage to maintain it.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Here we use Azurite (storage simulator) and it is not permanent - it does store the info at design time. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Second probable reason is, when we develop workflow using portal and when we save it - it actually gets deployed and thus the url is generated for it.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">However, when doing locally it is not deployed. But if we debug or run it locally a temporary url is generated.</span></div><div><br /></div><div><br /></div><div><b><br /></b></div><div><b><br /></b></div><div><b><br /></b></div><h3 style="text-align: left;"><b><br /></b><b><span style="font-size: medium;">What to do</span></b></h3><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">In order to get the url of the logic app standard workflow on local dev env we either need to debug or run it.</span></div><div><br /></div><div><span style="font-family: verdana; font-size: medium;">Firstly we need to start the Azurite and then either go for debug mode (F5) or run without debug (CTRL+F5).</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">As we need the engine running to parse the info from storage (Azurite).</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">And go to workflow.json overview tab and then you will get url</span></div><div><span style="font-family: verdana; font-size: large;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOmsceWRvDMpZSzxau4O7CSsSI5Wzt0Af730rJB-bO30SNlL-OhKC7d0KkwVkgTapaVe-Iaj2g8nZECv7onld6-TMZ-6B10XzfPnjT06w9qvyHfiGNKNDBDUhplOPRMsNOT3NRz-6GFC8QoqLzqjX7AbVfAVE6Es5ErKziOORBdHtSh7vQoP6XqEmI/s1918/workflow%20overview%20showing%20url%20after%20run.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="workflow overview showing url after run" border="0" data-original-height="517" data-original-width="1918" height="172" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOmsceWRvDMpZSzxau4O7CSsSI5Wzt0Af730rJB-bO30SNlL-OhKC7d0KkwVkgTapaVe-Iaj2g8nZECv7onld6-TMZ-6B10XzfPnjT06w9qvyHfiGNKNDBDUhplOPRMsNOT3NRz-6GFC8QoqLzqjX7AbVfAVE6Es5ErKziOORBdHtSh7vQoP6XqEmI/w640-h172/workflow%20overview%20showing%20url%20after%20run.PNG" title="workflow overview showing url after run" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Thanks to <a href="https://www.linkedin.com/in/wagnersilveira/" target="_blank">Wagner Silveria</a>, to point this out.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><h3 style="font-family: "Times New Roman";"><span style="font-family: verdana;"><span style="font-size: 18.72px;">Learn More about Logic App</span></span></h3><div style="font-family: "Times New Roman"; font-size: medium;"><span style="font-family: verdana;"><span style="font-size: medium;"><ul><li><a href="https://www.tech-findings.com/2022/12/Developing-Logic-app-standard-workflow-locally-deploying-to-Azure.html" target="_blank">Developing Logic app standard workflow which uses Map locally and deploying to Azure</a></li><li><a href="https://www.tech-findings.com/2022/12/developing-logic-app-standard-workflow.html" target="_blank">Developing Logic App Standard Workflow Using Visual Studio Code | Create Logic App Standard Workflow Using Visual Studio Code</a></li><li><a href="https://www.tech-findings.com/2022/12/logic-app-xml-to-json-using-liquid-map.html" target="_blank">Logic App - Xml to Json using Liquid Map | Append in Liquid Map</a></li><li><a href="https://www.tech-findings.com/2022/11/Azure-Event-Grid-Custom-Topic-LogicApp.html" target="_blank">How to use Azure Event Grid Custom Topic | Publishing and Subscribing from Azure Event Grid Custom Topic using Logic App</a></li><li><a href="https://www.tech-findings.com/2022/11/read-write-azure-table-storage-logic-app.html" target="_blank">Using Azure Storage Account Table as Config Store for Logic Apps | How to read and write from Logic App to Azure Storage Account Table</a></li><li><a href="https://www.tech-findings.com/2022/08/get-logic-app-name-in-logic-app.html" target="_blank">Get Logic App Name in Logic App</a></li><li><a href="https://www.tech-findings.com/2022/07/logic-App-consumption-logic-app-standard.html" target="_blank">Difference between Logic App Consumption and Logic App Standard </a></li><li><a href="https://www.tech-findings.com/2022/07/overview-logic-app-standard.html" target="_blank">Getting Started with Logic App Standard | Overview of Logic App Standard | Basics of Logic App Standard</a></li><li><a href="https://www.tech-findings.com/2022/07/find-count-of-Logic-App-executions.html" target="_blank">How to find count of Logic App executions using Azure Portal</a></li><li><a href="https://www.tech-findings.com/2022/07/azure-functions-vs-azure-logic-app.html" target="_blank">Azure Functions vs Azure Logic App | Difference between Azure Functions and Azure Logic App</a></li><li><a href="https://www.tech-findings.com/2022/06/Logic-App-Liquid-Map-Basics.html" target="_blank">Getting started with Logic App : Liquid Map | Using Liquid template in Logic app</a></li><li><a href="https://www.tech-findings.com/2022/06/Exception-Handling-in-Logic-app.html" target="_blank">How to get actual error message of Scope in Logic App | Exception Handling in Logic app</a></li><li><a href="https://www.tech-findings.com/2019/01/Interview-questions-answers-LogicApps.html" target="_blank">Interview questions and answers on Logic Apps | Interview questions for azure logic app developers</a></li><li><span><a href="https://www.tech-findings.com/2022/05/How-to-execute-Stored-Procedure-in-Logic-App.html" target="_blank">How to execute Stored Procedure in Logic App | How to connect to SQL in Logic App</a></span></li><li><a href="https://www.tech-findings.com/2022/05/how-to-get-current-date-in-logic-app.html" target="_blank">How to get current date in logic app | How to format date time in Logic App</a></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/07/BizTalk-Developer-getting-started-with-Logic-App.html" target="_blank">BizTalk Developer getting started with Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2018/03/getting-started-with-logic-apps-fundamentals.html" target="_blank">Getting Started with Logic Apps - Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/10/Getting-Started-with-Logic-Apps-Enterprise-Application-Integration.html" target="_blank">Getting Started with Logic Apps - Enterprise Application Integration</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/09/getting-started-with-logic-apps-as2.html" target="_blank">Getting Started with Logic Apps - AS2</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/edi-x12-fundamentals.html" target="_blank">Getting Started with Logic Apps - EDI X12 Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/getting-started-with-logic-apps-xml-to-EDI-x12.html" target="_blank">Getting Started with Logic Apps - XML to EDI X12</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/getting-started-with-logic-apps-edi-x12-to-xml.html" target="_blank">Getting Started with Logic Apps - EDI X12 to XML</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/10/getting-started-with-logic-apps-what-happened-to-request.html" target="_blank">Getting Started with Logic Apps - What happened to the Request?</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-Multiple-Records-In-On-Prem-SQL-Using-Logic-App.html" target="_blank">Inserting Multiple Records In On Prem SQL Using Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-data-in-On-Premises-SQL-Database-using-Logic-Apps.html" target="_blank">Inserting data in On Premises SQL Database using Logic Apps</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/installing-and-configuring-on-premises-data-gateway.html" target="_blank">Installing and Configuring On Premises Data Gateway - By adding user to Active Directory</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/XML-Batching-Aggregation-in-Logic-App.html" target="_blank">XML Batching(Aggregation) in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/batching-aggregating-messages-in-logic-app.html" target="_blank">Batching(Aggregating) messages in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/Debatching-Splitting-JSON-Message-in-Logic-Apps.html" target="_blank">Debatching(Splitting) JSON Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/debatching-splitting-xml-message-in-Logic-App.html" target="_blank">Debatching(Splitting) XML Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/securing-logic-app-with-azure-active-directory.html" target="_blank">Securing Logic App with Azure Active Directory authentication</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/removing-ns0-prefix-from-xml-output.html" target="_blank">Removing ns0: prefix from xml output from BizTalk/Logic app XSLT map</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/01/using-managed-identity-in-logic-apps.html" target="_blank">Using Managed Identity in Logic Apps for Calling Active Directory Secured Function App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/logic-apps-fetching-isa-and-gs-segment.html" target="_blank">Logic Apps : Fetching ISA and GS Segment Values From Interchange Envelope and Mapping</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2021/07/logic-apps-for-each-inside-for-each.html" target="_blank">Logic Apps : For Each Inside a For Each - Fetching values from field in an array inside an array</a></span></span></li></ul></span></span></div></span></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-18991008125280081002022-12-05T18:28:00.002+05:302023-09-19T10:29:15.580+05:30Logic App - Xml to Json using Liquid Map | Append in Liquid Map<b>{tocify} $title={Table of Contents}</b>
<br />
<div><b><br /></b></div><div><b><br /></b></div><h2 style="text-align: left;"><b><span style="font-family: verdana;">Introduction</span></b></h2><div><span style="font-family: verdana; font-size: medium;">Logic app does support transformation using Liquid Map. Using Liquid map we can transform json-json, xml-json , json-csv etc.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Fundamentals of Liquid map with Json-Json example is covered in following post-</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><a href="https://www.tech-findings.com/2022/06/Logic-App-Liquid-Map-Basics.html" target="_blank"><span style="font-family: verdana; font-size: medium;">Getting started with Logic App : Liquid Map | Using Liquid template in Logic app</span></a></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">In this post, let's see how to transform xml to json and also how to use Append and Plus function in Liquid map </span></div><div><b><br /></b></div><div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana;">Scenario</span></b></h3><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Consider you will receive details of multiple product/item in xml format over the http request and you need convert/transform it in json format.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Also you need to create list of product/item and count of product/item.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">And return it as http response.</span></div><div><b><span style="font-family: verdana;"><br /></span></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Input</span></b></h3><div><b><br /></b></div><div><b><br /></b></div><div><div style="background-color: #fffffe; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div><span style="color: blue;"><?</span><span style="color: grey;">xml</span> <span style="color: red;">version</span>=<span style="color: blue;">"1.0"</span> <span style="color: red;">encoding</span>=<span style="color: blue;">"UTF-8"?></span></div><div><span style="color: blue;"><</span><span style="color: maroon;">Products</span><span style="color: blue;">></span></div><div> <span style="color: blue;"><</span><span style="color: maroon;">Product</span><span style="color: blue;">></span></div><div> <span style="color: blue;"><</span><span style="color: maroon;">productname</span><span style="color: blue;">></span>iPhone<span style="color: blue;"></</span><span style="color: maroon;">productname</span><span style="color: blue;">></span></div><div> <span style="color: blue;"><</span><span style="color: maroon;">productid</span><span style="color: blue;">></span>EL123<span style="color: blue;"></</span><span style="color: maroon;">productid</span><span style="color: blue;">></span></div><div> <span style="color: blue;"><</span><span style="color: maroon;">productcategory</span><span style="color: blue;">></span>Electronics<span style="color: blue;"></</span><span style="color: maroon;">productcategory</span><span style="color: blue;">></span></div><div> <span style="color: blue;"></</span><span style="color: maroon;">Product</span><span style="color: blue;">></span></div><div> <span style="color: blue;"><</span><span style="color: maroon;">Product</span><span style="color: blue;">></span></div><div> <span style="color: blue;"><</span><span style="color: maroon;">productname</span><span style="color: blue;">></span>OnePlus<span style="color: blue;"></</span><span style="color: maroon;">productname</span><span style="color: blue;">></span></div><div> <span style="color: blue;"><</span><span style="color: maroon;">productid</span><span style="color: blue;">></span>EL124<span style="color: blue;"></</span><span style="color: maroon;">productid</span><span style="color: blue;">></span></div><div> <span style="color: blue;"><</span><span style="color: maroon;">productcategory</span><span style="color: blue;">></span>Electronics<span style="color: blue;"></</span><span style="color: maroon;">productcategory</span><span style="color: blue;">></span></div><div> <span style="color: blue;"></</span><span style="color: maroon;">Product</span><span style="color: blue;">></span></div><div> <span style="color: blue;"><</span><span style="color: maroon;">Product</span><span style="color: blue;">></span></div><div> <span style="color: blue;"><</span><span style="color: maroon;">productname</span><span style="color: blue;">></span>Xioami<span style="color: blue;"></</span><span style="color: maroon;">productname</span><span style="color: blue;">></span></div><div> <span style="color: blue;"><</span><span style="color: maroon;">productid</span><span style="color: blue;">></span>EL125<span style="color: blue;"></</span><span style="color: maroon;">productid</span><span style="color: blue;">></span></div><div> <span style="color: blue;"><</span><span style="color: maroon;">productcategory</span><span style="color: blue;">></span>Electronics<span style="color: blue;"></</span><span style="color: maroon;">productcategory</span><span style="color: blue;">></span></div><div> <span style="color: blue;"></</span><span style="color: maroon;">Product</span><span style="color: blue;">></span></div><div><span style="color: blue;"></</span><span style="color: maroon;">Products</span><span style="color: blue;">></span></div><div><span style="color: blue;"><br /></span></div><div><span style="color: blue;"><br /></span></div></div></div><div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Map</span></b></h3><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;">The below liquid map takes above xml as input, loops through each product in it and creates product in json format.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">While doing so it assigns productname to listofitems variable and 1 to itemcount variable for first iteration, then after productname is appended with comma in between and itemcount is incremented by 1 for the rest of iteration.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">In each iteration it checks if it is the last, if not then comma is added.</span></div><div><b><br /></b></div><div><div><b><span style="color: #2b00fe;">{</span></b></div><div><b><span style="color: #2b00fe;"> "Products":</span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> [</span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> {% assign listofitems = "" %}</span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> {% assign itemCount = 0 %}</span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> {% for item in content.Products %}</span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> {% if forloop.first == true %}</span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> </span></b></div><div><b><span style="color: #2b00fe;"> <span style="white-space: pre;"> </span> {% assign listofitems = item.productname %}</span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> {% assign itemCount = itemCount | Plus: 1 %}</span></b></div><div><span style="color: #2b00fe; white-space: pre;"><b> </b></span></div><div><b><span style="color: #2b00fe;"> {% else %}</span></b></div><div><b><span style="color: #2b00fe;"> </span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> {% assign listofitems = listofitems | Append: ',' | Append: item.productname %}</span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> {% assign itemCount = itemCount | Plus: 1 %}</span></b></div><div><b><span style="color: #2b00fe;"><br /></span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> {% endif %}</span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span></span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span>{ </span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> "name":"{{item.productname}}",</span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> "id":"{{item.productid}}",</span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> "category":"{{item.productcategory}}"</span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span></span></b><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span>}</span></b></div><div><b><span style="color: #2b00fe;"><br /></span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> {% if forloop.last == false %},{% endif %}</span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span>{% endfor %}</span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> </span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> ],</span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> "ProductsSummary":</span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> { </span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> "listofitems":"{{listofitems}}",</span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> "itemCount":"{{itemCount}}"</span></b></div><div><b><span style="color: #2b00fe;"><span style="white-space: pre;"> </span> }</span></b></div><div><b><span style="color: #2b00fe;">}</span></b></div></div><div><b><br /></b></div><div><span style="font-family: verdana; font-size: medium;">Save the map with .liquid extension.</span></div><div><b><br /></b></div><div><b><br /></b></div><h4 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Upload the liquid map to Integration Account</span></b></h4><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;">In order to use the above created liquid map, it has to be uploaded in Integration Account.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Go to Integration account, select Maps from left pane then click on +Add button and upload the map, specify name and type.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><b><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit-VWRN9G4w5NLKOiewE_PlLo3Wz6UycmnR86F7khiXVcjqcc0A7NswsnAAqrfPxfjm1WXbxx0azoGuNhq8h5n2fBQxCnl4Ki3p9wJ-Q3gmo91Biv1dOy7TXUIjVjHREP5xvpXvcE097RC4uCVdWYUnv-CyBE5kmCi11QzMVtZbFUBZ3r6YKm6w5HX/s1897/Upload%20Liquid%20map%20to%20Integration%20account.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Upload Liquid map to Integration account" border="0" data-original-height="780" data-original-width="1897" height="264" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit-VWRN9G4w5NLKOiewE_PlLo3Wz6UycmnR86F7khiXVcjqcc0A7NswsnAAqrfPxfjm1WXbxx0azoGuNhq8h5n2fBQxCnl4Ki3p9wJ-Q3gmo91Biv1dOy7TXUIjVjHREP5xvpXvcE097RC4uCVdWYUnv-CyBE5kmCi11QzMVtZbFUBZ3r6YKm6w5HX/w640-h264/Upload%20Liquid%20map%20to%20Integration%20account.PNG" title="Upload Liquid map to Integration account" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Create a Logic App workflow </span></b></h3><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;"><div>In the Azure search box, enter logic apps, and select Logic apps.On the Logic apps page, select Add.</div><div><br /></div><div>Provide the basic information as Subscriptions, resource group,region, logic app name and select consumption plan.</div><div><br /></div><div>Click on Review and create, once created - go to resource and you will be presented with templates to choose from.</div><div><br /></div><div>Select the Blank Logic app template, the designer shows an empty workflow.</div><div style="font-weight: bold;"><br /></div></span></div><div><span style="font-family: verdana; font-size: medium;">First step here would be to link the workflow with the Integration Account. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDNsWllPBzgz_8gQxB_MVCovN34PKA6UU0EcLbJG3bS_kZqEyfZSthUiyYcFu00IlvXFlr1cOXXDKCKbSUu3IjPgomVb3HCaVzZfTDXSFUoXXZ7zVPPaHJzHihCp_FvARc3Som42xSXxF4ytE1xyXySBm2fCEpYZiSAcWiOv1KeJBUHMwPSqCJkM2Y/s1859/Link%20Integration%20account%20with%20Logic%20app%20workflow.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="Link Integration account with Logic app workflow" border="0" data-original-height="639" data-original-width="1859" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDNsWllPBzgz_8gQxB_MVCovN34PKA6UU0EcLbJG3bS_kZqEyfZSthUiyYcFu00IlvXFlr1cOXXDKCKbSUu3IjPgomVb3HCaVzZfTDXSFUoXXZ7zVPPaHJzHihCp_FvARc3Som42xSXxF4ytE1xyXySBm2fCEpYZiSAcWiOv1KeJBUHMwPSqCJkM2Y/w640-h220/Link%20Integration%20account%20with%20Logic%20app%20workflow.PNG" title="Link Integration account with Logic app workflow" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Doing so will make the map created above accessible to the workflow.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Add <b>Http based trigger</b>, followed by <b>Transform XML to JSON</b> action</span></div><div><span style="font-family: verdana; font-size: medium;">to which against <b>Content</b> provide <b>triggerbody</b> as value, against <b>Map </b>select the map(productxml2json) which you uploaded in Integration account.</span></div><div><b><br /></b></div><div><b><br /></b></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinOmfhASm2jXrLhvvfaa7QpysU8hv2TgAP9UgrXxBqwgP98Djy9ogT04blJEePcWruPnjIpY28XnI95eYDsBrrRpLL2EgHN9Y0EprZ_EkaajkKF8FrIGU6KdCOJ48BmooO8aqa81G6-ZocQx-rP3KnSJdH_UgUM0qNlod2Dts2PSLjuUr0mFE-fn2z/s633/XML%20to%20JSON%20transform%20using%20Liquid%20Map.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="XML to JSON transform using Liquid Map" border="0" data-original-height="633" data-original-width="468" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinOmfhASm2jXrLhvvfaa7QpysU8hv2TgAP9UgrXxBqwgP98Djy9ogT04blJEePcWruPnjIpY28XnI95eYDsBrrRpLL2EgHN9Y0EprZ_EkaajkKF8FrIGU6KdCOJ48BmooO8aqa81G6-ZocQx-rP3KnSJdH_UgUM0qNlod2Dts2PSLjuUr0mFE-fn2z/w474-h640/XML%20to%20JSON%20transform%20using%20Liquid%20Map.JPG" title="XML to JSON transform using Liquid Map" width="474" /></a></div><br /><span style="font-family: verdana; font-size: medium;">Finally add <b>Response</b> action with <b>Body</b> as output of above transform action.</span></div><div><b><br /></b></div><div><span style="font-family: verdana; font-size: medium;">That's it, workflow is ready to use.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Testing</span></b></h3><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;">After you save the workflow, copy the url .</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Now using any rest client like postman, ARC etc test it by providing the input as below</span></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><h4 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Input</span></b></h4><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPLtAhKzD958Sy3olsAYmO7Sh2X_2HuBVt9MbpPLfOkb8uHQrWEzX_F7EKgq4gL3yrkEG8Qd6a__EEHzDUOuRo1PY2onp8Cv1uiZXJH6ERVoltF5amc1G4GWlJ8tglIy5KYqw4DGbDvHi0F6Eih9DYEW11S9t2Ms6F7_sDEAilFeI3R_A89YJnQrp4/s1338/testing%20input.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="testing input" border="0" data-original-height="871" data-original-width="1338" height="416" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPLtAhKzD958Sy3olsAYmO7Sh2X_2HuBVt9MbpPLfOkb8uHQrWEzX_F7EKgq4gL3yrkEG8Qd6a__EEHzDUOuRo1PY2onp8Cv1uiZXJH6ERVoltF5amc1G4GWlJ8tglIy5KYqw4DGbDvHi0F6Eih9DYEW11S9t2Ms6F7_sDEAilFeI3R_A89YJnQrp4/w640-h416/testing%20input.PNG" title="testing input" width="640" /></a></div><br /><b><br /></b></div><div><b><br /></b></div><div><b><span style="font-family: verdana; font-size: medium;">Output</span></b></div><div><b><br /></b></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjub7FxSXR8FBEoMROZ_NNWHiXnjA62gQYZwSA_V2gsR5zRg8TnXBFY_wZ_mq1QCAZhaUHHQiTk04JIDet9XZQpk4bEKwywyUzNgCzalzFBGPrPyM4DLG4JqzvqeDB6KvmAh8-WqHzaPYQs28wfYbuhD1VGrLIrejMfYz6gPF4V_XLcfOlYoGHnyTb6/s1327/testing%20output.PNG" style="margin-left: 1em; margin-right: 1em;"><img alt="testing output" border="0" data-original-height="924" data-original-width="1327" height="446" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjub7FxSXR8FBEoMROZ_NNWHiXnjA62gQYZwSA_V2gsR5zRg8TnXBFY_wZ_mq1QCAZhaUHHQiTk04JIDet9XZQpk4bEKwywyUzNgCzalzFBGPrPyM4DLG4JqzvqeDB6KvmAh8-WqHzaPYQs28wfYbuhD1VGrLIrejMfYz6gPF4V_XLcfOlYoGHnyTb6/w640-h446/testing%20output.PNG" title="testing output" width="640" /></a></div><br /><b><br /></b></div><div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana;">Summary</span></b></h3><div><span style="font-family: verdana;">As can be seen from output, XML input was transformed to JSON and we saw how to use Append and Plus function in Liquid map</span></div><div><b><br /></b></div><div><div style="background-color: #fffffe; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div>{</div><div> <span style="color: #a31515;">"Products"</span>: [</div><div> {</div><div> <span style="color: #a31515;">"name"</span>: <span style="color: #0451a5;">"iPhone"</span>,</div><div> <span style="color: #a31515;">"id"</span>: <span style="color: #0451a5;">"EL123"</span>,</div><div> <span style="color: #a31515;">"category"</span>: <span style="color: #0451a5;">"Electronics"</span></div><div> },</div><div> {</div><div> <span style="color: #a31515;">"name"</span>: <span style="color: #0451a5;">"OnePlus"</span>,</div><div> <span style="color: #a31515;">"id"</span>: <span style="color: #0451a5;">"EL124"</span>,</div><div> <span style="color: #a31515;">"category"</span>: <span style="color: #0451a5;">"Electronics"</span></div><div> },</div><div> {</div><div> <span style="color: #a31515;">"name"</span>: <span style="color: #0451a5;">"Xioami"</span>,</div><div> <span style="color: #a31515;">"id"</span>: <span style="color: #0451a5;">"EL125"</span>,</div><div> <span style="color: #a31515;">"category"</span>: <span style="color: #0451a5;">"Electronics"</span></div><div> }</div><div> ],</div><div> <span style="color: #a31515;">"ProductsSummary"</span>: {</div><div> <span style="color: #a31515;">"listofitems"</span>: <span style="color: #0451a5;">"iPhone,OnePlus,Xioami"</span>,</div><div> <span style="color: #a31515;">"itemCount"</span>: <span style="color: #0451a5;">"3"</span></div><div> }</div><div>}</div><div><br /></div><div><br /></div><div><br /></div><div><h3 style="font-family: "Times New Roman"; white-space: normal;"><span style="font-family: verdana;"><span style="font-size: 18.72px;">Learn More about Logic App</span></span></h3><h3 style="font-family: "Times New Roman"; white-space: normal;"><div style="font-size: medium; font-weight: 400;"><span style="font-family: verdana;"><span style="font-size: medium;"><ul><li><u style="color: #0000ee;"><a href="https://www.tech-findings.com/2023/09/configure-Logic-App-Standard-workflow-behind-Azure-APIM.html" target="_blank">How to configure Logic App Standard workflow behind Azure APIM</a></u></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/08/How-to-Query-Azure-Table-storage-from-Logic-App%20.html" target="_blank">How to Query Azure Table storage from Logic App | How to filter results of Azure Table storage from Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/expressions-in-logic-apps.html" target="_blank">Understanding expressions in Logic Apps | Frequently used expressions in Logic Apps | What is expressions in Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/How-to-use-Logic-app-Run-History.html" target="_blank">How to use Logic app Run History | How to troubleshoot Logic App workflow execution</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/04/logic-app-slack-channel-integration.html" target="_blank">Logic App and Slack - Sending messages to slack channel | Logic app and slack integration | Connecting Logic App to Slack channel</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2022/12/how-to-access-application-settings-from-logic-app-standard-workflow.html" target="_blank">How to access Application settings fields value from Logic app Standard workflow | Using Application settings as configuration store for Logic app standard workflow</a></u></span></li><li><a href="https://www.tech-findings.com/2022/12/Developing-Logic-app-standard-workflow-locally-deploying-to-Azure.html" target="_blank">Developing Logic app standard workflow which uses Map locally and deploying to Azure</a></li><li><a href="https://www.tech-findings.com/2022/12/developing-logic-app-standard-workflow.html" target="_blank">Developing Logic App Standard Workflow Using Visual Studio Code | Create Logic App Standard Workflow Using Visual Studio Code</a></li><li><a href="https://www.tech-findings.com/2022/12/logic-app-xml-to-json-using-liquid-map.html" target="_blank">Logic App - Xml to Json using Liquid Map | Append in Liquid Map</a></li><li><a href="https://www.tech-findings.com/2022/11/Azure-Event-Grid-Custom-Topic-LogicApp.html" target="_blank">How to use Azure Event Grid Custom Topic | Publishing and Subscribing from Azure Event Grid Custom Topic using Logic App</a></li><li><a href="https://www.tech-findings.com/2022/11/read-write-azure-table-storage-logic-app.html" target="_blank">Using Azure Storage Account Table as Config Store for Logic Apps | How to read and write from Logic App to Azure Storage Account Table</a></li><li><a href="https://www.tech-findings.com/2022/08/get-logic-app-name-in-logic-app.html" target="_blank">Get Logic App Name in Logic App</a></li><li><a href="https://www.tech-findings.com/2022/07/logic-App-consumption-logic-app-standard.html" target="_blank">Difference between Logic App Consumption and Logic App Standard </a></li><li><a href="https://www.tech-findings.com/2022/07/overview-logic-app-standard.html" target="_blank">Getting Started with Logic App Standard | Overview of Logic App Standard | Basics of Logic App Standard</a></li><li><a href="https://www.tech-findings.com/2022/07/find-count-of-Logic-App-executions.html" target="_blank">How to find count of Logic App executions using Azure Portal</a></li><li><a href="https://www.tech-findings.com/2022/07/azure-functions-vs-azure-logic-app.html" target="_blank">Azure Functions vs Azure Logic App | Difference between Azure Functions and Azure Logic App</a></li><li><a href="https://www.tech-findings.com/2022/06/Logic-App-Liquid-Map-Basics.html" target="_blank">Getting started with Logic App : Liquid Map | Using Liquid template in Logic app</a></li><li><a href="https://www.tech-findings.com/2022/06/Exception-Handling-in-Logic-app.html" target="_blank">How to get actual error message of Scope in Logic App | Exception Handling in Logic app</a></li><li><a href="https://www.tech-findings.com/2019/01/Interview-questions-answers-LogicApps.html" target="_blank">Interview questions and answers on Logic Apps | Interview questions for azure logic app developers</a></li><li><span><a href="https://www.tech-findings.com/2022/05/How-to-execute-Stored-Procedure-in-Logic-App.html" target="_blank">How to execute Stored Procedure in Logic App | How to connect to SQL in Logic App</a></span></li><li><a href="https://www.tech-findings.com/2022/05/how-to-get-current-date-in-logic-app.html" target="_blank">How to get current date in logic app | How to format date time in Logic App</a></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/07/BizTalk-Developer-getting-started-with-Logic-App.html" target="_blank">BizTalk Developer getting started with Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2018/03/getting-started-with-logic-apps-fundamentals.html" target="_blank">Getting Started with Logic Apps - Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/10/Getting-Started-with-Logic-Apps-Enterprise-Application-Integration.html" target="_blank">Getting Started with Logic Apps - Enterprise Application Integration</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/09/getting-started-with-logic-apps-as2.html" target="_blank">Getting Started with Logic Apps - AS2</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/edi-x12-fundamentals.html" target="_blank">Getting Started with Logic Apps - EDI X12 Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/getting-started-with-logic-apps-xml-to-EDI-x12.html" target="_blank">Getting Started with Logic Apps - XML to EDI X12</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/getting-started-with-logic-apps-edi-x12-to-xml.html" target="_blank">Getting Started with Logic Apps - EDI X12 to XML</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/10/getting-started-with-logic-apps-what-happened-to-request.html" target="_blank">Getting Started with Logic Apps - What happened to the Request?</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-Multiple-Records-In-On-Prem-SQL-Using-Logic-App.html" target="_blank">Inserting Multiple Records In On Prem SQL Using Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-data-in-On-Premises-SQL-Database-using-Logic-Apps.html" target="_blank">Inserting data in On Premises SQL Database using Logic Apps</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/installing-and-configuring-on-premises-data-gateway.html" target="_blank">Installing and Configuring On Premises Data Gateway - By adding user to Active Directory</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/XML-Batching-Aggregation-in-Logic-App.html" target="_blank">XML Batching(Aggregation) in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/batching-aggregating-messages-in-logic-app.html" target="_blank">Batching(Aggregating) messages in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/Debatching-Splitting-JSON-Message-in-Logic-Apps.html" target="_blank">Debatching(Splitting) JSON Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/debatching-splitting-xml-message-in-Logic-App.html" target="_blank">Debatching(Splitting) XML Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/securing-logic-app-with-azure-active-directory.html" target="_blank">Securing Logic App with Azure Active Directory authentication</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/removing-ns0-prefix-from-xml-output.html" target="_blank">Removing ns0: prefix from xml output from BizTalk/Logic app XSLT map</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/01/using-managed-identity-in-logic-apps.html" target="_blank">Using Managed Identity in Logic Apps for Calling Active Directory Secured Function App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/logic-apps-fetching-isa-and-gs-segment.html" target="_blank">Logic Apps : Fetching ISA and GS Segment Values From Interchange Envelope and Mapping</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2021/07/logic-apps-for-each-inside-for-each.html" target="_blank">Logic Apps : For Each Inside a For Each - Fetching values from field in an array inside an array</a></span></span></li></ul></span></span></div></h3></div></div></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-50735316219457345142022-11-26T09:27:00.000+05:302022-11-26T09:27:26.405+05:30Real-time Distributed Tracing in Azure to fasten troubleshooting<span style="font-family: verdana; font-size: medium;"><b>{tocify} $title={Table of Contents}</b>
<br />
</span><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"> </span></span></p>
<p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;">The adoption of microservice architecture
for building complex solutions on Azure is the trend these days. Although it
offers greater scalability and reliability when compared to monolithic
architectures, it becomes difficult to see how the data flows across the
independent services involved in an application.<o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><a href="https://www.serverless360.com/business-activity-monitoring?utm_source=guest-blog&utm_medium=distributed+tracing">Distributed
Tracing</a> was introduced to mitigate this significant drawback. So, this
article will give you a high-level view of distributed tracing and points out a
way to effortlessly achieve it for Azure/Hybrid applications built on top of microservice
architectures.<o:p></o:p></span></span></p><p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><br /></span></span></p>
<h2><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><span style="color: #0b5394;">Distributed Tracing: Why is it crucial?</span><o:p></o:p></span></span></h2>
<p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;">Using distributed Tracing, we can visualize
a user request's path as it traverses through multiple services within an
application. The top benefits of Distributed Tracing include,</span></span></p><p class="MsoNormal"></p><ul style="text-align: left;"><li><span lang="EN-IN" style="text-indent: -0.25in;"><span style="font-family: verdana; font-size: medium;">Track how a user request
travels across multiple services</span></span></li><li><span style="text-indent: -0.25in;"><span style="font-family: verdana; font-size: medium;">Visualize how the services in
an Azure/Hybrid application interact with one another</span></span></li><li><span lang="EN-IN" style="text-indent: -0.25in;"><span style="font-family: verdana; font-size: medium;">Pinpoint critical bottlenecks
with a unified view of the data flows</span></span></li><li><span style="text-indent: -0.25in;"><span style="font-family: verdana; font-size: medium;">Get to keep a close watch on
the overall health of your business workflows</span></span></li><li><span lang="EN-IN" style="color: #0e101a; text-indent: -0.25in;"><span style="font-family: verdana; font-size: medium;">Instantly
identify the service that is causing performance disruption in the overall
application</span></span></li><li><span lang="EN-IN" style="text-indent: -0.25in;"><span style="font-family: verdana; font-size: medium;">Reduce the Mean time to
Recovery (MTTR) to a greater extent</span></span></li><li><span lang="EN-IN" style="text-indent: -0.25in;"><span style="font-family: verdana; font-size: medium;">Increase productivity by investing
more time innovating and less time troubleshooting</span></span></li></ul><div style="text-indent: -24px;"><span style="font-family: verdana; font-size: medium;"><br /></span></div><p></p><!--[if !supportLists]--><p></p>
<h2><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><span style="color: #3d85c6;">What are the commonly used methods to achieve Distributed Tracing?
</span><o:p></o:p></span></span></h2><div><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><span style="color: #3d85c6;"><br /></span></span></span></div>
<h3><span lang="EN-IN" style="color: #4472c4; font-weight: normal;"><span style="font-family: verdana; font-size: medium;">App
Insights in Azure Monitor<o:p></o:p></span></span></h3>
<p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;">App Insights are often used to understand
better how various services involved in an Azure application interact.<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family: verdana; font-size: medium;"><b><span lang="EN-IN">Drawback: </span></b><span lang="EN-IN">There
is no way to trace or visualize the path of the messages flowing through those
services.<b><o:p></o:p></b></span></span></p><p class="MsoNormal"><span style="font-family: verdana; font-size: medium;"><span lang="EN-IN"><br /></span></span></p>
<h3><span lang="EN-IN" style="color: #4472c4; font-weight: normal;"><span style="font-family: verdana; font-size: medium;">Custom Tracing
tools<o:p></o:p></span></span></h3>
<p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;">It's also a prevalent practice for
organizations to build their custom and tracking solutions.<o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;">However, the real issue is that it consumes
more time, requiring more workforce and demanding Azure engineers to write code
for building custom tools rather than allowing them to focus on more productive
tasks.<o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;">That is how the necessity of
enterprise-grade tracing tools emerged to avoid the difficulties in building
custom tracing tools.<o:p></o:p></span></span></p><p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><br /></span></span></p>
<h2><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><span style="color: #3d85c6;">Finding an apt Distributed Tracing Tool</span><o:p></o:p></span></span></h2>
<h3><span lang="EN-IN" style="color: #4472c4; font-weight: normal;"><span style="font-family: verdana; font-size: medium;">Serverless360
BAM (Preferred Solution)<o:p></o:p></span></span></h3>
<p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><a href="https://www.serverless360.com/">Serverless360</a>
is an enterprise-grade Azure management platform that unifies Azure monitoring,
management, tracing, governance, and cost analysis - all in one place. <o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family: verdana; font-size: medium;"><span lang="EN-IN">Business users </span><span lang="EN-IN">can leverage the BAM module in Serverless360
to track, visualize and pinpoint issues in the message flow across the
distributed Azure/hybrid integrations services.</span><span lang="EN-IN"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;">Other than offering <a href="https://www.serverless360.com/distributed-tracing?utm_source=guest-blog&utm_medium=distributed+tracing">Distributed
Tracing</a>, Serverless360 does solve a few major pain points in using
native-Azure monitoring tools,</span></span></p><p class="MsoNormal"><span lang="EN-IN" style="text-indent: -0.25in;"><span style="font-family: verdana; font-size: medium;">- Lack of holistic visibility on
Azure services distributed across Subscriptions</span></span></p><p class="MsoNormal"><span lang="EN-IN" style="text-indent: -0.25in;"><span style="font-family: verdana; font-size: medium;">- It doesn't offer proactive
monitoring to enable faster troubleshooting</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo2; text-indent: -.25in;"><span style="font-family: verdana; font-size: medium;"><span lang="EN-IN"><span style="font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">- - </span></span><!--[endif]--><span lang="EN-IN">No features to auto-document
the resource usage, cost, and security</span></span></p><p class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo2; text-indent: -.25in;"><span style="text-indent: -0.25in;"><span style="font-family: verdana; font-size: medium;"> - It doesn't support performing an
in-depth analysis on the expenses incurred by Azure services</span></span></p>
<p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;">With that said, let's now explore every
nook of Serverless360 BAM and find how it can be helpful in your business
scenario.<o:p></o:p></span></span></p><p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><br /></span></span></p>
<p class="MsoNormal"><span style="font-family: verdana; font-size: medium;"><span lang="EN-IN" style="color: #4472c4;">Out-of-the-box functionalities
in Serverless360 BAM</span><span lang="EN-IN"><o:p></o:p></span></span></p>
<h4><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><span style="color: #3d85c6;">Visualizing the message flow</span><o:p></o:p></span></span></h4>
<p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;">BAM from Serverless360 visualizes your
workflow, simplifying the correlation of messages passing through your
intricate integrations. This way, get an abstract view of the underlying
complexities of all the components involved in such Azure/Hybrid integrations.<o:p></o:p></span></span></p>
<span lang="EN-IN" style="line-height: 107%;"><span style="font-family: verdana; font-size: medium;">The message flow will be tracked at every stage
to help you spot any failures; the stages will also be color-coded based on
their status</span></span></div><div><span lang="EN-IN" style="line-height: 107%;"><span style="font-family: verdana; font-size: medium;"><br /></span></span></div><div><span lang="EN-IN" style="line-height: 107%;"><span style="font-family: verdana; font-size: medium;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEieS0vnygbodro_IDaqOEcg3ZKtjx_kKKuHwfLgtuZzXyT-hOZ5OgR62REpexT9O6PZ-2dFdWf7M7h2DIAYgenGMysaussqI8GHg7Yl37p0-Sz4giaA97IuFb9H7G0IdWRMMUPvL_ALUdcoqqeRexy1zB0AVp0j8wZpXMAMF8tjqhltyxL3Rflx5X4R" style="margin-left: 1em; margin-right: 1em;"><img alt="Visualizing the message flow" data-original-height="446" data-original-width="940" height="304" src="https://blogger.googleusercontent.com/img/a/AVvXsEieS0vnygbodro_IDaqOEcg3ZKtjx_kKKuHwfLgtuZzXyT-hOZ5OgR62REpexT9O6PZ-2dFdWf7M7h2DIAYgenGMysaussqI8GHg7Yl37p0-Sz4giaA97IuFb9H7G0IdWRMMUPvL_ALUdcoqqeRexy1zB0AVp0j8wZpXMAMF8tjqhltyxL3Rflx5X4R=w640-h304" title="Visualizing the message flow" width="640" /></a></div><br /><br /></span></span></div><div><span lang="EN-IN" style="line-height: 107%;"><span style="font-family: verdana; font-size: medium;"><h4 style="text-align: left;"><span lang="EN-IN" style="font-style: normal;"><span style="color: #3d85c6;">Reprocess the failed message
transactions</span><o:p></o:p></span></h4>
<p class="MsoNormal" style="text-align: left;"><span lang="EN-IN">Every transaction in your business workflow
will be monitored, which makes it easier to pinpoint the problem and fix
failure message transactions. However, given the many transactions involved, focusing
only on the unsuccessful ones could be challenging. When this occurs,
Serverless360 displays the complex transactions in a separate "Action
required" tab.<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;"><span lang="EN-IN">You can rapidly access the failed message
transactions, change the required value, and then reprocess them for a
successful resubmission.<o:p></o:p></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgBDnpgYakptttbkIRKnW7arPhy9NzHNrQQzo4_rJ5wuT3H4eOFYFWwkn9F4hnT-u9_p6kC-_aVSNc2oVhCGydd10cfeEwwvaYNIZxIhHkO6TEy4-6czU08Ze236t1R0b5LTNt6KW-FIIlNXdWf1KoAQOoilV7k14f_XH-9ZefS4sy6vQjMVJacjm5A" style="margin-left: 1em; margin-right: 1em;"><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><img alt="Reprocess the failed message transactions" data-original-height="452" data-original-width="940" height="308" src="https://blogger.googleusercontent.com/img/a/AVvXsEgBDnpgYakptttbkIRKnW7arPhy9NzHNrQQzo4_rJ5wuT3H4eOFYFWwkn9F4hnT-u9_p6kC-_aVSNc2oVhCGydd10cfeEwwvaYNIZxIhHkO6TEy4-6czU08Ze236t1R0b5LTNt6KW-FIIlNXdWf1KoAQOoilV7k14f_XH-9ZefS4sy6vQjMVJacjm5A=w640-h308" title="Reprocess the failed message transactions" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><h4 style="text-align: left;"><span lang="EN-IN" style="font-style: normal;"><span style="color: #3d85c6;">Advanced Search</span><o:p></o:p></span></h4>
<p class="MsoNormal" style="text-align: left;"><span lang="EN-IN">No more going through multiple message
transactions to retrieve the business-critical ones. Serverless360's BAM
supports using simple queries to fetch the data in no time.<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;"><span lang="EN-IN">Also, eliminate manual effort by saving any
number of frequently applied queries for later use.<o:p></o:p></span></p><p class="MsoNormal" style="text-align: left;"><span lang="EN-IN"></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjLRvcCHBDtzc45kyhH6nG3vBVJdE513gLS5H6WWz4Q6rpaenK7lJJGgzhvs-fF2vJMJ95ZWDpaXxLEHhSp7TXRHpFJjCzjbHA-cwwCiG5O_oFBe1hLmAC-0XWpuDSpi-ewgxq7GUK-frhVyynsUzvTksD5B2_2ED5RMAU3JVW8dZrxiEWlk4yUUkTz" style="margin-left: 1em; margin-right: 1em;"><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><img alt="Advanced Search" data-original-height="454" data-original-width="940" height="310" src="https://blogger.googleusercontent.com/img/a/AVvXsEjLRvcCHBDtzc45kyhH6nG3vBVJdE513gLS5H6WWz4Q6rpaenK7lJJGgzhvs-fF2vJMJ95ZWDpaXxLEHhSp7TXRHpFJjCzjbHA-cwwCiG5O_oFBe1hLmAC-0XWpuDSpi-ewgxq7GUK-frhVyynsUzvTksD5B2_2ED5RMAU3JVW8dZrxiEWlk4yUUkTz=w640-h310" title="Advanced Search" width="640" /></a></div><br /><h4 style="text-align: left;"><span lang="EN-IN"><span style="color: #3d85c6;">Extended monitoring support</span><o:p></o:p></span></h4>
<p class="MsoNormal" style="text-align: left;"><span lang="EN-IN">With Serverless360, you can monitor the
message flow and its stages on various aspects with warning/error thresholds,
intending to send alerts whenever there is a threshold violation. The platform
comes with three different types of monitoring – <b>Exception, Query, and
Duration Monitor.</b><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;"><b><span lang="EN-IN">Exception Monitoring: <strong><span style="color: #0e101a;">Alerts will be triggered if
exceptions occur within a specified period.</span></strong></span></b><span lang="EN-IN"> For instance, you can set up exception monitoring in such a
way as to get notified in case of any exceptions occurring in the last 20
minutes.</span></p><p class="MsoNormal" style="text-align: left;"><span lang="EN-IN"><br /></span></p><p class="MsoNormal" style="text-align: left;"><span lang="EN-IN"></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhwFJl7p79k7ZKYK1YorRSXoSIi0IJFuyQ9PYA5q5KvOM6xl415cJQFUn4YWOl19PokEbvvfvan_t_GZjbmAxJ_ftolKsoMYAojorn7_1L2BL4NnfxtK5k5A9cU20qz6STNaLUPrx3V7tfTaashMAAbGOPXBWIAm3sDcM0ZBkJdK9s7qlNcb0Bl61_n" style="margin-left: 1em; margin-right: 1em;"><img alt="Exception Monitoring" data-original-height="431" data-original-width="940" height="294" src="https://blogger.googleusercontent.com/img/a/AVvXsEhwFJl7p79k7ZKYK1YorRSXoSIi0IJFuyQ9PYA5q5KvOM6xl415cJQFUn4YWOl19PokEbvvfvan_t_GZjbmAxJ_ftolKsoMYAojorn7_1L2BL4NnfxtK5k5A9cU20qz6STNaLUPrx3V7tfTaashMAAbGOPXBWIAm3sDcM0ZBkJdK9s7qlNcb0Bl61_n=w640-h294" title="Exception Monitoring" width="640" /></a></div><br /><br /></span></span><p></p><p class="MsoNormal"><span style="font-family: verdana; font-size: medium;"><span lang="EN-IN"></span></span></p><p class="MsoNormal"><span style="font-family: verdana; font-size: medium;"><b><span lang="EN-IN">Query Monitoring: </span></b><span lang="EN-IN">Monitor the performance of your entire business workflow on
different queries. Say, when the number of failures detected within a given
period exceeds the threshold limit, you can opt to get either a warning or an
error alert.<o:p></o:p></span></span></p><p class="MsoNormal"><span style="font-family: verdana; font-size: medium;"><span lang="EN-IN"></span></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj7DHjQAli6rtOaKte_CFoyPR1S5sTOqmBTAb2AiF_PW9fvTnz9w0oBNcI_9gaOBe4Ih9KIl6PmJTmUwE6kr7XHHX-rozzwC3h0GNOisIijTjXblYZRSG_YLKWSrd-G4XzLfA017eTSTE6Bdl2Z8so7d6oXVTv1ps2FL9PkDFz-fcwWeV-0haNvxxRx" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: verdana; font-size: medium;"><img alt="Query Monitoring" data-original-height="421" data-original-width="940" height="286" src="https://blogger.googleusercontent.com/img/a/AVvXsEj7DHjQAli6rtOaKte_CFoyPR1S5sTOqmBTAb2AiF_PW9fvTnz9w0oBNcI_9gaOBe4Ih9KIl6PmJTmUwE6kr7XHHX-rozzwC3h0GNOisIijTjXblYZRSG_YLKWSrd-G4XzLfA017eTSTE6Bdl2Z8so7d6oXVTv1ps2FL9PkDFz-fcwWeV-0haNvxxRx=w640-h286" title="Query Monitoring" width="640" /></span></a></div><span style="font-family: verdana; font-size: medium;"><br /><br /></span><p></p><p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><br /></span></span></p><p class="MsoNormal"><span style="font-family: verdana; font-size: medium;"><span lang="EN-IN"></span></span></p><p class="MsoNormal"><span style="font-family: verdana; font-size: medium;"><b><span lang="EN-IN">Duration Monitoring: </span></b><span lang="EN-IN">Set threshold values to receive warning/error alerts when a message
transaction consumes more time than expected.<o:p></o:p></span></span></p><p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><br /></span></span></p><p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><br /></span></span></p><p class="MsoNormal"><span style="font-family: verdana; font-size: medium;"><span lang="EN-IN"></span></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiw9BU5WRLkRm9YKvdYvMYDNs0XVcS_3eVpCylwzp9QO1nFSj8Ceh8jjKoC620vSMAGArsQ-TvRVuY5MF1hFS9mNmrJ9yWYvHqC3KNNr4gUcSVr_jlTGI5Bd0nTJYhA7EgfVUdhP1SsViJDvyvNu0NUqIMssPUl6tKvtWwGxI2ZoACWxWJO4AFBRAcr" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: verdana; font-size: medium;"><img alt="Duration Monitoring" data-original-height="424" data-original-width="940" height="288" src="https://blogger.googleusercontent.com/img/a/AVvXsEiw9BU5WRLkRm9YKvdYvMYDNs0XVcS_3eVpCylwzp9QO1nFSj8Ceh8jjKoC620vSMAGArsQ-TvRVuY5MF1hFS9mNmrJ9yWYvHqC3KNNr4gUcSVr_jlTGI5Bd0nTJYhA7EgfVUdhP1SsViJDvyvNu0NUqIMssPUl6tKvtWwGxI2ZoACWxWJO4AFBRAcr=w640-h288" title="Duration Monitoring" width="640" /></span></a></div><span style="font-family: verdana; font-size: medium;"><br /></span><p class="MsoNormal"><span style="font-family: verdana; font-size: medium;"><span lang="EN-IN" style="background: white;">Alerts generated <span class="landing-page-changedtext-0-2-17">by</span> all these monitors are
segregated into a separate tab, highlighting their status (Sent or Failed). So,
you can ensure that no warnings are missed simply due to minor mistakes while
configuring the notification channel.</span><span lang="EN-IN"><o:p></o:p></span></span></p>
<h4><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><span style="color: #3d85c6;">Intuitive KPI Dashboards</span><o:p></o:p></span></span></h4>
<p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;">There are various scenarios a message
transaction would fail. So, it would be hard to spot why a transaction has
failed and its root cause.<o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;">That's why Serverless360 offers a
customizable plug-and-play dashboard, letting you visualize the tracked data in
the form of colorful charts. With this, detect anomalies at a glance and take
the necessary corrective actions.<o:p></o:p></span></span></p><p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><br /></span></span></p><p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"></span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana; font-size: medium;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjDERrC5yfVoCuq2q-q2HcDK9Y4dvZfPkuKhXP2VvthOK8Oskz_YkCpfmCM5t3mEMrqdVK7yFWZ4h6kfK3spTLE46rHikc1PjAsTFjDOZBeFAcxXpsjKTSUczc6mRhjgnPsdOC0D7P0_ihwXh4bCA7Khq_RRRYbkxjWF4HWMt_1tlPeLBmlle5I25hr" style="margin-left: 1em; margin-right: 1em;"><img alt="Intuitive KPI Dashboards" data-original-height="450" data-original-width="940" height="306" src="https://blogger.googleusercontent.com/img/a/AVvXsEjDERrC5yfVoCuq2q-q2HcDK9Y4dvZfPkuKhXP2VvthOK8Oskz_YkCpfmCM5t3mEMrqdVK7yFWZ4h6kfK3spTLE46rHikc1PjAsTFjDOZBeFAcxXpsjKTSUczc6mRhjgnPsdOC0D7P0_ihwXh4bCA7Khq_RRRYbkxjWF4HWMt_1tlPeLBmlle5I25hr=w640-h306" title="Intuitive KPI Dashboards" width="640" /></a></span></div><span style="font-family: verdana; font-size: medium;"><br /><br /></span><p></p><p></p><p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><br /></span></span></p><p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"> <o:p></o:p></span></span></p><h3><span lang="EN-IN" style="color: #4472c4; font-weight: normal;"><span style="font-family: verdana; font-size: medium;">Add-Ons<o:p></o:p></span></span></h3>
<p class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"></p><ol style="text-align: left;"><li><span style="font-family: verdana; font-size: medium;"><span lang="EN-IN"><span style="font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span></span><!--[endif]--><span lang="EN-IN">Improve security by auditing
every action performed on your Azure services associated with Serverless360 BAM</span></span></li><li><span style="font-family: verdana; font-size: medium;"><span lang="EN-IN" style="text-indent: -0.25in;"><span style="font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span></span><span lang="EN-IN" style="text-indent: -0.25in;">It provides RBAC to enable
fine-grained access management</span></span></li><li><span lang="EN-IN" style="text-indent: -0.25in;"><span style="font-family: verdana; font-size: medium;"> Boost productivity by assigning
failed message transactions to appropriate stakeholders for performing the
remedial actions </span></span></li></ol><p></p><p class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"><span lang="EN-IN" style="font-family: verdana; font-size: large; text-indent: -0.25in;"><br /></span></p>
<h2><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><span style="color: #6fa8dc;">BizTalk BAM</span><o:p></o:p></span></span></h2>
<p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><a href="https://www.biztalk360.com/business-activity-monitoring/">BizTalk BAM</a>
is a collection of tools that allow you to manage aggregations, alerts, and
profiles to monitor relevant business metrics. It gives you end-to-end
visibility into your business processes, providing accurate information about
the status and results of various operations, processes, and transactions so
you can address problem areas and resolve issues within your business.<o:p></o:p></span></span></p><p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><br /></span></span></p>
<h2><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;"><span style="color: #3d85c6;">Conclusion</span><o:p></o:p></span></span></h2>
<p class="MsoNormal"><span lang="EN-IN"><span style="font-family: verdana; font-size: medium;">To conclude, choosing an enterprise-grade
tracing tool is more efficient than building custom tools, considering the time
and manual work it demands. So, this blog sheds light on one such tool - <a href="https://www.serverless360.com/business-activity-monitoring?utm_source=guest-blog&utm_medium=distributed+tracing">Serverless360
BAM</a>, which provides complete visibility on the message flow, letting you detect
and resolve critical issues by providing insights on their root cause. <o:p></o:p></span></span></p><p></p><p class="MsoNormal"><span style="font-family: verdana; font-size: medium;"><span lang="EN-IN"></span></span></p><h4><br /></h4><a href="https://blogger.googleusercontent.com/img/a/AVvXsEi_2mtiNE0dzzpN0ZrbVl5JzAyq4Fqd_cO5yfzbCgVrVXICqhadfK35f4-4RktZT-HeeVBCjiXTjFiX9R5p3xokoXT37YzrxU0LastL_C57N46SG0VDJ__2TCh6uOkIpm0jM6C6aMt5srWcW8IbwSleReCwl-IpwMQcRMy02n_7LAY0vUty--aHKRQ9" style="margin-left: 1em; margin-right: 1em; text-align: center;"></a></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-21617275134068857112022-11-19T11:21:00.007+05:302023-09-19T10:30:03.976+05:30How to use Azure Event Grid Custom Topic | Publishing and Subscribing from Azure Event Grid Custom Topic using Logic App<b>{tocify} $title={Table of Contents}</b>
<br />
<div><b><br /></b></div><div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Introduction</span></b></h3><div><span style="font-family: verdana; font-size: medium;">One of the thing we need to identify while starting with any Integration project is whether the scenario demands for message based integration or event based integration.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><div>When there is need to sync the systems and data is involved, message based integration should be designed, whereas when some action is to be taken based on some state change then event based integration should be used.</div><div><br /></div><div><b>Message</b> : Set of data produced by a system.</div><div><br /></div><div><b>Event : </b>Is a notification about some objects state change. </div><div><br /></div><div>As per the need, integration can be build around messages or events or in some cases both can be used.</div></span></div><div><span style="font-family: verdana;"><br /></span></div><div><div><span style="font-family: verdana; font-size: medium;">To cater this, Azure has three options/services to choose from</span></div><div><span style="font-family: verdana; font-size: medium;"><ul><li>Azure Event Grid</li><li>Azure Event Hubs</li><li>Azure Service Bus</li></ul></span></div></div><div><span style="font-family: verdana; font-size: medium;">Let's see about event grid and how it can be used.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">What is Event Grid</span></b></h3><div><span style="font-family: verdana; font-size: medium;">It is a service from Azure which allows various entities/services/application to publish the state change notification to it and also to deliver those to them who are interested in knowing about it.</span></div><div><br /></div><div><span style="font-family: verdana; font-size: medium;">The real work of the Event grid is to route the events, and it does it with help of Publish and Subscribe methodology.</span></div><div><b><span style="font-family: verdana; font-size: medium;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;">Thus you can use Event Grid when there is need to integrate applications based on events.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana;"><span style="font-size: medium;">So any application can send(publish) events to Event grid and any application can receive(subscribe) to those events.</span></span></div><div><b><br /></b></div><div><span style="font-family: verdana; font-size: medium;">Event Grid has inbuilt support for almost all azure services through system topics, but it also does supports integration of non Azure services/application through Custom Topics.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Terminologies used in context to Event Grid are:</span></div><div><br /></div><div><div><span style="font-family: verdana; font-size: medium;"><b>Events</b></span></div><div><span style="font-family: verdana; font-size: medium;"><b><br /></b></span></div><div><span style="font-family: verdana; font-size: medium;">An event is the information that describes something that happened in the system. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">The maximum allowed size for an event is 1 MB. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>Publishers</b></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">A publisher is the user or organization that sends events to Event Grid. Microsoft publishes events for several Azure services. You can publish events from your own application. Organizations that host services outside of Azure can publish events through Event Grid.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>Event sources</b></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">An event source is where the event happens.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Your application is the event source for custom events that you define. Event sources are responsible for sending events to Event Grid.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>Topics</b></span></div><div><span style="font-family: verdana; font-size: medium;"><b><br /></b></span></div><div><span style="font-family: verdana; font-size: medium;">Topic provides an endpoint where the source sends events. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>System topics</b></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">System topics are built-in topics provided by Azure services such as Azure Storage, Azure Event Hubs, and Azure Service Bus. You can create system topics in your Azure subscription and subscribe to them. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>Custom topics</b></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Custom topics are application and third-party topics. Event subscribers can filter for the event types they want.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>Event subscriptions</b></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">A subscription tells Event Grid which events on a topic you're interested in receiving. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">When creating the subscription, you provide an endpoint for handling the event. You can filter the events that are sent to the endpoint by event type or event subject.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>Event handlers</b></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">An event handler is the place where the event is sent. </span></div></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Let's see through a demonstration how we can use Event grid custom Topic with one logic app as publisher and other as subscriber.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>Note: For demo I have used Logic app, but it can be done same way with any custom application.</b></span></div><div><span style="font-family: verdana;"><br /></span></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><b>Create Event Grid Custom Topic</b></span></h3><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpgZ0_lu23OP3ARVmevs9aVXsPAHESt9UBdbNhNP5JAfl6PsS1TWJEG-xOdWvmqnBjmdlgRHIqMBTzHjebTyrwEUR8U3v6EmT2c4lyztT6CsFI86lQnZzuF6BqRSK7ugDZL9JfDn0_xcus7CGcUiXyUIrOmPIKTGDT6WvKtlyxIEIB5Pt0LcwM4CHx/s1751/Create%20custom%20Event%20grid%20topic.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Create custom Event grid topic" border="0" data-original-height="589" data-original-width="1751" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpgZ0_lu23OP3ARVmevs9aVXsPAHESt9UBdbNhNP5JAfl6PsS1TWJEG-xOdWvmqnBjmdlgRHIqMBTzHjebTyrwEUR8U3v6EmT2c4lyztT6CsFI86lQnZzuF6BqRSK7ugDZL9JfDn0_xcus7CGcUiXyUIrOmPIKTGDT6WvKtlyxIEIB5Pt0LcwM4CHx/w640-h216/Create%20custom%20Event%20grid%20topic.JPG" title="Create custom Event grid topic" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;">xyz</div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_WczNIAMYnA7YZu8GSUJna5L-N7ONYTyT53EM_Qfy0f07X341_SwjedlIhQ43px5NVbUH-HJhhFjOsV5fwwHXqWQvGSyOQjhrN1YtzzKoCxMxFl8F5aAIPsQT_7wLs9E0AuHvEwCTX4nJWCLu3hJmRiHzrbpOvuv6Lx6CNhOOdtUuhuEH108eRlK1/s1758/Created%20Custom%20Topic.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Created Custom Topic" border="0" data-original-height="400" data-original-width="1758" height="146" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_WczNIAMYnA7YZu8GSUJna5L-N7ONYTyT53EM_Qfy0f07X341_SwjedlIhQ43px5NVbUH-HJhhFjOsV5fwwHXqWQvGSyOQjhrN1YtzzKoCxMxFl8F5aAIPsQT_7wLs9E0AuHvEwCTX4nJWCLu3hJmRiHzrbpOvuv6Lx6CNhOOdtUuhuEH108eRlK1/w640-h146/Created%20Custom%20Topic.JPG" title="Created Custom Topic" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana;"><br /></span></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana;">Now the Event grid custom topic is created, and with the help of <b>Topic endpoint</b> we can push events to this Custom Topic</span></div><div class="separator" style="clear: both; text-align: left;"><br /></div><br /><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Create Logic App to publish events to above created Custom Event Grid Topic</span></h3><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifnwEh8C57CarQs7nc-EZwnW-Qx__KXe4-c6yMD20feQa3Kfnzz4j-ueumaPrCgYkU3_m8q3ZLX8odJfsb4ATWby_kZyynEEWfnnBJO-dsL6cKwP84kOc9ZpNPxs6xlOGAT5XpMOADzn1FgUk8SmZV3kkJFzP188XJT_v3BZnuWqp4Ranm__qumm9q/s856/Publisher%20LA.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Publisher LA" border="0" data-original-height="856" data-original-width="734" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifnwEh8C57CarQs7nc-EZwnW-Qx__KXe4-c6yMD20feQa3Kfnzz4j-ueumaPrCgYkU3_m8q3ZLX8odJfsb4ATWby_kZyynEEWfnnBJO-dsL6cKwP84kOc9ZpNPxs6xlOGAT5XpMOADzn1FgUk8SmZV3kkJFzP188XJT_v3BZnuWqp4Ranm__qumm9q/w548-h640/Publisher%20LA.JPG" title="Publisher LA" width="548" /></a></div><br /><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Keeping it simple, using Recurrence trigger to trigger this logic app.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Click on new step and search for Event Grid, select event grid publish action</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh27PMQPtHWXRdOeMnH9FEs8X9Q-9xwWNW1gCjg_zKY14Tp0GkwysIGKHNgbxqQLqBckEYPvG86oBgEGpGOBCZ-1goK5FS0SAZVqOJGO1jUvm7SASHDIIzxvMsBvp4AjrKcSopstoiggswWnATN4IdaOSyrUJxvyFfhEQDESuCvLU8kRlJPp0vA9Xx0/s619/Add%20event%20grid%20publish%20action.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Add event grid publish action" border="0" data-original-height="554" data-original-width="619" height="572" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh27PMQPtHWXRdOeMnH9FEs8X9Q-9xwWNW1gCjg_zKY14Tp0GkwysIGKHNgbxqQLqBckEYPvG86oBgEGpGOBCZ-1goK5FS0SAZVqOJGO1jUvm7SASHDIIzxvMsBvp4AjrKcSopstoiggswWnATN4IdaOSyrUJxvyFfhEQDESuCvLU8kRlJPp0vA9Xx0/w640-h572/Add%20event%20grid%20publish%20action.JPG" title="Add event grid publish action" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">Create connection by providing the Topic endpoint and access key </span><a href="https://blogger.googleusercontent.com/img/a/AVvXsEg4mQePCIPvN6j0rmeobgVrGY4mXdH09vtVmypL19NkVR2fxEDI_8aPOhiRQAlarif3y9EkaLSvRUf7oj_T4ZWS32h5A0-JWyd4CVJLGMdffvR7hCwWcpvnGSjGiqYwKd9teUZk2wRATP751FvXE7oLQqiMz3EZnpCVoS280TqP6wV-mCxCPl8tA8sc" style="font-family: verdana; font-size: large; margin-left: 1em; margin-right: 1em; text-align: center;"><img alt="Event grid custom topic access key" data-original-height="334" data-original-width="1798" height="118" src="https://blogger.googleusercontent.com/img/a/AVvXsEg4mQePCIPvN6j0rmeobgVrGY4mXdH09vtVmypL19NkVR2fxEDI_8aPOhiRQAlarif3y9EkaLSvRUf7oj_T4ZWS32h5A0-JWyd4CVJLGMdffvR7hCwWcpvnGSjGiqYwKd9teUZk2wRATP751FvXE7oLQqiMz3EZnpCVoS280TqP6wV-mCxCPl8tA8sc=w640-h118" title="Event grid custom topic access key" width="640" /></a></div><div><span style="font-family: verdana; font-size: medium;"><br /><div style="font-family: "Times New Roman"; font-size: medium;"><span style="font-family: verdana; font-size: medium;">To get access key, go to the Event Grid Custom topic you created -> Settings->Access Keys. And copy either of the key and provide it against <b>Shared access signature.</b></span></div><div style="font-family: "Times New Roman"; font-size: medium;"><span style="font-family: verdana; font-size: medium;"></span></div></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW6YLnBW9euAh4ZsTo6REt-cY0qJvkRQxoGqwZVICzk4xqfuAQtWoBje0z3eWuTfqM27OmRyexTlg8BP12uLvPnLUeB4qbAbZUt_gyraJiTUsFGVb5NGfIbwkHE1jcKssGGQ5jMcz7r6LNt9KTjxq8aPQgaX-WlUYaODehQak-tidhrIqVKOxOorqa/s617/Create%20connection%20to%20Event%20Grid%20Custom%20topic%20in%20logic%20app.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Create connection to Event Grid Custom topic in logic app" border="0" data-original-height="328" data-original-width="617" height="340" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW6YLnBW9euAh4ZsTo6REt-cY0qJvkRQxoGqwZVICzk4xqfuAQtWoBje0z3eWuTfqM27OmRyexTlg8BP12uLvPnLUeB4qbAbZUt_gyraJiTUsFGVb5NGfIbwkHE1jcKssGGQ5jMcz7r6LNt9KTjxq8aPQgaX-WlUYaODehQak-tidhrIqVKOxOorqa/w640-h340/Create%20connection%20to%20Event%20Grid%20Custom%20topic%20in%20logic%20app.JPG" title="Create connection to Event Grid Custom topic in logic app" width="640" /></a></div><div><br /></div><span style="font-family: verdana; font-size: medium;">After connection is successful, you can provide info about the event you want to publish.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>Note: ID has to be unique, thus used guid() function.</b></span></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLU9bKbgtDzTKD3hSTG7dM3Pe1xcSMCAXsbg6NmkRFEvQA7OD4ZXq-k2aA_9D8BQCH88UqoseEQvEn4RPERJTDFRrQVv3fHGFxGaNNod0HkhHNaA30ex5U8ZWpiTs2qZMq4mAY_oGWK4512VRV0-Sil8e1C6IPcBNHeDCIzPoRSrBqCGjLGGVxFZkU/s608/configuring%20publish%20event%20action.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="configuring publish event action" border="0" data-original-height="560" data-original-width="608" height="590" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLU9bKbgtDzTKD3hSTG7dM3Pe1xcSMCAXsbg6NmkRFEvQA7OD4ZXq-k2aA_9D8BQCH88UqoseEQvEn4RPERJTDFRrQVv3fHGFxGaNNod0HkhHNaA30ex5U8ZWpiTs2qZMq4mAY_oGWK4512VRV0-Sil8e1C6IPcBNHeDCIzPoRSrBqCGjLGGVxFZkU/w640-h590/configuring%20publish%20event%20action.JPG" title="configuring publish event action" width="640" /></a></div><br /><div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><span style="font-family: verdana; font-size: medium;">The publisher to Event grid custom topic is created, and with the help of this logic app we can push events to this Custom Topic.</span></div><div class="separator" style="clear: both;"><span style="font-family: verdana; font-size: medium;"><br /></span></div><div class="separator" style="clear: both;"><span style="font-family: verdana; font-size: medium;">Now, let's create a subscriber to this events.</span></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><br /></div><br /><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Create Logic App to subscribe to the events published to above created Custom Event Grid Topic</span></h3></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS8pno8Tp1JUgus7o_KhJqSiRL9ZGIFSe7C8Ux2zsga4tkVbl8WpB4LPYOPpMlqXJw_a1JnwffpKQeiRTyh9ZV7aPgLOGnf-wxrGhurTqhwd6IUpRaxNzEelEoV1c7FxTGh0Ao5fti-wZ0fQkX5mJpmvjO6Le6yVIoEx5VeWvbIjqiFyy18YxeH7FY/s826/subsciber%20logic%20app.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Subscriber logic app" border="0" data-original-height="826" data-original-width="725" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS8pno8Tp1JUgus7o_KhJqSiRL9ZGIFSe7C8Ux2zsga4tkVbl8WpB4LPYOPpMlqXJw_a1JnwffpKQeiRTyh9ZV7aPgLOGnf-wxrGhurTqhwd6IUpRaxNzEelEoV1c7FxTGh0Ao5fti-wZ0fQkX5mJpmvjO6Le6yVIoEx5VeWvbIjqiFyy18YxeH7FY/w562-h640/subsciber%20logic%20app.JPG" title="Subscriber logic app" width="562" /></a></div><br /><span style="font-family: verdana; font-size: medium;">Add a http trigger , followed by a variable to hold the content received by the trigger</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMd6jiVurxc4xrbOWv_YG2sS0Zk7vIBl5CAcreS1U7Hi6FJ6rDEzpDgxsPSfdgaCmgzhKmo2otFPIdt8YVpzE3fz8RisHx8GLFeWnDtL9d2XD8DcKg0gOojBvJc4EzwHkzVrdUsUU1N-bz3yCou_nCrd4msOPrWWxKBKKlB3zWhv6DmeXRNpJXWvWX/s615/subscriber%20la%20design.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="subscriber la design" border="0" data-original-height="251" data-original-width="615" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMd6jiVurxc4xrbOWv_YG2sS0Zk7vIBl5CAcreS1U7Hi6FJ6rDEzpDgxsPSfdgaCmgzhKmo2otFPIdt8YVpzE3fz8RisHx8GLFeWnDtL9d2XD8DcKg0gOojBvJc4EzwHkzVrdUsUU1N-bz3yCou_nCrd4msOPrWWxKBKKlB3zWhv6DmeXRNpJXWvWX/w640-h262/subscriber%20la%20design.JPG" title="subscriber la design" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Now, the subscriber is also ready. The final step is to create a subscription on custom topic.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Copy the HTTP Post URL and save as this will be used while creating subscription.</span></div><div><span style="font-family: verdana; font-size: medium;"><h3 style="font-family: "Times New Roman";"><span style="font-family: verdana; font-size: medium;"><br /></span></h3><h3 style="font-family: "Times New Roman";"><span style="font-family: verdana; font-size: medium;">Create Event subscription on Custom Event Grid Topic</span></h3><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Go to the overview page of custom Event grid topic and click on <b>+Event Subscription</b></span></div><div><span style="font-family: verdana; font-size: medium;"><b><br /></b></span></div><div><span style="font-family: verdana; font-size: medium;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpeBZ4tp9WJUCa4xgfMJgF3Vq7lPN3J1oizcopAIueqvxW61z2F3INZFEzTXlb7zcFhLoXypcVaDqg4z736L3d43YmR3vYchPGwSBqnol7p5Es6pNXHv72mXcYMEV3rAQehV4l9T1n85wyzSdBfwQL7JyMF2GLHd7iVa1whmGWg1bV2XyHNA9Y20Jg/s1371/Create%20Event%20Subscription.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Create Event Subscription" border="0" data-original-height="682" data-original-width="1371" height="318" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpeBZ4tp9WJUCa4xgfMJgF3Vq7lPN3J1oizcopAIueqvxW61z2F3INZFEzTXlb7zcFhLoXypcVaDqg4z736L3d43YmR3vYchPGwSBqnol7p5Es6pNXHv72mXcYMEV3rAQehV4l9T1n85wyzSdBfwQL7JyMF2GLHd7iVa1whmGWg1bV2XyHNA9Y20Jg/w640-h318/Create%20Event%20Subscription.JPG" title="Create Event Subscription" width="640" /></a></div><br />Provide the meaningful name to the subscription as many subscriptions can be created on same topic.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Against <b>Event Types</b> provide the EventType you want to get (here DemoType as that's what we will publish and want it to be subscribed by Subscriber logic app) .</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">In <b>Endpoint Details</b> section, select <b>Webhook</b> as <b>Endpoint type</b> (the other options available are Azure Function, Storage queues, Event hubs, Hybrid connections, service bus queue, Service bus topic, Partner Destination) and against Endpoint provide the HTTP Post URL of above subscriber Logic App.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div>Click on create and that's it, Event Subscription is ready.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2x0m2Crg0A4baRnxMdILi5Rv2Gss0AVoGoVKMK3c3nrZpnWFmowH4SrLb79Hup5WxTNdoThIdqOsYF7DTCet1dFCnbyR7vYOqy41qdFIp0jNHM1fbTXWpGRZXWr-YdImY0iD8yTNpLPL8LL1HFxz8rnDd_bIDPh4RgRDOUtyws0FaL1bfUegCLngS/s1797/LA%20Subscription.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Logic App Event Grid Subscription" border="0" data-original-height="511" data-original-width="1797" height="182" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2x0m2Crg0A4baRnxMdILi5Rv2Gss0AVoGoVKMK3c3nrZpnWFmowH4SrLb79Hup5WxTNdoThIdqOsYF7DTCet1dFCnbyR7vYOqy41qdFIp0jNHM1fbTXWpGRZXWr-YdImY0iD8yTNpLPL8LL1HFxz8rnDd_bIDPh4RgRDOUtyws0FaL1bfUegCLngS/w640-h182/LA%20Subscription.JPG" title="Logic App Event Grid Subscription" width="640" /></a></div><br /><div><br /></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><b>Note: There are other Tabs also to do advanced configuration. But for demo limiting it to Basics. </b></span></div><div><span style="font-family: verdana; font-size: medium;"><b><br /></b></span></div><div><br /></div><h3 style="text-align: left;">Testing</h3><div><span style="font-family: verdana; font-size: medium;">Manually triggered the Publisher Logic App, and checked the run history</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgVbXtJjTBJeWWg7-d9x4uzVXcoKrchxM3LQxh8AJzlv3sqr5MVVkBxfoH3-fejPCfgMcMhsNhGlbZrusNzp3ZpL227i6haxWy6HkEJEEm4tc_1Qhhh4h-Fe0VYj4tYohKqCjPXkzHRo6JMY2liU-FjO6cM8mh_LbglSaZvOxAshdSRL-MJc8B9MgAY" style="margin-left: 1em; margin-right: 1em;"><img alt="Publisher Logic App publishing event" data-original-height="627" data-original-width="623" height="640" src="https://blogger.googleusercontent.com/img/a/AVvXsEgVbXtJjTBJeWWg7-d9x4uzVXcoKrchxM3LQxh8AJzlv3sqr5MVVkBxfoH3-fejPCfgMcMhsNhGlbZrusNzp3ZpL227i6haxWy6HkEJEEm4tc_1Qhhh4h-Fe0VYj4tYohKqCjPXkzHRo6JMY2liU-FjO6cM8mh_LbglSaZvOxAshdSRL-MJc8B9MgAY=w635-h640" title="Publisher Logic App publishing event" width="635" /></a></div><br />And then checked the Subscriber logic app, it was triggered immediately and checked it's run history to validate the content</span></div><div><span style="font-family: verdana; font-size: medium;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiUIWk1FYK0CV4g-e1UwemQtvXzl5zxZnHI3vlm99v-ExGHNdXCjW1Nw_iBzEy_9eqJaaDB68JM1CI7w39M-_fOvDRfFhliO_uGD2qXqjP-QN3DEwajR-U84PQkAHwgfOtQx1rFzUTa3aZKKKFAV5EdFq6NOvoXzRsZ6hRknjQzBE3vVrpa2LEJU7kF" style="margin-left: 1em; margin-right: 1em;"><img alt="Subscriber Logic App getting trigger by event" data-original-height="669" data-original-width="499" height="640" src="https://blogger.googleusercontent.com/img/a/AVvXsEiUIWk1FYK0CV4g-e1UwemQtvXzl5zxZnHI3vlm99v-ExGHNdXCjW1Nw_iBzEy_9eqJaaDB68JM1CI7w39M-_fOvDRfFhliO_uGD2qXqjP-QN3DEwajR-U84PQkAHwgfOtQx1rFzUTa3aZKKKFAV5EdFq6NOvoXzRsZ6hRknjQzBE3vVrpa2LEJU7kF=w477-h640" title="Subscriber Logic App getting trigger by event" width="477" /></a></div><br />To check if the event was passed through event grid, go to overview and check the metric</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiH19mW75dAjw60E0EUavxyqTb79PZiuvSVwnDQIDGJJRP2sfZjOAJYIBovk6Vf0Hu7NaEFvYv7l47NpS-bEc2xK2cWyzvJN90El6TUozw9Q8hNscNsC9EvUit6OHDIFYEaDvLBIHjgob4Ipr0m-l6IfwnigeVJOZaGmlO-4Or3VTmTQskLMKqCDCVZ" style="margin-left: 1em; margin-right: 1em;"></a><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiH19mW75dAjw60E0EUavxyqTb79PZiuvSVwnDQIDGJJRP2sfZjOAJYIBovk6Vf0Hu7NaEFvYv7l47NpS-bEc2xK2cWyzvJN90El6TUozw9Q8hNscNsC9EvUit6OHDIFYEaDvLBIHjgob4Ipr0m-l6IfwnigeVJOZaGmlO-4Or3VTmTQskLMKqCDCVZ" style="margin-left: 1em; margin-right: 1em;"></a><a href="https://blogger.googleusercontent.com/img/a/AVvXsEi3PF-ISwXvUgQWzHLobZwaLa1GEfqAC1nofTwEOXb2ze6Rar-AMR_2sbjIrqKj3PQ6mf2KQ51NiMVL8-o4mQQ0aNEDkwgWIZDwnMwP-xPql25DaRXkcxfdP2iUt8hmiwolx_EAosit5GO_Fib-qqYR692K8RGvyunDYN5ACp1E6U8YDch06fmXTVfA" style="margin-left: 1em; margin-right: 1em;"><img alt="Event grid topic metric" data-original-height="822" data-original-width="1899" height="278" src="https://blogger.googleusercontent.com/img/a/AVvXsEi3PF-ISwXvUgQWzHLobZwaLa1GEfqAC1nofTwEOXb2ze6Rar-AMR_2sbjIrqKj3PQ6mf2KQ51NiMVL8-o4mQQ0aNEDkwgWIZDwnMwP-xPql25DaRXkcxfdP2iUt8hmiwolx_EAosit5GO_Fib-qqYR692K8RGvyunDYN5ACp1E6U8YDch06fmXTVfA=w640-h278" title="Event grid topic metric" width="640" /></a></div><br /></div><br />For advanced metrics go to Monitoring section and select Metrics, here you can choose from various metric options.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Summary</span></h3><div>We saw basics of how we can leverage Event grid custom topic to create a event based integration solution, will post about advanced features in future.</div><div><br /></div><div>Although I have used Logic app for demo, but any custom application can do the same.</div><div><br /></div><div>Any application can publish to custom topic with the help of Topic endpoint and access key .</div><div><br /></div><div>And any application can subscribe to events with the help of <b>Webhook.</b></div><div><br /></div><div><span style="font-family: verdana; font-size: medium;"><b><br /></b></span></div><div><span style="font-family: verdana; font-size: medium;"><h3 style="font-family: "Times New Roman";"><span style="font-family: verdana;"><span style="font-size: 18.72px;">Learn More about Logic App</span></span></h3><h3 style="font-family: "Times New Roman";"><div style="font-size: medium; font-weight: 400;"><span style="font-family: verdana;"><span style="font-size: medium;"><ul><li><u style="color: #0000ee;"><a href="https://www.tech-findings.com/2023/09/configure-Logic-App-Standard-workflow-behind-Azure-APIM.html" target="_blank">How to configure Logic App Standard workflow behind Azure APIM</a></u></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/08/How-to-Query-Azure-Table-storage-from-Logic-App%20.html" target="_blank">How to Query Azure Table storage from Logic App | How to filter results of Azure Table storage from Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/expressions-in-logic-apps.html" target="_blank">Understanding expressions in Logic Apps | Frequently used expressions in Logic Apps | What is expressions in Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/How-to-use-Logic-app-Run-History.html" target="_blank">How to use Logic app Run History | How to troubleshoot Logic App workflow execution</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/04/logic-app-slack-channel-integration.html" target="_blank">Logic App and Slack - Sending messages to slack channel | Logic app and slack integration | Connecting Logic App to Slack channel</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2022/12/how-to-access-application-settings-from-logic-app-standard-workflow.html" target="_blank">How to access Application settings fields value from Logic app Standard workflow | Using Application settings as configuration store for Logic app standard workflow</a></u></span></li><li><a href="https://www.tech-findings.com/2022/12/Developing-Logic-app-standard-workflow-locally-deploying-to-Azure.html" target="_blank">Developing Logic app standard workflow which uses Map locally and deploying to Azure</a></li><li><a href="https://www.tech-findings.com/2022/12/developing-logic-app-standard-workflow.html" target="_blank">Developing Logic App Standard Workflow Using Visual Studio Code | Create Logic App Standard Workflow Using Visual Studio Code</a></li><li><a href="https://www.tech-findings.com/2022/12/logic-app-xml-to-json-using-liquid-map.html" target="_blank">Logic App - Xml to Json using Liquid Map | Append in Liquid Map</a></li><li><a href="https://www.tech-findings.com/2022/11/Azure-Event-Grid-Custom-Topic-LogicApp.html" target="_blank">How to use Azure Event Grid Custom Topic | Publishing and Subscribing from Azure Event Grid Custom Topic using Logic App</a></li><li><a href="https://www.tech-findings.com/2022/11/read-write-azure-table-storage-logic-app.html" target="_blank">Using Azure Storage Account Table as Config Store for Logic Apps | How to read and write from Logic App to Azure Storage Account Table</a></li><li><a href="https://www.tech-findings.com/2022/08/get-logic-app-name-in-logic-app.html" target="_blank">Get Logic App Name in Logic App</a></li><li><a href="https://www.tech-findings.com/2022/07/logic-App-consumption-logic-app-standard.html" target="_blank">Difference between Logic App Consumption and Logic App Standard </a></li><li><a href="https://www.tech-findings.com/2022/07/overview-logic-app-standard.html" target="_blank">Getting Started with Logic App Standard | Overview of Logic App Standard | Basics of Logic App Standard</a></li><li><a href="https://www.tech-findings.com/2022/07/find-count-of-Logic-App-executions.html" target="_blank">How to find count of Logic App executions using Azure Portal</a></li><li><a href="https://www.tech-findings.com/2022/07/azure-functions-vs-azure-logic-app.html" target="_blank">Azure Functions vs Azure Logic App | Difference between Azure Functions and Azure Logic App</a></li><li><a href="https://www.tech-findings.com/2022/06/Logic-App-Liquid-Map-Basics.html" target="_blank">Getting started with Logic App : Liquid Map | Using Liquid template in Logic app</a></li><li><a href="https://www.tech-findings.com/2022/06/Exception-Handling-in-Logic-app.html" target="_blank">How to get actual error message of Scope in Logic App | Exception Handling in Logic app</a></li><li><a href="https://www.tech-findings.com/2019/01/Interview-questions-answers-LogicApps.html" target="_blank">Interview questions and answers on Logic Apps | Interview questions for azure logic app developers</a></li><li><span><a href="https://www.tech-findings.com/2022/05/How-to-execute-Stored-Procedure-in-Logic-App.html" target="_blank">How to execute Stored Procedure in Logic App | How to connect to SQL in Logic App</a></span></li><li><a href="https://www.tech-findings.com/2022/05/how-to-get-current-date-in-logic-app.html" target="_blank">How to get current date in logic app | How to format date time in Logic App</a></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/07/BizTalk-Developer-getting-started-with-Logic-App.html" target="_blank">BizTalk Developer getting started with Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2018/03/getting-started-with-logic-apps-fundamentals.html" target="_blank">Getting Started with Logic Apps - Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/10/Getting-Started-with-Logic-Apps-Enterprise-Application-Integration.html" target="_blank">Getting Started with Logic Apps - Enterprise Application Integration</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/09/getting-started-with-logic-apps-as2.html" target="_blank">Getting Started with Logic Apps - AS2</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/edi-x12-fundamentals.html" target="_blank">Getting Started with Logic Apps - EDI X12 Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/getting-started-with-logic-apps-xml-to-EDI-x12.html" target="_blank">Getting Started with Logic Apps - XML to EDI X12</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/getting-started-with-logic-apps-edi-x12-to-xml.html" target="_blank">Getting Started with Logic Apps - EDI X12 to XML</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/10/getting-started-with-logic-apps-what-happened-to-request.html" target="_blank">Getting Started with Logic Apps - What happened to the Request?</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-Multiple-Records-In-On-Prem-SQL-Using-Logic-App.html" target="_blank">Inserting Multiple Records In On Prem SQL Using Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-data-in-On-Premises-SQL-Database-using-Logic-Apps.html" target="_blank">Inserting data in On Premises SQL Database using Logic Apps</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/installing-and-configuring-on-premises-data-gateway.html" target="_blank">Installing and Configuring On Premises Data Gateway - By adding user to Active Directory</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/XML-Batching-Aggregation-in-Logic-App.html" target="_blank">XML Batching(Aggregation) in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/batching-aggregating-messages-in-logic-app.html" target="_blank">Batching(Aggregating) messages in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/Debatching-Splitting-JSON-Message-in-Logic-Apps.html" target="_blank">Debatching(Splitting) JSON Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/debatching-splitting-xml-message-in-Logic-App.html" target="_blank">Debatching(Splitting) XML Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/securing-logic-app-with-azure-active-directory.html" target="_blank">Securing Logic App with Azure Active Directory authentication</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/removing-ns0-prefix-from-xml-output.html" target="_blank">Removing ns0: prefix from xml output from BizTalk/Logic app XSLT map</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/01/using-managed-identity-in-logic-apps.html" target="_blank">Using Managed Identity in Logic Apps for Calling Active Directory Secured Function App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/logic-apps-fetching-isa-and-gs-segment.html" target="_blank">Logic Apps : Fetching ISA and GS Segment Values From Interchange Envelope and Mapping</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2021/07/logic-apps-for-each-inside-for-each.html" target="_blank">Logic Apps : For Each Inside a For Each - Fetching values from field in an array inside an array</a></span></span></li></ul></span></span></div></h3></span></div></span></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-54737375617878867952022-11-15T20:03:00.002+05:302023-09-19T10:30:20.730+05:30Using Azure Storage Account Table as Config Store for Logic Apps | How to read and write from Logic App to Azure Storage Account Table<b>{tocify} $title={Table of Contents}</b>
<br />
<div><b><br /></b></div><div><b><br /></b></div><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Introduction</span></h3><div><span style="font-family: verdana; font-size: medium;">I stumbled upon a scenario where I had to decide whether a section of actions in Logic app workflow is to be executed or not based on a flag.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">If Flag is True, then execute those actions else no.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Using IF Else is what is to be done, but the value(flag) to be checked is not part of data coming in. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">It has to be stored somewhere which needs to be referred at runtime, as the flag value would be changed by Business Team as per their need.</span></div><div><span style="font-family: verdana;"><br /></span></div><div><b><br /></b></div><div><b><span style="font-family: verdana; font-size: medium;">Now the question was where to store it?</span></b></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Options are in config file stored as blob, in a SQL Table but both of it doesn't look optimal.</span></div><div><b><span style="font-size: medium;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;">So went ahead with another option - Azure Storage account Table.</span></div><div><b><span style="font-size: medium;"><br /></span></b></div><h4 style="text-align: left;"><b><span style="font-family: verdana;"><br /></span></b></h4><h4 style="text-align: left;"><span style="font-size: medium;"><b><span style="font-family: verdana;">What is </span></b><span style="font-family: verdana;">Azure Table </span><b><span style="font-family: verdana;">Storage </span></b></span></h4><div><span style="font-family: verdana; font-size: medium;">It is a sub-service of Azure Storage account service.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Azure Table storage is a service that stores structured NoSQL data in cloud, providing a key/attribute store with a schema less design and no relationships.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">It is a collection of rows(entity). And each entity can have up to 255 properties (columns and values) out of which following property are default- Partition key, Row key and Timestamp.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Partition key and Row key are used for<b> Indexing.</b></span></div><div><b><span style="font-size: medium;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;">Let's see now, how to create <b>Table</b> in storage account, adding an entity in it then how to read the entity from Logic App and how to create/update an entity in <b>Table</b> using Logic app.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><b><span style="font-size: medium;"><br /></span></b></div><div><b><span style="font-size: medium;"><br /></span></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana; font-size: medium;">Create a Table in Storage account</span></b></h3><div><b><span style="font-family: verdana;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;">On Azure portal search for Storage account, create one storage account</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">In the storage account, go to <b>Data Storage</b> section, select <b>Tables</b> and click on <b>+Table</b></span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Provide the name and click OK.</span></div><div><b><br /></b></div><div><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3-iPZ_JLZOiHp8_QxVRRQcyMultiPEORzJ6DMe2dBYLh4CqoYDY7tPLMZMm0ub1chy4I0QmnkqDFwFwp_imGeSO1gusK-vRTe2W_m2XVOUrxdXHMpBGL2tUyp4xEaK-lUyHvFYd4YZSQAupwPccKJtjhwvuKY-CVfV4tVrT5mkQMpByEmt4brGs6f/s1407/Create%20Table%20in%20Storage%20Account.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Create a Table in Storage account" border="0" data-original-height="658" data-original-width="1407" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3-iPZ_JLZOiHp8_QxVRRQcyMultiPEORzJ6DMe2dBYLh4CqoYDY7tPLMZMm0ub1chy4I0QmnkqDFwFwp_imGeSO1gusK-vRTe2W_m2XVOUrxdXHMpBGL2tUyp4xEaK-lUyHvFYd4YZSQAupwPccKJtjhwvuKY-CVfV4tVrT5mkQMpByEmt4brGs6f/w640-h300/Create%20Table%20in%20Storage%20Account.JPG" title="Create a Table in Storage account" width="640" /></a></div><br /><div class="separator" style="clear: both; font-weight: bold; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;">After the table is created, let's add an entity in it.</span></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;"><br /></span></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;">Click on <b>Storage Browser</b> from left Pane -> Select <b>Tables</b> -> <b>ConfigTable</b> -> <b>+Add entity</b></span></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana;"><br /></span></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana;"><br /></span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_9vZ7uEBInLX-tR6JYXvjhyNuhK8tkc9gKEZ1rCIB1fvzyzWkLGlSnuYmHpSJtEOWQLdCxei3SUDRasYgQK_tZEIz91w4n7t8ap-QjQ7WuJgls8EkcwGJMla7W_TR1aGh1LbGeGsiXbeLnJ03gEAqY1bcUkhJJOcRuWrj3IFBYNvzIuuq7Sl7hDJB/s1897/Add%20entity%20in%20Storage%20Table.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Add entity in Storage Table" border="0" data-original-height="435" data-original-width="1897" height="146" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_9vZ7uEBInLX-tR6JYXvjhyNuhK8tkc9gKEZ1rCIB1fvzyzWkLGlSnuYmHpSJtEOWQLdCxei3SUDRasYgQK_tZEIz91w4n7t8ap-QjQ7WuJgls8EkcwGJMla7W_TR1aGh1LbGeGsiXbeLnJ03gEAqY1bcUkhJJOcRuWrj3IFBYNvzIuuq7Sl7hDJB/w640-h146/Add%20entity%20in%20Storage%20Table.JPG" title="Add entity in Storage Table" width="640" /></a></div><div class="separator" style="clear: both; text-align: left;"><br /></div><span style="font-family: verdana; font-size: medium;">Provide the values against PartitionKey and RowKey.</span></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;"><br /></span></div><div class="separator" style="clear: both; text-align: left;"><span style="font-size: medium;"><span style="font-family: verdana;">Click on Add Property button and add the key and its value as shown in above image.</span><br /></span></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;"><br /></span></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;">And below is how it looks - Azure Table storage with an entity</span></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana;"><br /></span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYV4iq-gzOyx50P7ABiBudgYJSxYGXbJPCuAX_h37NR4gj2ZyrnJH9f-w1sGMXprwbIdFuapt2DnSGKMpJj2BANcFZNdVGA_mPHQ33scx2S1YbGzT32U7U7s0seHq6yHxFO4u17ITItF1seqsSSpg2u0PnjXdmBko0H_19XlhDBABZL3OB3W_wBu1u/s1076/Azure%20Table%20storage%20with%20an%20entity.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Azure Table storage with an entity" border="0" data-original-height="316" data-original-width="1076" height="188" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYV4iq-gzOyx50P7ABiBudgYJSxYGXbJPCuAX_h37NR4gj2ZyrnJH9f-w1sGMXprwbIdFuapt2DnSGKMpJj2BANcFZNdVGA_mPHQ33scx2S1YbGzT32U7U7s0seHq6yHxFO4u17ITItF1seqsSSpg2u0PnjXdmBko0H_19XlhDBABZL3OB3W_wBu1u/w640-h188/Azure%20Table%20storage%20with%20an%20entity.JPG" title="Azure Table storage with an entity" width="640" /></a></div><br /><span style="font-family: verdana;"><br /></span></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;">Now, let's see how to read an <b>entity</b> in Logic App</span></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;"><br /></span></div><span style="font-size: medium;"><br /></span><h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Create a Logic app</span></h3></div><div><b><br /></b></div><div><b><br /></b></div><div><br /></div><div><b><br /></b></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDjomNd1yztOzgpcdUP2rIIq7wWb44uDbzfktVOI1_XrL4BkCsSS4wtvDqqwtrw5CNLrccfYD9zE2SHLtQ5eQeVe8PIVKFQPQkXzrCGqZOQmc0WxWNGPB18TDt2b60zKfpXZlHcKSCB9IBcKqMF4QWg96Cj4LZrRf13Fkn_LXgFCLYyCzTXDiwWM2L/s768/Create%20Logic%20App%20to%20read%20Storageaccount%20table.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Create Logic App to read Storageaccount table" border="0" data-original-height="722" data-original-width="768" height="602" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDjomNd1yztOzgpcdUP2rIIq7wWb44uDbzfktVOI1_XrL4BkCsSS4wtvDqqwtrw5CNLrccfYD9zE2SHLtQ5eQeVe8PIVKFQPQkXzrCGqZOQmc0WxWNGPB18TDt2b60zKfpXZlHcKSCB9IBcKqMF4QWg96Cj4LZrRf13Fkn_LXgFCLYyCzTXDiwWM2L/w640-h602/Create%20Logic%20App%20to%20read%20Storageaccount%20table.JPG" title="Create Logic App to read Storageaccount table" width="640" /></a></div><br /><b><br /></b></div><div><span style="font-family: verdana; font-size: medium;">Just for the sake of demo, creating a Recurrence trigger-based logic app</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">1. Add a Recurrence Trigger</span></div><div><span style="font-size: medium;"><span style="font-family: verdana;">2. Add new step, Search for Table and from the list select </span><span style="font-family: verdana;"><b>Get Entity</b> or </span><span style="font-family: verdana;"><b>Get Entity(v2)</b></span></span></div><div><b><br /></b></div><div><b><br /></b></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaJ_rT0XHH1H_6IJRNXgYiAbFz6h0m5-SpXG1ylu5PAnjZ_4ffVIMHU6qv0XabpCg7PP8uEbU4bdjl3yGFzUH4Zv2jrKJfkalN7UrYylpnqyGf8Z9EIjr1DAvjo0khBNP2ZHfQPzGvgr8pXkysgmsOk5S6uIvBaS16NskYHm0Ctm5hXgSuN8WuRvVt/s579/Selecting%20Add%20entity%20Action%20in%20Logic%20App.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Selecting Get entity Action in Logic App" border="0" data-original-height="579" data-original-width="466" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaJ_rT0XHH1H_6IJRNXgYiAbFz6h0m5-SpXG1ylu5PAnjZ_4ffVIMHU6qv0XabpCg7PP8uEbU4bdjl3yGFzUH4Zv2jrKJfkalN7UrYylpnqyGf8Z9EIjr1DAvjo0khBNP2ZHfQPzGvgr8pXkysgmsOk5S6uIvBaS16NskYHm0Ctm5hXgSuN8WuRvVt/w516-h640/Selecting%20Add%20entity%20Action%20in%20Logic%20App.JPG" title="Selecting Get entity Action in Logic App" width="516" /></a></div><br /><b><br /></b></div><div><span style="font-family: verdana; font-size: medium;">As this is first time we are connecting to it, following will be presented to create a <b>Connection</b> first</span></div><div><span style="font-family: verdana;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0Uzh4iTfSXOTCDBuLSsXxE9xaAGNwwJSdxvtbkdk5Ma-GGixywHSHGubBl_VDf04f72AG2g_4EGGE0KNWe-iHXhLWyz1mmaDfe-Ewfg1i7exXMwGMn9_6aEHKhFjYV1rXwPYKyW2fGFhJft2WDiRxRn8fkc_pogQpsY8qslh5Vy2rxi_qDNRcPzOQ/s464/apiconnection%20to%20storage%20account.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Api connection to Storage Account" border="0" data-original-height="303" data-original-width="464" height="418" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0Uzh4iTfSXOTCDBuLSsXxE9xaAGNwwJSdxvtbkdk5Ma-GGixywHSHGubBl_VDf04f72AG2g_4EGGE0KNWe-iHXhLWyz1mmaDfe-Ewfg1i7exXMwGMn9_6aEHKhFjYV1rXwPYKyW2fGFhJft2WDiRxRn8fkc_pogQpsY8qslh5Vy2rxi_qDNRcPzOQ/w640-h418/apiconnection%20to%20storage%20account.JPG" title="Api connection to Storage Account" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">Provide <b>Connection name,</b> Select <b>Authentication Type</b> as <b>Access Key</b> (other options are <b>Azure AD Integrated</b> and <b>Logic Apps Managed Identity</b>)</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Next provide the name of Storage account (which you created above) </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">To get the access key, go to storage account -> <b>Security + networking</b> -> <b>Access keys</b> and copy either <b>key1</b> or <b>key2</b></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMpD_IopWlFA6HJw3yuikFxSuGAmMzRAqO6HahHYfNAh_aGiK9iwFepnJjwGShHybrWcmWS90M1CRnuIC2-eZIaBnkAAvSYjziNL7KJvz0j4whxYiDHYgAJyhJai65n4ziPaiX_P7upTgpGDLXjUBQ1Rbkybi2WF_shcU8W0jM5g2_JViu4FAe8BgL/s1102/storageaccount%20key.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="storageaccount key" border="0" data-original-height="769" data-original-width="1102" height="446" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMpD_IopWlFA6HJw3yuikFxSuGAmMzRAqO6HahHYfNAh_aGiK9iwFepnJjwGShHybrWcmWS90M1CRnuIC2-eZIaBnkAAvSYjziNL7KJvz0j4whxYiDHYgAJyhJai65n4ziPaiX_P7upTgpGDLXjUBQ1Rbkybi2WF_shcU8W0jM5g2_JViu4FAe8BgL/w640-h446/storageaccount%20key.JPG" title="storageaccount key" width="640" /></a></div><br /><span style="font-family: verdana;"><br /></span></div><div><span style="font-size: medium;"><span style="font-family: verdana;">Provide this Access Key </span><span style="font-family: verdana;">against </span></span><b style="font-family: verdana;"><span style="font-size: medium;">Shared Storage Key</span> </b></div><div><span style="font-family: verdana;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ9ezE-e9fhI-DiDCUqa5DA5TEwYkdyk5ZEqAiVh3NeBAaakVBIorXM6OCx4F5KDz4LJAg7YTrbCUnEmysE3bUcMkVsLr5QpsQnZkusliPOUPhwh00axvI6semnXAG8JqtH1Jj8qlhCZUCJPoVy7v0jbtxB-nRQHP9YBlywiejj6L8TKw242Gxj_hX/s459/Configure%20Get%20entity%20action%20in%20logic%20app.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Configure Get entity action in logic app" border="0" data-original-height="270" data-original-width="459" height="376" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ9ezE-e9fhI-DiDCUqa5DA5TEwYkdyk5ZEqAiVh3NeBAaakVBIorXM6OCx4F5KDz4LJAg7YTrbCUnEmysE3bUcMkVsLr5QpsQnZkusliPOUPhwh00axvI6semnXAG8JqtH1Jj8qlhCZUCJPoVy7v0jbtxB-nRQHP9YBlywiejj6L8TKw242Gxj_hX/w640-h376/Configure%20Get%20entity%20action%20in%20logic%20app.JPG" title="Configure Get entity action in logic app" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">Now Provide the Table, Partition Key and Row key</span></div><div><span style="font-family: verdana;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRMdo2X-YzJ6T8vyAx3QaqoPLzxPaDcJJdILXZhh6k63TsBDoy-hsASmfz-lzXzX6ECl-1gYQZVnsyhHXAenRqcfV5cXm1_ipK6rglmhBE9kkfDgQFEGk-VBUi7F95n2OnlS8o92y18JBdRe2vQHYEki4BUoR85dHFo69Qq9W8GNzeuGq-5zmI9fPc/s736/capturing%20value%20returned%20from%20Table%20Storage.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="capturing value returned from Table Storage" border="0" data-original-height="405" data-original-width="736" height="352" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRMdo2X-YzJ6T8vyAx3QaqoPLzxPaDcJJdILXZhh6k63TsBDoy-hsASmfz-lzXzX6ECl-1gYQZVnsyhHXAenRqcfV5cXm1_ipK6rglmhBE9kkfDgQFEGk-VBUi7F95n2OnlS8o92y18JBdRe2vQHYEki4BUoR85dHFo69Qq9W8GNzeuGq-5zmI9fPc/w640-h352/capturing%20value%20returned%20from%20Table%20Storage.JPG" title="capturing value returned from Table Storage" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">To see and use the ProcessFlag value, let's add a variable and assign it to the output of above action.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana;"><span style="font-size: medium;">Against value provide : </span> <span style="color: #2b00fe;">body('Get_entity_(V2)')?['ProcessFlag']</span></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">That's all we need to do to get value from Table storage.</span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><br /></span></div><h4 style="text-align: left;"><span style="font-family: verdana; font-size: medium;">Testing - Read an entity from Table</span></h4><div><b><span style="font-size: medium;"><br /></span></b></div><div><span style="font-family: verdana; font-size: medium;">Manually triggered the logic App, checked the Run history</span></div><div><span style="font-family: verdana;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCKD0YsobEfn5rHdhNnKwYlPACmDNvUkTJ7SrqWSgtO9EEqc3VP-lRIDye1P5qDx3XRTIQVHPn2Cdsms4-apG7_eBxqoUdpwJ6dWzqthXUi1WbDr1APgcEhqRNcrqzrZ_s85ZeWatmXHHan9Gb7AA92A4ZwSolKDwXgcAz46kbzmGuHWm-4Y9NbOow/s599/Testing%20output.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Testing output" border="0" data-original-height="451" data-original-width="599" height="482" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCKD0YsobEfn5rHdhNnKwYlPACmDNvUkTJ7SrqWSgtO9EEqc3VP-lRIDye1P5qDx3XRTIQVHPn2Cdsms4-apG7_eBxqoUdpwJ6dWzqthXUi1WbDr1APgcEhqRNcrqzrZ_s85ZeWatmXHHan9Gb7AA92A4ZwSolKDwXgcAz46kbzmGuHWm-4Y9NbOow/w640-h482/Testing%20output.JPG" title="Testing output" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">As can be seen above <b>True</b> is the value set for the variable. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">And it is set using the value which is returned from above action (Get entity (V2)), lets see what is output of it to get more clarity</span></div><div><span style="font-family: verdana;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9ShOHy9GxuAl70-Vxt2G8ljxiPobo1oGBMUcI2RkNJyJbSmIt8Nb1tISXIEEJxT2RDs5U-3dD12uM_ZfL1KUp8wo4NfCFdxSvBAIuKqcnQMsA1pJkavrRKQUfW1U-VI7_70kw8dQtYTHIc1hKE0P-TYPFu54P12bC6eVTPhL77Wv76Tf9pSdKyPJm/s1611/Output%20of%20Get%20entity%20action.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Output of Get entity action" border="0" data-original-height="712" data-original-width="1611" height="282" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9ShOHy9GxuAl70-Vxt2G8ljxiPobo1oGBMUcI2RkNJyJbSmIt8Nb1tISXIEEJxT2RDs5U-3dD12uM_ZfL1KUp8wo4NfCFdxSvBAIuKqcnQMsA1pJkavrRKQUfW1U-VI7_70kw8dQtYTHIc1hKE0P-TYPFu54P12bC6eVTPhL77Wv76Tf9pSdKyPJm/w640-h282/Output%20of%20Get%20entity%20action.JPG" title="Output of Get entity action" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><span style="font-family: verdana; font-size: medium;">We saw, how to read an entity from Table Storage, now let's see how to update.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Suppose, after finishing the above steps in Logic App, we want to log the current timestamp to denote when the last processing was done.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">To achieve this we can add another entity in the table to hold this value. </span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">We have two options to go with</span></div><div><span style="font-family: verdana; font-size: medium;">1. Go to Table Storage and create an entity and update that using Logic App</span></div><div><span style="font-family: verdana; font-size: medium;">2. Create and Update an entity in Logic App using single Action (Insert or Replace entity action in Logic App)</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">Let's see the second option, in the logic app add another action - from Azure Table Storage select <b>Insert or Replace Entity (V2) </b>action </span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf_Zwz0q03CUNaTzNd2RE-KEA0Mj-gfsJLoBhIDZPz-UhO5bw862SV4JjLHd6pLh9inwL2740mSJqMlAyqm8QVANXLpV1nUfXfXtySIMpkeQFOnLLbMCbdPaips-Jf4--QJJ0xwMTJ938Z-dwWUqU9pWKLqK9ExO2AQyXbhP8wCl9t75GqrKuBkrod/s670/Insert%20or%20replace%20entity%20action%20in%20Logic%20App.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Insert or replace entity action in Logic App" border="0" data-original-height="670" data-original-width="459" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf_Zwz0q03CUNaTzNd2RE-KEA0Mj-gfsJLoBhIDZPz-UhO5bw862SV4JjLHd6pLh9inwL2740mSJqMlAyqm8QVANXLpV1nUfXfXtySIMpkeQFOnLLbMCbdPaips-Jf4--QJJ0xwMTJ938Z-dwWUqU9pWKLqK9ExO2AQyXbhP8wCl9t75GqrKuBkrod/w438-h640/Insert%20or%20replace%20entity%20action%20in%20Logic%20App.JPG" title="Insert or replace entity action in Logic App" width="438" /></a></div><span style="font-family: verdana;"><br /></span><div class="separator" style="clear: both; text-align: left;"><span style="font-family: verdana; font-size: medium;">As we have already created a connection to same Table storage is used, however if needed it can be changed.</span></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDkKnOANm0IfHfNuU9YYB3oEi7qLbjBOPdu4uuuspH3PnWW5ZgpUIfQoBBm12Jt8fmVAYsrQfKrzBpnjyEwj21t5nnh_FC628nYymp9m2bmWsH1jRZM08VPHE_MRFip3tDjLDC_y0I8htkoTcwHC2z-PGnh3W8WbvNXgAhZ9Uh9pA8xjJTBH_JOSm_/s1135/LastRunDateTime.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="LastRunDateTime" border="0" data-original-height="594" data-original-width="1135" height="334" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDkKnOANm0IfHfNuU9YYB3oEi7qLbjBOPdu4uuuspH3PnWW5ZgpUIfQoBBm12Jt8fmVAYsrQfKrzBpnjyEwj21t5nnh_FC628nYymp9m2bmWsH1jRZM08VPHE_MRFip3tDjLDC_y0I8htkoTcwHC2z-PGnh3W8WbvNXgAhZ9Uh9pA8xjJTBH_JOSm_/w640-h334/LastRunDateTime.JPG" title="LastRunDateTime" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">Select the Storage account name and Table from dropdown, provide value against Partition Key and Row Key.</span></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">And against Entity provide following: </span></div><div style="text-align: left;"><span style="font-family: verdana; text-align: center;"> </span></div><div style="text-align: left;"><span style="font-family: verdana; text-align: center;"> <span style="color: #2b00fe;"> {</span></span></div><div style="text-align: center;"><span style="color: #2b00fe;"><span style="font-family: verdana;"> "LastRunDateTime": "utcnow()" </span><span style="font-family: verdana;">}</span></span></div><div style="text-align: center;"><span style="font-family: verdana;"><br /></span></div><div style="text-align: left;"><span style="font-family: verdana;"><br /></span></div><div style="text-align: left;"><span style="font-family: verdana; font-size: medium;">That's it. Above action will create entity if it does not exist, if exist it will simply replace it</span></div><div style="text-align: center;"><span style="font-family: verdana;"><br /></span></div><div><h4><span style="font-family: verdana; font-size: medium;">Testing - Update an entity in Table</span></h4></div><div><span style="font-family: verdana; font-size: medium;"><br /></span></div><div><span style="font-family: verdana; font-size: medium;">To test, manually triggered the logic app and checked the Run history</span></div><div><span style="font-family: verdana;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7-N1voVRAUyaMoQ7F4oxnGBaWCeMgd-up2JnDckb9bELo6wfAjj_vx8LWQ6OQH58rtfe7OvV3_za4nuMGm1PA5bDKTwhKXvVUCVsm3Djwvg2RHA_K9Q0J0GlzmzSgv3GeKZVZ5oM6GMx1pKVjerDNkiJv3sslVTTbHiaTCXe23aDisj7ZfEAjPfiG/s672/Logic%20App%20run%20history.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Logic App run history" border="0" data-original-height="672" data-original-width="621" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7-N1voVRAUyaMoQ7F4oxnGBaWCeMgd-up2JnDckb9bELo6wfAjj_vx8LWQ6OQH58rtfe7OvV3_za4nuMGm1PA5bDKTwhKXvVUCVsm3Djwvg2RHA_K9Q0J0GlzmzSgv3GeKZVZ5oM6GMx1pKVjerDNkiJv3sslVTTbHiaTCXe23aDisj7ZfEAjPfiG/w592-h640/Logic%20App%20run%20history.JPG" title="Logic App run history" width="592" /></a></div><br /><span style="font-family: verdana; font-size: medium;">As can be seen value was assigned to LastRunDateTime, to validate let's check in ConfigTable in Table Storage</span></div><div><span style="font-family: verdana;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSHiv0yv5RCLupklQHgotPV-xa8iD1TUoW3YM7BzyUS5u2U-Q1dggX9KWrXv-LRE08MoF9p0P1CQhz-haBDtssXmppWntWPXIyPFaS73iUHhmw-vNvEYi0Dy6R0Txz4XIARjIjcF66QmRN_qjU44l0gH6bPBkthNuFinL63kjQ5BJi39ElMXfdDa56/s1593/entity%20inserted%20in%20table%20storage.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="entity inserted in table storage" border="0" data-original-height="368" data-original-width="1593" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSHiv0yv5RCLupklQHgotPV-xa8iD1TUoW3YM7BzyUS5u2U-Q1dggX9KWrXv-LRE08MoF9p0P1CQhz-haBDtssXmppWntWPXIyPFaS73iUHhmw-vNvEYi0Dy6R0Txz4XIARjIjcF66QmRN_qjU44l0gH6bPBkthNuFinL63kjQ5BJi39ElMXfdDa56/w640-h148/entity%20inserted%20in%20table%20storage.JPG" title="entity inserted in table storage" width="640" /></a></div><br /><span style="font-family: verdana; font-size: medium;">So a row gets added in the table implicitly by logic app (It created), now again I manually triggered the logic app to test the Update functionality</span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimb8pJ3J4Rco9Z_alUn1FQTi-RoiFnWlCdmhKDE0EvCZ4jKzxAvcKzk7QNVTVw3TLR7bK8X_6B50ElCuZ4klWvKpTbqenirD3lOcK_1N2u-5RtWaRy7fu_B44D3mUc2kl14jEFkvlaHXzzK-ZOAFKhJ7fbi06eP2t555um8Bg2fxgLiSbI4LkqiVR_/s1618/updated%20entity%20in%20table%20using%20logic%20app.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="updated entity in table using logic app" border="0" data-original-height="398" data-original-width="1618" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimb8pJ3J4Rco9Z_alUn1FQTi-RoiFnWlCdmhKDE0EvCZ4jKzxAvcKzk7QNVTVw3TLR7bK8X_6B50ElCuZ4klWvKpTbqenirD3lOcK_1N2u-5RtWaRy7fu_B44D3mUc2kl14jEFkvlaHXzzK-ZOAFKhJ7fbi06eP2t555um8Bg2fxgLiSbI4LkqiVR_/w640-h158/updated%20entity%20in%20table%20using%20logic%20app.JPG" title="updated entity in table using logic app" width="640" /></a></div><span style="font-size: medium;"><br /><span style="font-family: verdana;">And yes the entity was updated(replaced) with new value as expected.</span></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><h3 style="font-family: "Times New Roman";"><span style="font-family: verdana;"><span>Learn More about Logic App</span></span></h3><h3 style="font-family: "Times New Roman";"><div style="font-size: medium; font-weight: 400;"><span style="font-family: verdana;"><span style="font-size: medium;"><ul><li><u style="color: #0000ee;"><a href="https://www.tech-findings.com/2023/09/configure-Logic-App-Standard-workflow-behind-Azure-APIM.html" target="_blank">How to configure Logic App Standard workflow behind Azure APIM</a></u></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/08/How-to-Query-Azure-Table-storage-from-Logic-App%20.html" target="_blank">How to Query Azure Table storage from Logic App | How to filter results of Azure Table storage from Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/expressions-in-logic-apps.html" target="_blank">Understanding expressions in Logic Apps | Frequently used expressions in Logic Apps | What is expressions in Logic App</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/05/How-to-use-Logic-app-Run-History.html" target="_blank">How to use Logic app Run History | How to troubleshoot Logic App workflow execution</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2023/04/logic-app-slack-channel-integration.html" target="_blank">Logic App and Slack - Sending messages to slack channel | Logic app and slack integration | Connecting Logic App to Slack channel</a></u></span></li><li><span style="color: #0000ee;"><u><a href="https://www.tech-findings.com/2022/12/how-to-access-application-settings-from-logic-app-standard-workflow.html" target="_blank">How to access Application settings fields value from Logic app Standard workflow | Using Application settings as configuration store for Logic app standard workflow</a></u></span></li><li><a href="https://www.tech-findings.com/2022/12/Developing-Logic-app-standard-workflow-locally-deploying-to-Azure.html" target="_blank">Developing Logic app standard workflow which uses Map locally and deploying to Azure</a></li><li><a href="https://www.tech-findings.com/2022/12/developing-logic-app-standard-workflow.html" target="_blank">Developing Logic App Standard Workflow Using Visual Studio Code | Create Logic App Standard Workflow Using Visual Studio Code</a></li><li><a href="https://www.tech-findings.com/2022/12/logic-app-xml-to-json-using-liquid-map.html" target="_blank">Logic App - Xml to Json using Liquid Map | Append in Liquid Map</a></li><li><a href="https://www.tech-findings.com/2022/11/Azure-Event-Grid-Custom-Topic-LogicApp.html" target="_blank">How to use Azure Event Grid Custom Topic | Publishing and Subscribing from Azure Event Grid Custom Topic using Logic App</a></li><li><a href="https://www.tech-findings.com/2022/11/read-write-azure-table-storage-logic-app.html" target="_blank">Using Azure Storage Account Table as Config Store for Logic Apps | How to read and write from Logic App to Azure Storage Account Table</a></li><li><a href="https://www.tech-findings.com/2022/08/get-logic-app-name-in-logic-app.html" target="_blank">Get Logic App Name in Logic App</a></li><li><a href="https://www.tech-findings.com/2022/07/logic-App-consumption-logic-app-standard.html" target="_blank">Difference between Logic App Consumption and Logic App Standard </a></li><li><a href="https://www.tech-findings.com/2022/07/overview-logic-app-standard.html" target="_blank">Getting Started with Logic App Standard | Overview of Logic App Standard | Basics of Logic App Standard</a></li><li><a href="https://www.tech-findings.com/2022/07/find-count-of-Logic-App-executions.html" target="_blank">How to find count of Logic App executions using Azure Portal</a></li><li><a href="https://www.tech-findings.com/2022/07/azure-functions-vs-azure-logic-app.html" target="_blank">Azure Functions vs Azure Logic App | Difference between Azure Functions and Azure Logic App</a></li><li><a href="https://www.tech-findings.com/2022/06/Logic-App-Liquid-Map-Basics.html" target="_blank">Getting started with Logic App : Liquid Map | Using Liquid template in Logic app</a></li><li><a href="https://www.tech-findings.com/2022/06/Exception-Handling-in-Logic-app.html" target="_blank">How to get actual error message of Scope in Logic App | Exception Handling in Logic app</a></li><li><a href="https://www.tech-findings.com/2019/01/Interview-questions-answers-LogicApps.html" target="_blank">Interview questions and answers on Logic Apps | Interview questions for azure logic app developers</a></li><li><span><a href="https://www.tech-findings.com/2022/05/How-to-execute-Stored-Procedure-in-Logic-App.html" target="_blank">How to execute Stored Procedure in Logic App | How to connect to SQL in Logic App</a></span></li><li><a href="https://www.tech-findings.com/2022/05/how-to-get-current-date-in-logic-app.html" target="_blank">How to get current date in logic app | How to format date time in Logic App</a></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/07/BizTalk-Developer-getting-started-with-Logic-App.html" target="_blank">BizTalk Developer getting started with Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2018/03/getting-started-with-logic-apps-fundamentals.html" target="_blank">Getting Started with Logic Apps - Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/10/Getting-Started-with-Logic-Apps-Enterprise-Application-Integration.html" target="_blank">Getting Started with Logic Apps - Enterprise Application Integration</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/09/getting-started-with-logic-apps-as2.html" target="_blank">Getting Started with Logic Apps - AS2</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/edi-x12-fundamentals.html" target="_blank">Getting Started with Logic Apps - EDI X12 Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/getting-started-with-logic-apps-xml-to-EDI-x12.html" target="_blank">Getting Started with Logic Apps - XML to EDI X12</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/getting-started-with-logic-apps-edi-x12-to-xml.html" target="_blank">Getting Started with Logic Apps - EDI X12 to XML</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/10/getting-started-with-logic-apps-what-happened-to-request.html" target="_blank">Getting Started with Logic Apps - What happened to the Request?</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-Multiple-Records-In-On-Prem-SQL-Using-Logic-App.html" target="_blank">Inserting Multiple Records In On Prem SQL Using Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-data-in-On-Premises-SQL-Database-using-Logic-Apps.html" target="_blank">Inserting data in On Premises SQL Database using Logic Apps</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/installing-and-configuring-on-premises-data-gateway.html" target="_blank">Installing and Configuring On Premises Data Gateway - By adding user to Active Directory</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/XML-Batching-Aggregation-in-Logic-App.html" target="_blank">XML Batching(Aggregation) in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/batching-aggregating-messages-in-logic-app.html" target="_blank">Batching(Aggregating) messages in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/Debatching-Splitting-JSON-Message-in-Logic-Apps.html" target="_blank">Debatching(Splitting) JSON Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/debatching-splitting-xml-message-in-Logic-App.html" target="_blank">Debatching(Splitting) XML Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/securing-logic-app-with-azure-active-directory.html" target="_blank">Securing Logic App with Azure Active Directory authentication</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/removing-ns0-prefix-from-xml-output.html" target="_blank">Removing ns0: prefix from xml output from BizTalk/Logic app XSLT map</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/01/using-managed-identity-in-logic-apps.html" target="_blank">Using Managed Identity in Logic Apps for Calling Active Directory Secured Function App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/logic-apps-fetching-isa-and-gs-segment.html" target="_blank">Logic Apps : Fetching ISA and GS Segment Values From Interchange Envelope and Mapping</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2021/07/logic-apps-for-each-inside-for-each.html" target="_blank">Logic Apps : For Each Inside a For Each - Fetching values from field in an array inside an array</a></span></span></li></ul></span></span></div></h3></span></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0tag:blogger.com,1999:blog-4148344860241019504.post-23817424517496376712022-11-04T20:35:00.003+05:302022-12-24T11:39:33.687+05:30NestedWorkflowDoesNotContainResponseAction. To wait on nested workflow 'XXXX', it must contain a response action | Calling Logic app in a Logic App | Nested Logic App<b>{tocify} $title={Table of Contents}</b>
<br />
<div><b><br /></b></div><div><b><br /></b></div><h3 style="text-align: left;"><b><span style="font-family: verdana;">Issue</span></b></h3><div><b><br /></b></div><div><span style="font-family: verdana;">In a workflow there was a need to use already existing workflow(logic app) - thus added an action which calls a Logic app and all looked fine.</span></div><div><span style="font-family: verdana;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlPaXba7uEywB_0vyxqpr9u1WvJw1t1K-zYyZwgAWIu8dk_l1xRC6WpGPSQMeYHZZRBAXQw01PdPg5UunKkVVlxkEDPimyY5auC_dBRj2od5pmiVnH1z4jX47FYyGyaWMcU9X06FogQyMDv7J8Hc1ZVazVaIdsDH8a0xAzxx9nppdNrfKSFncwuNlM/s632/Add%20logic%20app%20Action.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="Add logic app Action in logic app" border="0" data-original-height="362" data-original-width="632" height="366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlPaXba7uEywB_0vyxqpr9u1WvJw1t1K-zYyZwgAWIu8dk_l1xRC6WpGPSQMeYHZZRBAXQw01PdPg5UunKkVVlxkEDPimyY5auC_dBRj2od5pmiVnH1z4jX47FYyGyaWMcU9X06FogQyMDv7J8Hc1ZVazVaIdsDH8a0xAzxx9nppdNrfKSFncwuNlM/w640-h366/Add%20logic%20app%20Action.JPG" title="Add logic app Action in logic app" width="640" /></a></div><br /><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><b>Note</b> : Only http trigger based logic app can be called.</span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">However, at run time, got the following error</span></div><div><br /></div><div><b><br /></b></div><div><b><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWxL1DKkCFOi_FGeAd7AMh5TJ40I27sYLcm9lo9t7dMkiBaaGCzz_ixVba87_tb0bLu5-6GcrYHTh6GU49bq5Yzuvxj-QwbJ2Tsekfy75TqKa-iA566pkK2RTCvyneOoEvUt0NnG25qy4Sg3YDjhSGjriYr1kvausCZulaz0tvN3a9JuqZ5bwJebxv/s633/NestedWorkflowDoesNotContainResponseAction.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="NestedWorkflowDoesNotContainResponseAction" border="0" data-original-height="235" data-original-width="633" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWxL1DKkCFOi_FGeAd7AMh5TJ40I27sYLcm9lo9t7dMkiBaaGCzz_ixVba87_tb0bLu5-6GcrYHTh6GU49bq5Yzuvxj-QwbJ2Tsekfy75TqKa-iA566pkK2RTCvyneOoEvUt0NnG25qy4Sg3YDjhSGjriYr1kvausCZulaz0tvN3a9JuqZ5bwJebxv/w640-h238/NestedWorkflowDoesNotContainResponseAction.JPG" title="NestedWorkflowDoesNotContainResponseAction" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><br /></b></div><div><b><br /></b></div><div><b><br /></b></div><div><span face=""Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif" style="background-color: #fed9cc; color: #323130; font-size: 12px; font-weight: 700;">NestedWorkflowDoesNotContainResponseAction</span><span face=""Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif" style="background-color: #fed9cc; color: #323130; font-size: 12px;">. To wait on nested workflow '3d9643d5977b44c48d632218e5f39407', it must contain a response action.</span></div><div><span face=""Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif" style="background-color: #fed9cc; color: #323130; font-size: 12px;"><br /></span></div><div><span face=""Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif" style="background-color: #fed9cc; color: #323130; font-size: 12px;"><br /></span></div><div><br /></div><div><span face=""Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif" style="background-color: #fed9cc; color: #323130; font-size: 12px;"><br /></span></div><div><h3><span style="font-family: verdana;">Why it happened</span></h3></div><div><br /></div><div><span style="font-family: verdana;">As the error says, " Nested Workflow Does Not Contain Response Action" - that means the child logic app which is been called is not having a <b>Response</b> Action in it.</span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">As of now, starting (fire and forget) a Logic app is not supported and only calling a logic app (getting response back) from a logic app is supported.</span></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><h3>What to do</h3></div><div><br /></div><div><span style="font-family: verdana;">We just need to do what is required and supported i.e., adding a response action in child logic app.</span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">So, I added Response action in the child logic app and the error was gone.</span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">But, this is not what every time we need - sometimes we just need to start the logic app(no response expected).</span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><b>Is there a way to achieve this? - Starting Logic App from Logic App</b></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">Yes, in order to achieve this we need to use <b>HTTP</b> action rather than <b>Logic App</b> action.</span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><br /></span></div><h3 style="text-align: left;"><span style="font-family: verdana;">Summary</span></h3><div><span style="font-family: verdana;">In a scenario where there is a need to use existing http based Logic app (child) from a Logic App (Parent), based on if child logic app is going to return response or not, following of the options can be chosen from</span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;">1. Use Azure Logic app action - If response is expected. </span></div><div><span style="font-family: verdana;">2. Use Http action - If response is not required.</span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><br /></span></div><div><h3><span style="font-family: verdana;"><span style="font-size: 18.72px;">Learn More about Logic App</span></span></h3><div><span style="font-family: verdana;"><span style="font-size: medium;"><ul><li><a href="https://www.tech-findings.com/2022/12/Developing-Logic-app-standard-workflow-locally-deploying-to-Azure.html" target="_blank">Developing Logic app standard workflow which uses Map locally and deploying to Azure</a></li><li><a href="https://www.tech-findings.com/2022/12/developing-logic-app-standard-workflow.html" target="_blank">Developing Logic App Standard Workflow Using Visual Studio Code | Create Logic App Standard Workflow Using Visual Studio Code</a></li><li><a href="https://www.tech-findings.com/2022/12/logic-app-xml-to-json-using-liquid-map.html" target="_blank">Logic App - Xml to Json using Liquid Map | Append in Liquid Map</a></li><li><a href="https://www.tech-findings.com/2022/11/Azure-Event-Grid-Custom-Topic-LogicApp.html" target="_blank">How to use Azure Event Grid Custom Topic | Publishing and Subscribing from Azure Event Grid Custom Topic using Logic App</a></li><li><a href="https://www.tech-findings.com/2022/11/read-write-azure-table-storage-logic-app.html" target="_blank">Using Azure Storage Account Table as Config Store for Logic Apps | How to read and write from Logic App to Azure Storage Account Table</a></li><li><a href="https://www.tech-findings.com/2022/08/get-logic-app-name-in-logic-app.html" target="_blank">Get Logic App Name in Logic App</a></li><li><a href="https://www.tech-findings.com/2022/07/logic-App-consumption-logic-app-standard.html" target="_blank">Difference between Logic App Consumption and Logic App Standard </a></li><li><a href="https://www.tech-findings.com/2022/07/overview-logic-app-standard.html" target="_blank">Getting Started with Logic App Standard | Overview of Logic App Standard | Basics of Logic App Standard</a></li><li><a href="https://www.tech-findings.com/2022/07/find-count-of-Logic-App-executions.html" target="_blank">How to find count of Logic App executions using Azure Portal</a></li><li><a href="https://www.tech-findings.com/2022/07/azure-functions-vs-azure-logic-app.html" target="_blank">Azure Functions vs Azure Logic App | Difference between Azure Functions and Azure Logic App</a></li><li><a href="https://www.tech-findings.com/2022/06/Logic-App-Liquid-Map-Basics.html" target="_blank">Getting started with Logic App : Liquid Map | Using Liquid template in Logic app</a></li><li><a href="https://www.tech-findings.com/2022/06/Exception-Handling-in-Logic-app.html" target="_blank">How to get actual error message of Scope in Logic App | Exception Handling in Logic app</a></li><li><a href="https://www.tech-findings.com/2019/01/Interview-questions-answers-LogicApps.html" target="_blank">Interview questions and answers on Logic Apps | Interview questions for azure logic app developers</a></li><li><span><a href="https://www.tech-findings.com/2022/05/How-to-execute-Stored-Procedure-in-Logic-App.html" target="_blank">How to execute Stored Procedure in Logic App | How to connect to SQL in Logic App</a></span></li><li><a href="https://www.tech-findings.com/2022/05/how-to-get-current-date-in-logic-app.html" target="_blank">How to get current date in logic app | How to format date time in Logic App</a></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/07/BizTalk-Developer-getting-started-with-Logic-App.html" target="_blank">BizTalk Developer getting started with Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2018/03/getting-started-with-logic-apps-fundamentals.html" target="_blank">Getting Started with Logic Apps - Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/10/Getting-Started-with-Logic-Apps-Enterprise-Application-Integration.html" target="_blank">Getting Started with Logic Apps - Enterprise Application Integration</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/09/getting-started-with-logic-apps-as2.html" target="_blank">Getting Started with Logic Apps - AS2</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/edi-x12-fundamentals.html" target="_blank">Getting Started with Logic Apps - EDI X12 Fundamentals</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/11/getting-started-with-logic-apps-xml-to-EDI-x12.html" target="_blank">Getting Started with Logic Apps - XML to EDI X12</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/getting-started-with-logic-apps-edi-x12-to-xml.html" target="_blank">Getting Started with Logic Apps - EDI X12 to XML</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2019/10/getting-started-with-logic-apps-what-happened-to-request.html" target="_blank">Getting Started with Logic Apps - What happened to the Request?</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-Multiple-Records-In-On-Prem-SQL-Using-Logic-App.html" target="_blank">Inserting Multiple Records In On Prem SQL Using Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/Inserting-data-in-On-Premises-SQL-Database-using-Logic-Apps.html" target="_blank">Inserting data in On Premises SQL Database using Logic Apps</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2017/06/installing-and-configuring-on-premises-data-gateway.html" target="_blank">Installing and Configuring On Premises Data Gateway - By adding user to Active Directory</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/XML-Batching-Aggregation-in-Logic-App.html" target="_blank">XML Batching(Aggregation) in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/batching-aggregating-messages-in-logic-app.html" target="_blank">Batching(Aggregating) messages in Logic App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/Debatching-Splitting-JSON-Message-in-Logic-Apps.html" target="_blank">Debatching(Splitting) JSON Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/debatching-splitting-xml-message-in-Logic-App.html" target="_blank">Debatching(Splitting) XML Message in Logic Apps - ForEach and SplitOn</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/02/securing-logic-app-with-azure-active-directory.html" target="_blank">Securing Logic App with Azure Active Directory authentication</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/removing-ns0-prefix-from-xml-output.html" target="_blank">Removing ns0: prefix from xml output from BizTalk/Logic app XSLT map</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/01/using-managed-identity-in-logic-apps.html" target="_blank">Using Managed Identity in Logic Apps for Calling Active Directory Secured Function App</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2020/03/logic-apps-fetching-isa-and-gs-segment.html" target="_blank">Logic Apps : Fetching ISA and GS Segment Values From Interchange Envelope and Mapping</a></span></span></li><li><span style="font-family: verdana;"><span><a href="https://www.tech-findings.com/2021/07/logic-apps-for-each-inside-for-each.html" target="_blank">Logic Apps : For Each Inside a For Each - Fetching values from field in an array inside an array</a></span></span></li></ul></span></span></div></div><div><br /></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><br /></span></div>Maheshkumar Tiwarihttp://www.blogger.com/profile/14535330323990019022noreply@blogger.com0