How do I Determine the Azure Region for my Production Dynamics 365 Environment with AI
There are a lot of considerations when looking at where a production environment should be deployed. The first question that comes to mind is whether we can “get away with” one production instance or need to support multiple production instances by region or even country/division. Additional factors apply: Latency, weighted by number of workers in each location/geo Licensing: every user needs… Continue Reading Dag...
Opportunity in Analytics for Microsoft Dynamics 365
Recently, I have had the opportunity to expand my purview to all of Microsoft’s services (i.e. Azure), not just in the Microsoft Dynamics 365 arena. That includes all Azure products, i.e. analytics, IaaS, PaaS, machine learning, Power Platform, et cetera in addition to Dynamics. Being a long time (13 year) Dynamics technical guru, I found this was my next greatest challenge. And yes, I… Continue Reading Dag Calafell,...
Throttling on Dynamics 365 Finance & Operations (Supply Chain Management) Starting 10.0.19
Priority-Based Throttling is starting on version 10.0.19. This has caused some concern for users who are heavily dependent on OData or Custom Web Service calls from third party software, i.e. ISVs, EDI, Integrations, web portals, custom web apps. Everything here is up to date as of July of 2021. I expect some changes to come over the next months and years which may invalidate some of… Continue Reading Dag Calafell,...
Remove $id from Custom Web Service JSON – Dynamics 365 F&O
Priority-Based Throttling in Microsoft Dynamics 365 Finance and Operations (F&O, SCM) is almost mandatory! If your solution or integration architecture included the transaction orchestration being done outside of F&O (multiple OData calls within a transaction; rollback means making more OData calls), one of the things you can do to adjust it is to create a custom web service in F&O, which… Continue Reading Dag...
Link to an Azure Logic App Run
Sometimes my Azure Logic Apps are sending emails internally, both for the happy path and for exceptions. Toon had a great post, Navigate directly to the Logic Apps run details | Your Azure Coach, explaining how to create a direct link to the Azure Logic App run. The idea is that you could easily check out the details and correct any issues. I’d like to add to his post the exact formula… Continue Reading Dag Calafell,...
How do you manage your slides and decks?
The more I’m involved in sales, pre-sales, and training… the more I desire for a super robust presentation management / slide library. I have found some solutions, and I’m very interested in hearing what others are doing! PowerPoint capabilities SharePoint slide libraries are gone, but Teams is in, and OneDrive is available as well. PowerPoint has some built-in capabilities to reuse… Continue Reading Dag...
Find Unused Labels – Dynamics 365 Finance & Operations
How many of your labels do you maintain, and yet are not being displayed in any way to a user? I set out to answer this question on one of my projects, and found 10%, over 100 labels, were created and abandoned as functionality was changed over time. These labels did not provide any value, and might lead to requiring translations which would never be shown to anyone. The following PowerShell… Continue Reading Dag Calafell,...
Push notification if early meeting tomorrow morning
As a consultant I have meetings at all times of the day. One of my first steps in my day is to check my calendar to understand just how much time I have before I need to join my first meeting, and to review my meetings to make sure I’ve done the proper preparation ahead of time. When I started to have a customer with occasional 4am meetings I decided I needed to be reminded to set the… Continue Reading Dag Calafell,...
Automated Unit Tests for Intercompany Transactions – Dynamics 365 Supply Chain Management
Background Creating unit tests (SysTest + ATL) and automating their running in an Azure pipeline is part of a good continuous update strategy which reduces the risk of taking frequent product updates for Dynamics 365 Supply Chain Management from Microsoft. The guidance on Docs is fairly good, when combined with the samples shipped in a “develop” environment deployment. The docs and samples… Continue Reading Dag...
How to Combine Multiple D365SCM OneBoxes into One Environment
In Dynamics AX 2012 I commonly added AOSs to the data migration environment to speed up data migration. On one project I had an environment with twelve 2.6 GHz physical cores (24 threads when hyper-threading) which I would add up to five additional “underutilized” development servers as AOSs when importing 2.5 million products and released products. Then Dynamics 365 Finance / Supply Chain… Continue Reading Dag...
Monitor Deprecated Features or Release Schedule
Microsoft has committed to giving 12 months notice before making a potentially breaking change. Read more. They will post the breaking changes to the Removed or deprecated features for Finance and Operations page on Docs. I encourage you to read the introduction on that page so you understand exactly which type of changes will be published. Docs is hosted on Github to allow community… Continue Reading Dag Calafell,...
The Utility of Query Range Functions – Dynamics 365 for Finance Operations Supply Chain Management
Query range functions are a feature of F&O which enables specifying a criteria without knowing the exact value or having to do the calculation yourself. This could be used to filter a form, or when specifying ‘records to include’ on a scheduled batch (very handy). Examples: (currentDate()) (anyUserIdNotCurrent()) (day(-2)) (greaterThanDate(-2)) In 2012 you would overlayer the… Continue Reading Dag Calafell,...
A Tale of Updating 28 Environments – Dynamics 365 for Operations
Scenario I had a customer implementing Microsoft Dynamics 365 for Finance and Supply Chain Management who had to postpone an update because an ISV solution needed an update. The upgraded solution came, so I planned out the environment update roll out strategy: which environments would get updated? When? How to roll back if they did not update. The changes to roll out included: F&O… Continue Reading Dag Calafell,...
Static IP not guaranteed for Dynamics 365 for Finance and Operations
Microsoft Dynamics 365 for Finance and Operations offers a lot of flexibility and significantly reduced maintenance effort than the previous versions (AX). Along with being a cloud-hosted SaaS solution, we had to modify our approach to making modifications, interfacing with the system, licensing and more. One change which can be particularly challenging is that the IP address… Continue Reading Dag Calafell, III’s Article...
Searching Code in Dynamics 365 Finance and Operations Using PowerShell
You can search the Finance and Operations XML files (the X++ source code) using regular expressions by using PowerShell’s Select-String command. This is a strategy that I’ve used many times and I wonder if others have realized the ease of approaching code searches this way. For some background, we’ll be using regular expressions which provide a very flexible approach for searching… Continue Reading Dag...
F&O Data Expansion Tool: Error Tracing Not Started
Tracing not started error? Perhaps, like me, you recently rebooted the environment and it had not fully initialized before you tried to start recording on a new Data Expansion project. 1. Reboot the environment. 2. Create and build a runnable class (“job”) to call DataExpansionTraceControl::clear(true). 3. Run the class … Continue Reading Dag Calafell, III’s Article on their blog F&O Data Expansion Tool:...
F&O Data Expansion Tool: Recording Data Creation
The Data Expansion Tool is a tool which will generate data in the current Microsoft Dynamics 365 for Finance and Operations environment. The tool itself is not documented and the video which demonstrated it has been lost because the Office Mix web site was retired. It enables you to record transactions which are occurring in F&O then recreate those in the same or another… Continue Reading Dag Calafell, III’s Article on...
F&O Data Expansion Tool: The Execution Traces event publisher is not installed
The Data Expansion Tool is a tool which will generate data in the current Microsoft Dynamics 365 for Finance and Operations environment. The tool itself is not documented and the video which demonstrated it has been lost because the Office Mix web site was retired. It enables you to record transactions which are occurring in F&O then recreate those in the same or another… Continue Reading Dag Calafell, III’s Article...
What F&O Tables do not have Data Entities?
If you are like me sometimes it can be hard to translate from technical name to the actual data entity name. As a Microsoft Dynamics 365 for Finance and Operations developer it is sometimes useful to use the cross reference to identify the proper entity to use, however some tables are used so often it can be a task to scroll through to find the right reference. An example is… Continue Reading Dag Calafell, III’s Article...
Call an Azure Function from Dynamics 365 for Finance and Operations
In this example, F&O will directly call an Azure Function which can do some processing (usually integrating with other services). 1. Create a new Azure Function App in the Azure portal. Once created, add an Azure Function with an HTTP trigger. (Psst: Application Insights should be deployed to enable logging for production and testing environments.) 2. Click on “Get Function URL”… Continue Reading Dag Calafell,...
Reminders When Meeting Scheduled Outside of Business Hours – Flow
When working on global implementations, meetings outside of typical business hours are very common. The following describes a Flow which reminds me of off-hours meetings before bedtime so that I can set my alarm appropriately. Start with a Flow trigger on a schedule. The trigger is called “Recurrence.” You can start with a blank Flow or, choose New > “Scheduled – from blank”… Continue Reading...
Using the LogicApps and Flow Connector for Dynamics 365 for Finance and Operations
Finding the Right Data EntityLet’s say you know you want to read data from F&O and OData endpoints are appropriate. LogicApps is a great way to pull that data and push it to another service. Or perhaps you subscribed to an F&O Business Event and want additional information about the customer so that you can send an email alert with the customer’s name, credit, and payment… Continue Reading Dag Calafell,...
Spell check using Bing Spell Check API Cognitive Services in Dynamics 365 for Finance and Operations
< div class=”fusion-fullwidth fullwidth-box nonhundred-percent-fullwidth non-hundred-percent-height-scrolling” style=’background-position: center center;padding-top:0px;padding-right:30px;padding-bottom:0px;padding-left:30px’> < div class=”fusion-builder-row fusion-row “> In this post we will explore how to add a library which calls the Bing Spell Check API v7. This post also serves as an...
String Concatenation Performance – Dynamics 365 for Finance and Operations
Have you heard of System.Text.StringBuilder? It is a .NET class which specializes in faster string manipulation. Can we use it in X++? Is it faster? How much faster? When is the break-even point on using the StringBuilder class? String concatenation (+) actually allocates, and populates a new variable in memory for the new string and then destroys the prior string…. Continue Reading Dag Calafell, III’s Article on...
Set up Business Events with Microsoft Flow – Finance & Operations
With version 10 coming in April, fifteen (15) application events from Procure to Pay and Quote to Cash will be available out of the box in Dynamics 365 for Finance and Operations. They promise to be a powerful addition enabling self service for certain events, and better cloud integration by triggering an integration instead of periodically checking if something had been posted. … Continue Reading Dag Calafell, III’s...
Identify Merge Candidates Efficiently in Azure DevOps Version Control
Which branches have changes which need to be merged?I am currently on a project with a large development team. Some of the developers are learning how to code X++, so one feature can turn into six check ins. Therefore, I needed a way to review all non-promoted changes before I rolled out the next release. I can check using Visual Studio with four clicks, but I have to check twenty or so… Continue Reading Dag Calafell,...
Using Postman to Test AX 2012 Web Services
Postman is a great tool for debugging web sites and web services. For developing web services the free edition works well and is a great proof of concept that can be given to the development team doing the integration on the other side. In this post we’ll walk through how to use Postman to test Dynamics AX 2012 web services. Set up AX AIF Inbound Port Postman does not support… Continue Reading Dag Calafell, III’s Article...
Track Emails Received in Excel using Azure Logic Apps
Over the years I’ve considered the number of emails received to be a gauge of how busy I am. For two years I’ve been using Microsoft Flow to track the number of emails received and basic details about the email. I realized recently that I have many flows triggered by an email being received: Track the number of emails received in ExcelSave an attachment received weekly into… Continue Reading Dag Calafell, III’s Article...
In Depth look at Azure Sphere
I have been anxious to get my hands on a Microsoft Azure Sphere MT3620 development kit and Santa didn’t disappoint! I have written down what I have learned including many revelations which were not immediately apparent. What is Azure Sphere? Azure Sphere is a secured microcontroller device targeting the Internet of Things (IoT) scenarios, i.e. connected devices, appliances,… Continue Reading Dag Calafell, III’s Article on...
Best Practices on Printing from Dynamics 365 Finance & Operations
For decades printing has been relatively easy for AX users because we were running a client application. So all the normal troubleshooting techniques worked: drivers, print settings, et cetera. Now that our beloved Microsoft Dynamics 365 for Finance and Operations (FinOps) runs as Software as a Service (Saas) we need to plan on how to handle printing as we implement the software. The first… Continue Reading Dag...
Best Practices on Printing from Dynamics 365 Finance & Operations
For decades printing has been relatively easy for AX users because we were running a client application. So all the normal troubleshooting techniques worked: drivers, print settings, et cetera. Now that our beloved Microsoft Dynamics 365 for Finance and Operations (FinOps) runs as Software as a Service (Saas) we need to plan on how to handle printing as we implement the software. The… Continue Reading Dag Calafell, III’s...
Set Up Email Notifications for Your Favorite Blog
Over time I have found myself going back to ten or twenty blogs related to Microsoft Dynamics 365 for Finance and Operations. I am very active on Twitter, however it is convenient to forward posts from my phone to my colleges. Using Microsoft Flow, I can set up a flow to send me an email and push notification whenever there is a new blog post. The Flow above can be imported into your… Continue Reading Dag Calafell, III’s...
Automatically Prepare a Development VM for Microsoft Dynamics 365 for Finance and Operations
When you deploy a VM, not only does it take some time, once you get your hands on it there are a slew of things that need to be configured, installed, and set up before you can truly be productive on the machine. Considering this ‘wasted effort’ I created a PowerShell script to install useful third-party tools for development and testing on Microsoft Dynamics 365 for Finance and… Continue Reading Dag Calafell, III’s...
The Ultimate AX 2012 Table and Field ID Fix for Synchronization Errors
It is very frustrating to have a table ID conflict which causes AX to drop a table with data that is needed. As anyone with AX 2012 experience will tell you, these things can be a major pain, even with two developers writing code at the same time. I think that over the years many people have shared SQL snippets, I have incorporated their ideas and added an additional step I have not… Continue Reading Dag Calafell, III’s...
SysOperation Framework – Six years later where are we at with implementing it?
It has been six years since the SysOperation framework was made available for development in Dynamics AX 2012. The SysOperation framework replaced the RunBase Framework. It promised to run faster by limiting which code runs on each tier of the system and limiting the network communication which became common with RunBaseBatch. If you are curious, a good example of the SysOperation… Continue Reading Dag Calafell, III’s...
SysOperation Framework – Six years later where are we at with implementing it?
It has been six years since the SysOperation framework was made available for development in Dynamics AX 2012. The SysOperation framework replaced the RunBase Framework. It promised to run faster by limiting which code runs on each tier of the system and limiting the network communication which became common with RunBaseBatch. If you are curious, a good example of the SysOperation… Continue Reading Dag Calafell, III’s...
Defragment indexes on D365 Finance & Operations Virtual Machine
After downloading the Dynamics 365 for Finance and Operations 8.1 PU 20 VHD from LCS, I went about optimizing its performance. So far I used it a bit without doing a full compile and it seems to run less than 15 GB of RAM, although I have allocated much more. Some low hanging fruit is defragmenting the indexes in the databases. Check the index fragmentation (optional, interesting) 1…. Continue Reading Dag Calafell, III,...
Parse the Missing Values from Validate (DIXF)
I like to validate the data as much as possible throughout the process of migrating data into AX. Usually this means reviewing the input file, loading the file, and clicking “Validate all” before actually running the data into the target table. During the “Validate All” you may receive a plethora of messages. Sorting through thousands of messages can be a major drag. I like… Continue Reading Dag Calafell, III’s Article...
Latency Testing for Dynamics 365 for Finance and Operations
Recently I went on a journey testing the latency of the Azure dark fiber backbone between data centers. This is crucial for a global Dynamics 365 Finance and Operations (“FinOps”) implementation. In general bandwidth can be purchased but latency is hard to influence. There are some resources online which provide latency numbers which seem to hold somewhat accurate still, but I… Continue Reading Dag Calafell, III’s...
Debug AIF Document Service within AX
Sometimes it is a pain to create a .NET application and attach a debugger to the AOS service just to diagnose a problem with an AIF service. It is possible to do all debugging inside of AX. This example is for a standard AIF document service, however, you can also do the same for a custom service in a way which is even easier. As a prerequisite, the inbound port must have document… Continue Reading Dag Calafell, III’s...
Validate AX DLL Versions on Multiple Machines
List the versions for all DLLs which will load in AX using the Get-AxDllVersions. Download the PowerShell script. Run this script against all machines running the AX client (RDP/Citrix/end-user) and servers. This is useful to confirm that all DLLs deployed match in file version. Example 1: Export DLL Versions for Local Machine Example single value: ComputerName : Server1FileVersion :… Continue Reading Dag Calafell, III’s...
Unable to Enable Warehouse Management II License Key
In AX 2012 R3 CU12, after disabling Trade > Warehouse and Transportation Management the Warehouse Management II license cannot be enabled in License information. “You can not add this license code because the following required license codes have not been entered: Warehouse management I” The fix was:1. Kick out other users2. Keep AOS online and AX open3. Backup business data SQL… Continue Reading Dag Calafell, III’s...
Unreserve inventory – Dag Calafell, III, PMP
// Unreserves inventory static void unreserveInventTrans(Args _args) { InventTrans inventTrans; InventDim inventDim; InventDimParm inventDimParm; ; setPrefix(funcName()); select firstOnly inventTrans where inventTrans.StatusIssue == StatusIssue::ReservPhysical join inventDim where inventDim.inventDimId ==… Continue Reading Dag Calafell, III’s Article on their...
Data Migration: Combining 105 Excel Files in 3 Minutes
I needed to import multiple Excel files into AX; all of them had a very similar format with the same columns. Python to the rescue. Ever since Build 2018 I’ve been using Visual Studio Code and enjoyed every moment of it, as I build Python scripts to assist me with anything I can think of. I highly suggest that tool, and the Cobalt2 theme, for increased productivity and debugging- Data Migration: Combining 105 Excel Files in 3...
The Product variants form can only be opened for a product master
When right-clicking > View Details on a Variant number you may receive the following message “The Product variants form can only be opened for a product master.” Call Stack Data DictionaryTablesEcoResProductMasterMethodsgetProductMasterFromCaller 34 ClassesEcoResProductVariantsCompanyHelpernewFromFormRun … Continue Reading Dag Calafell, III’s Article on their...
Generating Random Numbers and Dates (AX 2012)
The Random class creates random integer values. Although the range of an int (32 bit) is: [-2,147,483,647 : 2,147,483,647], Random.nextInt() generates values from 0 to 32,767, which is an unsigned 16-bit integer. Let’s run the Random class to validate the randomness. The results of generating 1,048,574 random numbers represented as a histogram: The RandomGenerate class enables you to… Continue Reading Dag Calafell, III’s...