<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Azure Logic Apps</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/logicapps/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/logicapps/feed.xml</link>
    <description>Team site for the Azure Logic Apps Service</description>
    <lastBuildDate>Fri, 10 Aug 2018 00:35:28 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Our Integration Product Roadmap</title>
      <link>https://docs.microsoft.com/archive/blogs/logicapps/our-integration-product-roadmap</link>
      <pubDate>Thu, 09 Aug 2018 17:33:47 GMT</pubDate>
      <dc:creator><![CDATA[Jon Fancey]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/logicapps/?p=1925</guid>
      <description><![CDATA[Microsoft customers and partners are asking what our cloud-hybrid integration roadmap is for BizTalk...]]></description>
      <content:encoded><![CDATA[Microsoft customers and partners are asking what our cloud-hybrid integration roadmap is for BizTalk Server and beyond. BizTalk Server 2016 is our tenth release of a product that first shipped in December, 2000. Much has changed in the past 18 years, the rise of the Internet, the move to the cloud and the advent of Integration Platforms as a Service (iPaaS) being just a few. One thing has prevailed over these many years, existing enterprise customers running business critical workloads using BizTalk Server on-premises - and Microsoft’s continued commitment and support to these customers.

We want to confirm our commitment to BizTalk Server by providing clarity on our cloud-hybrid integration roadmap, of which BizTalk Server is a key part. Shortly after we released BizTalk Server 2016, we introduced the concept of Feature Packs – incremental product improvements and additions that facilitated a much faster ship cycle than was before possible. We believe, and have also heard from customers, that this approach is advantageous for a number of reasons: quicker time to get requested features or improvements; fewer costly upgrade cycles; continuous product investments. Yet, we understand that this model does not suit every customer, especially those that require more notice, planning and preparation for consuming both new platforms and new functionality.

Therefore, we are pleased to announce that we have begun work on BizTalk Server “vNext”, the next major release of BizTalk Server. <strong>BizTalk Server “vNext”</strong> will contain all previously released feature packs, platform support for the latest versions of Windows Server, SQL Server and Visual Studio, as well as a supported upgrade path from BizTalk Server 2013 R2 and 2016. The new release of BizTalk Server will be accompanied by a vNext of the <strong>Adapter Pack</strong> and <strong>Host Integration Server</strong> as well. We are in the early stages of planning this next release and more details will follow in due course, but we expect to make it generally available <strong>within roughly 9 months of the general availability of Windows Server 2019</strong>.

Alongside BizTalk Server, we will also continue to expand the capabilities of our iPaaS offering providing additional hosting options for Azure Integration Services, which includes Logic Apps, starting with the ability to run on-premises. We expect to deliver these capabilities during calendar year 2019.

With two offerings, BizTalk Server and Logic Apps, both capable of running on-premises and in Azure, many customers will be evaluating migration from BizTalk Server to Logic Apps. We understand this and are planning guidance on migration to assist customers’ decision-making and investments to enable this move. We know there are functional gaps between BizTalk Server and Logic Apps, and we are hard at work closing them. Our Azure Integration Services vision is to enable all customers to move to a modern, holistic and rich iPaaS platform that can meet the challenges of all their integration workloads, both today and in the future wherever they reside.]]></content:encoded>
    </item>
    <item>
      <title>Gartner recognizes Microsoft as a leader in enterprise integration</title>
      <link>https://docs.microsoft.com/archive/blogs/logicapps/gartner-recognizes-microsoft-as-a-leader-in-enterprise-integration</link>
      <pubDate>Fri, 20 Apr 2018 11:56:28 GMT</pubDate>
      <dc:creator><![CDATA[Jon Fancey]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/logicapps/?p=1905</guid>
      <description><![CDATA[We're super-happy to share that Azure Logic Apps, as one of the components of Azure Integration...]]></description>
      <content:encoded><![CDATA[We're super-happy to share that Azure Logic Apps, as one of the components of Azure Integration Services has been recognized as a leader in Gartner’s Magic Quadrant for Enterprise Integration Platform as a Service (eiPaaS), 2018.

Microsoft’s global presence, strong growth, and platform versatility have been recognized as providing customers the confidence to choose Azure as the cloud platform to automate, integrate, and optimize their business processes by connecting on-premises applications, SaaS, data as well as API-enable their network of applications and endpoints with managed integration services.

You can learn more about this announcement by visiting <a href="https://azure.microsoft.com/en-us/blog/gartner-recognizes-microsoft-as-a-leader-in-enterprise-integration/">the Azure blog post</a> on Azure.com.]]></content:encoded>
    </item>
    <item>
      <title>Detect and suspend duplicate AS2 messages in Logic App</title>
      <link>https://docs.microsoft.com/archive/blogs/logicapps/detect-and-suspend-duplicate-as2-messages-in-logic-app</link>
      <pubDate>Mon, 12 Feb 2018 07:23:11 GMT</pubDate>
      <dc:creator><![CDATA[Sumit Kumar (Microsoft)]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/logicapps/?p=1837</guid>
      <description><![CDATA[We have recently introduced duplicate message detection feature for AS2 messages in Logic App. This...]]></description>
      <content:encoded><![CDATA[We have recently introduced duplicate message detection feature for AS2 messages in Logic App. This blog post describes how to enable this feature and lists few example scenarios.
<h4><strong>Configuring duplicate detection in agreement settings:</strong></h4>
Navigate to your Integration Account -&gt; Agreements -&gt; <em>&lt;AS2 agreement&gt;</em> -&gt; Edit -&gt; Receive Settings -&gt; Disallow Message ID duplicates

<a href="https://msdnshared.blob.core.windows.net/media/2018/02/AgreementSetting.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/02/AgreementSetting-1024x557.png" alt="" width="1024" height="557" class="aligncenter wp-image-1845 size-large" /></a>

&nbsp;

Look for the property <strong>isAS2MessageDuplicate</strong> in the output of the decode action to check whether the message was duplicate or not.
<h4><strong>Examples:</strong></h4>
<ol>
 	<li>Check for duplicate messages is true and suspend duplicate messages is false
<ul>
 	<li>Agreement:<a href="https://msdnshared.blob.core.windows.net/media/2018/02/IsDuplicateEnabled_SuspendFalse_Agreement.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/02/IsDuplicateEnabled_SuspendFalse_Agreement.png" alt="" width="366" height="230" class="size-full wp-image-1865 aligncenter" /></a></li>
 	<li>AS2 Decode output:<a href="https://msdnshared.blob.core.windows.net/media/2018/02/IsDuplicateEnabled_SuspendFalse.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/02/IsDuplicateEnabled_SuspendFalse.png" alt="" width="555" height="375" class="wp-image-1855 size-full aligncenter" /></a></li>
</ul>
</li>
 	<li>Check for duplicate messages is true and suspend duplicate messages is true
<ul>
 	<li>Agreement:<a href="https://msdnshared.blob.core.windows.net/media/2018/02/IsDuplicateEnabled_SuspendTrue_Agreement.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/02/IsDuplicateEnabled_SuspendTrue_Agreement.png" alt="" width="355" height="228" class="aligncenter size-full wp-image-1875" /></a></li>
 	<li>AS2 Decode output:
<a href="https://msdnshared.blob.core.windows.net/media/2018/02/IsDuplicateEnabled_SuspendTrue.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/02/IsDuplicateEnabled_SuspendTrue.png" alt="" width="818" height="372" class="aligncenter size-full wp-image-1857" /></a>Note that <em>isAS2MessageDuplicate</em> property gets set to false here. That's because whenever there's a failure in the message, all of the message metadata like <em>isAS2MessageSigned</em>, <em>isAS2MessageCompressed</em>, etc. are set to false. The full failure message looks like this:
<div>
<div><em>"failed/failure: general-ediint-error-encountered Error: Message with AS2-From: Contoso, AS2-To: Fabrikam and MessageId: &lt;RD00155D5C270B_CEDA56D1-FD2A-427B-83E7-918BFE42998A&gt; is suspended as duplicate per party "Contoso" configuration settings"</em></div>
</div>
<div></div></li>
</ul>
</li>
</ol>
<h4><strong>Note:</strong></h4>
<ul>
 	<li>Duplicate check is done only for received messages while decoding.</li>
 	<li>Message Id is used as the unique identifier of the message to identify duplicates.</li>
</ul>]]></content:encoded>
    </item>
    <item>
      <title>Introducing the Liquid connector - transform JSON to JSON, JSON to Text, XML to JSON and XML to Text</title>
      <link>https://docs.microsoft.com/archive/blogs/logicapps/introducing-the-liquid-connector-transform-json-to-json-json-to-text-xml-to-json-and-xml-to-text</link>
      <pubDate>Wed, 06 Dec 2017 15:10:22 GMT</pubDate>
      <dc:creator><![CDATA[Sumit Kumar (Microsoft)]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/logicapps/?p=1627</guid>
      <description><![CDATA[We have recently added the Liquid connector to Logic Apps which provides four transform actions....]]></description>
      <content:encoded><![CDATA[We have recently added the <strong>Liquid</strong> connector to Logic Apps which provides four transform actions. These actions use maps, which are written using <a href="https://shopify.github.io/liquid/"><strong>Liquid Template Language</strong></a>, to transform the data. Following are the four transforms available:

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/LiquidActions.png"></a><a href="https://msdnshared.blob.core.windows.net/media/2017/12/LiquidActions.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/12/LiquidActions.png" alt="" width="605" height="603" class="aligncenter wp-image-1637 size-full" /></a>

To use the liquid connector, the logic app must be associated with an Integration Account and the transform maps must be uploaded to that Integration Account. You can configure Integration Account in the <em><strong></strong>Workflow Settings <strong></strong></em>as shown below<em>.</em>

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/WorkflowSettings.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/12/WorkflowSettings.png" alt="" width="536" height="615" class="wp-image-1647 size-full aligncenter" /></a>

Here's how you can upload a liquid map to an Integration Account. Make sure you select <em>l</em><em>iquid</em> in the <em>Map type </em>dropdown.
<ol>
 	<li><a href="https://msdnshared.blob.core.windows.net/media/2017/12/UploadLiquidMap2.png"></a>Go to your Integration Account's overview blade and click on <strong>Maps</strong><em>.
<a href="https://msdnshared.blob.core.windows.net/media/2017/12/UploadLiquidMap11.png"></a><a href="https://msdnshared.blob.core.windows.net/media/2017/12/UploadLiquidMap11.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/12/UploadLiquidMap11.png" alt="" width="700" height="374" class="aligncenter wp-image-1775" /></a>
</em></li>
 	<li>Click on <strong>Add</strong>. Provide a name for the map, select <em>liquid</em> for <em>Map type</em> and upload the map file.
<img src="https://msdnshared.blob.core.windows.net/media/2017/12/UploadLiquidMap2.png" alt="" width="700" height="204" class="aligncenter wp-image-1666" /></li>
</ol>
Here are few examples to demonstrate each of the actions:
<ol>
 	<li>
<h5><strong>JSON to JSON</strong></h5>
<ul>
 	<li>Map <em>(<a href="https://msdnshared.blob.core.windows.net/media/2017/12/AddressMap.liquid.txt">AddressMap.liquid</a>)</em>
<em>{</em>
<em> "name": "{{content.name}}",</em>
<em> "address": "{{content.streetAddress | Append: ', ' | Append: content.city | Append: ', ' | Append: content.state | Append: '.'}}"</em>
<em> }</em></li>
 	<li>Action inputs
<a href="https://msdnshared.blob.core.windows.net/media/2017/12/JsonToJsonAddressMap.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/12/JsonToJsonAddressMap.png" alt="" width="605" height="296" class="aligncenter wp-image-1675 size-full" /></a></li>
 	<li>Output
<a href="https://msdnshared.blob.core.windows.net/media/2017/12/AddressMapOutput.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/12/AddressMapOutput.png" alt="" width="615" height="595" class="aligncenter size-full wp-image-1685" /></a></li>
</ul>
</li>
 	<li>
<h5><strong>JSON to Text</strong></h5>
<ul>
 	<li>Map (<em><a href="https://msdnshared.blob.core.windows.net/media/2017/12/SimpleJsonToText.liquid.txt">SimpleJsonToText.liquid</a></em>)
<em>{{content.firstName | Append: ' ' | Append: content.lastName}}</em></li>
 	<li>Action inputs
<a href="https://msdnshared.blob.core.windows.net/media/2017/12/JsonToText1.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/12/JsonToText1.png" alt="" width="603" height="194" class="aligncenter wp-image-1715 size-full" /></a></li>
 	<li>Output
<a href="https://msdnshared.blob.core.windows.net/media/2017/12/JsonToTextOutput2.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/12/JsonToTextOutput2.png" alt="" width="610" height="590" class="aligncenter size-full wp-image-1757" /></a></li>
</ul>
</li>
 	<li>
<h5><strong>XML to JSON</strong></h5>
<ul>
 	<li>Map (<em><a href="https://msdnshared.blob.core.windows.net/media/2017/12/ProductXmlToJson.liquid.txt">ProductXmlToJson.liquid</a></em>)
<em>{</em>
<em> "name": "{{content.product.name}}",</em>
<em> "price": {{content.product.price}},</em>
<em> "transactionReferenceNumber": {{content.product.transactionReferenceNumber}}</em>
<em>}</em></li>
 	<li>Action inputs
<a href="https://msdnshared.blob.core.windows.net/media/2017/12/XmlToJson.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/12/XmlToJson.png" alt="" width="606" height="367" class="aligncenter wp-image-1736 size-full" /></a></li>
 	<li>Output
<a href="https://msdnshared.blob.core.windows.net/media/2017/12/XmlToJsonOutput.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/12/XmlToJsonOutput.png" alt="" width="613" height="590" class="aligncenter wp-image-1726 size-full" /></a></li>
</ul>
</li>
 	<li>
<h5><strong>XML to Text</strong></h5>
<ul>
 	<li>Map (<em><a href="https://msdnshared.blob.core.windows.net/media/2017/12/FullNameXmlToText.liquid.txt">FullNameXmlToText.liquid</a> </em>)
<em>{{content.student.firstName | Append: ' ' | Append: content.student.lastName}}</em></li>
 	<li>Action inputs
<a href="https://msdnshared.blob.core.windows.net/media/2017/12/XmlToText1.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/12/XmlToText1.png" alt="" width="607" height="149" class="aligncenter wp-image-1745 size-full" /></a></li>
 	<li>Output
<a href="https://msdnshared.blob.core.windows.net/media/2017/12/XmlToTextOutput.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/12/XmlToTextOutput.png" alt="" width="611" height="589" class="aligncenter wp-image-1705 size-full" /></a></li>
</ul>
</li>
</ol>
Detailed documentation is available here: <a href="https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-enterprise-integration-liquid-transform">https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-enterprise-integration-liquid-transform</a>]]></content:encoded>
    </item>
    <item>
      <title>Logic Apps Management solution updated - search runs by tracked properties, bulk re-submit and more...</title>
      <link>https://docs.microsoft.com/archive/blogs/logicapps/logic-apps-management-solution-updated-search-runs-by-tracked-properties-bulk-re-submit-and-more</link>
      <pubDate>Tue, 07 Nov 2017 11:26:12 GMT</pubDate>
      <dc:creator><![CDATA[Sumit Kumar (Microsoft)]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/logicapps/?p=1536</guid>
      <description><![CDATA[We have added three more features in the Logic Apps Management solution for Log Analytics (OMS)....]]></description>
      <content:encoded><![CDATA[We have added three more features in the Logic Apps Management solution for Log Analytics (OMS).
<ol>
 	<li>
<h4><strong>View and search by tracked properties.</strong></h4>
<strong></strong><strong></strong><strong>View:</strong> The logic apps which have tracked properties in any of the actions will have a <strong>View</strong> button in the <em>Tracked Properties</em> column which will show accumulated view of the tracked properties of all the actions in form of a JSON object. The top level keys of the JSON object are the action names and the values are tracked properties object of the corresponding action.

<a href="https://msdnshared.blob.core.windows.net/media/2017/11/TrackedPropertiesView2.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/11/TrackedPropertiesView2-1024x336.png" alt="" width="1024" height="336" class="alignnone wp-image-1565 size-large" /></a>
<a href="https://msdnshared.blob.core.windows.net/media/2017/11/TrackedPropertiesSearch1.png"></a><a href="https://msdnshared.blob.core.windows.net/media/2017/11/TrackedPropertiesView.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/11/TrackedPropertiesView-1024x336.png" alt="" width="1024" height="336" class="alignnone wp-image-1537 size-large" /></a>

<strong>Search: </strong>Tracked properties column provides string based search which will search over the full JSON object. For instance, if you are looking for all logic app runs which processed a particular order, you can search by the order number (Pre-req: order number should be added in the tracked properties of actions)

<img src="https://msdnshared.blob.core.windows.net/media/2017/11/TrackedPropertiesSearch1-1024x335.png" alt="" width="1024" height="335" class="alignnone wp-image-1546 size-large" />

<a href="https://msdnshared.blob.core.windows.net/media/2017/11/TrackedPropertiesSearch2.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/11/TrackedPropertiesSearch2-1024x278.png" alt="" width="1024" height="278" class="alignnone wp-image-1556 size-large" />
</a>
<strong>Do more with tracked properties:</strong> This <a href="https://blogs.msdn.microsoft.com/logicapps/2017/11/03/monitor-logic-app-action-inputsoutputs-in-log-analytics-oms-using-tracked-properties/">blogpost</a> provides more info on how you can add tracked properties in Logic App actions and create custom OMS dashboards to track them.</li>
 	<li>
<h4><strong>Action and trigger failures by category</strong></h4>
<a href="https://msdnshared.blob.core.windows.net/media/2017/11/ActionsDashboard1.png"></a>We have added a new blade on the <em>Logic Apps Dashboard</em> which shows failed actions and triggers categorized by error code. This will help in quickly analyzing and debugging common patterns of action failures. Click on any row in the list to navigate to the <em>Actions and Triggers Dashboard</em>  with a list of  all action and trigger failures of corresponding error code type. Clicking on the <em>donut</em> or <em>See all...</em> will take you to the list of all action and trigger failures.

<a href="https://msdnshared.blob.core.windows.net/media/2017/11/ActionsBlade1.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/11/ActionsBlade1-1024x642.png" alt="" width="1024" height="642" class="alignnone wp-image-1606 size-large" /></a>

<img src="https://msdnshared.blob.core.windows.net/media/2017/11/ActionsDashboard1-1024x350.png" alt="" width="1024" height="350" class="alignnone wp-image-1605 size-large" /></li>
 	<li>
<h4><strong>Bulk re-submission
</strong></h4>
Now you can bulk resubmit Logic Apps from the <em>Runs Dashboard.<strong></strong></em> Select the runs that you want to resubmit and click on the <strong>Resubmit</strong> button at the top right.

<a href="https://msdnshared.blob.core.windows.net/media/2017/11/Resubmit1.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/11/Resubmit1-1024x341.png" alt="" width="1024" height="341" class="alignnone wp-image-1567 size-large" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2017/11/Resubmit2.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/11/Resubmit2-1024x343.png" alt="" width="1024" height="343" class="alignnone wp-image-1576 size-large" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2017/11/Resubmit3.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/11/Resubmit3-1024x348.png" alt="" width="1024" height="348" class="alignnone wp-image-1585 size-large" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2017/11/Resubmit4.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/11/Resubmit4-1024x347.png" alt="" width="1024" height="347" class="alignnone wp-image-1595 size-large" /></a></li>
</ol>
Full documentation is available <a href="https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-monitor-your-logic-apps-oms">here</a>.

Let us know <a href="https://feedback.azure.com/forums/287593-logic-apps/filters/top?category_id=178399"></a>what you would like to see next in Logic Apps Monitoring and Management through <a href="https://feedback.azure.com/forums/287593-logic-apps/filters/top?category_id=178399">User Voice.</a>]]></content:encoded>
    </item>
    <item>
      <title>Monitor Logic App action inputs/outputs in Log Analytics (OMS) using tracked properties</title>
      <link>https://docs.microsoft.com/archive/blogs/logicapps/monitor-logic-app-action-inputsoutputs-in-log-analytics-oms-using-tracked-properties</link>
      <pubDate>Fri, 03 Nov 2017 13:02:35 GMT</pubDate>
      <dc:creator><![CDATA[Sumit Kumar (Microsoft)]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/logicapps/?p=1307</guid>
      <description><![CDATA[This blogpost walks through how you can use tracked properties in Logic Apps to track action outputs...]]></description>
      <content:encoded><![CDATA[This blogpost walks through how you can use tracked properties in Logic Apps to track action outputs and create customized dashboards in Log Analytics (OMS). It demonstrates an example of a simple order processing logic app which logs data to a Log Analytics workspace. We will then create a dashboard in Log Analytics which will provide a visualization of revenue generated over time and order categorization by city and source platform (app/website). In this example, we’ll use compose actions for demonstration. However, tracked properties can be added in any action and in more than one action in a Logic App.
<ol>
 	<li>
<h4><strong>Create a Logic App and add <em>trackedProperties</em> to the actions.</strong></h4>
<ul>
 	<li>The logic app (ProcessOrder) mimics an order processing workflow which receives an order via HTTP request trigger, records the order, confirms the payment and sends notification email to the customer. Each of the actions has trackedProperties object in their definition which tracks the outputs of the corresponding action.</li>
 	<li>Designer View:
<a href="https://msdnshared.blob.core.windows.net/media/2017/11/ProcessOrderDesigner1.png">
</a><a href="https://msdnshared.blob.core.windows.net/media/2017/11/ProcessOrderDesigner1.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/11/ProcessOrderDesigner1.png" alt="" width="600" height="354" class="aligncenter wp-image-1495" /></a><a href="https://msdnshared.blob.core.windows.net/media/2017/11/ProcessOrderDesigner.jpg"></a></li>
 	<li>Code view for the <em>Register_order</em> and <em>Confirm_payment</em> actions:<a href="https://msdnshared.blob.core.windows.net/media/2017/11/ProcessOrderCodeView.jpg"></a><a href="https://msdnshared.blob.core.windows.net/media/2017/11/ProcessOrderCodeView.png">
</a><a href="https://msdnshared.blob.core.windows.net/media/2017/11/ProcessOrderCodeView.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/11/ProcessOrderCodeView.png" alt="" width="600" height="614" class="aligncenter wp-image-1465" /></a><a href="https://msdnshared.blob.core.windows.net/media/2017/11/ProcessOrderCodeView.jpg"></a><a href="https://msdnshared.blob.core.windows.net/media/2017/11/ProcessOrderCodeView.jpg"></a></li>
 	<li>Download the full logic app definition here: <a href="https://msdnshared.blob.core.windows.net/media/2017/11/ProcessOrder.json_.txt">ProcessOrder.json_</a>. Look <a href="https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-monitor-your-logic-apps">here</a> under the <em>Azure Diagnostics event settings and details</em> section to see how you can add tracked properties in any action. As of now, you can add tracked properties using only code view, they would be available in the designer soon. Here’s a SendOrder logic app which sends order to the ProcessOrder logic app<a href="https://msdnshared.blob.core.windows.net/media/2017/11/SendOrderDesigner.jpg"></a><a href="https://msdnshared.blob.core.windows.net/media/2017/11/CreateLAWithLogAnalytics.png"></a><a href="https://msdnshared.blob.core.windows.net/media/2017/11/SalesBlade.png"></a><a href="https://msdnshared.blob.core.windows.net/media/2017/11/OverviewTileCreateView.png"></a>. Download the full definition here: <a href="https://msdnshared.blob.core.windows.net/media/2017/11/SendOrder.json_.txt">SendOrder.json_</a><img src="https://msdnshared.blob.core.windows.net/media/2017/11/SendOrder.png" alt="" width="600" height="461" class="aligncenter wp-image-1456" /><a href="https://msdnshared.blob.core.windows.net/media/2017/11/OverviewTilePin.png"></a><a href="https://msdnshared.blob.core.windows.net/media/2017/11/AllBladesView.png"></a><a href="https://msdnshared.blob.core.windows.net/media/2017/11/SaveView.png"></a></li>
</ul>
</li>
 	<li>
<h4><strong>Turn-on diagnostics for the Logic App</strong></h4>
<ul>
 	<li>While creating a Logic App, you can select the OMS workspace that you want to push the logs to.<a href="https://msdnshared.blob.core.windows.net/media/2017/11/CreateLogicAppLogAnalytics.jpg"></a><img src="https://msdnshared.blob.core.windows.net/media/2017/11/CreateLAWithLogAnalytics.png" alt="" width="312" height="645" class="aligncenter wp-image-1455 size-full" /></li>
 	<li>For an existing Logic App, follow this navigation path: <em>Logic App resource blade -&gt; Diagnostics logs (under monitoring section) -&gt; Turn on diagnostics -&gt; Select Log analytics -&gt; Select workspace (If you don't have one, create one)-&gt; Select WorkflowRuntime events -&gt; Save</em>. Look <a href="https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-monitor-your-logic-apps">here</a> under the <em>Turn on diagnostics logging for your logic app</em> section for more details.</li>
</ul>
</li>
 	<li>
<h4><strong>Create dashboard in OMS</strong></h4>
<ol>
 	<li>Navigate to your Log Analytics workspace and click on <strong><strong>View Designer</strong></strong><a href="https://msdnshared.blob.core.windows.net/media/2017/11/ClickViewDesigner.jpg"></a><a href="https://msdnshared.blob.core.windows.net/media/2017/11/ViewDesignerTile.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/11/ViewDesignerTile-1024x260.png" alt="" width="600" height="152" class="aligncenter wp-image-1475" /></a></li>
 	<li>You will see two tabs in the View Designer, one for overview tile (this will be pinned to the OMS overview dashboard) and one for the View dashboard (this will be the actual dashboard)</li>
 	<li>For <strong>Overview tile</strong>, I have used a <em>number tile</em> template which shows the total number of orders received<img src="https://msdnshared.blob.core.windows.net/media/2017/11/OverviewTileCreateView-1024x590.png" alt="" width="600" height="346" class="aligncenter wp-image-1485" />
<ul>
 	<li>Query (update the workflow ID and action name in the query):
<em>AzureDiagnostics</em>
<em>| where Category == "WorkflowRuntime</em>
<em>| where OperationName == "Microsoft.Logic/workflows/workflowActionCompleted</em>
<em>| where workflowId_s == "/SUBSCRIPTIONS/&lt;subscriptionID&gt;/RESOURCEGROUPS/&lt;resourceGroupName&gt;/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/&lt;logicAppName&gt;</em>
<em>| where resource_actionName_s == "Register_order</em>
<em><em>| summarize count()</em></em></li>
</ul>
</li>
 	<li>For <strong>View dashboard</strong>, I have used <em>Two timelines and list</em> template for the <em>Sales over time</em> blade.<img src="https://msdnshared.blob.core.windows.net/media/2017/11/SalesBlade-1024x938.png" alt="" width="600" height="550" class="aligncenter wp-image-1435" />
<ul>
 	<li>Queries (update the workflow ID and action name in the query)
<ul>
 	<li>Bar chart:
<em>AzureDiagnostics</em>
<em>| where Category == "WorkflowRuntime"</em>
<em>| where OperationName == "Microsoft.Logic/workflows/workflowActionCompleted"</em>
<em>| where workflowId_s == "/SUBSCRIPTIONS/&lt;subscriptionID&gt;/RESOURCEGROUPS/&lt;resourceGroupName&gt;/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/&lt;logicAppName&gt;"</em>
<em>| where resource_actionName_s == "Confirm_payment"</em>
<em><em><em>| project price=toint(trackedProperties_price_s), TimeGenerated</em></em></em></li>
 	<li>List:
<em>AzureDiagnostics</em>
<em>| where Category == "WorkflowRuntime"</em>
<em>| where OperationName == "Microsoft.Logic/workflows/workflowActionCompleted"</em>
<em>| where workflowId_s == "/SUBSCRIPTIONS/&lt;subscriptionID&gt;/RESOURCEGROUPS/&lt;resourceGroupName&gt;/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/&lt;logicAppName&gt;"</em>
<em>| where resource_actionName_s == "Confirm_payment"</em>
<em>| project price=toint(trackedProperties_price_s), TimeGenerated, trackedProperties_customerName_s</em>
<em>| summarize sum(price) by trackedProperties_customerName_s</em></li>
</ul>
</li>
</ul>
</li>
</ol>
</li>
</ol>
<ol>
 	<li style="list-style-type: none">
<ol>
 	<li style="list-style-type: none">
<ul>
 	<li style="list-style-type: none"></li>
</ul>
</li>
</ol>
</li>
</ol>
<ol>
 	<li style="list-style-type: none">
<ul>
 	<li>Similarly, I added two more blades which shows orders categorized by city and source platform.<img src="https://msdnshared.blob.core.windows.net/media/2017/11/AllBladesView-1024x476.png" alt="" width="1024" height="476" class="aligncenter wp-image-1436 size-large" />
<ul>
 	<li>Queries:
<ul>
 	<li><strong>Orders by city</strong> (Donut and list)
<em>AzureDiagnostics</em>
<em>| where Category == "WorkflowRuntime"</em>
<em>| where OperationName == "Microsoft.Logic/workflows/workflowActionCompleted"</em>
<em>| where workflowId_s == "/SUBSCRIPTIONS/&lt;subscriptionID&gt;/RESOURCEGROUPS/&lt;resourceGroupName&gt;/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/&lt;logicAppName&gt;"</em>
<em>| where resource_actionName_s == "Register_order"</em>
<em>| project TimeGenerated, trackedProperties_customerCity_s </em>
<em>| summarize count() by trackedProperties_customerCity_s
</em></li>
 	<li><strong>Orders by platform</strong> (Donut and list)
<em>AzureDiagnostics</em>
<em>| where Category == "WorkflowRuntime"</em>
<em>| where OperationName == "Microsoft.Logic/workflows/workflowActionCompleted"</em>
<em>| where workflowId_s == "/SUBSCRIPTIONS/&lt;subscriptionID&gt;/RESOURCEGROUPS/&lt;resourceGroupName&gt;/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/&lt;logicAppName&gt;"</em>
<em>| where resource_actionName_s == "Register_order"</em>
<em>| project TimeGenerated, trackedProperties_platform_s</em>
<em>| summarize count()  by trackedProperties_platform_s
</em></li>
 	<li>You can download this view here: <a href="https://msdnshared.blob.core.windows.net/media/2017/11/OrderTracking.omsview.txt">OrderTracking.omsview</a> and import in your workspace using <em>View Designer -&gt; Import</em>. Tip: Use <strong>Log Search</strong> to test your queries before creating the view.</li>
</ul>
</li>
</ul>
</li>
 	<li>Click <strong>Save.</strong>
<img src="https://msdnshared.blob.core.windows.net/media/2017/11/SaveView.png" alt="" width="743" height="86" class="wp-image-1437 size-full aligncenter" /></li>
 	<li>Now, you’d be able to see the overview tile in your Log analytics overview dashboard. Click on the overview tile to navigate to the dashboard that we just created. You can also pin the overview tile to your Azure portal dashboard.
<a href="https://msdnshared.blob.core.windows.net/media/2017/11/OverviewTilePin.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/11/OverviewTilePin.png" alt="" width="427" height="388" class="aligncenter wp-image-1445 size-full" /></a><a href="https://msdnshared.blob.core.windows.net/media/2017/11/OverviewTilePin.jpg"></a></li>
</ul>
</li>
</ol>
&nbsp;

You can also use the out-of-box LogicAppsManagement solution in Log Analytics to view and search tracked properties across multiple Logic Apps. Look at the docs <a href="https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-monitor-your-logic-apps-oms">here</a>.

Resources:
<ol>
 	<li>SendOrder Logic App definition: <a href="https://msdnshared.blob.core.windows.net/media/2017/11/SendOrder.json_.txt">SendOrder.json_</a></li>
 	<li>ProcessOrder Logic App definition: <a href="https://msdnshared.blob.core.windows.net/media/2017/11/ProcessOrder.json_.txt">ProcessOrder.json_</a></li>
 	<li>Log analytics dashboard’s JSON:  <a href="https://msdnshared.blob.core.windows.net/media/2017/11/OrderTracking.omsview.txt">OrderTracking.omsview</a></li>
 	<li>Log analytics search query reference: <a href="https://docs.loganalytics.io/docs/Language-Reference">https://docs.loganalytics.io/docs/Language-Reference</a></li>
</ol>]]></content:encoded>
    </item>
    <item>
      <title>New Azure Logic Apps solution for Log Analytics (OMS) released today!</title>
      <link>https://docs.microsoft.com/archive/blogs/logicapps/new-azure-logic-apps-solution-for-log-analytics-oms-released-today</link>
      <pubDate>Wed, 09 Aug 2017 08:27:29 GMT</pubDate>
      <dc:creator><![CDATA[Jon Fancey]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/logicapps/?p=1276</guid>
      <description><![CDATA[Hi everyone, I'm excited to announce the preview release of our new Logic Apps solution for Log...]]></description>
      <content:encoded><![CDATA[Hi everyone, I'm excited to announce the preview release of our new Logic Apps solution for Log Analytics today (docs <a href="https://docs.microsoft.com/azure/logic-apps/logic-apps-monitor-your-logic-apps-oms">here</a>). We are releasing this to coincide with the new and improved features of Log Analytics, also rolling out today - see <a href="https://azure.microsoft.com/blog/announcing-the-new-and-improved-azure-log-analytics/">here </a>for more details on all the cool new features. This refresh of Log Analytics provides new query capabilities similar to <a href="https://azure.microsoft.com/en-us/services/application-insights/">Application Insights</a> - so if you already know that (and you really should), you're already halfway there! One great example is being able to perform query joins across your data, a powerful new feature that gives you the ability to create even deeper insights into your data than before.

Our new solution is complementary to our <a href="https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-track-b2b-messages-omsportal">existing B2B solution</a> and allows all Logic Apps customers to monitor their logic apps quickly and easily either via the OMS portal, Azure or even on the move with the OMS app. The solution currently allows you to see all your logic app run information, their status and if they are succeeding or failing. You can drill in further to see more details of failed runs as well to quickly and easily troubleshoot problems. Log Analytics provides the ability to define and set alerts too, so that you can set up proactive monitoring and be notified if things aren't working.

Additionally we've made it really easy to enable your logic apps right when you create them by adding the option to turn on Azure Diagnostics and push the telemetry from your logic app to your workspace. If you have an existing workspace you can upgrade it to gain access to our new solution, see <a href="https://docs.microsoft.com/en-us/azure/log-analytics/log-analytics-log-search-upgrade">here</a> for more info. If you don't, simply go over to <a href="https://docs.microsoft.com/en-us/azure/log-analytics/log-analytics-get-started">here </a> to see how to create one to use for your logic apps.

<a href="https://msdnshared.blob.core.windows.net/media/2017/08/logicapps-analytics.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/08/logicapps-analytics.png" alt="" width="1372" height="624" class="alignnone size-full wp-image-1305" /></a>

Our release today is just the beginning. We have much more planned in the coming weeks ahead including the ability to bulk resubmit failed logic apps, download the payloads that were received, enable/disable logic apps and much more.

Please try out these new capabilities (rolling out to all regions, starting with West Central US today), and as always, let us know what you think.

-Jon]]></content:encoded>
    </item>
    <item>
      <title>Processing Feedback Evaluations (paper) with OCR, Logic Apps, Azure Functions &amp; Power BI</title>
      <link>https://docs.microsoft.com/archive/blogs/logicapps/processing-feedback-evaluations-paper-with-ocr-logic-apps-azure-functions-power-bi</link>
      <pubDate>Thu, 22 Jun 2017 08:40:30 GMT</pubDate>
      <dc:creator><![CDATA[Jeff Hollan [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/logicapps/?p=1145</guid>
      <description><![CDATA[This is a guest blog post from Sandro Pereira - Azure &amp; Visio MVP @ DevScope





For...]]></description>
      <content:encoded><![CDATA[<em>This is a guest blog post from Sandro Pereira - Azure &amp; Visio MVP @ DevScope</em>

<span></span>

<hr />

For years, paper forms have been the preferred way for people, enterprises and event organizers to collect data in the office, in the field or in events. Although we are entering a Paperless era, in which the use of paper is progressively being eliminated, there are several situations in which the use of paper is still the best option. Either because it is still a requirement or obligation (by legal documents) or just cheaper and more practical.

One of these scenarios is found at Events Feedback Evaluations forms and, although it is quite simple and quick to create this kind of forms using, for example, Microsoft Forms or alternatively services like SurveyMonkey, let us be honest and analyze the facts:
<ul>
 	<li>Internet access at events is usually very poor or limited and despite almost all our mobile devices have data access, if we are outside our country, data roaming it is still quite expensive;</li>
 	<li>Alternatively, we can send/receive an email later to evaluate the event but more likely most of the attendees will ignore it and we will end up receiving little or no feedback at all.</li>
</ul>
So, at least in my opinion, paper is still one of the best options to perform Evaluations forms and so I did in the last event I organized: <a href="https://blog.sandro-pereira.com/2017/03/13/oporto-city-ready-receive-oporto-global-integration-bootcamp-march-25-2017-oporto-portugal/">Oporto Global Integration Bootcamp</a> inserted in the <a href="https://www.globalintegrationbootcamp.com/">Global Integration Bootcamp</a> initiative created by the Microsoft Community and supported by Microsoft.

The main problem in having Evaluations forms in physical paper is: <strong>How can we easily convert paper in data to generate additional value?</strong> <strong>How can we perform operations on it and easily gain insights?</strong>

<a href="https://msdnshared.blob.core.windows.net/media/2017/06/120.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/06/120-300x166.png" alt="" width="300" height="166" class="alignnone size-medium wp-image-1155" /></a>

There are plenty of OCR solutions/software’s in the market - most of them are still very expensive - that can easily scan the documents from different devices and process them using algorithms to analyze and extract the data with high confidence. Some even allow the users to manually review the extracted data from the documents before they are integrated into different information systems that normally tend to be the file system or databases.

<a href="https://msdnshared.blob.core.windows.net/media/2017/06/220.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/06/220-300x80.png" alt="" width="300" height="80" class="alignnone size-medium wp-image-1165" /></a>

However, neither of them is prepared to connect and integrate with all of the new technologies/data analysis platforms that appear at today's frantic pace, like Power BI. Some of these products also allow you to “easily” extend the product to connect to another system through their custom extensibility model systems but that normally means costs and time to develop some additional connector.

In order to solve this problem for the Oporto Global Integration Bootcamp event, in which I wanted to have the evaluations forms to be processed in real-time, i.e., as the attendees handed in the forms, the results were presented in a public Power BI dashboard in a matter of seconds. For this task, I chose to use:
<ul>
 	<li><strong>DevScope </strong><a href="http://www.smartdocumentor.net/"><strong>SmartDocumentor</strong></a><strong> OCR</strong> that, not also allowed me to extracted the data from my documents and easily integrate with other systems, but also to intelligently set my OCR streams (flows), defining:
<ul>
 	<li>Different receive locations, like FTP, file or directly from scanner devices;</li>
 	<li>Create/test my recognition templates and review/ validate the data which is gathered;<a href="https://msdnshared.blob.core.windows.net/media/2017/06/311.png">
<img src="https://msdnshared.blob.core.windows.net/media/2017/06/311-300x178.png" alt="" width="300" height="178" class="alignnone size-medium wp-image-1166" /></a></li>
 	<li>But also, enabled me to connect and send the metadata, XML or JSON, through any kind of HTTP service, I could even extend it by using a PowerShell provider that would enable me to execute a PowerShell script.</li>
</ul>
</li>
</ul>
<ul>
 	<li><strong>Azure Logic Apps</strong> that provided a way a very simplify and fast way to implement scalable integrations workflows in the cloud with an uncounted<span>number of</span> connectors<span> </span>across the cloud and on-premises, the list is growing day by day, that will allow me to quickly integrate across services and protocols;</li>
 	<li><strong>Azure Functions </strong>to run custom snippets of C# to support Logic Apps flow and perform advanced JSON to JSON transformations;</li>
 	<li>And finally,<strong> Power BI</strong> to create interactive data visualization (dashboards and reports)</li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2017/06/49.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/06/49-300x165.png" alt="" width="300" height="165" class="alignnone size-medium wp-image-1175" /></a>
<h2>The solution</h2>
<strong>SmartDocumentor: to process and extract metadata from paper</strong>

Well, I am not going to explain in details how the solution is implemented inside DevScope’s <span><a href="http://www.smartdocumentor.net/">SmartDocumentor</a></span> for it is not the point of this article, and if you want to know more about it, you can always contact me. However, let me contextualize you:
<ul>
 	<li>SmartDocumentor OCR flow will be listening in two receive locations: Share Folder and directly from the scanner device. We can specify if we want to review the documents but in this case, we will be skipping this step to allow you… yes you, the reader, to test this implementation.</li>
 	<li>After receiving and extract the data from the documents (paper), SmartDocumentor will send the metadata to a Logic App HTTP endpoint.</li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2017/06/56.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/06/56-300x107.png" alt="" width="300" height="107" class="alignnone size-medium wp-image-1185" /></a>

<strong>Power BI to deliver interactive data visualization (dashboards and reports)</strong>

Regarding Power BI, Logic Apps Power BI connector only accepts you to use streaming datasets (this has advantages and some disadvantages that we will see further on), that allows you to easily build real-time dashboards by pushing data into the REST API endpoint. To create your streaming datasets, you should access to Power BI with your account:
<ul>
 	<li>Select your 'Workspace à Datasets', and then on the top right corner click '+ Create' and then 'Streaming dataset'
<a href="https://msdnshared.blob.core.windows.net/media/2017/06/66.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/06/66-300x115.png" alt="" width="300" height="115" class="alignnone size-medium wp-image-1195" /></a></li>
 	<li>In the 'New streaming dataset', select 'API' and then click 'Next'</li>
 	<li>In the second 'New streaming dataset', give a name to your dataset: “FeedbackForm” and then add the following elements:
<ul>
 	<li><strong>SpeakerName (Text)</strong> – represents the name of the speaker that is obtained in the evaluation form according to the session.</li>
 	<li><strong>ContentMatureFB (Number)</strong> – a value between 1 and 9 that is obtained in the evaluation form</li>
 	<li><strong>GoodCommunicatorFB (Number)</strong> – a value between 1 and 9 that is obtained in the evaluation form</li>
 	<li><strong>EnjoySessionFB (Number)</strong> – a value between 1 and 9 that is obtained in the evaluation form</li>
 	<li><strong>MetExpectationsFB (Number)</strong> – a value between 1 and 9 that is obtained in the evaluation form</li>
 	<li><strong>SpeakerAvrg (Number)</strong> – A simple average calculation (sum all the above metrics divide by 4)</li>
 	<li><strong>WhoAmI (Text)</strong> – represents the type of attendee you are (developer, architect, …) that is obtained in the evaluation form</li>
 	<li><strong>SpeakerPicture (Text)</strong> – picture of the speaker according to the session that is that is obtained in the evaluation form.
<a href="https://msdnshared.blob.core.windows.net/media/2017/06/75.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/06/75-293x300.png" alt="" width="293" height="300" class="alignnone size-medium wp-image-1196" /></a></li>
</ul>
</li>
 	<li>And because we want to create interactive reports in order to have more insights from the event. We need to enable 'Historic data analysis' and then click 'Create'</li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2017/06/85.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/06/85-300x86.png" alt="" width="300" height="86" class="alignnone size-medium wp-image-1206" /></a>

Unfortunately, streaming dataset is meant to be used for real-time streaming and is a little limited in terms of want we can do with it. For example, it doesn’t allow you to combine different sources, for example, a “table” that can correlate speaker to get their pictures, or to make aggregations of metrics like “Speaker average”. Which means that we need to send all of this information from Logic Apps.

<strong>Azure Function to apply JSON transformations (Content Enricher, Content Filter &amp; Name-Value Transformation Patterns)</strong>

To solve and bypass these streaming dataset limitations we use an Azure Function inside Logic App that not only transforms the JSON message received from SmartDocumentor with the Evaluation metadata but also add missing information - Content Enricher Pattern. It is very common when we want to exchange messages between different systems or applications, that the target system requires more information than the source system can provide. In this case, the source system (paper) will not send the Name of the speaker, the speaker average metric and the picture of the speaker, but our target system (Power BI) expects that information.

<a href="https://msdnshared.blob.core.windows.net/media/2017/06/913.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/06/913.png" alt="" width="261" height="146" class="alignnone size-full wp-image-1216" /></a>

But also, to apply a transformation pattern - Content Filter - that not only removes unnecessarily data elements but it is also used to simplify the structure of the message, i.e., 'flattens' the hierarchy into a simple list of elements that can be more easily understood and processed by other systems.

<a href="https://msdnshared.blob.core.windows.net/media/2017/06/102.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/06/102.png" alt="" width="259" height="108" class="alignnone size-full wp-image-1225" /></a>

And finally transform a <strong>name–value pair</strong> <strong>(NVP),</strong> <strong>key–value pair</strong> <strong>(KVP),</strong> <strong>field–value pair</strong>, <strong>attribute–value</strong> pair or even <strong>Entity-Attribute-Value model (EAV)</strong> data representation that is <span>widely</span> used into a to more Hierarchical Schema.

<a href="https://msdnshared.blob.core.windows.net/media/2017/06/1110.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/06/1110.png" alt="" width="278" height="107" class="alignnone size-full wp-image-1235" /></a>

To do that we create a “GenericWebHook-CSharp” function that accepts the NVP JSON message, which was originally sent by OCR, and generate a friendlier message.

&nbsp;
<pre>#r "Newtonsoft.Json"

using System;
using System.Net;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

public static async Task&lt;object&gt; Run(HttpRequestMessage req, TraceWriter log)
{
 log.Info($"Webhook was triggered!");

 string jsonContent = await req.Content.ReadAsStringAsync();
 dynamic data = JsonConvert.DeserializeObject(jsonContent);

 string speakerName = string.Empty;
 string speakerPicture = string.Empty;
 int pos = 0;
 for (int i = 5; i &lt;= 8; i++)
 {
 if (!String.IsNullOrEmpty(data[i]["Value"].Value))
 {
 pos = i;
 break;
 }
 }

 switch (pos)
 {
 case 5:
 speakerName = "Ricardo Torre";
 speakerPicture = "http://blog.sandro-pereira.com/wp-content/uploads/2017/03/RicardoTorre.png";
 break;
 case 6:
 speakerName = "José António Silva e Pedro Sousa";
 speakerPicture = "http://blog.sandro-pereira.com/wp-content/uploads/2017/03/JosePedro.png";
 break;
 case 7:
 speakerName = "João Ferreira";
 speakerPicture = "http://blog.sandro-pereira.com/wp-content/uploads/2017/03/JoaoFerreira.png";
 break;
 case 8:
 speakerName = "Sandro Pereira";
 speakerPicture = "http://blog.sandro-pereira.com/wp-content/uploads/2017/03/Sandro-Pereira.png";
 break;
 default:
 speakerName = "Unknown";
 speakerPicture = "http://blog.sandro-pereira.com/wp-content/uploads/2017/03/devscope.png";
 break;
 }

 int result = 0;
 decimal avrg = (decimal)((int.TryParse(data[9]["Value"].Value, out result) ? result : 0) + (int.TryParse(data[10]["Value"].Value, out result) ? result : 0) + (int.TryParse(data[11]["Value"].Value, out result) ? result : 0) + (int.TryParse(data[12]["Value"].Value, out result) ? result : 0)) / 4;

 JObject eval =
 new JObject(
 new JProperty("SpeakerName", speakerName),
 new JProperty("SpeakerPicture", speakerPicture),
 new JProperty("ContentMatureFB", data[9]["Value"].Value),
 new JProperty("GoodCommunicatorFB", data[10]["Value"].Value),
 new JProperty("EnjoySessionFB", data[11]["Value"].Value),
 new JProperty("MetExpectationsFB", data[12]["Value"].Value),
 new JProperty("SpeakerAvrg", avrg),
 new JProperty("WhoAmI", data[30]["Value"].Value));

 log.Info($"Webhook was Complete!");

 return req.CreateResponse(HttpStatusCode.OK, new
 {
 MsgEval = eval
 });
}</pre>
Notice that for example in the following transformation rule:

<em>speakerName = </em><em>"Sandro Pereira"</em><em>;</em>

<em>speakerPicture = </em><em>"http://blog.sandro-pereira.com/wp-content/uploads/2017/03/Sandro-Pereira.png"</em><em>;</em>

We are transforming the selected session in the Evaluation form to the name of the speaker and his picture. Why the picture URL? Well, as mentioned before, Power BI streaming dataset has some limitation in what we can do by default. So, in order for us to be able to present the speaker picture in the Power BI report and/or dashboard, we are forced to send a public picture URL (in this case it is stored in my blog) as an input of our dataset.

For the same reason, because we cannot make a new measure derived from the others when using streaming dataset, instead we need to send it as an input of our dataset and in order for us to calculate the average performance of a speaker, we will be using this basic formula:

<em>decimal</em><em> avrg = (</em><em>decimal</em><em>)((</em><em>int</em><em>.TryParse(data[9][</em><em>"Value"</em><em>].Value, </em><em>out</em><em> result) ? result : 0) + (</em><em>int</em><em>.TryParse(data[10][</em><em>"Value"</em><em>].Value, </em><em>out</em><em> result) ? result : 0) + (</em><em>int</em><em>.TryParse(data[11][</em><em>"Value"</em><em>].Value, </em><em>out</em><em> result) ? result : 0) + (</em><em>int</em><em>.TryParse(data[12][</em><em>"Value"</em><em>].Value, </em><em>out</em><em> result) ? result : 0)) / 4;</em>

The output of the function will be a JSON message.

<strong>Logic Apps to create an integration process flow</strong>

The missing piece: <strong>Logic App</strong>! The tool that allows us to transform a product (OCR software) that in principle seemed closed and limited in terms of features into a product without frontiers/fences. I know that normally these type of products (OCR) have extensibility model systems that allow you to extend the product with your personal requirements, but that normally means you need to have developer skills and probably will cost you time and money, something we want to avoid.

The beauty of using Logic App is that provides us a very simplify, robust, scalable, not expensive and fast way to extend the capabilities of my OCR software and integrate with an uncounted number of Cloud and on-premises applications or/and systems.

In order to integrate SmartDocumentor OCR with Power BI, we need to create a Logic App that:
<ul>
 	<li>Accept a JSON through an HTTP Post. For that, we use a 'Request / Response – Manual' trigger. And in this case, because we don’t need to have friendly tokens to access the elements of the message, we don’t specify a JSON Schema.
<a href="https://msdnshared.blob.core.windows.net/media/2017/06/123.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/06/123-300x223.png" alt="" width="300" height="223" class="alignnone size-medium wp-image-1236" /></a></li>
 	<li>Call an Azure Function to transform the original OCR JSON to the expected JSON message to send to Power BI. For that, we use an 'Azure Functions' action, specifying the function that we created previously.
<a href="https://msdnshared.blob.core.windows.net/media/2017/06/133.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/06/133-300x81.png" alt="" width="300" height="81" class="alignnone size-medium wp-image-1245" /></a></li>
 	<li>After that, we use a 'Parse JSON' action, only to allow us to parse JSON content into friendly tokens (something like a quick alias to the fields) for being easily consumed in other action of the process.
<a href="https://msdnshared.blob.core.windows.net/media/2017/06/143.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/06/143-300x207.png" alt="" width="300" height="207" class="alignnone size-medium wp-image-1255" /></a></li>
 	<li>In the last step of the Logic App: we push the data into the Power BI streaming dataset created earlier by using the new 'Power BI' Connector. To do this we need to:
<ul>
 	<li>Add a '+New step', 'Add an action', and then enter 'Power BI' into the search box. Select “Add row to streaming dataset” from the actions list.</li>
 	<li>Select the name of the workspace and then the name of the streaming dataset</li>
 	<li>The next step is to select the Table titled “RealTimeData”</li>
 	<li>And finally, map the input data fields with the friendly tokens generated in the 'Parse JSON' action
<a href="https://msdnshared.blob.core.windows.net/media/2017/06/153.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/06/153-229x300.png" alt="" width="229" height="300" class="alignnone size-medium wp-image-1256" /></a></li>
</ul>
</li>
</ul>
<h1>The end result</h1>
After saving the Logic App and process the Evaluation forms, the result is this beautiful and interactive report that we can present in a monitor during the breaks of our events:

What do we need to do to extend the process for archiving the messages? Simple, just edit and change the Logic App by adding, for example, a Dropbox, OneDrive or File Connector into your process and save it! It is that easy!
<h1>How can you test the solution?</h1>
You can try part of this solution because, unfortunately, we cannot submit the paper via web… yet… yet 😊. So, in this case let us assume that we already have the paper digitalized/scanned and we only want to try the OCR and integration process.

<a href="https://msdnshared.blob.core.windows.net/media/2017/06/163.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/06/163-300x170.png" alt="" width="300" height="170" class="alignnone size-medium wp-image-1265" /></a>

To try the solution, you need to:
<ul>
 	<li>Download the form – PNG format – here: <a href="https://blog.sandro-pereira.com/wp-content/uploads/2017/04/SpeaketForm_2017-0.png">https://blog.sandro-pereira.com/wp-content/uploads/2017/04/SpeaketForm_2017-0.png</a></li>
 	<li>Open the picture in your favorite editor (Paint or Paint.NET) and just paint your choices, something like this.
<a href="https://msdnshared.blob.core.windows.net/media/2017/06/173.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/06/173-300x166.png" alt="" width="300" height="166" class="alignnone size-medium wp-image-1275" /></a>
Email your form attached to <a href="mailto:sandroasp+sd@gmail.com">sandroasp+sd@gmail.com</a></li>
 	<li>Wait a few minutes, because I have a simple Microsoft Flow listening to this mailbox that:
<ul>
 	<li>Extracts the attachment</li>
 	<li>Sends it to SmartDocumentor OCR</li>
 	<li>And notifies you that the file was received</li>
</ul>
</li>
 	<li>Check your email and access to this public link to see the results: <a href="https://app.powerbi.com/view?r=eyJrIjoiZmQyNDM4YmItN2ZkYS00NzEwLThlYWYtMGQxMjQ3ZDI5ZGE2IiwidCI6IjA5ZTI1MWRjLTVlODctNDhiZi1iNGQyLTcxYjAxYWRiOTg0YSIsImMiOjh9">https://app.powerbi.com/view?r=eyJrIjoiZmQyNDM4YmItN2ZkYS00NzEwLThlYWYtMGQxMjQ3ZDI5ZGE2IiwidCI6IjA5ZTI1MWRjLTVlODctNDhiZi1iNGQyLTcxYjAxYWRiOTg0YSIsImMiOjh9</a>
<ul>
 	<li>Unfortunately, updates to reports or visuals to which a Publish to web link points can take approximately one hour to be visible to users – this is a Power BI limitation - because the link is for a public Power BI report you may only see the results reflected, in the worst scenario, after one hour.</li>
</ul>
</li>
</ul>
<span> </span>]]></content:encoded>
    </item>
    <item>
      <title>Logic Apps tools for Visual Studio 2017</title>
      <link>https://docs.microsoft.com/archive/blogs/logicapps/logic-apps-tools-for-visual-studio-2017</link>
      <pubDate>Wed, 10 May 2017 12:00:53 GMT</pubDate>
      <dc:creator><![CDATA[Jeff Hollan [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/logicapps/?p=1105</guid>
      <description><![CDATA[We're excited to announce that we recently shipped full support for developing and managing Azure...]]></description>
      <content:encoded><![CDATA[We're excited to announce that we recently shipped full support for developing and managing Azure Logic Apps within Visual Studio 2017.  The extension can be<a href="https://marketplace.visualstudio.com/items?itemName=VinaySinghMSFT.AzureLogicAppsToolsforVisualStudio-18551"> installed from the marketplace</a> via the Extensions and Updates option in the menu.  This release is also coupled with a few improvements to the experience of building workflows within Visual Studio.
<h2>Import logic apps from Azure</h2>
Whether you started developing your logic app in the Azure Portal, or used the Resource Group project, you can still get the same deployment and management experience within Visual Studio.  The Cloud Explorer now allows you to <strong>Download </strong>workflows published in an Azure subscription.  Simply right-click the logic app in the Cloud Explorer tool, and select "Edit in Designer."  A download button will be available which creates a resource template for the logic app.  The template automatically includes parameters and connection resources.  The JSON template could even be used within a new or existing Resource Group project.
<h2>Performance improvements for the embedded designer</h2>
Along with getting the full logic app design experience within Visual Studio 2017, the tools also include significant performance and usability improvements.  This means building apps has the same responsive and rich experience you would get from the browser.  However, the Visual Studio tools automatically generate resource templates so solutions can be checked into source control, versioned, and deployed into environments through a release management process.
<h2>Support for Resource Template Parameters</h2>
The tools for Visual Studio now support using resource template parameters within the logic app definition.  For example, if calling an Azure Function you can replace the resource ID in the definition with [resourceId('Microsoft.Web/sites/functions', 'myFunctionApp', 'myFunction')] - and when rendering the designer it will correctly resolve against the resource group.  This means you can author and work with logic app definitions in the designer that can be valid against dependent resources that will be deployed as part of the solution.
<h2>View active logic app run history</h2>
The cloud explorer also provides management tools for deployed logic apps.  This includes the ability to view and monitor runs, enable, and disable logic apps.

If you have a feature you'd like to see in the logic apps tools for Visual Studio, be sure to let us know on <a href="https://aka.ms/logicapps-wish">UserVoice</a>.]]></content:encoded>
    </item>
    <item>
      <title>Calling all SaaS ISVs – build and certify your Flow, PowerApps &amp; Logic Apps Connector</title>
      <link>https://docs.microsoft.com/archive/blogs/logicapps/calling-all-saas-isvs-build-and-certify-your-flow-powerapps-logic-apps-connector</link>
      <pubDate>Wed, 10 May 2017 11:00:32 GMT</pubDate>
      <dc:creator><![CDATA[Jeff Hollan [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/logicapps/?p=1135</guid>
      <description><![CDATA[We are excited to announce that as an application or service owner, you can now develop connectors...]]></description>
      <content:encoded><![CDATA[We are excited to announce that as an application or service owner, you can now develop connectors that allow your app to work with PowerApps and Microsoft Flow. This enables your customers to easily automate their business processes and create their own no-code line of business apps.

An <strong>API connector</strong> is an Open API (Swagger) based wrapper around a REST API that allows the underlying service to talk to <a href="https://flow.microsoft.com/">Microsoft Flow</a>, <a href="https://powerapps.microsoft.com/">PowerApps</a> and <a href="https://azure.microsoft.com/services/logic-apps/">Logic Apps</a>. It provides a way for users to connect their accounts and leverage a set of pre-built <strong>triggers</strong> and <strong>actions</strong> to build their apps and workflows.

By being a part of our growing connector family (currently at <a href="https://flow.microsoft.com/en-us/services/">125+</a>), you can enable a wide range of business and productivity scenarios for your users. This post provides an overview of what connectors can do, why you should build a connector and how to get started!
<h2>What Can a Connector Do</h2>
Developing a single connector enables an integration for three different Microsoft products – Flow, PowerApps, and Logic Apps.
<h3>Flow</h3>
Using Flow, your customers can automate tasks and build workflows in conjunction with other social and business applications. The possible workflows span across a wide variety of possibilities, for example:
<ul>
 	<li>Send email, text and push notifications</li>
 	<li>Copy files between data sources</li>
 	<li>Automatically collect and organize business data</li>
 	<li>Streamline approvals and send instant alerts</li>
</ul>
<h3>Logic Apps</h3>
Logic Apps is the workflow engine that powers Flow. It enables pro-developers to visually or programmatically configure workflows in Azure. A connector in Logic Apps can enable your customers to Automate EAI, Business to business (B2B) and Business to consumer (B2C) scenarios while reaping the benefits of source control, testing, support, and operations.
<h2>PowerApps</h2>
PowerApps enables users to build cloud connected and cross platform business apps using clicks and no code.

Using PowerApps, your customers can build simple apps for line of business scenarios that read and write data to multiple cloud sources. Some examples of such apps include survey forms, timesheets, expense reporting, etc. Users can securely publish and share these apps to the web or mobile for use within their organization.
<h2>Why should you build a connector?</h2>
As stated above, building a connector offers extensibility of your app through PowerApps and automation and integration through Flow and Logic Apps. The same connector can drive more usage of your service and your existing API without additional development.
<h3>Drive more usage</h3>
Increase reach, discoverability and usage of your service by publishing pre-defined task specific templates that integrate your app with our growing family of connectors.

The Flow and PowerApps gallery of <a href="https://flow.microsoft.com/en-us/services/">connectors</a> and <a href="https://flow.microsoft.com/en-us/templates/">templates</a> make it easy for your users to get started. <a href="https://flow.microsoft.com/en-us/documentation/embed-flow-dev/">Embedding</a> of the Flow experience within your app enables users to leverage pre-built templates from right within your application.
<h3>Expand the reach of your API</h3>
Enable power users to leverage your APIs and extend your solution without having to write code. Using simple clicks, a business user can create and share a multitude of solutions like the one shown below, for organizational or personal use.
<h2>How to Get Started</h2>
To build and submit an API connector, your app must fit the following criteria:
<ul>
 	<li>Business user scenario that fits well with Flow, PowerApps and Logic Apps</li>
 	<li>Publicly available service with stable REST APIs</li>
</ul>
<h2>Build a Custom Connector</h2>
The first step to building an API Connector is to build a fully functional Custom Connector within Flow or PowerApps. An API Connector is nothing more than a Custom Connector that is visible to all users of PowerApps and Flow.

The general process to build a connector involves multiple steps:

<a href="https://flow.microsoft.com/en-us/documentation/api-connector-dev/">Learn more</a> about how to develop a custom connector.
<h2>Submit for Certification</h2>
As part of our 3rd party certification process, Microsoft will review the connector before publishing. This process validates the functionality of your connector, and checks for technical and content compliance as well as scenario fit.

If your application is built on azure, every user of Office 365 Enterprise Plans will get instant access to the connector for your app.

<a href="https://flow.microsoft.com/en-us/documentation/api-connector-submission/">Learn more</a> about the process to submit your custom connector for publishing.

To build a connector for your SaaS offering, <a href="https://go.microsoft.com/fwlink/?linkid=848754">sign up today</a>. Learn more about how to <a href="https://go.microsoft.com/fwlink/?linkid=848938">grow your SaaS business with Azure.</a>]]></content:encoded>
    </item>
  </channel>
</rss>