Azure, Azure Function Extension, Azure Functions, DotNet, Http Trigger, node.js, npm, nuget package, QR Code, QRCoder, SDK, Tip & Tricks, Visual Studio Code

Creating Azure Functions to generate QR Code

This is second post in this series, if you wish to see previous post, you can access here.

Today in this post I will discuss about first part, how to create Azure Functions.

Before we start, you need some installation to support creating Azure Functions. Use below Links to download & install these packages on the system, where you wish to write, compile & test the Azure functions.

Installation Links:

https://docs.npmjs.com/downloading-and-installing-node-js-and-npm

https://nodejs.org/en/download/

https://dotnet.microsoft.com/download/dotnet/thank-you/sdk-3.1.414-windows-x64-installer

Obviously, you must have an active Azure subscription, to create an Azure Functions App. If you don’t have, you can create an account that gives you a credit to explore Microsoft Azure for 30 days.

Head to Azure portal and sign in with your account.

Create New Function App.

Select your Azure subscription and a resource group or create a new one. Provide a name for your function app. This name will be the prefix for the URL.

You can select the .NET Core runtime and the region that matches your location. Select the Review + create button.

Now, you can create new functions. A function app can contain multiple functions. Each function will be available on:

Before you start to create Function, you need to Install dependencies:

  1. You should install Visual Studio Code
  2. You should also install Node.JS 
  3. Run the following command to install the Core Tools package:

npm install -g azure-functions-core-tools@3 –unsafe-perm true

Create an Azure Functions project

Click the Create New Project… icon in the Azure: Functions panel.

You will be prompted to choose a directory for your app. Choose an empty directory.

You will then be prompted to select a language for your project. Choose dotnet.

Create a function

If you skipped to provide details, for Functions in above process, you can still initiate later.

Click the Create Function… icon in the Azure: Functions panel.

You will be prompted to choose a template for your function. Select HTTP trigger for getting started.

Screens will be same as shown in above process.

Sample project will be created

As per the information provided by you, in above screens.

KSDQRGenerator.cs auto generated file code will be as below:

using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;

namespace Company.Function
{
    public static class KSDQRGenerator
    {
        [FunctionName("KSDQRGenerator")]
        public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            string name = req.Query["name"];

            string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            dynamic data = JsonConvert.DeserializeObject(requestBody);
            name = name ?? data?.name;

            string responseMessage = string.IsNullOrEmpty(name)
                ? "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."
                : $"Hello, {name}. This HTTP triggered function executed successfully.";

            return new OkObjectResult(responseMessage);
        }
    }
}

Now you have the Http Template, we will make necessary changes as per our requirement.

In this example we will be using a library – QRCoder to generate the QR Code.

So first we have created a function with Http Trigger.

Made changes to the function as:

/*string name = req.Query["name"];

            string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            dynamic data = JsonConvert.DeserializeObject(requestBody);
            name = name ?? data?.name;

            string responseMessage = string.IsNullOrEmpty(name)
                ? "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."
                : $"Hello, {name}. This HTTP triggered function executed successfully.";

            return new OkObjectResult(responseMessage);*/

Replace this part as below code:

            string ReqData = req.Query["ReqData"];

            string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            dynamic data = JsonConvert.DeserializeObject(requestBody);
            ReqData = ReqData ?? data?.url;
            if (string.IsNullOrEmpty(ReqData))
            {
                return new BadRequestResult();
            }

            var generator = ReqData;
            var payload = generator.ToString();

            using (var qrGenerator = new QRCodeGenerator())
            {
                var qrCodeData = qrGenerator.CreateQrCode(payload, QRCodeGenerator.ECCLevel.Q);
                var qrCode = new PngByteQRCode(qrCodeData);
                var qrCodeAsPng = qrCode.GetGraphic(20);
                return new FileContentResult(qrCodeAsPng, "image/png");
            }

Final Code should look like this:

There are some errors, correct. Next step will resolve the same.

Next, we will add the QRCode nuget package to the dotnet core project using 

dotnet add package QRCoder –version 1.4.1

Post completing the command execution, all errors are resolved.

Run your function project locally

Press F5 to run your function app.

The runtime will output a URL for any HTTP functions, which can be copied and run in your browser’s address bar.

Copy the URL of the function & Switch to browser:

In my case: http://localhost:7071/api/KSDQRGenerator?ReqData=Test

If you scan above QRCode, you will get ‘Test’ as we have passed this as a parameter (?ReqData=Test)

To stop debugging, press Shift + F5.

Deploy your code to Azure

Click the Deploy to Function App… () icon in the Azure: Functions panel.

Sign in to your Azure Account, if not done earlier. To test locally you need not to sign in to Azure. But at deployment is must.

When prompted to select a function app, choose KSDQRCodeGenerator (in my case), Function App Created on Azure portal in the starting of this blog post.

Confirm to deployment dialog.

On completion you will get the Live AZURE URL, use the URL in same way as for local, to pass parameter append at the end of URL as (?ReqData=Test)

Replace [Test] with the information for which you want to generate the QR Code.

That’s all for this post, but visit again to learn from upcoming posts in this series, will post soon.

See you again in next post, Till then keep exploring, learning and sharing with others.

Azure, Azure Functions, Business Central, QR Code, Quick Response Code, Tip & Tricks

QR Code Generator using Azure Functions & Integration with Business Central Cloud Version

Today in this post I will explain how and why you should consider create your own QR Code programmatically internally without the use of public available options.

Quick Response code, is a code that can be easily read by a device having camera attached. QR Codes are commonly used today across various industries.

In todays word hardly you will find any product which don’t have either Barcode or QR Code.

You may find many free QR Code generators available on the internet. It is very convenient to source and quickly generate QR Codes but using their services have areas of risks and concerns for organization to consider.

The potential security risks such as phishing, malware, Malicious website and data tracking few to list.

Solution to this could be organizations should prefer to find an enterprise paid service or to create their own. If any organization decides to build their own QR Code generator, then there are open-source QR Code libraries where they can rely on.

Now to build a full-fledged application will require to consider for all the typical application infrastructure considerations such as networking, security, monitoring, patching and the list keeps growing. There could be many considerations just to provide a simple service and is it worth? Another big fat questions.

Here comes the Azure Functions.

Microsoft Azure is a cloud computing service that is used for building, testing, deploying, and managing applications.

It provides

  • software as a service (SaaS),
  • platform as a service (PaaS), and
  • infrastructure as a service (IaaS).

Azure Functions runs on the Microsoft Azure platform and is used to run small pieces of code, or functions, in the cloud.

With Azure Functions, you only need to focus on a specific function without worrying on the whole application or the infrastructure to run it. Additionally, Azure Functions lets you run your code in a serverless environment without creating a virtual machine or publish any web application.

For Azure functions, you can use development language of your choice, such as C#, F#, Node.js, or PHP.

Because Microsoft Azure is a service, no doubt you have to pay for it. Azure Functions has two types of pricing plans:

Consumption plan – Microsoft Azure provides all the necessary computational resources. Therefore, you don’t need to concentrate on resource management, and you only pay for the time that your code runs.

App service plan – With the app service plan, you can run your functions as you do other web and API applications on Azure. If you are already using app services for other applications, you can run Azure Functions on the same plan without additional costs.

Check for latest Plan online on Azure portal as and when you decide to use the service, or to grab a free trial account. You can list free services available to you if you have azure account using this link here.

Azure Functions Pricing you can check here and free grant per month.

Above links and further links from there will provide detailed information on everything you may require to go with Azure Functions.

Enough for introduction, what we are going to Explore in this series:

  1. Creating Azure Functions to generate QR Code & Sample Test of Azure Function
  2. Integrating Azure Function with Business Central
  3. Integrating with Business Central – using Web Service
  4. Testing of Extension functionality for QR Code Generation.

Anything else I decide to add more will update this post with links and other topics related to this series.

Make a book mark to this post, I will update the Links in above list as I complete my next post, and add more topics to the list, I further decide to include in this series.

Go through the above links to educate yourself, so that what I explain in upcoming posts, you better co-relate them.

That’s all for this post, but visit again to learn from upcoming posts in this series, will post soon.

See you again in next post, Till then keep exploring, learning and sharing with others.

Azure, Development Tips, Dynamics 365, Functional Tips, How To, Image Analyzer, Information, Instalation & Configuration, NAV 2018, Tip & Tricks, What's New

Image Analysis feature in Dynamics NAV 2018

In Dynamics NAV 2018, the Image Analyzer extension uses the Computer Vision API to analyze images that are attached to contact persons and items.

For example, this is useful for items because it lets you build up a stockpile of metadata about what you sell and use it to fine-tune search results when someone is browsing your web shop.

Image Analyzer is free in Dynamics NAV, but there is a limit to the number of items that you can analyze during a certain period of time. By default, you can analyze 100 images per month.

After you enable the extension, Image Analyzer runs each time you import an image to an item or contact person. You will see the attributes, confidence level, and details right away, and can decide what to do with each attribute. If you imported images before you enabled the Image Analyzer extension, you must go to the item or contact cards and choose the Analyze Picture action.

Requirements

There are a few requirements for the images:

  • Image formats: JPEG, PNG, GIF, BMP
  • Maximum file size: Less than 4 MB
  • Image dimensions: Greater than 50 x 50 pixels

How to enable Image Analyzer

To enable the Image Analyzer extension, do one of the following:

Method-1 : Open an item or contact card. In the notification bar, choose Analyze Images, and then follow the steps in the assisted setup guide.

 

IA-1

This will launch Image Analyser assisted setup guide, follow the step.

 

IA-2

IA-3

IA-4

Once you are done It will import your image for Analysing.

IA-5

 

Method-2 : Access the Service Connections, and then choose Image Analysis Setup.

IA-5.1

Choose the Enable Image Analyzer check box, and then complete the steps in the assisted setup guide.

IA-5.2

For URL and Key follow these steps:

Click on Computer Vision API Documentation

IA-6

Click on Try Computer Vision API

IA-7

Select your API Computer Vision API and then Get API Key

IA-8

Agree to T & C select your Country/Region and then Next

IA-9

Sign-In with the preferred account sign-in method

IA-10

Once done you will land on page which will have your Endpoint URL and Key

You must add /analyze at the end of the API URI, if it isn’t already there.

IA-11

Enter your Endpoint URL and Key and close the window.

IA-12

Now you import your Image, or select Analyze Picture if already imported

IA-13

This will analyze the Image and provide you with the Attributes.

The Image Analyzer Attributes page displays the detected attributes, the confidence level, and other details about the attribute. Use the Action to perform options to specify what to do with the attribute.

 

This is how you enable and configure your Image Analyzer Service.

 

To see how many analyses you have left in the current period

You can view the number of analyses you’ve done, and how many you can still do, in the current period.

Enter Image Analyzer Setup, and then choose the related link.

The Limit type, Limit value, and Analyzes performed provide the usage information.

 

To stop using the Image Analyzer extension

Enter Service Connections, and then choose Image Analyzer Setup.

Clear the Enable Image Analyzer check box.

 

I will come with more details as I proceed.

 

 

 

Azure, Development Tips, How To, IIS, Information, Instalation & Configuration, NAV 2017, Tenerife, Tip & Tricks, What's New

Microsoft Dynamics NAV ‘Tenerife’ Developer Preview

As everyone is aware by now that Preview of Development Tools for Dynamics NAV have been released. Going forward which can be used to build extensions and apps in and for Dynamics NAV.

This tool introduces two flavors which you can try out in preview available on cloud.

[A] Make an extension in the client itself. Business consultants and UX designers will love using this drag-and-drop interface. Rearrange fields, rename groups, and reposition elements to build a perfect extension to support an industry-specific solution or implement a business process optimization.

[B] Use the AL Extension for NAV in Visual Studio Code to build powerful extensions based on tables, pages, and codeunits using the new objects: Page Extensions and Table Extensions. Follow this route to build rich extensions that reuse and extend core business logic in your application.

For more details you can refer to the article published by Dynamics NAV Team Announcing the Preview of Development Tools for Dynamics NAV

You can get a free 30-day trial from https://azure.microsoft.com/free/ that will give you access to everything you need.

Secondly, head over to http://aka.ms/navdeveloperpreview. Login to your Azure Subscription. Select your subscription, resource group, location, name, and a VM Admin Password. Leave the remaining fields as their defaults. Accept the terms, Pin to dashboard and select Purchase. The instance takes about 5 minutes to set up, and the VM will be ready about 15 minutes after Azure says Deployment Succeeded.

You need to follow on screen instructions to get everything setup using above 2 links provided.

I am not going to repeat the steps as you can find them via other blogs or follow the steps as you proceed via using above two links.

Few of my readers were complaining about they don’t have access to Azure Subscription or they have already used up the limit now what to do?

Same situation was with me too, but however I managed to get one and done bit RND, if this can be setup on my PC so that I can give it a try or others can use same steps to get it configured, and give it a try.

However I got succeeded in doing so, now I can do the same in my environment.

The Steps I am going to explain below is not the straight forward, and require bit tricks, as required components are yet not released from Microsoft, may we can get in CU-2,  I guess or later when Microsoft is OK to release this feature for everyone.

This action will require several pre-requisite to be fulfilled:

  1. Visual Studio Code (To be Installed)
  2. Dynamics Navision Version (10.0.14540)
  3. Some Modification to web.config to enable designer in Web Client

 

STEP-1

You can download the Visual Studio Code from this link: Click Here

Once file is downloaded install the Visual Studio Code by running VSCodeSetup-1.8.1.exe

And follow the on screen instructions to complete the setup.

 

td-01td-02td-03td-04td-05td-06td-07td-08td-09

STEP-2

Dynamics Navision Version

Make sure you have correct version of Dynamics Navision (10.0.14540)

td-10

Else you will not get this option in your Service Window

td-11

STEP-3

Modification to web.config

You will need to make necessary settings to web.config file to enable designer in Web Client, this file is located at C:\inetpub\wwwroot\DynamicsNAV100 location where your Web Client is installed.

td-12

td-13

 

Now you should be ok to use this feature in your environment.

Once things are setup correct you will be able to find the Client Designer Button on right top corner of the Client Window/Browser.

I will come up with more details in my up-coming posts till then keep exploring and learning.

 

 

 

Azure, Corfu Navision 2016, How To, Information, Instalation & Configuration, Office 365, Office Integration, Tip & Tricks

Configuring Single Sign-On using Office 365 on Navision 2016

Today we will see how we can enable Single Sign-On using Office 365 for Navision 2016.

Before we start we should have Virtual Machine ready on Azure with Navision 2016 installed, Certificates and Nav User is configured. Endpoints are open so that web client can be used from outside Virtual Machine on internet.

It should be hosted on Public IP, then only we will be able to configure it.

For details regarding Azure Subscription you can see my earlier post here.

For details regarding Creating Virtual Machines you can see my earlier post here.

You also need Office 365 Subscription ready for use and you can use the AD of same to configure your Single Sign-On.

Let us start with Admin console of office 365. Click on Azure AD this will create Management Console to work with AD.

SingleSignOn-1

Enter your details and click on Next.

SingleSignOn-2

Enter your details and click on Next, Finally Sign Up.

SingleSignOn-3

It will take few minutes to configure and make it available for you.

SingleSignOn-4

Once your Subscription is ready click on Start Managing my Service.

SingleSignOn-5

From Management Console click on Virtual Machine, if you dont have already to create one for you.

SingleSignOn-6

Select the Virtual Machine in Search for Microsoft Dynamics Nav 2016.

SingleSignOn-7

Select the approprite Virtual Machine from the List.

SingleSignOn-8

Enter your details and Create. For more details see the link provided on top of the post.

SingleSignOn-9

Let us return to our AD, Click on Applications. This will List all you Apps currently available with your AD or office 365.

SingleSignOn-10

Click on Add to configure your Application.

Give a Name and Select Web Application/or Web API, as we are configuring for Web Client today. Click on Next.

SingleSignOn-11

Enter your Web Client URL and Office portal AD URL.  Click on OK.

SingleSignOn-12

Your New application gets registered with your AD.

Select the created Application and Click on View Endpoints.

SingleSignOn-13

Copy the Federation MetaData URL and keep it handy at safe place we will require this in our next step. Close the window we are not performing any changes here.

SingleSignOn-14

Open your Navision User Card.In Office 365 Authentication enter your Office portal user email id which you will be using for Single Sign-On.

SingleSignOn-15

Open your Navision Service Instance configuration and enter Federal MetaData URL which we copied in our previous step.

SingleSignOn-16

Restart you NAV Service.

SingleSignOn-17

Open the Web Client Folder under your IIS. Edit your Web.config file using prefered Editor.

SingleSignOn-18

Enter you Client Service Credentials as AccessControlService.

SingleSignOn-19

Change value of ACS URI as below. You have full explaination of same in the file itself.

SingleSignOn-20

Thats all, Now you open your web client and you will be redirected to Office 365 Login Page, enter your valid office 365 e-mail user id and password you will be authenticated and Web Client is opened.

Thats all for today, I will come up with moredetails in my upcoming posts.

Till then keep exploring and learning.

 

Azure, Information, Tip & Tricks

Customers with Enterprise Agreement who already have SQL Server Licenses, can use them on Azure Virtual Machines

Now  Microsoft Enterprise Agreement customers can bring existing licenses to run SQL Server on Azure Virtual Machines. Since the launch of Azure Virtual Machines, customers can already run SQL Server on Azure Virtual Machines through several existing SQL Server images available in the Azure Gallery, or bring their own images to Azure.

These images and capabilities will continue to be supported so customers can continue to take advantage of pay per use licensing for SQL Server on Azure Virtual Machines.

 

Starting this week, customers with Enterprise Agreement who already have SQL Server Licenses, can use them on Azure Virtual Machines with Microsoft-certified (BYOL) gallery images. These images will not charge for SQL Server licensing, just for compute cost.

For more details see the Link.

 

Azure, Corfu Navision 2016, Development Tips, How To, Information, Instalation & Configuration, Machine, Server, Tip & Tricks, Virtual

Creating Virtual Machine on Azure

Continuing from my previous post.

In previous post we saw how to register for Free Azure Portal Account, if you missed you can find the link here.

Today we will see how to create Virtual Machine for Dynamics Navision 2016 pre Loaded.

Lets start creating one for our future posts practice.

Open the page : https://azure.microsoft.com/en-us/free/ and follow onscreen Instruction to login to your account.

Login using the account credentials you used for registering on Azure Portal.

Azure-5

Upon signing you will be landed to your dashboard on Portal.

You can see we don’t have any resource on Portal yet.

Azure-6

Lets start creating one.

Click on New from Top right corner.

Choose Virtual Machine.

Enter “Microsoft Dynamics NAV 2016” in the search box, it will list available Virtual Machine images.

Select the one available Virtual Machine for commissioning.

I have choose this because we will get preinstalled NAV 2016 which will save our time.

Azure-7

Select Deployment Model, I have choose Classic and click on Create.

Azure-8

Next we will enter  Host Name, User Name, Password, other things you adjust as per your need. Click on Create.

Note your User Name & Password you will require this to login to the Server.

Azure-9

Give some time to get created and up your Server.

In the mean time you can explore other things till your Server is up and running for you.

Once it is made available, you can start login and explore your newly created Server.

Where to find my Server?

From the Navigation Bar choose Virtual Machine (classic).

It will list you all Virtual Machines created by you.

Select your Virtual Machine in my case it is NavDemo.

You can find the Server Name and IP of your Virtual Machine.

Azure-10

I am using my IP to login to my Server.

Open your Remote Desktop Connection and enter your IP.

The User Name & Password as we created in previous step.

Azure-11

Here I am Login to my Server.

Azure-12

You can see that Dynamics NAV 2016 is already available with my Server.

Azure-13

That’s all for today, we will see more in my upcoming posts.

Till then keep exploring & Learning.

 

 

 

Azure, How To, Information, Instalation & Configuration, Tip & Tricks

AZURE free Subscription

Azure-0

I will be going with few posts demonstrating the Navision in Azure environment.

To start with we will be required to subscribe to Azure first.

Open page:

https://azure.microsoft.com/en-us/free/

Click on Start now.

Azure-1

Enter your Mobile No to verify you phone no.

Azure-2

Next you will be required to verify your credit card.

Once both things are verified you can start with Sign up with the Azure Subscription.

Azure-3

Before you start with managing your services on Azure here presented few FAQ.

 

Few FAQ on Azure Subscription.

 

Why is my credit card being charged $1 for signing up for the Free Trial offer?

To ensure a valid credit card, Microsoft will charge your credit card $1 when signing up for the Free Trial Offer. This is only an authorization hold, the charge will be reversed within 3-5 business days.

What happens with the services I created after the 30-day trial period ends?

Once the trial period is over, if you have not upgraded to a Pay-As-You-Go Azure subscription, we will decommission your services, and you will not be able to use them anymore.

What do I get when I sign up for a Free Trial?

You receive a $200 credit to spend on Azure services during the trial. You can use this $200 however you want to create and try out any combination of Azure resources. It enables you to explore our cloud entirely for free.

Do I pay anything during the trial?

No – the trial is absolutely free.

Do I have to pay something at the end of the trial?

No – there is absolutely no obligation to buy anything at the end of the trial.

How do I know how much of the $200 I’ve used and how much I have left?

During the trial we display your remaining trial credits at the top of the management portal. You cannot miss it.

What happens if I exceed the $200 free trial credit?

If you exceed your $200 free credit, we will suspend your free trial account. You can optionally upgrade your trial to be a Pay-As-You-Go Azure subscription at this point if you want to continue using and paying for services. If not, don’t worry – you won’t be billed anything.

Please refer to updated FAQ on site at time of using, all information is true as on date of this post, anything can change. https://azure.microsoft.com/en-us/pricing/free-trial-faq/

Azure-4

Click Start managing my subscription, you will land to your Dashboard.

Will come with next step in my upcoming post.