• Skip to main content
  • Skip to primary sidebar
  • Home
  • About
  • Recommended Readings
    • 2022 Book Reading
    • 2023 Recommended Readings
    • Book Reading 2024
    • Book Reading 2025
  • Supply Chain Management Guide
  • PKM
  • Microsoft Excel

Ali Raza Zaidi

A practitioner’s musings on Dynamics 365 Finance and Operations

alirazazaidi

Sales price and discount is not added to sales line X++

May 26, 2025 by alirazazaidi

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
{}


How to implement Tiny Experiment in Logseq

April 18, 2025 by alirazazaidi

Hello friends,

Recently, I came across a new technique for goal-setting and its implementation — and it’s been a game-changer for me.

I discovered the concept of Tiny Experiments, and it helped me shift from a linear mindset to an experimental mindset. The core of this approach is curiosity — the genuine desire to see what happens if I try something new. It’s no longer about “achieving a goal” but rather asking, what can I learn from this experiment?

This idea may have existed before, but I recently discovered it through Anne-Laure Cunff’s book Tiny Experiments. (Disclaimer: I haven’t read the full book yet, but I picked up the essence from her podcast and various blog posts.)

Here are a few key insights I gathered:

  • Long-term goals are often linear — we set a vision, but over time, we lose interest or life takes us in different directions.
  • Instead of big, rigid goals, Anne suggests setting short-term, curiosity-driven experiments.
  • The magic lies in small iterations and consistent reflection — this helps us either continue with what works or pivot to something new.

Her core formula:

“I will do this action for X number of iterations.”

She herself wrote 100 articles in 100 days, using this method — not to go viral, but to learn what worked and what didn’t.

Here’s the simple yet powerful workflow:

Observation → Question → Hypothesis → Pact → Reflect (Repeat)

Or in even simpler terms: Do and Learn — or as we say in Urdu, “کر کے دیکھو” (Kar ke dekho).


Let’s break it down:

1. Observation

Look at any area of your life: personal finance, health, relationships, career, etc.
Ask yourself: What’s going on?
This is a form of reflection — remember, we don’t learn from experience, we learn by reflecting on experience.


2. Question

Ask yourself:

  • What needs to change?
  • What’s not working right now?
  • What’s possible if I approach this differently?

3. Hypothesis

Make an assumption: If I take a specific action, what result do I expect?
It’s not about being right or wrong — it’s about testing and learning.


4. Pact

Define the experiment:

  • What action will I take?
  • For how long? (e.g., 10 days, 30 iterations, etc.)

5. Reflect

After your experiment, reflect on:

  • What worked?
  • What didn’t?
  • What should I try next?

Example: Health & Fitness

Let’s say you want to feel healthier and look more fit.

Observation

I feel overweight and not in good shape.

Questions

  • Do I need to change my lifestyle?
  • Should I join a gym or just walk daily?
  • Should I change my diet?

Hypothesis

If I walk daily and reduce my food intake, I’ll lose 20 kg in 2 months.

Pact

  • Walk 40 minutes daily for 30 days.
  • Reduce roti intake to 1 per meal or 1 thali of rice, no refills, for the next 30 days.

Reflect (after 30 days)

What worked:

  • I feel better
  • My energy levels have increased
  • I feel more active

What didn’t:

  • My shape hasn’t changed much
  • Weight hasn’t reduced significantly

So now, you can design a new tiny experiment based on this reflection — and repeat the cycle.


Hope you found this helpful!
Try it out with an open mind. Start small, stay curious, and remember:

Don’t chase goals. Run experiments.

You can use logseq tempate and implement this in following ways.

And How we use this template something similar

How to make better linked notes – PKM

April 15, 2025 by alirazazaidi

I was facing an issue where many notes were just empty linked pages—basically serving only as references or bridges between other notes.

So, I created a separate folder called [[Linked Pages]] to store these.

For fleeting notes, I made a new folder named [[In Box]].

  • After reviewing and modifying them, I move them to specific folders as permanent notes.

For my daily journal, I created a separate folder called [[Jots]], which is linked to the calendar.

Json deserialize issue in service class An exception occured when invoking the operation – Type ‘Class’ is not supported by serializer. D365 Finance and operations

April 10, 2025 by alirazazaidi

Yesterday, I was working on integration, and everything was going fine. However, when I tried to retrieve a string from the DataContract, it threw an error: “Type ‘Class’ is not supported by the serializer.” The issue persisted even when I used Newtonsoft. The rest of the logic was functioning correctly.

Eventually, I discovered that the issue was due to missing AX 2012 attributes on the list’s getter/setter or parameter. Once I added those attributes, the actual getter/setter started working as expected.

 [
    DataMemberAttribute('transactions'),  
    DataCollectionAttribute(Types::Class, classStr(DSTTransactionDC))  
  ]  
  public List Parmtransactions(List _transactions = transactions)  
  {  
    transactions = _transactions;  
return transactions;
  }

I have to add following

  AifCollectionTypeAttribute('_transactions', Types::Class, classStr(DSTTransactionDC)),
  AifCollectionTypeAttribute('return', Types::Class, classStr(DSTTransactionDC))

After that getter setter become something similar

 [
    DataMemberAttribute('transactions'),  
    DataCollectionAttribute(Types::Class, classStr(DSTTransactionDC)),  
    AifCollectionTypeAttribute('_transactions', Types::Class, classStr(DSTTransactionDC)),  
    AifCollectionTypeAttribute('return', Types::Class, classStr(DSTTransactionDC))  
  ]  
  public List Parmtransactions(List _transactions = transactions)  
  {  
    transactions = _transactions;  
 return transactions;
  }

after this change, datacontract easily serialise. 
Also change attribute at class header from datacontracattribute to dataContract.

Hope you like this post.

How to apply updates on Cloud Hosted Environment D365 Finance and Operations

April 1, 2025 by alirazazaidi

I recently encountered a small functionality difference in the cloud-hosted environment.

Upon investigation, I found that the Dev machine is on 10.0.40, while the UAT environment is on 10.0.42.

This minor difference seems to be due to a Microsoft quality update. My next question is: How can I update it?

Essentially, the UAT and production environments are available on the project’s main page.

Dev machines are also cloud-hosted and can be found in the menu in LCS

After selecting the machine you need to click on Full details button

from top menu you can select and apply update.

Hope you like this small post

How to add templates and Use in Obsidian- PKM-Personal Knowledge Management

March 24, 2025 by alirazazaidi

Hello friends, in this post I shared how to create and use templates in Obsidian

A Model with the same name already exists in the Metadata Store

March 19, 2025 by alirazazaidi

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

Service Item with Stocked Item Model

March 17, 2025 by alirazazaidi

I conducted an experiment to see what happens when we create a service item but select the item group as stocked.

To test this, I created an item called “Service 101” using the FIFO model, which is typically used for stocked items.

Next, I purchased it as a normal item.

When I checked the inventory transactions, I noticed that transactions were recorded—this happened because the FIFO item model treats it as a stocked item.

Inventory transactions

Why would we need such an item?

If we define an item as a service and assign it to a non-stocked item group, it means we can use it as a service charge—either as a service received or provided to a customer. In this case, no inventory transactions would be recorded.

However, in production orders, when defining the Bill of Materials (BOM), there are certain non-physical costs (such as floor charges) that need to be accounted for. The problem is that BOM does not support service items.

To work around this, we need to create a service item using a stocked item model, ensuring that it can be included in BOM calculations while still serving its intended purpose as a service-related charge.

BRD, Requirement Register, Fit GAP, FDD, TDD

March 14, 2025 by alirazazaidi

1. BRD (Business Requirements Document):

  • Purpose: Captures high-level business requirements and objectives. It focuses on what the business needs, not how to implement it.
  • Key Components:
    • Project objectives and scope
    • Business processes to be supported by the ERP
    • Functional requirements (features and capabilities needed)
    • Non-functional requirements (performance, security, compliance)
    • Stakeholder roles and responsibilities
  • Audience: Business stakeholders, project sponsors, and the implementation team.

2. Requirement Register:

  • Purpose: A detailed log of all requirements gathered during the project. Acts as a central repository for tracking requirements throughout the ERP lifecycle.
  • Key Components:
    • Unique ID for each requirement
    • Description and category (functional, non-functional, technical)
    • Priority (high, medium, low)
    • Status (proposed, approved, implemented, tested, etc.)
    • Ownership (who requested and who is responsible)
  • Audience: Project managers, business analysts, and the implementation team.

3. Fit-GAP Analysis:

  • Purpose: Assesses how well the ERP system’s out-of-the-box features match the business requirements. Identifies gaps that need customization or process changes.
  • Key Components:
    • Fit: Requirements that the ERP system meets without modification.
    • GAP: Requirements that need customization, integration with other systems, or process adjustments.
    • Recommendations for handling gaps (customization, workaround, process change).
  • Audience: Functional consultants, business analysts, and decision-makers.

4. FDD (Functional Design Document):

  • Purpose: Provides a detailed description of how the business requirements will be implemented functionally in the ERP system.
  • Key Components:
    • Functional workflows and use cases
    • Screen layouts, fields, and user interactions
    • Business rules and validations
    • Integration points with other systems
  • Audience: Functional consultants, developers, and QA teams.

5. TDD (Technical Design Document):

  • Purpose: Describes the technical implementation details for the requirements specified in the FDD. Focuses on how to build the solution technically.
  • Key Components:
    • System architecture and data models
    • Detailed specifications for customizations (code, scripts, reports)
    • Database schemas and API details
    • Security and compliance considerations
  • Audience: Technical consultants, developers, and system architects.

Summary:

  • BRD: What the business needs.
  • Requirement Register: Tracks all requirements.
  • Fit-GAP: Matches requirements with ERP capabilities.
  • FDD: Functional solution design.
  • TDD: Technical implementation plan.

Simple PKM with Obsidian

March 9, 2025 by alirazazaidi

Hello friends, welcome to this video!

In this video, I’m sharing a simple Personal Knowledge Management (PKM) System in Obsidian. It consists of three main folders:

1. Inbox

This is where all your notes are initially stored—whether it’s your daily journal, work-related notes, ideas, or anything else you capture throughout the day.

2. MOC (Map of Content)

This folder contains Table of Contents (TOC) notes—a central hub where all notes related to a specific category are linked. Think of it as a gateway to easily access and organize your knowledge.

3. Specific Folders

Once a note is finalized, it gets moved into a relevant category folder. Examples include D365, Excel, and Consulting—but you can create folders based on your own needs.

This is my simple yet effective PKM system in Obsidian. I hope you find it helpful!


Next Page »

Primary Sidebar

About

I am Dynamics AX/365 Finance and Operations consultant with years of implementation experience. I has helped several businesses implement and succeed with Dynamics AX/365 Finance and Operations. The goal of this website is to share insights, tips, and tricks to help end users and IT professionals.

Legal

Content published on this website are opinions, insights, tips, and tricks we have gained from years of Dynamics consulting and may not represent the opinions or views of any current or past employer. Any changes to an ERP system should be thoroughly tested before implementation.

Categories

  • Accounts Payable (2)
  • Advance Warehouse (2)
  • Asset Management (3)
  • Azure Functions (1)
  • Books (6)
  • Certification Guide (3)
  • Customization Tips for D365 for Finance and Operations (62)
  • D365OF (59)
  • Data Management (1)
  • database restore (1)
  • Dynamics 365 (58)
  • Dynamics 365 for finance and operations (135)
  • Dynamics 365 for Operations (165)
  • Dynamics AX (AX 7) (134)
  • Dynamics AX 2012 (274)
  • Dynamics Ax 2012 Forms (13)
  • Dynamics Ax 2012 functional side (16)
  • Dynamics Ax 2012 Reporting SSRS Reports. (31)
  • Dynamics Ax 2012 Technical Side (52)
  • Dynamics Ax 7 (65)
  • Exam MB-330: Microsoft Dynamics 365 Supply Chain Management (7)
  • Excel Addin (1)
  • Favorites (12)
  • Financial Modules (6)
  • Functional (8)
  • Implementations (1)
  • Lifecycle Services (1)
  • Logseq (4)
  • Management Reporter (1)
  • Microsoft Excel (4)
  • MS Dynamics Ax 7 (64)
  • MVP summit (1)
  • MVP summit 2016 (1)
  • New Dynamics Ax (19)
  • Non Defined (9)
  • Note taking Apps (2)
  • Obsidian (3)
  • Personal Knowledge Management (2)
  • PKM (13)
  • Power Platform (6)
  • Procurement (5)
  • procurement and sourcing (5)
  • Product Information Management (4)
  • Product Management (6)
  • Production Control D365 for Finance and Operations (10)
  • Sale Order Process (10)
  • Sale Order Processing (9)
  • Sales and Distribution (5)
  • Soft Skill (1)
  • Supply Chain Management D365 F&O (3)
  • Tips and tricks (278)
  • Uncategorized (165)
  • Upgrade (1)
  • Web Cast (7)
  • White papers (4)
  • X++ (7)

Copyright © 2025 · Magazine Pro On Genesis Framework · WordPress · Log in