How To Use A Recurring Integration Endpoint
Jul10

How To Use A Recurring Integration Endpoint

How To Use A Recurring Integration Endpoint 07/10/24 Integration How to use a recurring Integration Endpoint for importing data Recurring Integration Endpoints for Finance and Operations are  an interesting option for integrations. From the Microsoft docs, it looks like it’s meant for an input/output scenario where we have an inbound message and… Continue Reading Nathan Clouse’s Article on their blog How To Use A...

Read More
How to use a recurring Integration Endpoint to Import Data
Jul10

How to use a recurring Integration Endpoint to Import Data

How to use a recurring Integration Endpoint to Import Data 07/10/24 Integration How to use a recurring Integration Endpoint for importing data Recurring Integration Endpoints for Finance and Operations are  an interesting option for integrations. From the Microsoft docs, it looks like it’s meant for an input/output scenario where we have an inbound… Continue Reading Nathan Clouse’s Article on their blog How to use a...

Read More
Database Inserts – Code Table Comparison
Jul08

Database Inserts – Code Table Comparison

Submitted by Nathan Clouse on 07/07/24. Last modified: 07/07/24 Tags:  performance Database Inserts – Primary Table Comparison between dev box and Sandbox Environment In a previous article, I wrote about the fastest ways to insert data but only looked at it from a development VM ( In Azure ) perspective. I thought it would be worthwhile to… Continue Reading Nathan Clouse’s Article on their blog Database...

Read More

The Book of Batch Jobs

I created a collection of articles on Finance and Operations (F&O) batch jobs to have a comprehensive resource for understanding and optimizing batch processing. This compilation includes guides on configuring and scheduling batch jobs, troubleshooting common issues, and best practices for performance tuning. Each article delves into specific aspects, such as leveraging the RunBaseBatch… Continue Reading Nathan...

Read More
BatchRetryable Top Picking Batch Job Example
Jun29

BatchRetryable Top Picking Batch Job Example

BatchRetryable Top Picking Batch Job Example 06/29/24 BatchRetryable Top Picking Batch Job Example I recently presented at DynamicsMinds on batch jobs and how to design them for specific types of workloads. There was interest in code samples so this in one of those code samples talking about Top Picking with a review. Top picking is a method of creating a list of work that is stored in… Continue Reading Nathan Clouse’s...

Read More
BatchRetryable Bundled Batch Job Example
Jun28

BatchRetryable Bundled Batch Job Example

BatchRetryable Bundled Batch Job Example 06/27/24 BatchRetryable Bundled Batch Job Example I recently presented at DynamicsMinds on batch jobs and how to design them for specific types of workloads. There was interest in code samples so this in one of those code samples talking about Batch bundling with a review of the code and design. Batch Bundling is a way of designing and managing a… Continue Reading Nathan Clouse’s...

Read More
Powershell to Deploy a PPAC UNO Environment
Jun28

Powershell to Deploy a PPAC UNO Environment

Submitted by Nathan Clouse on 06/27/24. Last modified: 06/27/24 PowerShell Script to Deploy an UNO Environment Below is a PowerShell script to deploy a unified developer environment for F&O. But first, be sure to read Aurélien CLERE’s great blog post about this type of environment. You should also check out this tech talk on the UDE environment type and some additional reading from MSFT…. Continue Reading Nathan...

Read More
Installation of one or more roles, role services, or features failed. Error: 0x800f0954
Jun24

Installation of one or more roles, role services, or features failed. Error: 0x800f0954

Installation of one or more roles, role services, or features failed. Error: 0x800f0954 06/24/24 LBD Installation of one or more roles, role services, or features failed. Error: 0x800f0954 when configuration an AOS for Local Business Data (LBD) When you attempt to install .NET Framework 3.5 for Local Business Data Finance and Operations, you can… Continue Reading Nathan Clouse’s Article on their blog Installation of one or...

Read More
BatchRetryable Individual Task Modeled Batch Job Example
Jun15

BatchRetryable Individual Task Modeled Batch Job Example

BatchRetryable Individual Task Modeled Batch Job Example 06/14/24 Batch Individual Task Modeling BatchRetryable With lots of Individual tasks from 1 batch job I recently presented at DynamicsMinds on batch jobs and how to design them for specific types of workloads. There was interest in code samples so this in one of those… Continue Reading Nathan Clouse’s Article on their blog BatchRetryable Individual Task Modeled Batch...

Read More
BatchRetryable RunBaseBatch Class
Jun10

BatchRetryable RunBaseBatch Class

BatchRetryable RunBaseBatch Class 06/09/24 RunBaseBatch RunBaseBatch Updated “Standard” Batch Job for BatchRetryable I wrote an article on how to create a batch class several years ago. I thought I’d update it for modern times with the implementation of BatchRetryable. All source code for this article can be… Continue Reading Nathan Clouse’s Article on their blog BatchRetryable RunBaseBatch Class Updated...

Read More
Does Specifying Columns in Select Statements Matter?
Mar17

Does Specifying Columns in Select Statements Matter?

Submitted by Nathan Clouse on 03/16/24. Last modified: 03/17/24 Tags:  performance Lets find out if specifying columns in our SELECT statements has any performance impact. The Setup In order to test if specifying column names in a select matter, we’ll have to select several records from the same table where we have not selected that specific… Continue Reading Nathan Clouse’s Article on their blog Does...

Read More
Copilot for F&O is here in Preview
Mar16

Copilot for F&O is here in Preview

Submitted by Nathan Clouse on 03/16/24. Last modified: 03/16/24 Tags:  AI Copilot Copilot is here for F&O. Let’s check it out. I setup Copilot for F&O just to see what it can do. Below is a set of interactions. I thought I’d start with a simple question and ask how to switch legal entities that I’m transaction in. I was… Continue Reading Nathan Clouse’s Article on their blog Copilot for...

Read More
Using Git in PackagesLocalDirectory – VS 2022 Edition
Feb25

Using Git in PackagesLocalDirectory – VS 2022 Edition

Submitted by Nathan Clouse on 02/25/24. Last modified: 02/25/24 Using Git in PackagesLocalDirectory – VS 2022 Edition This article is an update of this post to show how to use Git in PackagesLocalDirectory when using Visual Studio 2022. Open VS 2022. Open the Git Changes Tab then click on Clone Repository Click on Azure DevOps Select your repo from the available projects, review… Continue Reading Nathan Clouse’s...

Read More
Using Git in PackagesLocalDirectory – VS 2019 Edition
Feb25

Using Git in PackagesLocalDirectory – VS 2019 Edition

Submitted by Nathan Clouse on 02/25/24. Last modified: 02/25/24 Using Git in PackagesLocalDirectory – VS 2019 Edition This article is an update of this post to show how to use Git in PackagesLocalDirectory when using Visual Studio 2019. Open VS 2019. Open the Team Explorer tab then click on “connect” for Azure DevOps. Connect to your Azure DevOps Project Next, Clone the...

Read More

Database Inserts – Primary Table

Does the process of inserting data with Code matter for performance by table? When inserting data in F&O, there are several best practices on how to do this from MSFT. But when inserting data, do those best practices really matter? Can I code up a solution that is less than ideal and still have a workable solution? Let’s find out. This will only look at Azure hosted VM performance for the… Continue Reading Nathan...

Read More

Database Inserts – Transaction Table

Does the process of inserting data with Code matter for performance? When inserting data in F&O, there are several best practices on how to do this from MSFT. But for this specific type of workload, do those best practices really matter? Can I code up a solution that is less than ideal and still have a workable solution? Let’s find out. This will only look at Azure hosted VM performance for… Continue Reading Nathan...

Read More

Database Inserts – Code Data Entity

Does the process of inserting data with Code matter for performance? When inserting data in F&O, there are several best practices on how to do this from MSFT. But for this specific type of workload, do those best practices really matter? Can I code up a solution that is less than ideal and still have a workable solution? Let’s find out. This will only look at Azure hosted VM performance for… Continue Reading Nathan...

Read More
Using an AI Assistant to Provide Dynamic Help
Jan27

Using an AI Assistant to Provide Dynamic Help

Submitted by Nathan Clouse on 01/27/24. Last modified: 01/28/24 Is it possible to train an AI to offer intelligent assistance in your Dynamics 365 F&O instance? In a previous article, I showed how you could use AI to provide dynamic help to your users. This example simply allowed for a user to ask a ChatGPT generic model how to perform a task in Dynamics 365 for Finance and Operations…. Continue Reading Nathan...

Read More
Using AI To Provide Help For Users
Jan14

Using AI To Provide Help For Users

Submitted by Nathan Clouse on 01/14/24. Last modified: 01/14/24 Tags:  AI Help Using ChatGPT to improve the help experience for your end users This article is about using ChatGPT to help provide contextual help to an end user of Finance and Operations. This is simply an example of how to do it with some extra features… Continue Reading Nathan Clouse’s Article on their blog Using AI To Provide Help For Users Using...

Read More
Loop-de-for-loop and Transaction Review
Nov30

Loop-de-for-loop and Transaction Review

Submitted by Nathan Clouse on 11/29/23. Last modified: 11/30/23 Tags:  AI Insert For What’s in a For Loop? In this article, we’ll delve into a specifics of using a For loop, inserting data into the database, and use of transaction plus some error handling too. for(int i = 0; i <=… Continue Reading Nathan Clouse’s Article on their blog Loop-de-for-loop and Transaction Review What’s in a For...

Read More
Using ATL with Local Telemetry
Nov19

Using ATL with Local Telemetry

Submitted by Nathan Clouse on 11/19/23. Last modified: 11/19/23 Let’s collect some telemetry when using ATL in batch. Following on up this article, I thought it would be interesting to collect some telemetry on what happens when we use ATL to create a bunch of activity. First, let’s review what we were doing with ATL in the referenced article: Create a Sales Order with 1 line Adjust in… Continue Reading Nathan...

Read More
Database Inserts and Performance
Nov12

Database Inserts and Performance

Submitted by Nathan Clouse on 11/11/23. Last modified: 11/11/23 Tags:  performance Insert Preamble There are several different ways to create records using X++. First, the most common will be to use a record buffer. By far and away the most common but we’re in how we’re inserting data in X++. I’d list the ways of… Continue Reading Nathan Clouse’s Article on their blog Database Inserts and...

Read More

Database Inserts – Code Table

Does the process of inserting data with Code matter for performance? When inserting data in F&O, there are several best practices on how to do this from MSFT. But for this specific type of workload, do those best practices really matter? Can I code up a solution that is less than ideal and still have a workable solution? Let’s find out. This will only look at Azure hosted VM performance for… Continue Reading Nathan...

Read More
Create a Database Export Request using a DevOps Pipeline
Apr18

Create a Database Export Request using a DevOps Pipeline

Submitted by Nathan Clouse on 04/17/23. Last modified: 04/17/23 Need to Export a database for safe keeping? MSFT has had database movement APIs for some time but I haven’t seen a lot of use of them. I thought I’d provide a simple Power Shell script to show what can be done. You can make this more user friendly or modern by putting it in Power Automate or using a Logic App. For reference,… Continue Reading Nathan...

Read More
Using Git in PackagesLocalDirectory
Feb24

Using Git in PackagesLocalDirectory

Submitted by Nathan Clouse on 02/23/23. Tags:  Git Source Control How to use Git with PackagesLocalDirectory Git is a more modern source control system that has a lot of interest from Finance and Operations technical resources. There are a lot of potential benefits to use Git rather than TFVC. However, one of the… Continue Reading Nathan Clouse’s Article on their blog Using Git in PackagesLocalDirectory How to use Git...

Read More
How to Create an Azure Queue Endpoint in F&O
Feb24

How to Create an Azure Queue Endpoint in F&O

Submitted by Nathan Clouse on 02/23/23. How to Create an Azure Queue Endpoint in F&O This is a simple, straight forward How-To to create an Azure Service Bus Queue endpoint in Finance and Operations. In order to do this, you’ll have to have completed the following steps and collected the required data points. Queue Name / Data Point 5: 

Read More
How to create an Azure Key Vault for F&O
Feb24

How to create an Azure Key Vault for F&O

Submitted by Nathan Clouse on 02/23/23. How to create an Azure Key Vault for F&O This is a simple, straight forward How-To to create an Azure Key Vault that can be used by Finance and Operations. At the end, you’ll have an Azure Key Vault DNS URI name and a secret name (data points 7 and [4 or 9] referenced in other articles). Creating the secret names are explained in the article for… Continue Reading Nathan...

Read More

How to Create an Azure Service Bus Queue

Submitted by Nathan Clouse on 01/26/23. How to Create an Azure Service Bus Queue This is a simple, straight forward How-To to create an application registration that can be used by Finance and Operations. At the end, you’ll have an Service Bus Host name, a queue name as well as a primary connection string (data points 6, 5, and 3 referenced in other articles). Creating a Service… Continue Reading Nathan Clouse’s...

Read More

How to Create an App Registration for F&O

Submitted by Nathan Clouse on 01/26/23. How to Create an App Registration for F&O   This is a simple, straight forward How-To to create an application registration that can be used by Finance and Operations. At the end, you’ll have an application ID as well as a secret value (data points 1 and 2 referenced in other articles). First, go to https://portal.azure.com. Next, search for app… Continue Reading Nathan...

Read More
Boosting Customer Hosted Environment (CHE) Performance
Dec12

Boosting Customer Hosted Environment (CHE) Performance

Submitted by Nathan Clouse on 12/12/22. Tags:  performance VM Visual Studio Let’s examine how to get the most out of Azure spend for Tier 1 machines. A while ago Denis Trunin wrote an article on Visual Studio performance for F&O. I thought it was a well written and researched article…. Continue Reading Nathan Clouse’s Article on their blog Boosting Customer Hosted Environment (CHE) Performance Let’s...

Read More
Re-enable Users after Database Refresh
Nov10

Re-enable Users after Database Refresh

Submitted by Nathan Clouse on 11/09/22. Enabling Users after a database refresh is a pain. Let’s automate that away. Re-enabling users in UAT after a data refresh from PROD can be annoying, especially if  you have to be granted access to the environment administrator’s account. Let’s work through one way of creating a pipeline in Azure DevOps to re-enable a list of users using D365.FO… Continue Reading Nathan...

Read More

How to Use A Build Pipeline To Request A Database Backup

Submitted by Nathan Clouse on 10/23/22. Tags:  Powershell D365FO.Tools   PowerShell in a pipeline to request a database backup. PowerShell is a powerful scripting language that can be used to automate a wide variety of tasks, including interacting with Azure DevOps pipelines. One common use case for PowerShell in an… Continue Reading Nathan Clouse’s Article on their blog How to Use A Build Pipeline To Request A...

Read More

Part 4 – GitHub

Can you use Git Hub? yes. GitHub is also an option you could pursue when moving to Git. GitHub has a lot of new features and offerings that Azure DevOps does not have. However, there is basically no documentation from MSFT on how to configure builds and various other automation options in GitHub. I’m sure it’s possible but there will be a fair amount of guess work. Getting your pipelines fully… Continue Reading...

Read More

Part 3 – Developing with VS 2019 / 2022

What’s it like developing using Git? Developing in VS with Git is easy but I wanted to call out a few changes. First, you don’t need to manually add items to your repo. Your repo will have a .gitingore file that says what can be committed – and what can’t. If your .gitIgnore file doesn’t specifically ignore it, it will automatically be added. Also, your project folder will need to be in the…...

Read More

Part 3 – Developing with VS 2019

What’s it like developing using Git? Developing in VS with Git is easy but I wanted to call out a few changes. First, you don’t need to manually add items to your repo. Your repo will have a .gitingore file that says what can be committed – and what can’t. If your .gitIgnore file doesn’t specifically ignore it, it will automatically be added. Also, your project folder will need to be in the…...

Read More

Part 2 – Lifecycle of a Branch

Let’s take a look at the lifecyle of a Git Branch. Unlike TFVC, branches in Git are typically short lived when it comes to development. In TFVC you may have a branch for each developer or a branch for development in general, another for test then a release branch. In Git, we will be using branches differently. We’ll get a change request as a work item in DevOps, review it, create a branch,… Continue Reading Nathan...

Read More

Part 1 – Package Management

How Shoud I Manage Packages in Git? There are 2 options when looking at Git for managing your X++ code. The main driver for which option you select is if you will only ever have 1 package in your code base or more than 1. This include any ISVs or any other item that will have a code footprint anywhere in F&O. To learn more about packages, please see 

Read More
Using Git with 1 Package
Apr01

Using Git with 1 Package

Submitted by Nathan Clouse on 04/01/22. Using Git with 1 Package When using Git for F&O, there are 2 basic flavors of using it; with 1 package or more than 1 package. This post will cover how to setup Git for use with 1 package. To learn out to create a Git repo in Azure DevOps, please refer to MSFT documentation. To learn how to create a repo on Github, please refer to GitHub… Continue Reading Nathan Clouse’s Article...

Read More

GIT ALM Field Guide

Using Git rather than TFVC, a field guide. This collection of works will help you with moving from using TFVC to using Git for your x++ development. This page will have several chapters linked as they are published. However, how do you know which is the best fit for you, your team, your organization or your project? Let’s take an inventory. You If you’re reading this, I assume you’re… Continue Reading Nathan...

Read More
Using Git with More than 1 Package
Mar26

Using Git with More than 1 Package

Submitted by Nathan Clouse on 03/25/22. Tags:  Git Source Control Want to use Git with more than 1 Package? Let’s review. The process to get Git working with F&O can be a little involved and it may not make sense the first time. The issue we’re presented with is that Git assumes you are starting with nothing – a… Continue Reading Nathan Clouse’s Article on their blog Using Git with More than 1...

Read More

Part 5 – Pull Requests (PRs)

what is a pull request? how do they work? what do they signify? Create a Pull Request (PR) The code is done but not the work. The developer still has to singal that his work is complete. We’ll want to create a Pull Request or PR for short. There are 2 ways to do this. The first is in VS, which will just redirect you to Azure DevOps. The second is Azure DevOps. In VS, it can be found here: In… Continue Reading Nathan...

Read More
Select FirstOnly vs Select FirstOnly ForceSelectOrder ForceNestedLoop
Mar16

Select FirstOnly vs Select FirstOnly ForceSelectOrder ForceNestedLoop

Submitted by Nathan Clouse on 03/15/22. Tags:  forceselectorder forcenestedloop Let’s explore what keywords forceSelectOrder and ForceNestedLoop do. Introduction The database access layer in X++ largely conceals it magic from us as developers and we hope it gets the SQL right – and it does. SQL is largely 99.9%… Continue Reading Nathan Clouse’s Article on their blog Select FirstOnly vs Select FirstOnly...

Read More
Using ATL to Create Data to Model Data Volume Testing
Feb09

Using ATL to Create Data to Model Data Volume Testing

Submitted by Nathan Clouse on 02/08/22. What can we do with ATL to create some transactions? Let’s take a look. After this post, I wanted to manufacture some data to better show that adding computed fields adds overhead for every operation within a data entity. That post somewhat showed it but I wanted something more cut and dry. I thought a good way to manufacture data in a Contoso… Continue Reading Nathan Clouse’s...

Read More

Part 17 – Over Using Computed Fields

What happens when you add lots of computed fields to a data entity? Let’s take a look In part 16, we talked about using computed columns. Next, let’s take this to next logical conclusion – using them way too much. We’re going to compare 4 different scenarios from a performance perspective when working with customers. We’ll have the following data entities: CustCustomerV2Entity – we’ll...

Read More

test

test Module:  3rd Party Solution Enabled By Default: On By Default Continue Reading Nathan Clouse’s Article on their blog test test Blog Syndicated with Nathan Clouse’s...

Read More

Part 18 – Order Of Operations for Data Entities

Let’s explore the order of operations when using a data entity. When creating a solution that may use a data entity, OData or not, it may be helpful to understand the precise order of operations for what gets called when in the call stack. Also, when extending OOTB data entities, what changes you are going to make may have changes to the overall performance of the data entity depending on… Continue Reading Nathan...

Read More

Part 16 – Action Methods and Computed Columns

What are the differences between an Action Method and a Computed Column? Let’s take a look. Data entities have a few options for getting data to present in a specific way. One way is to use a virtual field with postLoad(). However, we can also use computed column as well as action methods. Both have their results exposed via OData but computed columns also present in the DMF when exporting… Continue Reading Nathan...

Read More

Part 15 – 429s, Throttling and How to Manage It

What is Throttling, a 429 Status code, how do we handle them, and create safe patterns for using OData Entities? Throttling, in a general sense, is something acting upon another actor to actively hinder a process or request. Dynamics 365 For Finance and Operations recently added Priority-based Throttling. In the past, when hitting an OData endpoint, we only had to worry about non-affirmative… Continue Reading Nathan...

Read More

Part 13 – Update Performance for Simple Entities

What can we learn about update performance from simple entities? Similar to how we tested insert performance for simple entities, we’re going to run similar tests to see what kind of performance we can expect with an update workload for a “simple” entity. The Tests To draw out values and differences, we’ll be testing with 2 basic test types: “Minimum” and “Maximum”, just like we have in...

Read More

Part 12 – Update Performance for Complicated Entities

What can we learn about update performance from complicated entities? Similar to how we tested insert performance for complicated entities, we’re going to run similar tests to see what kind of performance we can expect with an update workload. The Tests To draw out values and differences, we’ll be testing with 2 basic test types: “Minimum” and “Maximum”, just like we have in the past. What…...

Read More