Dynamics 365 Business Central: the impact of tableextensions
Dec28

Dynamics 365 Business Central: the impact of tableextensions

I think that everyone of you already knows that when working with Dynamics 365 Business Central, table extensions are killers for performances. But how much? That’s a question that I’ve also done to myself a lot of time when working with partners or when creating my own solutions. Is there a “deadline” for how many table extensions can I create for the same table in order to not kill my… Continue Reading...

Read More
Using Powershell to retrieve your Dynamics 365 Business Central telemetry
Dec16

Using Powershell to retrieve your Dynamics 365 Business Central telemetry

Telemetry, telemetry, telemetry… this is an hot topic in your developer’s and admin’s life in the cloud. We have talked a lot about using Application Insights for handling the telemetry data of your Dynamics 365 Business Central tenant running in the cloud and in the last events Microsoft, me and others (like my friend Duilio) explained how to use two important tools for querying your… Continue Reading...

Read More
Dynamics 365 Business Central: per-tenant extensions changes
Dec03

Dynamics 365 Business Central: per-tenant extensions changes

Do you remember this slide? This was (and is) one of my most shared slides ever (from me, from third-party partners and also from Microsoft’s PTS team). This explained common problems on using per-tenant extensions on a SaaS environment: Now things are changed and this slide must be updated (it’s overdue) Starting from Dynamics 365 Business Central version 17, per-tenant extensions… Continue Reading demiliani’s...

Read More
Moving Azure Functions from Consumption to Premium plans
Dec02

Moving Azure Functions from Consumption to Premium plans

In a demo at the Microsoft’s Reactor event in October I talked about the performance advantages on moving Azure Functions from Consumption to Premium plans when needed on certain scenarios. When you create a function app in Azure, you must choose a hosting plan for your app. There are three basic hosting plans available for Azure Functions:  Consumption planPremium planDedicated (App… Continue Reading demiliani’s...

Read More
Dynamics 365 Business Central: be careful when using the OnCompanyOpen trigger
Nov25

Dynamics 365 Business Central: be careful when using the OnCompanyOpen trigger

Today I was helping a partner on discovering performance issues on its Dynamics 365 Business Central online tenant. When analyzing the telemetry data with Application Insights, we discovered a lot of Long Running Query signals (event id RT0005) linked to the OnCompanyOpen trigger. So strange… until analyzing its installed per-tenant extensions, we discovered an extension with a code like… Continue Reading demiliani’s...

Read More
Dynamics 365 Business Central: creating retention policies from AL
Nov18

Dynamics 365 Business Central: creating retention policies from AL

Starting from Dynamics 365 Business Central 2020 Wave 2 (v17) administrators can define retention policies for tables to specify how frequently they want Business Central to delete outdated data in tables that contain log entries and archived records (they are essentially a way to define when data on certain tables expires in your database). Why you should use retention policies with… Continue Reading demiliani’s Article...

Read More
Dynamics 365 Business Central: small clarification on who can install apps
Nov12

Dynamics 365 Business Central: small clarification on who can install apps

Talking in these days with some partners, I discovered that it’s not so clear how to handle the possibility to install apps on a Dynamics 365 Business Central SaaS tenant. Who can do that? The answer is: it depends As a general rule: To install extensions from AppSource or add per-tenant extensions to a tenant, you must have the right permissions and more specifically you must either be… Continue Reading demiliani’s...

Read More
Dynamics 365 Business Central: using snapshot debugging
Nov03

Dynamics 365 Business Central: using snapshot debugging

One of the top requested features for Dynamics 365 Business Central from a long time is absolutely one: debugging the production environment! And now you can Dynamics 365 Business Central version 17 introduces a feature called Snapshot Debugging. Snapshot Debugging allows a delegated admin to record AL code that runs on the server side and then debug the recorded snapshot in Visual… Continue Reading demiliani’s Article on...

Read More
Dynamics 365 Business Central: handling commits behaviors on events
Oct26

Dynamics 365 Business Central: handling commits behaviors on events

When working with extensions in Dynamics 365 Business Central, you’ve always to keep in mind that you’re now in a complex ecosystem where you’re not alone and someone can breakes things. One of the sneaky problem you can have with different extensions on a SaaS tenant is related to handling commits of transactions. Let’s imagine to have an extension called MAIN_APP that has a business… Continue Reading...

Read More
Dynamics 365 Business Central: ISV telemetry for custom table’s usage
Oct21

Dynamics 365 Business Central: ISV telemetry for custom table’s usage

When developing extensions for AppSource, every partner has its own licensing model. There are extensions that are free, others that are billed by users, others that have a fixed price for each month or year of usage and so on. Everyone can have its own way of billing their customers for using an extension. But there are also some extensions that are billed for the number of generated records… Continue Reading demiliani’s...

Read More
How much my Application Insights service costs?
Oct16

How much my Application Insights service costs?

This is a question that I’ve received many times and also this morning I had a discussion with a partner about that (and that’s the reason for this quick post). Using Azure Application Insights for monitoring your Dynamics 365 Business Central SaaS tenant is a must in my opinion, but Application Insights is not a totally free service. Application Insights cost is normally very low and you… Continue Reading...

Read More
Dynamics 365 Business Central: new features for performant code
Oct12

Dynamics 365 Business Central: new features for performant code

In the training I’ve done to some partners last week, when talking about performances I shared an example of an extension with 3 features that I think are not so well known but that have a significant impact on how your code performs, expecially on a SaaS environment. That extension used the following features: Partial record loadingTemporary TablesQueryCategory The Partial record… Continue Reading demiliani’s...

Read More
Dynamics 365 Business Central: using Azure Key Vault for your secrets
Oct06

Dynamics 365 Business Central: using Azure Key Vault for your secrets

Azure Key Vault is a cloud service for securely storing and accessing secrets. A secret is anything that you want to tightly control access to, such as license keys, credentials, API keys, certificates and so on. Starting form Dynamics 365 Business Central 2020 Wave 2 (version 17) you can start using Azure Key Vault service for storing your secrets and then retrieving them from AL code in a… Continue Reading demiliani’s...

Read More
Dynamics 365 Business Central: I think it’s the time to clean your app.json file
Sep29

Dynamics 365 Business Central: I think it’s the time to clean your app.json file

Do you remember this post I wrote lots of time ago? This post described the new Microsoft’s Application app introduced with Dynamics 365 Business Central version 15.3. This app encapsulates all the dependencies from the System Application and Base Application apps and provides an abstraction to protect AppSource and PTE extensions running on top of that from not being able to resolve… Continue Reading demiliani’s...

Read More
“Azure DevOps Explained” book announcement
Sep25

“Azure DevOps Explained” book announcement

I’m very happy and proud to announce the hard work I’ve done during the quarantine together with two great MVPs like Sjoukje Zaal and Amit Malik… thanks guys for joining the project The book will be delivered starting from late October, but you can pre-order it now on Amazon or on the Packt website with an interesting discount. Book Description Developing applications for the… Continue Reading demiliani’s...

Read More
Tips for handling a Dynamics 365 Business Central SaaS tenant at best
Sep24

Tips for handling a Dynamics 365 Business Central SaaS tenant at best

Handling a Dynamics 365 Business Central SaaS tenant in a cloud environment is not exactly like handling it on an on-premise installation. A SaaS tenant is fully managed by Microsoft under the hood, so you don’t care about infrastructure and all the cloud stuff that need to be provisioned for having an environment ready, secure, and always updated. But for having a customer happy in the… Continue Reading demiliani’s...

Read More
Dynamics 365 Business Central: Extension Management page and the “Delete Extension Data” option
Sep15

Dynamics 365 Business Central: Extension Management page and the “Delete Extension Data” option

This is a very quick post just to help on clearing doubts related on a new flag that Microsoft has introduced on the Extension Management page in Dynamics 365 Business Central starting from the 16.5 update (but announced for general availability for version 17). If you try to uninstall an extension form that page, now you have the new Delete Extension Data option: This option is… Continue Reading demiliani’s Article on...

Read More
Creating lightweight Teams bots with outgoing webhooks and Azure Functions
Sep09

Creating lightweight Teams bots with outgoing webhooks and Azure Functions

Microsoft Teams is becoming always more a central point for the everyday’s work on many of us now and often having Bots on a Teams channel that can solve our queries could be helpful. Teams bots are “automations” that allows you to interact with conversations and they can perform tasks or call external services for you. As a preface to this post (for all the Dynamics 365 Business Central… Continue Reading...

Read More
Dynamics 365 Business Central: adding partner’s telemetry on your apps
Sep01

Dynamics 365 Business Central: adding partner’s telemetry on your apps

I’ve written a lot in the past about using Azure Application Insights for monitoring a Dynamics 365 Business Central tenant (you can read here and here) and the team is actively working on improving the telemetry features by adding always more and more signals. For a complete overview of handling the Dynamics 365 Business Central telemetry with Azure Application Insights, I suggest also to… Continue Reading...

Read More
Dynamics 365 Business Central Sandbox Docker containers and multitenancy
Aug28

Dynamics 365 Business Central Sandbox Docker containers and multitenancy

I saw on different forums people having troubles on connecting to their brand new Docker containers created with the new BcContainerHelper module by using the sandbox artifacts (image of the online sandbox). The new module for creating Docker containers for Dynamics 365 Business Central (that will replace NavContainerHelper) is well explained on the Freddy’s blog, so for more details please… Continue Reading...

Read More
Handling the “HTTP 429 – Too Many Requests” error when calling external services
Aug24

Handling the “HTTP 429 – Too Many Requests” error when calling external services

I think that many of you that creates integrations with external services could have the pleasure to know the HTTP 429 error: too many requests. The HTTP 429 – Too Many Requests response status code indicates the user has sent too many requests in a given amount of time (rate limit) to a given endpoint (API or web service). When you receive this error, normally a Retry-After header might… Continue...

Read More
Dynamics 365 ERP landscape report
Aug06

Dynamics 365 ERP landscape report

Earlier this year, I was pleased to be asked to contribute my thoughts on the current ERP landscape for the twelfth annual edition of Nigel Frank’s Microsoft Dynamics Salary Survey. The most comprehensive study of its kind in the global Dynamics ecosystem, the report shines a light the skills, motivations, and sentiments of Dynamics professionals in the global partner, ISV, and customer… Continue Reading demiliani’s...

Read More
Creating a local drive mapped with an Azure File Share for your files in the cloud
Jul29

Creating a local drive mapped with an Azure File Share for your files in the cloud

File Management in the cloud is always an hot topic when using SaaS services like Dynamics 365 Business Central. A common request that I always see popping up on forums or from partners and customers is if it’s possible to automatically save a file on a local drive from Dynamics 365 Business Central (or more in general, from SaaS applications). As you can imagine, from a SaaS tenant you… Continue Reading demiliani’s...

Read More
AL language and the “missing documentation” warning
Jul22

AL language and the “missing documentation” warning

Yesterday evening I’ve received a message from a user asking me if something has changed in the AL language extension. When he loaded an AL project in Visual Studio Code, he started receiving tons of information messages like “The procedure XXX missing documentation“: Is really something changed in the AL language extension? Maybe something related to the announced plans for XML code… Continue Reading...

Read More
Dynamics 365 Business Central: loading demo data for your extensions
Jul20

Dynamics 365 Business Central: loading demo data for your extensions

I’ve received in the last days a request from a forum user asking for a way to automatically loading demo data in an extension, maybe embedding a data file inside the extension package and load it when needed, for example during the install phase. Unfortunately you cannot embed data files inside your binary .app file and read them from the binary .app file folder structure. I’ve promised a… Continue Reading...

Read More
Dynamics 365 Business Central: exploring page views with Azure Application Insights
Jul15

Dynamics 365 Business Central: exploring page views with Azure Application Insights

I think that you already know that I’m a huge fan of using Azure Application Insights for collecting telemetry for different types of applications hosted in the cloud or hosted on-premise too. At my session at Ignite Tour 2020 in Milan I showed how you can fully monitor and debug an application hosted on Azure with Application Insights and Azure Monitor. Also Dynamics 365 Business Central… Continue Reading...

Read More
Dynamics 365 Business Central 2020 Wave 2 release plan: my favourite features
Jul08

Dynamics 365 Business Central 2020 Wave 2 release plan: my favourite features

Microsoft has shared today to the general public the Dynamics 365 Wave 2 Release plan. These are my favourite Dynamics 365 Business Central new features that will be released in the Wave 2 2020 period (October 2020 to May 2021): Improved overview and management of the available database and file capacity: tenant administrators will be able to have an overview of the database and file… Continue Reading demiliani’s Article...

Read More
Using Azure Logic Apps for creating a Dynamics 365 Business Central container on Azure Container Instances
Jul07

Using Azure Logic Apps for creating a Dynamics 365 Business Central container on Azure Container Instances

A week ago I’ve written a post explaining how to create a Dynamics 365 Business Central Docker container on Azure Container Instances (ACI) by using the new artifact way. ACI permits you to have “container as a service” and so you can rapidly create and launch containerized applications in a serverless scenario. And when going totally serverless, a task that you could have the need to… Continue Reading...

Read More
Creating a Dynamics 365 Business Central Docker container with artifacts on Azure Container Instances
Jul03

Creating a Dynamics 365 Business Central Docker container with artifacts on Azure Container Instances

Azure Container Instances (ACI) is a great service offered by Azure that permits you to run serverless Docker containers in Azure with simplicity and speed, without having to provision or manage any underlying infrastructure. I think that this service can be extremely useful when working with Dynamics 365 Business Central too, because you can spin up a container in few minutes with all the… Continue Reading demiliani’s...

Read More
Visual Studio Code and poor performances with AL language
Jun29

Visual Studio Code and poor performances with AL language

I saw different posts on forums in these days about issues related to poor Visual Studio Code performances when using AL language and opening big projects. Microsoft’s recommendation for Visual Studio Code and AL are listed here and they recommend at least 16 GB of RAM, while 32 GB is the recommended way for large projects. I think that not everyone of you have 32 GB on a local machine… Continue Reading demiliani’s...

Read More
Securing your HTTP triggered flow in Power Automate
Jun25

Securing your HTTP triggered flow in Power Automate

This is a quick post for giving a response to a question that comes out in our latest Microsoft’s webcast about creating cloud-based workflows for Dynamics 365 Business Central. In this training I’ve talked a lot about the “When an HTTP request is received” action in Power Automate (and on Azure Logic Apps too) and how it’s extremely important on many scenarios, first of all for starting a… Continue...

Read More
Microsoft Dynamics 365 Business Central 4-steps webcasts ended today
Jun24

Microsoft Dynamics 365 Business Central 4-steps webcasts ended today

Today was the last stage for this serie of 4 Microsoft’s webcasts related to Dynamics 365 Business Central integrations and DevOps. Thanks to all for joining these events! This was the last part of 6 free Microsoft’s training activities for Dynamics 365 Business Central Partners that I had the pleasure to handle with other 4 Microsoft’s guys. You can find the recorded sessions in… Continue Reading...

Read More
Auto-scaling your Azure SQL database with Logic Apps
Jun16

Auto-scaling your Azure SQL database with Logic Apps

I think that you know that I’m a huge fan of using Azure SQL database for your workloads in the cloud. With Azure SQL you can choose how many CPU you want to use (DTU), how much storage you need, and then you can dynamically change these parameters any time when needed. Obviously, in the cloud world an infinite power is also directly related to costs. As an example, imagine to have a… Continue Reading demiliani’s...

Read More
Dynamics 365 Business Central: checking user permissions on specific objects
Jun09

Dynamics 365 Business Central: checking user permissions on specific objects

With the refactoring done in Dynamics 365 Business Central for better supporting the SaaS environment, is not quite easy to check if a user has a specific permission on a specific object. Permission Range table is now a system table that cannot be used on a SaaS environment, License Permission table does not give you specific user permissions and using the ReadPermission and WritePermission… Continue Reading demiliani’s...

Read More
Nigel Frank’s new white paper sets blueprint for overcoming business challenges with Microsoft Dynamics technology
Jun05

Nigel Frank’s new white paper sets blueprint for overcoming business challenges with Microsoft Dynamics technology

We find ourselves in a position where Microsoft cloud technology is in higher demand than ever before, but with uncertainty around the future, many businesses feel directionless and unable to commit to a long-term strategy. I was recently invited by Nigel Frank, the Microsoft recruitment specialist, to contribute some thoughts and actionable tips to its new Microsoft Dynamics business… Continue Reading demiliani’s Article...

Read More
Dynamics 365 Business Central, AL compiler and .NET Core
Jun04

Dynamics 365 Business Central, AL compiler and .NET Core

At the Microsoft Dynamics 365 Business Central Virtual Event yesterday a not so much emphasized slide appears: Yes, the new AL compiler is now based on .NET Core as default. There are 2 runtimes that the language server uses: .NET Framework.NET Core 3.0 .NET Core 3.0 is now the default runtime for hosting the language service (much more quicker and efficient, 3X performance gain)… Continue Reading demiliani’s Article on...

Read More
Dynamics 365 Business Central: obsoleting the WITH statement
Jun03

Dynamics 365 Business Central: obsoleting the WITH statement

As you ever used the WITH clause in C/AL or AL language? There are lovers of this clause and there are developers that hate using this clause (I’m in this second category), but despite every personal opinion the WITH clause is widely used in code and also in the Microsof’s Base Application. As announced at the Dynamics 365 Business Central Virtual Event, Microsoft is continuously evolving… Continue Reading...

Read More
Automating the creation of work items in Azure DevOps (from Powershell and from Dynamics 365 Business Central)
Jun01

Automating the creation of work items in Azure DevOps (from Powershell and from Dynamics 365 Business Central)

If you’re using Azure DevOps in yor organization for the entire product lifecycle, you know for sure that you can handle also all your project management activities by using work items, boards, backlogs, sprints and so on. I’ve talked about that in the past here. What personally we use a lot internally is the Work Items feature. By using work items you can track anything, from a task to… Continue Reading...

Read More
Sending Azure Alerts to Dynamics 365 Business Central
May25

Sending Azure Alerts to Dynamics 365 Business Central

When working with Dynamics 365 Business Central (but also on Azure applications in general) it’s a best and recommended practice to send telemetry data to the Azure Application Insights service for centralize monitoring. I’ve talked about that in the past here. Have you ever received the request to monitor some Azure Resources directly from inside Dynamics 365 Business Central and be able… Continue Reading...

Read More
365 Saturday: Business Central Day
May20

365 Saturday: Business Central Day

For the first time, this Saturday (May, 23) 365 Saturday will host a full day event totally dedicated to Dynamics 365 Business Central. The agenda below will take place according to GMT 0 Timezone respectively: 8:00 – Track Inventory with Item Tracking – Bandam Sairam 9:00 – Handling your Dynamics 365 Business Central SaaS tenant – Stefano Demiliani 10:00 – Business Central Flash… Continue Reading...

Read More
Read-scale out with Azure SQL and Dynamics 365 Business Central
May15

Read-scale out with Azure SQL and Dynamics 365 Business Central

In the last month I had the chance to test the read-scale out feature of an Azure SQL Database with Dynamics 365 Business Central. Others have talked about this opportunity in the past and I want to share here my experience. The Read Scale-Out feature permits you to have a read-only replica of your Azure SQL database and use that replica to perform read-only queries instead of using the… Continue Reading demiliani’s...

Read More
Dynamics 365 Business Central: AL and the internalsVisibleTo property
May08

Dynamics 365 Business Central: AL and the internalsVisibleTo property

Yesterday I was talking with a partner that developed an extension with a quite complex logic declared in a codeunit with visibility = Internal (so the object can be accessed only by code in the same module, but not from another module). Now they have created a new extension (dependent from the previous) and they would like to reuse the business logic declared on the main extension in this new… Continue Reading demiliani’s...

Read More
Azure DevOps and cross-repo branch policies
Apr30

Azure DevOps and cross-repo branch policies

In the webcast we had this Monday for Microsoft Western Europe about using Azure DevOps for managing Dynamics 365 Business Central projects, when talking about the best practice to set policies for your branches, there was an interesting question: can I create cross-repositories branch policies? Also programmatically? I’ve partially answered the question and this post aims to be a more… Continue Reading demiliani’s...

Read More
Dynamics 365 Business Central: using Camera in AL
Apr28

Dynamics 365 Business Central: using Camera in AL

Curious thing… last week a follower asked my if it’s possible to use the Camera with Dynamics 365 Business Central SaaS. My answer was obviously YES but he pointed me to a link on Docs where how to implement the Camera was explained, but only for the on-premise world (using the Microsoft.Dynamics.Nav.ClientExtensions assembly). Here it seems that you can do that only for the on-premise world,… Continue Reading...

Read More
My session at Global Azure Bootcamp 2020: 15 tips to follow when deploying Azure Functions to production
Apr25

My session at Global Azure Bootcamp 2020: 15 tips to follow when deploying Azure Functions to production

Thanks to all the attendees that followed my session yesterday at Global Azure Bootcamp 2020. We saw 15 tips that I suggest to follow when moving your Azure Functions from a development/testing environment to a real production environment on an enterprise serverless architectures. Slides and code samples are available here. The recorded session will be soon available in the room site

Read More
Dynamics 365 Business Central: using AL rulesets to customize code analysis
Apr22

Dynamics 365 Business Central: using AL rulesets to customize code analysis

I think that many of you are familiar with this topic, but I’ve received today a question related to AL code analysis and I think that also a response here can be helpful. Every Dynamics 365 Business Central developer now knows for sure that in AL you can activate code analyzers for inspecting your code. You can have more info here and here. AL Code analyzers are the… Continue Reading demiliani’s Article on their...

Read More
Dynamics 365 Business Central: loading Configuration Packages from AL (part 2)
Apr16

Dynamics 365 Business Central: loading Configuration Packages from AL (part 2)

More than one year ago I wrote this post on how to import directly from AL code a Configuration Package (.rapidstart) file. This code uses the ImportRapidStartPackageStream method declared in the “Config. Package – Import” codeunit as follows: I remember to have suggested in the past some possible improvements on this codeunit, like adding the possibility to import multiple files… Continue Reading...

Read More
Azure SQL Serverless tier: a way to save cost for your workloads in the cloud
Apr13

Azure SQL Serverless tier: a way to save cost for your workloads in the cloud

When going to the cloud, saving costs while maximizing performances is always a goal to reach but sometimes also not so easy to achieve. I’ve talked a lot in the past about how to move your databases to the cloud, how to use Azure SQL Database for Dynamics 365 Business Central, how to optimize performances and also (if cost is not a problem and you want the maximum performances for your… Continue Reading demiliani’s...

Read More
Dynamics 365 Business Central and unpublished extensions during an upgrade
Apr04

Dynamics 365 Business Central and unpublished extensions during an upgrade

In these days I’ve received some messages from partners (and I saw on forums opened questions too) that signal that, during the upgrade to 15.4 release of a SaaS tenant, some custom extensions deployed on sandboxes are unpublished. Is this a problem or a bug in the Microsoft’s upgrade process for the SaaS tenant? NO! This is not a bug! As I said many times on this blog (just search for… Continue Reading demiliani’s Article...

Read More
Dynamics 365 Business Central SaaS: save a file to an SFTP server (the Logic App way)
Mar31

Dynamics 365 Business Central SaaS: save a file to an SFTP server (the Logic App way)

Yesterday I’ve provided a solution for saving a file generated directly from a Dynamics 365 Business Central SaaS tenant to an SFTP server by using Azure Functions. I’ve to admit that this is my preferred way because it gives me more freedom, scalability and adaptability. But obviously, that’s not the only possible way to do so. Today, I want to describe another possible solution,… Continue Reading...

Read More