<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Hackathon Challenges</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/hackathonchallenges/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/hackathonchallenges/feed.xml</link>
    <description>LEVEL 1 is the easiest and LEVEL 3 is the hardest</description>
    <lastBuildDate>Tue, 16 Apr 2019 05:08:09 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>CHALLENGE #6 - Access files stored in Azure Blob Storage (LEVEL 2)</title>
      <link>https://docs.microsoft.com/archive/blogs/hackathonchallenges/challenge-6-access-files-stored-in-azure-blob-storage-level-2</link>
      <pubDate>Thu, 14 Jun 2018 11:39:22 GMT</pubDate>
      <dc:creator><![CDATA[FreddyDK]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/hackathonchallenges/?p=575</guid>
      <description><![CDATA[Scenario
To surface a document library stored in Azure Blob Storage in Business Central. The...]]></description>
      <content:encoded><![CDATA[<h2>Scenario</h2>
To surface a document library stored in Azure Blob Storage in Business Central. The documents only live in Azure Blob Storage but can be accessed through Business Central. The documents can be opened in the browser from an action.
<h2>To complete this challenge, you will need</h2>
<ul>
 	<li>A Dynamics 365 Business Central Sandbox Environment
<ul>
 	<li>Use <span><a href="https://aka.ms/bcsandbox">https://aka.ms/bcsandbox</a></span> to create an Azure VM if you do not have a sandbox environment.</li>
</ul>
</li>
 	<li>Visual Studio Code with the AL Extension installed
<ul>
 	<li>Azure VMs will have VS Code pre-installed</li>
</ul>
</li>
 	<li>The Url for an Azure Blob Storage with unauthenticated access
<ul>
 	<li><a href="https://challenge6.blob.core.windows.net/files">https://challenge6.blob.core.windows.net/files</a></li>
</ul>
</li>
</ul>
<h2> Expected result</h2>
<img src="https://msdnshared.blob.core.windows.net/media/2018/06/CHALLENGE-6.gif" alt="" width="2325" height="1645" class="alignnone size-full wp-image-585" />
<h2>Steps</h2>
<ul>
 	<li>Create an empty app</li>
 	<li>Create a new table with the relevant fields to describe an Azure Blob</li>
 	<li>Create a list page on top the new table. The table should be temporary.</li>
 	<li>Create a codeunit to encapsulate the access to Azure Blob Storage and a can populate the new table.</li>
 	<li>Add an action to the page that can open the selected document.</li>
</ul>
<h2>Hints</h2>
<ul>
 	<li>The documentation for Azure Blob Service REST API can be found here <a href="https://docs.microsoft.com/en-us/rest/api/storageservices/blob-service-rest-api">https://docs.microsoft.com/en-us/rest/api/storageservices/blob-service-rest-api</a>. Look for the “List Containers” operation.</li>
 	<li>In VS Code, use Ctrl+Shift+P and type AL GO and remove the customerlist page extension</li>
 	<li>Use the <em>ttable</em> and the <em>tfield</em> snippets to create the table.</li>
 	<li>You can invoke the “List Container” Url directly in a browser to see the returned information.</li>
 	<li>Use the <em>tpage</em> and the <em>tpagefield</em> snippets to create the list page.</li>
 	<li>Use the tcodeunit snippet to create the codeunit.</li>
 	<li>Use the Hyperlink() method to open the document.</li>
</ul>
<h2>Cheat Sheets</h2>
<ul>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/06/CHALLENGE-6-CHEAT-SHEET-1-CREATE-AN-EMPTY-APP.pdf" rel="noopener">Create an empty app</a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/06/CHALLENGE-6-CHEAT-SHEET-2-INSPECT-LIST-CONTAINER-RESPONSE.pdf" rel="noopener">Inspect list container response</a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/06/CHALLENGE-6-CHEAT-SHEET-3-CREATE-NEW-TABLE.pdf" rel="noopener">Create new table</a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/06/CHALLENGE-6-CHEAT-SHEET-4-CODE-FOR-ACCESSING-BLOB-STORAGE.pdf" rel="noopener">Code for accessing blob storage</a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/06/CHALLENGE-6-CHEAT-SHEET-5-CREATE-LIST-PAGE.pdf" rel="noopener">Create list page</a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/06/CHALLENGE-6-CHEAT-SHEET-6-ADD-OPEN-ACTION.pdf" rel="noopener">Add open action</a></li>
</ul>
&nbsp;

Happy coding

<strong><em>Esben Nyhuus Kristoffersen
</em></strong>Principal Achitect<strong><em>
</em></strong>

<span style="color: #ffffff">Passwords: Dote6111, Cujy0673, Xymo2826, Sufo3097, Nyko3952, Veci1100</span>]]></content:encoded>
    </item>
    <item>
      <title>CHALLENGE #5 - Classify your Customers (LEVEL 1)</title>
      <link>https://docs.microsoft.com/archive/blogs/hackathonchallenges/challenge-5-classify-your-customers-level-1</link>
      <pubDate>Thu, 17 May 2018 11:38:17 GMT</pubDate>
      <dc:creator><![CDATA[FreddyDK]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/hackathonchallenges/?p=495</guid>
      <description><![CDATA[Scenario
Add a field to classify your customers in Inactive, Bronze, Silver, Gold customers.
To...]]></description>
      <content:encoded><![CDATA[<h2>Scenario</h2>
<span>Add a field to classify your customers in Inactive, Bronze, Silver, Gold customers.</span>
<h2>To complete this challenge, you will need</h2>
<ul>
 	<li><span>A Dynamics 365 Business Central Sandbox Environment</span>
<ul>
 	<li><span>Use <a href="https://aka.ms/bcsandbox">https://aka.ms/bcsandbox</a> to create an Azure VM if you do not have a sandbox environment.</span></li>
</ul>
</li>
 	<li><span>Visual Studio Code with the AL Extension installed</span>
<ul>
 	<li><span>Azure VMs will have VS Code pre-installed</span></li>
</ul>
</li>
</ul>
<h2>Expected result</h2>
<img src="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-5.gif" alt="" width="1914" height="1067" class="alignnone size-full wp-image-485" />
<h2>Steps</h2>
<ul>
 	<li><span>Create an empty app</span></li>
 	<li><span>Create a table extension for the customer table and add an option field</span></li>
 	<li>Create a page extension for the customer card and add the field</li>
</ul>
<h2>Hints</h2>
<ul>
 	<li><span>In VS Code, use Ctrl+Shift+P and type AL GO and remove the customerlist page extension</span></li>
 	<li><span>Use the <em>ttableext</em>, and the <em>tfieldoption</em> snippet</span></li>
 	<li>Use the <em>tpageext</em> and the <em>tpagefield</em> snippet</li>
</ul>
<h2>Cheat sheets</h2>
<ul>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-5-CHEAT-SHEET-1-–-CREATE-AN-EMPTY-APP.pdf" rel="noopener"><span>Create an empty app</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-5-CHEAT-SHEET-2-–-CREATE-A-TABLE-EXTENSION.pdf" rel="noopener"><span>Create a table extension</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-5-CHEAT-SHEET-3-–-CREATE-A-PAGE-EXTENSION.pdf" rel="noopener">Create a page extension</a></li>
</ul>
&nbsp;

Happy coding

<strong><em>Freddy Kristiansen</em></strong>
Technical Evangelist

<span style="color: #ffffff">Passwords: Vyze0758, Qazo1497, Velu5958</span>]]></content:encoded>
    </item>
    <item>
      <title>CHALLENGE #4 - Translate Item Descriptions (LEVEL 2)</title>
      <link>https://docs.microsoft.com/archive/blogs/hackathonchallenges/challenge-4-translate-item-descriptions-level-2</link>
      <pubDate>Thu, 17 May 2018 07:16:20 GMT</pubDate>
      <dc:creator><![CDATA[FreddyDK]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/hackathonchallenges/?p=415</guid>
      <description><![CDATA[Scenario
For companies that provide item descriptions in more than one language, storing these...]]></description>
      <content:encoded><![CDATA[<h2>Scenario</h2>
<span>For companies that provide item descriptions in more than one language, storing these descriptions on the item card (via extended text, for example) provides a ready-to-use reference.  As new items are entered, a service would translate the item description into one or more languages and store the translation for reference or use on orders or e-commerce engines. </span>
<h2>To complete this challenge, you will need</h2>
<span>To complete this challenge, you will need:</span>
<ul>
 	<li><span>A Dynamics 365 Business Central Sandbox Environment</span>
<ul>
 	<li><span>Use <a target="_blank" href="https://aka.ms/bcsandbox" rel="noopener">https://aka.ms/bcsandbox</a> to create an Azure VM if you do not have a sandbox environment.</span></li>
</ul>
</li>
 	<li><span>Visual Studio Code with the AL Extension installed</span>
<ul>
 	<li><span>Azure VMs will have VS Code pre-installed</span></li>
</ul>
</li>
 	<li><span>A translator API Key from <a target="_blank" href="https://www.microsoft.com/en-us/translator/trial.aspx" rel="noopener">https://www.microsoft.com/en-us/translator/trial.aspx</a></span></li>
</ul>
<h2>Expected result</h2>
<img src="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-4.gif" alt="" width="1914" height="947" class="alignnone size-full wp-image-365" />
<h2>Steps</h2>
<ul>
 	<li><span>Create an empty app</span></li>
 	<li><span>Create a table extension for the item table and add fields</span></li>
 	<li><span>Create a page extension for the item card and add fields</span></li>
 	<li><span>Add a Codeunit with a function that translates a text from one language to another.</span></li>
 	<li>Add a button to the Item card, calling the translate method for all new description fields.</li>
</ul>
<h2>Hints</h2>
<ul>
 	<li><span>In VS Code, use Ctrl+Shift+P and type AL GO and remove the customerlist page extension</span></li>
 	<li><span>Use the <em>ttableext</em>, and the <em>tfieldtext</em> snippet</span></li>
 	<li><span>Use the <em>tpageext</em> and the <em>tpagefield</em> snippet</span></li>
 	<li><span>Use <em>HttpClient</em> to communicate with the Web Service and use Json types (<em>JsonObject</em>, <em>JsonToken</em>, <em>JsonArray</em> and <em>JsonValue</em>) to build content and extract values from the Web Service result. See <a target="_blank" href="https://docs.microsoft.com/en-us/azure/cognitive-services/translator/reference/v3-0-translate" rel="noopener">https://docs.microsoft.com/en-us/azure/cognitive-services/translator/reference/v3-0-translate</a> </span></li>
 	<li>Use <em>taction</em> snippet and add code to call the translate method</li>
</ul>
<h2>Cheat Sheets</h2>
<ul>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-4-CHEAT-SHEET-1-–-CREATE-AN-EMPTY-APP.pdf" rel="noopener"><span>Create an empty app</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-4-CHEAT-SHEET-2-–-CREATE-A-TABLE-EXTENSION.pdf" rel="noopener"><span>Create a table extension</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-4-CHEAT-SHEET-3-–-CREATE-A-PAGE-EXTENSION.pdf" rel="noopener"><span>Create a page extension</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-4-CHEAT-SHEET-4-–-CODE-FOR-TRANSLATING-A-STRING.pdf" rel="noopener"><span>Code for translating text</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-4-CHEAT-SHEET-5-–-ACTION-FOR-TRANSLATING-THE-DESCRIPTION.pdf" rel="noopener">Action for translating the description</a></li>
</ul>
&nbsp;

Happy coding

<strong><em>Freddy Kristiansen</em></strong>
Technical Evangelist

<span style="color: #ffffff">Passwords: Mahi1776, Koha3443, Mowu5430, Fehy2599, Lesu5260</span>]]></content:encoded>
    </item>
    <item>
      <title>CHALLENGE #3 - Include twitter feed on the customer card (LEVEL 2)</title>
      <link>https://docs.microsoft.com/archive/blogs/hackathonchallenges/challenge-3-include-twitter-feed-on-the-customer-card-level-2</link>
      <pubDate>Wed, 16 May 2018 09:23:34 GMT</pubDate>
      <dc:creator><![CDATA[FreddyDK]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/hackathonchallenges/?p=225</guid>
      <description><![CDATA[Scenario
To form the basis for monitoring customer sentiment, opportunities, or issues, enter a...]]></description>
      <content:encoded><![CDATA[<h2>Scenario</h2>
<span>To form the basis for monitoring customer sentiment, opportunities, or issues, enter a twitter handle for your customers and show a twitter timeline for the customer on the customer card.</span>
<h2>To complete this challenge, you will need</h2>
<ul>
 	<li><span>A Dynamics 365 Business Central Sandbox Environment</span>
<ul>
 	<li><span>Use <a target="_blank" href="https://aka.ms/bcsandbox" rel="noopener">https://aka.ms/bcsandbox</a> to create an Azure VM if you do not have a sandbox environment.</span></li>
</ul>
</li>
 	<li><span>Visual Studio Code with the AL Extension installed</span>
<ul>
 	<li>Azure VMs will have VS Code pre-installed</li>
</ul>
</li>
</ul>
<h2>Expected result</h2>
<img src="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-3.gif" alt="" width="1920" height="1107" class="alignnone size-full wp-image-235" />
<h2>Steps</h2>
<ul>
 	<li><span>Create an empty app</span></li>
 	<li><span>Create a table extension for the customer table and add field for twitter handle</span></li>
 	<li><span>Create a page extension for the customer card and add field for twitter handle</span></li>
 	<li><span>Create Custom Control for showing Twitter feed</span></li>
 	<li><span>Create a <em>CardPart</em> page showing a twitter feed</span></li>
 	<li>Add the Twitter Feed card part to customer card</li>
</ul>
<h2>Hints</h2>
<ul>
 	<li><span>In VS Code, use Ctrl+Shift+P and type AL GO and remove the customerlist page extension</span></li>
 	<li><span>Use the <em>ttableext</em> and the <em>tfield</em> snippets to create the table extension</span></li>
 	<li><span>Use the <em>tpageext</em> and the <em>tpagefield</em> snippets to create the page extension</span></li>
 	<li><span>Use the <em>tcontroladdin</em> snippet to create the custom control, use <a target="_blank" href="https://dev.twitter.com/web/javascript/loading" rel="noopener">https://dev.twitter.com/web/javascript/loading</a> as inspiration for the Javascript code</span></li>
 	<li><span>Use the tpage snippet to create the cardpart page</span></li>
 	<li>Add the Twitter feed part to the factboxes area.</li>
</ul>
<h2>Cheat sheets</h2>
<ul>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-3-CHEAT-SHEET-1-–-CREATE-AN-EMPTY-APP.pdf" rel="noopener">Create an empty app</a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-3-CHEAT-SHEET-2-–-CREATE-A-TABLE-EXTENSION.pdf" rel="noopener"><span>Create a table extension</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-3-CHEAT-SHEET-3-–-CREATE-A-PAGE-EXTENSION.pdf" rel="noopener"><span>Create a page extension</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-3-CHEAT-SHEET-4-–-CREATE-A-TWITTER-FEED-CUSTOM-CONTROL.pdf" rel="noopener"><span>Create a Twitter Feed custom control</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-3-CHEAT-SHEET-5-–-CREATE-A-TWITTER-FEED-CARD-PART.pdf" rel="noopener"><span>Create a Card Part with the Twitter Feed custom control</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-3-CHEAT-SHEET-6-–-ADD-TWITTER-CARD-PART-TO-CUSTOMER-PAGE.pdf" rel="noopener">Add card part to customer page</a></li>
</ul>
&nbsp;

Happy coding

<strong><em>Freddy Kristiansen</em></strong>
Technical Evangelist

<span style="color: #ffffff">Passwords: Biqo3008, Gina2596, Velo7834, Jide3831, Horu9701, Mimy4754</span>]]></content:encoded>
    </item>
    <item>
      <title>CHALLENGE #2 - Geocode customers (LEVEL 3)</title>
      <link>https://docs.microsoft.com/archive/blogs/hackathonchallenges/challenge-2-geocode-customers-level-3</link>
      <pubDate>Wed, 16 May 2018 09:11:16 GMT</pubDate>
      <dc:creator><![CDATA[FreddyDK]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/hackathonchallenges/?p=215</guid>
      <description><![CDATA[Scenario
As customers are created or modified, their addresses are automatically geocoded and their...]]></description>
      <content:encoded><![CDATA[<h2>Scenario</h2>
<span>As customers are created or modified, their addresses are automatically geocoded and their location are stored in a set of new fields on the Customer table. A factbox showing the current location of the customer on a map is added to the Customer Card and links to open a large map or get directions are available as well. As a bonus, you can create an action, which will display all customers within a certain range on a map.</span>
<h2><span>To complete this challenge, you will need</span></h2>
<ul>
 	<li><span>A Dynamics 365 Business Central Sandbox Environment</span>
<ul>
 	<li><span>Use <a target="_blank" href="https://aka.ms/bcsandbox" rel="noopener">https://aka.ms/bcsandbox</a> to create an Azure VM if you do not have a sandbox environment.</span></li>
</ul>
</li>
 	<li><span>Visual Studio Code with the AL Extension installed</span>
<ul>
 	<li><span>Azure VMs will have VS Code pre-installed</span></li>
</ul>
</li>
 	<li><span>A BingMaps API Key from <a target="_blank" href="https://www.bingmapsportal.com" rel="noopener">https://www.bingmapsportal.com</a> (Public WebSite or Dev/Test key)</span></li>
</ul>
<h2>Expected result</h2>
<img src="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-2.gif" alt="" width="1920" height="1012" class="alignnone size-full wp-image-205" />
<h2>Steps</h2>
<ul>
 	<li><span>Create an empty app</span></li>
 	<li><span>Create a table extension for the customer table and add fields</span></li>
 	<li><span>Create a page extension for the customer card and add fields</span></li>
 	<li><span>On the <em>OnBeforeModify</em> and <em>OnBeforeInsert</em> triggers on the <em>Customer</em> table, geocode the customer address using BingMaps API</span></li>
 	<li><span>Create a <em>CardPart</em> page showing a map of the geocoded position</span></li>
 	<li>Create an action opening a browser with all customers as shared places</li>
</ul>
<h2>Hints</h2>
<ul>
 	<li><span>In VS Code, use Ctrl+Shift+P and type AL GO and remove the customerlist page extension</span></li>
 	<li><span>Use the <em>ttableext</em>, the <em>tfield</em> and the <em>tkey</em> snippets</span></li>
 	<li><span>Use the <em>tpageext</em> and the <em>tpagefield</em> snippets</span></li>
 	<li><span>Use <em>HttpClient</em> to communicate with the Web Service and use Json types (<em>JsonObject</em>, <em>JsonToken</em>, <em>JsonArray</em> and <em>JsonValue</em>) to extract values from the Web Service result</span></li>
 	<li><span>Use <em>tpage</em> snippet and add <em>usercontrol</em> with the <em>WebPageViewer</em>. Use <a target="_blank" href="https://www.bing.com/maps/embed-a-map" rel="noopener">https://www.bing.com/maps/embed-a-map</a> to see the html you can use In the control.</span></li>
 	<li>Add location of all customers to the sp parameter as explained here: <a target="_blank" href="https://msdn.microsoft.com/en-us/library/dn217138.aspx" rel="noopener">https://msdn.microsoft.com/en-us/library/dn217138.aspx</a></li>
</ul>
<h2>Cheat sheets</h2>
<ul>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-2-CHEAT-SHEET-1-–-CREATE-AN-EMPTY-APP.pdf" rel="noopener"><span>Create an empty app</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-2-CHEAT-SHEET-2-–-CREATE-A-TABLE-EXTENSION.pdf" rel="noopener"><span>Create a table extension</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-2-CHEAT-SHEET-3-–-CREATE-A-PAGE-EXTENSION.pdf" rel="noopener"><span>Create a page extension</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/09/CHALLENGE-2-CHEAT-SHEET-4-CODE-FOR-GEOCODING-AN-ADDRESS.pdf" rel="noopener"><span>Code for geocoding an address</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-2-CHEAT-SHEET-5-–-THE-CUSTOMER-MAP-CARD-PART.pdf" rel="noopener"><span>The customer map card part</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-2-CHEAT-SHEET-6-–-ADD-THE-CUSTOMER-MAP-TO-THE-CUSTOMER-CARD.pdf" rel="noopener"><span>Add the customer map to the Customer Card</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-2-CHEAT-SHEET-7-–-SHOW-ALL-CUSTOMERS-ON-A-MAP-.pdf" rel="noopener">Show all customers on a map</a></li>
</ul>
&nbsp;

Happy coding

<strong><em>Freddy Kristiansen</em></strong>
<span>Technical Evangelist</span>

<span style="color: #ffffff">Passwords: Biza5514, Repe6676, Vady4574, Huwa2666, Dahi8208, Bamu6541, Xepe8513</span>]]></content:encoded>
    </item>
    <item>
      <title>CHALLENGE #1 - Auto-fill company information on the customer card (LEVEL 2)</title>
      <link>https://docs.microsoft.com/archive/blogs/hackathonchallenges/challenge-1-auto-fill-company-information-on-the-customer-card</link>
      <pubDate>Wed, 16 May 2018 08:18:25 GMT</pubDate>
      <dc:creator><![CDATA[FreddyDK]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/hackathonchallenges/?p=115</guid>
      <description><![CDATA[Scenario
As a new customer is entered in Dynamics 365 Business Central, the user can decide to...]]></description>
      <content:encoded><![CDATA[<h2><span>Scenario</span></h2>
<span>As a new customer is entered in Dynamics 365 Business Central, the user can decide to enter a domain name instead of the name, which leads to the system looking up the information for the company associated with this domain name from a Web Service and filling out the remaining fields on the customer card with information obtained from the Web Service.</span>
<h2><span>To complete this challenge, you will need</span></h2>
<ul>
 	<li><span>A Dynamics 365 Business Central Sandbox Environment</span>
<ul>
 	<li><span>Use <a target="_blank" href="https://aka.ms/bcsandbox" rel="noopener">https://aka.ms/bcsandbox</a> to create an Azure VM if you do not have a sandbox environment.</span></li>
</ul>
</li>
 	<li><span>Visual Studio Code with the AL Extension installed</span>
<ul>
 	<li><span>Azure VMs will have VS Code pre-installed</span></li>
</ul>
</li>
 	<li><span>An API Key from <a target="_blank" href="https://www.fullcontact.com" rel="noopener">https://www.fullcontact.com</a></span></li>
</ul>
<h2>Expected result</h2>
<img src="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-1.gif" alt="" width="1333" height="840" class="alignnone size-full wp-image-125" />
<h2>Steps</h2>
<ul>
 	<li><span>Create an empty app</span></li>
 	<li><span>Create a page extension for the customer card</span></li>
 	<li><span>On the <em>OnAfterValidate</em> trigger on the <em>Name</em> field, check whether the entered value is a domain name</span></li>
 	<li><span>Ask the user whether he wants to lookup information about the company associated with this domain name</span></li>
 	<li>Call the fullcontact Web API and assign field values</li>
</ul>
<h2>Hints</h2>
<ul>
 	<li><span>In VS Code, use Ctrl+Shift+P and type AL GO and remove the customerlist page extension</span></li>
 	<li><span>Use the <em>tpageext</em> snippet</span></li>
 	<li><span>Use <em>EndsWith</em> to check whether the name is a domain name</span></li>
 	<li><span>Use the <em>Confirm</em> method to ask whether the user want to download info</span></li>
 	<li><span>Use <em>HttpClient</em> to communicate with the Web Service</span></li>
 	<li>Use Json types (<em>JsonObject</em>, <em>JsonToken</em>, <em>JsonArray</em> and <em>JsonValue</em>) to extract values from the Web Service result</li>
</ul>
<h2>Cheat sheets</h2>
<ul>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-1-CHEAT-SHEET-1-CREATE-AN-EMPTY-APP.pdf" rel="noopener"><span>Create an empty app</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-1-CHEAT-SHEET-2-–-CREATE-A-PAGE-EXTENSION.pdf" rel="noopener"><span>Create a page extension</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-1-CHEAT-SHEET-3-–-CODE-FOR-COMMUNICATING-WITH-THE-SERVICE.pdf" rel="noopener"><span>Code for communicating with Web Service</span></a></li>
 	<li><a target="_blank" href="https://msdnshared.blob.core.windows.net/media/2018/05/CHALLENGE-1-CHEAT-SHEET-4-–-UPDATE-THE-CUSTOMER.pdf" rel="noopener">Update the customer</a></li>
</ul>
&nbsp;

Happy coding

<strong><em>Freddy Kristiansen</em></strong>
<span>Technical Evangelist</span>

<span style="color: #ffffff">Passwords: Nano9225, Rawy1542, Kaze4177, Syco9004</span>]]></content:encoded>
    </item>
  </channel>
</rss>