Azure API Management(APIM) for Power Platform

Hi Folks,

In today’s world, all the modern software applications use API for the front end to communicate with the backend systems, so lets see as it is very important for every developer working on Azure and API’s. Basically this is a PAAS Service from Azure. Follow along if you would like to know more details on this.

In short APIIM is a hybrid and multi cloud platform used to manage complete API life cycle. Azure API Management is made up of an API gateway, a management plane, and a developer portal.

  • Caching response to improve performance
  • Limit the number of API Calls
  • Security API and providing access
  • Interface to test API calls
  • API Analytics
  • Package related API Services
  • Transforms your API’s without
  • API Gateway is the first point of contact for any requests for your API which will route your requests to the appropriate backends. Imposes additional security restrictions with the help of JWT tokens and other certificates. Responses can be cached so that the API response could be faster.
  • Emits logs, metrics, and traces for monitoring, reporting, and troubleshooting
  • API Management are highly configurable, with control over URL mapping, query and path parameters, request and response content, and operation response caching.
  • Groups helps to provide conditional viewing capabilities.
  • Policy can help to change the behavior of an API without any code changes, this is well suited for your production API’s.

Also its easy to integrate API Management with all the other Azure Service available in the market.

Now lets go into the hands on by creating an APIIM simply from Azure.

Go to Home – Microsoft Azure and search for APIIM and select API Management services and click on Create.

Input all the details, it was pretty self explanatory, coming to the pricing tier you could select based on your project needs and use case. Click on Review and Create and then Create.

It will take few minutes for the deployment to complete and you can use it.

The below Power point slide presentation is complete resource which can help you with all your queries related to Azure API Management.

Grand Tour of Azure API Management

I hope this gives you a bit of introduction to Azure API Management, now lets see how you can use this in your Power Platform Solutions.

For this, once your API ready, all you have do is to export your API’s from Azure API Management to your Power Platform Environment. With this the citizen developers can unleash the capabilities of Azure where the API’s are developed by professional developers. With this capability, citizen developers can use the Power Platform to create and distribute apps that are based on internal and external APIs managed by API Management.

Steps to follow would be as below:

All you need to do is to create a custom connector for your API which can be used in Power Platform like Power Apps, Power Automate etc.

  1. Navigate to your API Management service in the Azure portal.
  2. In the menu, under APIs, select Power Platform.
  3. Select Create a connector.
  4. In the Create a connector window, do the following:
    1. Select an API to publish to the Power Platform.
    2. Select a Power Platform environment to publish the API to.
    3. Enter a display name, which will be used as the name of the custom connector.
    4. Optionally, if the API doesn’t already require a subscription, select Create subscription key connection parameter.
    5. Optionally, if the API is protected by an OAuth 2.0 server, provide details including Client IDClient secretAuthorization URLToken URL, and Refresh URL.
  5. Select Create.

Once the connector is created, navigate to your Power Apps or Power Automate environment. You will see the API listed under Data > Custom Connectors.

Custom connector in Power Platform

I hope this will give you a complete picture about API Management in Azure…if you have any further queries, don’t hesitate to comment here…

Cheers,

PMDY

Dynamics CE integration with Logic Apps – A quick review…

Hi Folks,

This blog post talks all about integration of your Logic apps to your Dynamics CE instance and it’s advantages. Lets get started…

By the way, I can’t redefine the definition provided by Microsoft, so here it goes.

Azure Logic Apps is fully managed integration PaaS service that helps you schedule, automate, orchestrate tasks, business processes, and workflows when you need to integrate apps, data, systems, and services across enterprises or organizations and simplify how you design and build scalable solutions for app integration, data integration, system integration, enterprise application integration (EAI), and business-to-business (B2B) communication, whether in the cloud, on premises, or both. It’s simple to say that you can integrate any system and it is built on a containerized runtime.

Now let’s understand how does the logic apps work:

Every logic app workflow starts with a trigger, which fires when a specific event happens, or when new available data meets specific criteria. Each time that the trigger fires, the Logic Apps engine creates a logic app instance that runs the actions in the workflow. These actions can also include data conversions and flow controls, such as conditional statements, switch statements, loops, and branching. As soon as the Logic App stops running, these resources are discarded.

The interesting part here is that Logic Apps is more developer friendly and can used directly create integrations using logic apps either from Visual studio, Visual Studio Code or browser.

We were given flexibility to choose the type of Logic Apps, Single-tenant and multi-tenant. While creating logic apps, we can use Standard or Consumption based resource type. Logic Apps can create complex orchestrations and it is serverless. This means there is no upfront knowledge required for developer about the infrastructure. You have to bear in mind that it is both a stateful and stateless service unlike Azure Function which is stateless. It allows you to use webhooks as triggers. Coming to the pricing part, the price of Microsoft Azure Logic Apps is inexpensive. Look at it’s architecture below

You can simply edit your Azure logic App in Visual studio code / Visual studio and push your changes to your Devops repository…wow such a easy approach…don’t forget to try it out…

Do let me know if you have any queries or if you can add any more points, do let me know in comments….

That’s it for today…will come back next week with another article in #PowerfulAloneBetterTogether Series.

Cheers,

PMDY

Simple Approval Design For Model-Driven Apps

temmyraharjo's avatarTemmy Wahyu Raharjo

Do you know the In-App Notification feature from Model Driven Apps? This feature can create a notification that targeted a specific User. We also can add action to the notification so the User can also interact with multiple actions (now is limited to just an open URL). In short, this feature is very useful for creating the Approval process. Without further ado, let’s go to my proposed solution! 😎

The Necessary Part

I created the below table for this demonstration purpose:

Request Table

As you can see, the User will fill in the Approver that needs to approve the request. Then in the status field, there are 3 options which are Draft, Approved, or Rejected.

For the next one, you need to create a Model-Driven App. The reason for it is because we need to turn on the feature from the Settings (in top-left from the App > go…

View original post 631 more words

Assembly must be registered in isolation error while trying to register plugin \ custom workflow activity in Isolation Mode None in Dynamics 365 On Premise CE

Hi Folks,

Recently I was trying to move the Plugins within a solution to another environment where I started to face the above mentioned error.

After checking found that the user who is deploying solution didnt have deployment administrator role. For this we need to provide Deployment administrator to the user who was actually deploying the solution, you will find deployment manager for your Dynamics Onpremise instance.

Once deployment administrator role is added, you should be able to move the solution.

Reference: Link

Cheers,

PMDY

Updating SSL Certifcates for your MVC Portals

Hi,

Now-a-days Power Platform pages/portals are being adopted by the clients using Dynamics. But there could be clients who still have their ASP.net MVC Portals running on Azure and just that they don’t want to move because of budget constraints. There will be times when you need to update the SSL certifcate to make the websites more secure out in the internet.

So here in this case, we’ll walk through the steps for updating your portal certificate. Please note that you need to create certificate request and request for the certificate from a certificate authority.

For updating certificate, you need use IIS….go to Server Certificates as highlighted below

Click on Complete Certificate Request at the right…as below

For File name below, click on Elipses and locate the file(.cer) of your SSL certificate provided by certificate issuing authority and click Ok.

Next step is to update the website bindings to take the latest certificate just updated. Click on your website as below..you should see bindings at the right as highlighted.

Locate the bindings as below

Click on the binding and click Edit..and select your latest SSL Certificate..

Click Ok and there you go, your certificate is updated.

Thank you for reading, please let me in comments if you have any queries….

Cheers,

PMDY

TypeScript Handbook….

Hi Folks,

Here is a brief intro to TypeScript….

Typescript is a strongly typed and built on Javascript. So now you could catch your errors little earlier…TypeScript code converts to JavaScript, which runs anywhere JavaScript runs: In a browser, in your apps etc.

TypeScript offers all of JavaScript’s features, and an additional layer on top of these: TypeScript’s type system. For example, JavaScript provides language primitives like string and number, but it doesn’t check that you’ve consistently assigned these. TypeScript does. This means that your existing working JavaScript code is also TypeScript code. TypeScript is an Object oriented programming language and inherits all the features of OO’Programming.

Microsoft recommends using TypeScript instead of JavaScript in all your Dynamics new implementations and slowly as this gives much flexibity to a developer. So why not learn this and boost your productivity…

Hope this helps…

Cheers,

PMDY

Check your Dynamics CE performance

Hi,

Recently I was asked by one customer on how they can assess or check the performance of Dynamics CE as they were having some network outages and issues. I remembered that I used a tool earlier for checking my Dynamics CRM On premise engagement. So after checking for online version as well, got to know that we can use in the same way to find the performance for the online CE instance as well. You can follow as below…

To run the Diagnostics tool, you have to follow these steps.

  1. On the user’s computer or device, start a web browser, and sign in to an organization.
  2. Enter the following URL, https://myorg.crm.dynamics.com/tools/diagnostics/diag.aspx, where myorg.crm.dynamics.com is the URL of your organization.
  3. Click Run.

The report displays a table with test and benchmark information. Of particular importance is the Latency Test row value. This value is an average of twenty individual test runs. Generally, the lower the number, the better the performance of the client.

In this way you can track your Dynamics CE performance at a given point of time to assess your network latency and bandwidth behaviors.

Cheers,

PMDY

Azure Service Bus Integration with Dynamics CE

Hi Folks,

In this post, we’ll talk about Azure Service bus.

Overview:

To start with Service Bus is fully managed messaging service which is used to connect any applications, devices, and services running in the cloud to any other applications or services. In this we can have queues which helps in the one directional communication and topics which provides two directional communication with the help of publish subscribe model.

Service bus can serve the following purposes

  1. Used for messaging
  2. For Decoupling producer and consumer of the message
  3. Load balancing
  4. For 1:N(publish and subscribe model) using Topics

Queues and Topics follow FIFO mechanism.

That said, lets see in action…

Create an Azure service bus namespace in Azure like below…

Following this, once you have created a namespace which is actually a container for all messaging components (queues and topics).

Next step is to create a queue or topic, in this case I am creating a queue….creating topic will be similar.

Fill up the details as required for the queue setup in the highlighted section…

After creating a queue or topic, you need to create an access policy for the same as below

Do note the queue URL as highlighted above….access control in service bus is achieved through Shared Access policies.

Once you have Primary connection string created, you need to go back to your Plugin registration tool and register a service end point for triggering your service bus message and provide the connection string in the below areas highlighted and click on next.

Next below appears for your review..

You can provide SAS Key or SAS Token for authentication in order to retrieve the messages from service bus and click on save. Now your end point is configured, now you can go ahead and create a step which will trigger the message to service bus from Dynamics, do note that you can only register an asynchronous operation inorder to communicate with your service bus.

You can perform the necessary operation and you can find the message being created in the service bus. If it didn’t show up immediately, please refresh and try after a few mins.

In order to consume these messages, you can use a console application for the sake of retrieval. Once the message is retrieved, it will be deleted from the queue by default.

Incase you want to use those messages for your troubleshooting purposes, you can peek command, the Peek operation on a queue or a subscription returns at most the requested number of messages. The following table shows the types of messages that are returned by the Peek operation.

Type of messagesIncluded?
Active messagesYes
Dead-lettered messagesNo
Locked messagesYes
Expired messagesMay be (before they are dead-lettered)
Scheduled messagesYes for queues. No for subscriptions

I hope this provides right insights for integrating service bus with Azure and service bus is widely used when both systems were not in sync and available at the same time.

Thank you for reading…

Reference: Service Bus from Microsoft

Happy integrating Dynamics CE with Azure….#PowerfulAloneBetterTogether

Cheers,

PMDY

Azure function – Dynamics CE integration guide

Hi Folks,

In this blog post, we will talk about the integration of Dynamics CE first party apps(Model driven) with Azure.

You can integrate with Function Apps from Dynamics using two ways…

  1. Authenticate your Dynamics CE app within your Function app code
  2. Register a web hook to trigger a call to Azure functions using a trigger

We’ll see both the scenarios…

  1. Authenticate your Dynamics CE app within your Function app code

Open your favorite IDE and create azure function..in this case I’ll be using Visual studio.

Create a new Azure Function Project(Make sure you install the Azure functions project template using extensions).

Click on Next option at the bottom, in the next step specify your Function App name as below.

Don’t change other values and click on Create at the bottom of the page.

So in the next step, please make a note of the important things which were highlighted below..

Make sure you select the Target framework as .Net Framework.

You can select any trigger, but for simplicity I am selecting HTTP Trigger here.

In case you need to debug your Azure function and run it locally, then you need to be sure that you install Azurite Storage Emulator in your machine using this link, otherwise you can select None for the storage account option, if in that case make sure that your Azure function don’t need any storage.

Don’t change other values and click on Create at the bottom of the page.

This will take couple of mins to create the necessary scaffolding required for the Azure function.

Now you need to authenticate to your Dynamics Instance, so firstly right click on your project and select Manage Nuget Packages. Then you need to browse for Microsoft.Crm.Sdk.CoreAssemblies and install.

Then you will be able to authenticate your Azure function with Dynamics CE…once you were authenticated you can create a hard coded entity record in Dynamics whenever your function app runs.

The entire code…is hosted in GitHub for reference.

In this way you can an integration between Azure function and Dynamics 365

We will require the API testing tool, here I am using Postman and the following is the link to download “Postman”. https://www.postman.com/downloads/

To test the application, click on the Start button on top of Navbar as mentioned below in the screenshot [Button will have Project Name]. It will take a few minutes to Load the Azure Emulator

Run the Function App on the Local machine for testing.

Following is the screen you will be able to see and copy the URL highlighted in the red below and paste that URL in Postman.

Azure Function Tool

Open the Postman and click on the create a new tab

Postman Dashboard

Select request as POST and paste the URL:

After pasting the URL, click on Send

You will get the following response on the Azure Function Tool and Postman

The result after Sending Post Request to Azure Function

If there any error or issue with the Azure Function code, the request will be failed and will be displayed on both Azure Function Tool and Postman [Status will be “4**” or “5**” ]

Now, we will take look at Dynamics 365 CRM environment and check whether the account is created or not.

Result

Created customer from Azure Function.

2. Register a web hook to trigger a call to Azure functions using a trigger

Will update the post to add this logic next time.

Cheers,

PMDY

Overcome all your limits with Azure #PowerfulAloneBetterTogether Series

Hi Folks,

Hope every one should be very much interested in learning the base line for Power Platform which is Azure.

So this blog serves as the introduction in this #PowerfulAloneBetterTogether series.

Basically while designing your solution for your CE Apps, in order to improve the performance you need to make sure that you perform a minimal set of operations in CE and if in cases where you exceed the timeout limit in Dynamics CE and this is where the remote execution context should be passed to Azure Integration and move all your heavy operations outside your Dynamics CE preferably a line of business application.

So this is where we can think of the following possibilities for our integration…please click on respective link to navigate respectively…

  1. Azure functions/Function Apps
  2. Azure logic Apps
  3. Azure Service Bus
  4. Azure APIM
  5. Azure Event Hub
  6. Azure Cognitive Services
  7. Azure Cosmos DB
  8. Azure Synapse Analytics

I would be detailing about each of this integration with a separate blog post…how each one provides a bunch of alternatives to overcome our current limitations.

Hope this blog series would be of great help and will serve as a reference and your go to guide for your Power Platform and Azure Integrations.

Till then, happy CRM’ing…and stay safe!!!

Cheers,
PMDY