d365 for finance and operations
Consolidation of Purchase requisition lines in D365 Finance and Operations
In this video, I explain the consolidation of purchase requisition lines in Dynamics 365 Finance & Operations.
In many real-world scenarios, different departments may create purchase requisitions for the same item. Instead of processing these requests separately and negotiating with vendors for each individual line, D365 F&O allows us to consolidate purchase requisition lines into a single consolidation.
This helps streamline vendor negotiation, enables better control over price, discounts, and vendor selection, and allows you to convert the consolidated requisition into a single purchase order efficiently.
I hope you find this video helpful. If you do, please like, share, and subscribe for more D365 F&O content.
Consider courses on udemy
How avoid schedule jobs running in specific time slots
Recently, I discovered an interesting and useful feature in D365 Finance and Operations.
Most of the time, there are peak hours when the system is heavily loaded. During these periods, we may not want certain batch jobs to run in order to avoid performance issues.
D365 Finance and Operations (now rebranded as ERP AI) provides a feature to control this behavior.
You can find it here:
System administration > Setup > Active periods for batch jobs
Using this setup, you can define active periods and assign batch groups to them. Within each batch group, you can add batch jobs with their normal recurrence settings.
The key benefit is that batch jobs assigned to these groups will not execute during the defined inactive hours. This allows you to prevent batch jobs from running during peak system usage times and ensures better system performance.


Free Text Invoice Posting and accounts allocation in D365 Finance and Operations
In this video, I shared you how accounts hit when you post free text Invoice in D365 Finance and Operations.
Error importing database Could not load package from .bacpac. File contains corrupted data.
So importing the latest backup on Dev machine, I found this error
It is very strange, because I installed from

And when I run the setup from this link Error appear.
Error importing database:Could not load package from ‘C:\temp-UATbackup.bacpac’.
File contains corrupted data.
Instead to download and install DacFramework.
Download and install latest .net version and extract it to your required folder
Download and Install SqlPackage – SQL Server | Microsoft Learn

From there, instead of using the Sqlpackage.exe under C:\Program Files (x86), please use the Sqlpackage.exe in C:\Temp\Sqlpackage-dotnetBoomb
Your import query will look like below
C:\Temp>SqlPackage.exe /a:import /sf:D:\Temp\UTup.bacpac /tsn:localhost /tdn:AxDB_fromProd1 /p:CommandTimeout=0
Error Log level – Error | Infolog diagnostic message: ‘Cannot create a record in Entity (DMFEntity) – D365 Finance and operations
During development, I initially used the arbitrary name for the custom data entity. Later, during the review session, I updated the Label property of the data entity to align with proper naming conventions.
🔍 Best practice: Always use the label for the data entity display name, not hardcoded strings.
Since this was a small customization, I had directly written string values in some places, bypassing the label. However, when I triggered database synchronization, I encountered the following error:
❌ Error Message:
Error Log level - Error | Infolog diagnostic message:
'Cannot create a record in Entity (DMFEntity).
Entity: ProductCreationValidationEntityV2, DSTProductCreationValidationStaging.'
🧪 Root Cause:
Upon investigation, I found that the DMFEntity table contained multiple entries with conflicting labels for the same data entity names. This typically occurs when:
- You change the label or name of a data entity without cleaning up old records
- The model or metadata has inconsistencies after refactoring
✅ Solution:
You need to identify and delete the duplicate or orphaned records from the DMFEntity table.
🔍 Sample Queries:
Run the following queries in SQL Server Management Studio (SSMS) against your AXDB database:
-- View existing records for the custom entities
SELECT * FROM DMFENTITY WHERE ENTITYNAME = 'ProductCreationValidationEntityV2';
SELECT * FROM DMFENTITY WHERE ENTITYNAME = 'ProductCreationValidationEntityV2Lines';
SELECT * FROM DMFENTITY WHERE ENTITYNAME = 'DSTProductCreationValidationEntity';
-- Delete the orphan/conflicting records
DELETE FROM DMFENTITY WHERE ENTITYNAME = 'ProductCreationValidationEntityV2';
DELETE FROM DMFENTITY WHERE ENTITYNAME = 'ProductCreationValidationEntityV2Lines';
DELETE FROM DMFENTITY WHERE ENTITYNAME = 'DSTProductCreationValidationEntity';
⚠️ Warning: Always take a database backup before running any DELETE operation.
🧰 Next Steps:
- Perform a full build of your model
- Run database synchronization again
- Re-deploy the data entities, if required
Sales price and discount is not added to sales line X++
I encountered this issue and, during troubleshooting, I discovered that the system performs an update on the sales line to retrieve sales prices and discounts. This process has a performance impact. In fact, the prices are copied from the trade agreement in Dynamics 365 for Finance and Operations
For manual price use following code snippet
salesLine.initFromInventTable(InventTable::find(salesLine.ItemId));
salesLine.InventDimId = inventDim.inventDimId;
salesLine.SalesQty = listObject.parmSalesQty();
salesLine.SalesPrice = listObject.parmOriginalPrice();
salesLine.SalesUnit = _InventItemBarcode.UnitID;
salesLine.PriceUnit = 1.00;
if ( (listObject.parmOriginalPrice() >= listObject.parmOfferPrice()) && !(listObject.parmOfferPrice() <0) && !(listObject.parmOriginalPrice() <=0))
{
if (listObject.parmOfferPrice()!=0)
{
real _Discount =listObject.parmOriginalPrice() -listObject.parmOfferPrice();
salesLine.LineDisc = _Discount;
}
else
{
salesLine.LineDisc = 0;
}
}
salesLine.DefaultDimension =LedgerDimensionDefaultFacade::serviceMergeDefaultDimensions(salesTable.DefaultDimension,InventTable::find(salesLine.ItemId).DefaultDimension);
salesLine.setPriceDiscChangePolicy(PriceDiscSystemSource::ManualEntry, fieldNum(salesLine, SalesPrice));
salesLine.setPriceDiscChangePolicy(PriceDiscSystemSource::ManualEntry, fieldNum(salesLine, LineDisc));
// salesLine.setPriceDiscChangePolicy(PriceDiscSystemSource::ManualEntry, fieldNum(salesLine, LinePercent));
salesLine.setPriceDiscChangePolicy(PriceDiscSystemSource::ManualEntry, fieldNum(salesLine, PriceUnit));
Try
{
ttsbegin;
salesLine.CreateLine(NoYes::Yes,NoYes::Yes);
ttscommit;
}
catch
{}
A Model with the same name already exists in the Metadata Store
I learned a tough life lesson—greatness isn’t about doing big things. True greatness lies in doing small things with excellence.
Haha, this sounds familiar! I remember reading a quote from Napoleon Hill:
“If you cannot do great things, do small things in a great way.”
So here is small tip from my Personal Knowledge Management
I was importing a model to dev environment to built a common package for deployment. I found following error,
A Model with the same name already exists in the Metadata Store. Please delete the existing model if you want to install this model.
So I need to delete existing one and then import it again through command line
k:\AOSService\PackagesLocalDirectory\bin\ModelUtil.exe -delete -metadatastorepath=k:\AOSService\PackagesLocalDirectory -modelname="RanjahJogi"
After you can import model in some temp table in c drive.
k:\AOSService\PackagesLocalDirectory\bin\ModelUtil.exe -import -metadatastorepath=k:\aosservice\packageslocaldirectory -file=c:\temp\RanjahJogi.axmodel
How to Import Data into D365 Finance and Operations
Hello friends, welcome to today’s video/blog post!
In this guide, we will walk through the process of loading data into Dynamics 365 Finance and Operations (D365 F&O). This step is typically performed twice:
- During initial environment configuration – before starting the User Acceptance Testing (UAT).
- Before going live – to ensure all required business data is in place.
Data Collection and Preparation
After analyzing business requirements, the Functional Consultant collects data from Business Users. There are two common approaches for preparing data:
- Business Users Provide Data in Excel
- The business users share their data in Excel files.
- The functional consultant then transforms it into the required D365 template for import.
- Predefined D365 Templates
- The functional consultant exports predefined Excel templates from D365 F&O.
- These templates are shared with business users for data entry.
- Once completed, the business users upload the data into the system.
Excel Expertise is Essential
From my experience, strong Excel skills are crucial when handling data imports. You’ll often need to:
- Remove duplicates.
- Replace lookup values with valid data.
- Ensure data is formatted correctly before uploading.
However, delays can occur due to confusion over responsibility. Business users may not provide data in the required format, while functional consultants may hesitate to modify it. This can result in delays of two weeks to a month in some cases.
Data Import Methods in D365
Microsoft provides two ways to import data into D365 Finance and Operations, both based on the D365 Data Entity Framework:
- Data Entity Framework – Used to import/export structured data.
- Excel Add-in – Allows direct data updates from Excel into D365.
Step-by-Step Guide to Import Data
In this walkthrough, we will use both methods to import data into D365 F&O.
Step 1: Exporting a Data Template
To get started, we first need to export a data template from D365. Here’s how:
- Navigate to the Dashboard.
- Click on Data Management.

Second way to go System administrator and there you can go Data Management
System Administration > Workspaces > Data management.

From Title Click and select Export

Create a new group and add vendor Info. and then click on Add entity

Search and select Vendors v2 in entity name and then select Excel in Target data format

Click on Export now


download excel by click on download excel file. Our excel template is ready.

We can remove unnessary fields from here and remove existing data and add new vendor information in excel sheet.
When excel sheet is prepared click again on Data management workspace on import Title

Create a new group with Vendor Import v2

click on add file and select Excel

and then search and select vendor V2 from form entity Name.

select the file and upload

Load and upload modified excel sheet and click on close button.

Before going to import go to vendor number sequence and set it manual and allow to a higher number.

And click on import

It is successful. If there are issue, then we try to resolve any validation issue. and try to import again.
![[Pasted image 20250223162113.png]]

Excel Addin
Using the Excel Add-in to Load Data into D365 F&O
Another efficient way to load data into D365 Finance and Operations (D365 F&O) is by using the Excel Add-in. This method allows users to import and update records directly from Excel, streamlining the data entry process.
Steps to Load Vendor Data Using the Excel Add-in
- Navigate to the Vendor List Page
- Go to Accounts Payable > Vendors > All Vendors.
- This page displays the list of all vendors in the system.
- Open the Excel Add-in
- Click on the Microsoft Office icon in the top-right corner of the screen.
- Select Vendor V2 under Open in Excel.


Work with the Excel Template
- The system will download an excel file with all required fields.
- Need to enable the Microsoft Dynamics Add-in if prompted.

Add new vendor and drag table boarder to new line save it
Publish the Data to D365
- Once the data is entered, click the Publish button in the Excel Add-in.
- The data will be validated and imported directly into D365 F&O.
click on publish

You can see the uploaded data into D365 F&O

Finalize the Purchase Order- D365 Finance and Operations
- Hello friends, Today we explore the finailzed option on purchased order.
- I usually confirm the purchased order but never use this functionality.
- We can use this option only when we call lines in purchase order are cancelled or invoiced.
- I tried it and found following error message on purchase order with Received status.

- One thing is sure, after finalization of purchase order we can not change in purchase order.
- After posting Invoice I tried

- We can finalize purchase order by two ways, one is from purchase top menu.
- Or we can use use the following navigation
- Procurement and Sourcing > Periodic Tasks> Finalize Purchase Orders.

- we tried from purchase order on action pane. and let see what happen


- After click on Ok, the status of purchase order is final.

- let me try to add a new line.
- The add new line option is gray out, we can not add or edit line

- When a [[Purchase Order]] or Purchase Order Line is “Finalized”, the system does 2 things:
- 1) It did not allow to any changes or add new line in purchase order.
- 2) If you enable the budgeting module in d365 F&O and buget is reserved against purchase order, Finalization of purchase
I used Roam Research app for writing this blog post.


