Subjects
Structured Learning Path

X++ Programming Fundamentals - D365 F&O Technical Syllabus

Explore all chapters and subchapters in a clear, organized format designed for better learning and faster navigation.

1

Introduction to D365 F&O - X++

1.1 Introduction to D365 F&O - X++

Get started with Dynamics 365 Finance & Operations by learning X++ basics. An easy introduction for developers and functional consultants to understand coding in D365 F&O.

1.2 Getting Started VM, Login and Authentication

Getting Started VM, Login and Authentication

1.3 Create a New Project - Dynamics 365 F&O - Visual Studio

Learn how to create a new project in Dynamics 365 Finance & Operations using Visual Studio with a step-by-step guide for developers and consultants. d

1.4 In which scenarios we need to create a project

Discover the scenarios where creating a project in Dynamics 365 Finance & Operations is required. Learn when and why to set up projects in Visual Studio for D365 F&O development.

1.5 AOT Overview

Learn the basics of AOT (Application Object Tree) in Dynamics 365 Finance & Operations. Understand its structure, components, and role in D365 F&O development.

1.6 Organize projects by element type

Learn how to organize projects by element type in Dynamics 365 Finance & Operations. Discover best practices for managing AOT elements in Visual Studio for D365 F&O development.

1.7 How to Create Model in D365 F&O

Learn how to create a model in Dynamics 365 Finance & Operations with a step-by-step guide. Understand model creation, setup, and best practices for D365 F&O development.

1.8 Update Model Parameters

Learn how to update model parameters in Dynamics 365 Finance & Operations using X++. Step-by-step instructions for developers to manage and configure D365 F&O models effectively.

1.9 Build deployment packages

Learn how to build deployment packages in Dynamics 365 Finance & Operations. Step-by-step instructions for developers to package, deploy, and manage D365 F&O models effectively.

1.10 Assignment: Create Model Details for Visual Studio (D365 FO)

Assignment: Model Details for Visual Studio (D365 FO)

2

Data Types in x++

2.1 Keywords

Learn what keywords are in programming languages, their role, and how they are used in coding. A simple guide for beginners to understand reserved words in programming.

2.2 Identifier

Learn what identifiers are in programming languages, their purpose, rules, and how to use them in coding. A simple guide for beginners to understand naming conventions in programming.

2.3 Datatypes and Variable - X++ Programming Language - D365 F&O

Learn about datatypes and variables in X++ for Dynamics 365 Finance & Operations. Understand how to declare, use, and manage variables in D365 F&O development.

2.4 Datatypes default values in X++ D365 F&O

Learn the default values of different datatypes in X++ for Dynamics 365 Finance & Operations. A complete guide for developers to understand variable initialization in D365 F&O.

2.5 Variable Declaration Initialization - Primitive Data Types in X++ Programming Language

Variable Declaration Initialization - Primitive Data Types in X++ Programming La

2.6 Base Enumerations or Base Enums in D365 Finance and Operations (F&O) - X++ Code

Learn about Base Enumerations (Base Enums) in X++ for Dynamics 365 Finance & Operations. Understand how to use, declare, and manage enums in D365 F&O development.

2.7 Extended Data Types (EDTs)

Learn about Extended Data Types (EDTs) in X++ for Dynamics 365 Finance & Operations. Understand how to create, use, and manage EDTs in D365 F&O development.

2.8 How to Take User input X++ Programing Language - D365 F&O

Learn how to take user input in X++ for Dynamics 365 Finance & Operations. Step-by-step guide for developers to handle input using forms, prompts, and variables in D365 F&O.

2.9 How to Create EDTs

Step-by-step guide to create Extended Data Types (EDTs) in X++ for Dynamics 365 Finance & Operations. Learn how to define, customize, and use EDTs in D365 F&O development.

2.10 Get the current UTC date and time

Learn how to get the current UTC date and time in X++ for Dynamics 365 Finance & Operations. Step-by-step guide for developers to work with date and time in D365 F&O.

2.11 Assignment: Create and Use an Extended Data Type (EDT) in D365 F&O

Assignment: Create and Use an Extended Data Type (EDT) in D365 F&O

2.12 Assignment: Create and Display an Enum in D365 F&O

Assignment: Create and Display an Enum in D365 F&O

3

Tips

3.1 Debugging Symbol not loading in visual studio

Debugging Symbol not loading in visual studio

3.2 Add Line Number in X++ Code inside visual studio

Learn how to enable and display line numbers in X++ code inside Visual Studio for Dynamics 365 Finance & Operations. Step-by-step guide for developers.

3.3 Dark Mode, Change fonts, colors, and themes in Visual Studio

Learn how to enable dark mode and customize fonts, colors, and themes in Visual Studio for Dynamics 365 Finance & Operations development. Step-by-step guide for a personalized coding environment.

3.4 How to check the current version of application D365 F&O

Learn how to check the current version of your Dynamics 365 Finance & Operations application. Step-by-step instructions for developers and functional consultants in D365 F&O.

3.5 How to Locate the Infolog Window in Visual Studio for Debugging Info Messages

Learn how to locate and use the Infolog window in Visual Studio to debug info messages in Dynamics 365 Finance & Operations. Step-by-step guide for developers.

4

Operators in X++ Programming Languages

4.1 Assignment: Understanding and Using X++ Operators

Assignment: Understanding and Using X++ Operators

4.2 Operator Introduction in X++

Explore the operators in X++ programming language. Learn about arithmetic, comparison, logical, assignment, and other operators, with usage examples and practical applications in Dynamics 365 Finance & Operations (D365 F&O).

4.3 Assignment operators in X++ Programming Language

Assignment operators in X++ Programming Language

4.4 Arithmetic operators in X++ Programming Language

Arithmetic operators in X++ Programming Language

4.5 Relational operators in X++ Programming Language

Relational operators in X++ Programming Language

4.6 Ternary operator in X++ Programming Language

Ternary operator in X++ Programming Language

4.7 Operator Precedence in X++ Programming Language

Operator Precedence in X++ Programming Language

4.8 Case Sensitivity of the == Operator

Case Sensitivity of the == Operator

4.9 String Concatenation Operator

Learn how to use the string concatenation operator in X++ for Dynamics 365 Finance & Operations. Step-by-step guide for combining strings and building dynamic text in D365 F&O.

4.10 From String Remove Alphabetic Characters

Learn how to remove alphabetic characters from a string in X++ for Dynamics 365 Finance & Operations. Step-by-step guide for string manipulation in D365 F&O development.

5

Conditional Statement in X++ Programming Language

5.1 Assignment: Switch Case Example in X++

Assignment: Switch Case Example in X++

5.2 If Else Conditional Statement

If Else Conditional Statement

5.3 Switch Statements

Switch Statements

6

Table in D365 FO - X++ Programming Language

6.1 How To Create a Table in D365 FO

How To Create a Table in D365 FO

6.2 Question for Table Fields

Question for Table Fields

6.3 Table Properties in D365 F&O

Table Properties in D365 F&O

6.4 Primary key and Primary Index - D365 F&O Technical Tutorial

Primary key and Primary Index - D365 F&O Technical Tutorial

6.5 Why synchronization?

Why synchronization?

7

Table Relation in D365 F&O - X++ Programming Language

7.1 Field Fixed Relationship - Table - D365 F&O

Field Fixed Relationship - Table - D365 F&O

7.2 Related Field Fixed Relationship - Table - D365 F&O

Related Field Fixed Relationship - Table - D365 F&O

8

Data selection and manipulation in X++ Programming Language

8.2 Select - Data selection and manipulation Part 1

Select - Data selection and manipulation Part 1

8.3 Firstonly, FirstOnly10, FirstOnly100 - Data selection and manipulation Part 2

Firstonly, FirstOnly10, FirstOnly100 - Data selection and manipulation Part 2

8.4 next statement - Data selection and manipulation Part 3

next statement - Data selection and manipulation Part 3

8.5 Select specific columns - Data selection and manipulation Part 4

Select specific columns - Data selection and manipulation Part 4

8.6 Insert Method

Insert Method

8.7 Assignment: Update SalesTable Field Using X++

Assignment: Update SalesTable Field Using X++

8.8 Custom Scripts - X++ - D365 F&O

Learn how to create and optimize custom scripts in X++ for Dynamics 365 Finance & Operations (D365 F&O). Explore best practices, programming techniques, and advanced tips to enhance your D365 F&O development skills.

8.9 Solution: Update SalesTable Field Using X++

Solution: Update SalesTable Field Using X++

8.10 Assignment: update_recordset statement - Part 1 - D365 F&O - X++ Programming

update_recordset statement - Part 1 - D365 F&O - X++ Programming

8.11 Solution: update_recordset statement - Part 2 - D365 F&O - X++ Programming

update_recordset statement - Part 2 - D365 F&O - X++ Programming

9

Container in X++

9.1 Container Introduction

Container Introduction

9.2 Container Example - With conPeek() funciton

Container Example - With conPeek() funciton

9.3 Container Retrieval Example

Container Retrieval Example

9.4 conIns() function

conIns() function

9.5 Container Insert Operator +=

Container Insert Operator +=

9.6 conDel function

conDel function

9.7 conPoke function

conPoke function

9.8 conFind function

conFind function

9.9 str2con() Function

str2con() Function

9.10 Assignment: Container Operations in X++

Assignment: Container Operations in X++

10

Array in X++ Programming Language

10.1 Array Concepts

Array Concepts

10.2 Need for Array

Need for Array

10.3 Array- in X++ programming language - Part 1

Array- in X++ programming language - Part 1

10.4 Array- in X++ programming language - Part 2

Array- in X++ programming language - Part 2

10.5 Array Class - in X++ programming language - Part 1

Array Class - in X++ programming language - Part 1

10.6 Array - Collection classes - Part 2

Array - Collection classes - Part 2

10.7 Why you might choose X++ collection classes over composite types (native arrays)

Why you might choose X++ collection classes over composite types (native arrays)

10.8 Assignment: Understanding Arrays in X++

Assignment: Understanding Arrays in X++

11

List in X++

11.1 List Class in X++ Programming Language D365 FO - Part 1

List Class in X++ Programming Language D365 FO - Part 1

11.2 List Class in X++ Programming Language D365 FO - Part 2

List Class in X++ Programming Language D365 FO - Part 2

11.3 List Class Assignment Problem Statement

List Class Assignment Problem Statement

11.4 List Class Assignment Solution

List Class Assignment Solution

11.5 RecordInsertList in D365 FO X++ Language

RecordInsertList in D365 FO X++ Language

11.6 Assignment String Splitting for List and enumerator in X++

Assignment String Splitting for List and enumerator in X++

11.7 ListIterator in X++ Programming Language

ListIterator in X++ Programming Language

12

Set in X++

12.1 Set class in X++ Programming Language - Part 1

Set class in X++ Programming Language - Part 1

12.2 Set class in X++ Programming Language - Part 2

Set class in X++ Programming Language - Part 2

12.3 Set class in X++ Programming Language - Part 3

Set class in X++ Programming Language - Part 3

12.4 Set class Assignment in X++ Programming Language - Part 4

Set class Assignment in X++ Programming Language - Part 4

12.5 Set class Assignments Solution in X++ Programming Language - Part 5

Set class Assignments Solution in X++ Programming Language - Part 5

13

Loop control in X++ Language

13.2 Why Do We Need Iterative Constructs in Programming?

Why Do We Need Iterative Constructs in Programming?

13.3 While Loops in X++ Languague

while loop example in X++ Programming Language

13.4 Do while loops in X++ Languague

do while loop example in X++ Programming Language

13.5 For Loop in X++ Language

Loop control in X++ Language

14

Map in X++

14.1 Map in X++ - Part 1

Map in X++ - Part 1

14.2 Map in X++ - Part 2

Map in X++ - Part 2

14.3 Create() and Pack() Method in Map in D365 F&O - X++ Code

Create() and Pack() Method in Map in D365 F&O - X++ Code

14.4 How to Use Map pack() and create() with Objects in X++

How to Use Map pack() and create() with Objects in X++

15

Class and Objects - Object-Oriented Programming (OOP) Concept X++ Language

15.1 Create a class in X++ Language

Create a class in X++ Language

15.2 Real World Examples of Class Object Data Method

Real World Examples of Class Object Data Method

15.3 Code implementation for Object, Data and Method Object

Code implementation for Object, Data and Method Object

15.4 Constructor in D365 F&O - X++ Code

Constructor in D365 F&O - X++ Code

15.5 Context class in X++

Context class in X++

16

Methods in X++

16.1 Protected method in X++ Programming Language

Protected method in X++ Programming Language

16.2 Create and Use Methods

Create and Use Methods

16.3 Accessor Keywords in X++ Programming Language - D365

Accessor Keywords in X++ Programming Language - D365

16.4 Static method - Access Static Methods, Static fields, and Constants - Part 3 - X++

Static method - Access Static Methods, Static fields, and Constants - Part 3

16.5 Static method Characteristics Part 2 - X++

Static method Characteristics Part 2

16.6 Static method Introduction Part 1 - X++

Static method Introduction Part 1

16.7 Private method in X++ Programming Language

Private method in X++ Programming Language

16.8 Protected method in Inheritance in X++

Protected method in Inheritance

16.9 Functions / Methods in Programming Languages

Learn functions or methods in programming languages with clear explanations and examples. Understand their purpose, advantages, and real-world usage.

17

Exception Handling

17.1 What is Exception Handling

What is Exception Handling

17.2 X++ exception handling

X++ exception handling

17.3 CLRError in D365 F&O

CLRError in D365 F&O

18

Inheritance - OOP Concept- X++ Code

18.1 Inheritance in D365 F&O - X++ Code

Inheritance in D365 F&O - X++ Code

18.2 How can you ensure that a class cannot be inherited by other classes

How can you ensure that a class cannot be inherited by other classes

18.3 Inheritance and Constructor Overriding - X++ Programming Language - D365 F&O

Inheritance and Constructor Overriding - X++ Programming Language - D365 F&O

18.4 IS and AS Keyword

IS and AS Keyword

18.5 Multilevel Inheritance - D365 F&O - X++ Programming Language

Multilevel Inheritance - D365 F&O - X++ Programming Language

18.6 Hierarchical Inheritance in D365 F&O - X++ Code

Hierarchical Inheritance in D365 F&O - X++ Code

19

Abstract Class - OOP Concept- X++ Code

19.1 Abstract Class X++ Code in D365 F&O - A Comprehensive Guide

Abstract Class X++ Code in D365 F&O - A Comprehensive Guide

20

Interface - OOP Concept- X++ Code

20.1 Interface - X++ Programming Language - D365 F&O

Interface - X++ Programming Language - D365 F&O

21

Custom Methods in D365 F&O X++ Code

21.1 exist() method - D365 F&O - X++ Code

exist() method - D365 F&O - X++ Code

21.2 find method - D365 F&O - X++ Code

find method - D365 F&O - X++ Code

21.3 find method part 2 - D365 F&O - X++ Code

find method part 2 - D365 F&O - X++ Code

22

Tables Methods

22.1 Table Methods in D365 F&O Technical -X++ Tutorial

Table Methods in D365 F&O Technical -X++ Tutorial

22.2 initValue Table Method - D365 F&O - X++ Code

initValue Table Method - D365 F&O - X++ Code

22.3 modifiedField() in D365 F&O - Table Method - initValue() X++ Code

modifiedField() in D365 F&O - Table Method - initValue() X++ Code

22.4 modifiedFieldValue - Table Method - D365 F&O - X++ Code

modifiedFieldValue - Table Method - D365 F&O - X++ Code

22.5 validateField Table Method - D365 F&O - X++ Code

validateField Table Method - D365 F&O - X++ Code

23

Customization/Extension

23.1 Why Customization/Extension?

Why Customization/Extension?

23.2 Extension framework and best practices for customizing and extending D365 F&O

Extension framework and best practices for customizing and extending D365 F&O

23.3 Common Element Types and Reasons for Extensions in D365 F&O

Common Element Types and Reasons for Extensions in D365 F&O

23.4 Extend an EDT

Extend an EDT

23.5 Table Extension

Table Extension

23.6 Table Extension - COC - Event - Event Handler

Table Extension - COC - Event - Event Handler

24

Chain of Command

24.1 What is Chain of Command (CoC)?

What is Chain of Command (CoC)?

24.2 Why Chain of Command (CoC) is Required in D365 F&O

Why Chain of Command (CoC) is Required in D365 F&O

24.3 How to Use Chain of Command CoC in D365 F&O?

How to Use Chain of Command CoC in D365 F&O?

24.4 How can I use coc with a private method?

How can I use coc with a private method?

25

Event Handlers

25.1 Event Handler in D365 F&O - What, Why

Event Handler in D365 F&O - What, Why

25.2 Event Handler in D365 F&O - Practical Example 1

Event Handler in D365 F&O - Practical Example 1

25.3 Event Handler in D365 F&O - Practical Example 2

Event Handler in D365 F&O - Practical Example 2

26

X++ File Based Operations - Excel, CSV

26.1 Export Excel File in X++ Programming Language

Export Excel File in X++ Programming Language

27

Forms in D355 F&O

27.1 Forms in D355 F&O

Forms in D355 F&O

27.2 Simple List Form

Simple List Form

27.3 Quick filter on simple list

Quick filter on simple list

27.4 Menu and Menu Items

Menu and Menu Items

27.5 Form Datasource Properties

Form Datasource Properties

27.6 Standard form methods

Standard form methods

27.7 Standard form data source methods

Standard form data source methods

27.8 reread() and refresh() method - D365 F&O

reread() and refresh() method - D365 F&O

27.9 Lookup in form control

Lookup in form control

28

Dialog Form Pattern - With a project

28.1 Basic Dialog Form and Insert Records via Excel File

Basic Dialog Form and Insert Records via Excel File

28.2 Dialog basic form pattern D365 F&O X++ Language Part 1

Dialog basic form pattern D264 F&O X++ Language Part 1

28.3 Dialog basic form pattern D365 F&O X++ Language Part 2

Dialog basic form pattern D365 F&O X++ Language Part 2

28.4 Dialog basic form pattern D365 F&O X++ Language Part 3

Dialog basic form pattern D365 F&O X++ Language Part 3

28.5 Dialog basic form pattern D365 F&O X++ Language Part 4

Dialog basic form pattern D365 F&O X++ Language Part 4

28.6 Dialog basic form pattern D365 F&O X++ Language Part 5

Dialog basic form pattern D365 F&O X++ Language Part 5

29

Display method in D365 F&O

29.1 Display method in D365 F&O

Display method in D365 F&O

29.2 Keep the code in display methods to a minimum

Keep the code in display methods to a minimum

29.3 Caching Display Methods

Caching Display Methods

30

Table of Contents Form Pattern - D365 F&O

30.1 Table of Contents Form Pattern - D365 F&O

Table of Contents Form Pattern - D365 F&O

30.2 Table of Contents form - Add and Delete Button - D365 F&O - Video 2

Table of Contents form - Add and Delete Button - D365 F&O - Video 2

30.3 Lookup in Form Pattern - Table of Contents - D365 F&O

Lookup in Form Pattern - Table of Contents - D365 F&O

31

Data Entities

31.2 What is Data entities?

What is Data entities?

31.3 How to Create Data Entity - Using Addins or wizard

How to Create Data Entity - Using Addins or wizard

31.4 Add Data Entity to Entity List Page in Data Management

Learn how to add a data entity in Dynamics 365 Finance and Operations (F&O) with this step-by-step tutorial! In this video, we dive into troubleshooting missing data entities like "customer V3" in the data entity section. Discover how to use the Application Object Tree (AOT) to find staging table names, set target entities, and enable import/export functionality. Perfect for IT professionals, business analysts, and Dynamics 365 users looking to streamline data management.

32

Custom Scripts - X++

32.1 Custom Scripts - X++ - D365 F&O

Learn how to create and optimize custom scripts in X++ for Dynamics 365 Finance & Operations (D365 F&O). Explore best practices, programming techniques, and advanced tips to enhance your D365 F&O development skills.

33

Security in D365 F&O

33.1 Security in D365 F&O

Security in D365 F&O

33.2 Identification, Authentication, and Authorization

Identification, Authentication, and Authorization

33.3 Role-based Security in D365 Finance and Operations apps

Role-based Security in D365 Finance and Operations apps

33.4 Role based security in D365 F&O Explained

Role based security in D365 F&O Explained

34

Joins in D365 F&O with X++

34.1 Joins in D365 F&O

Joins in D365 F and O

34.2 Join or Inner Join in D365 F&O - X++ Code

Join or Inner Join in D365 F and O - X++ Code

34.3 Outer Join in D365 F&O - X++ Code

Outer Join in D365 F&O - X++ Code

34.4 Exists Join in D365 F and O - X++ Code

Exists Join in D365 F and O - X++ Code

34.5 Not Exists Join in D365 F and O - X++ Code

Not Exists Join in D365 F and O - X++ Code

35

Data migration to finance and operations apps

35.2 Data migration to finance and operations apps

Prepare data for migration to finance and operations apps

35.3 Validating data output D365 F&O - Step by Step Data Migration Process

Validating data output D365 F&O - Step by Step Data Migration Process

35.4 How to add Data Entity to Enlity List Page

How to add Data Entity to Enlity List Page

35.5 Export Data - Data management Worksspace - D365 F&O

Export Data - Data management Worksspace - D365 F&O

35.6 Import Data - Data management Worksspace - D365 F&O

Import Data - Data management Worksspace - D365 F&O

35.7 Cutover Plans in Data Migration – A Complete Guide D365 F&O

Cutover Plans in Data Migration – A Complete Guide D365 F&O

36

SQL Server Reporting Services(SSRS)

36.1 What is SSRS?

What is SSRS?

36.2 Customizing Print Management in D365 F&O: A Guide to Handling Document Types with Event Handlers

Customizing Print Management in D365 F&O: A Guide to Handling Document Types with Event Handlers

37

Batch Job in D365 F&O

37.1 What is batch processing?

What is batch processing?

37.2 What is batch groups?

What is batch groups?

37.3 Why an organization might opt for batch processing in their systems

Why an organization might opt for batch processing in their systems

37.4 Batch job status in D365 F&O

Batch job status in D365 F&O

37.5 Runbase batch job example 1

Runbase batch job example

37.6 Runbase batch job example 2

Runbase batch job example 2

37.7 Runbase batch job example 3

Runbase batch job example 3

37.8 Access Denied error in batch job

Access Denied error in batch job

37.9 Batch Job Without Contract class, UIBuilderClass and Action Menu Item

Batch Job Without Contract class and UIBuilderClass

37.10 Implementing a Single Threaded Batch Job Without UI and Contract With Action Menu Item

Implementing a Single Threaded Batch Job Without UI and Contract With Action Menu Item

37.13 build and postBuild in X++ UI Builder class

build and postBuild in X++ UI Builder class

38

Integration in D365 F&O

38.1 Register an application with the Microsoft identity platform

Register an application with the Microsoft identity platform

38.2 Synchronous vs. asynchronous integration patterns

Synchronous vs. asynchronous integration patterns

39

Query in D365 F&O - X++ Code

39.1 X++ Query Ranges Explained with Runnable Code: .value() vs queryValue()

X++ Query Ranges Explained with Runnable Code: .value() vs queryValue()

39.2 Query::insert_recordset in D365 FO

Query::insert_recordset in D365 FO

40

SysOperation framework - Example Project