All posts by Adeel Khan (MCP)(MCDS)(MS)

An ambitious, enthusiastic and distinguished individual, offering over 5+ years of dynamic experience across various facets of customer service, ERP support consultancy, business marketing plans and software documentation, aspiring for a challenging career. - Promising experience in business analysis and customer support. - Identify problems/needs and initiate effective solutions. - Ability to employ highest levels of customer service and client retention and can work under pressure. - Ability to handle multiple functions and activities in a high pressure environment and rigorous deadlines. - Highly articulate, demonstrating excellent interpersonal skills across all levels including management. Genuine team player; committed to organisational success. - Build effective personal relationships and networks within the business which contributed to achieving organizational and team success. - Proficient in Software Documentation and Business user training. - Ability to drive ERP support cycle as per standard methodologies.

Enabling multi-legal entity selection on ‘All Project’ list page to view details of projects across multiple legal entities in MS DAX365 for Operations (AX7)

Hi everyone, I have been exploring new features introduced in Microsoft Dynamics 365 for Operations and getting familiar with the look and feel of new UI. Today, I came across another comprehensive and wonderful feature within project accounting and management module.

In Microsoft Dynamics 365 for Operations, a new feature is introduced where a user can select multiple legal entities, where he/she can mark more than one legal entities to get the list of projects details based on whichever legal entities are selected (was not feasible in previous standard versions of AX)


Question 1: How is it possible?
Answer: This requires a less amount of effort to achieve this particular objective.

Question 2: How we will do it?
Answer: I will take you to the examples to understand it completely.

Let me clear the doubts on how it is possible and how we will achieve it.

Navigate to: Organization administration > Organizations > Organization hierarchies.

  • Click New to add a new hierarchy i.e. Contoso Consulting Head-office (USA)
  • Click on Assign purpose, the form will redirect you to the Organization hierarchy purpose
    Note: This is an out of the box form where purposes for every modules are pre-configured and they are all standard as well as non-customizable purposes.
  • Select Project management hierarchy purpose and click on Add under assigned hierarchies’ grid and assign an organization hierarchy i.e. Contoso Consulting Head-office (USA)
  • Click Set as default to make it a default hierarchy
  • Click on View hierarchy to not only view the hierarchy but to design it
  • Click on Edit and then on Insert to add legal entity i.e. USSI and then click on Insert again to add other legal entities to be added within this hierarchy
  • For instance, I am currently logged into USSI legal entity, I consider to declare USSI (USA) legal entity as my Head-office and I will add other legal entities such as JPMF (Japan), DEMF (Germany), MXMF (Mexico), SAMF (Saudi Arabia), MYMF (Malaysia) and RUMF (Russia)


  • Once the hierarchy is designed, Save the record and click on Publish, provide effective date and publish the hierarchy.

    Note: This selection will enable a hierarchy view of all these specified legal entities within the legal entity drop dialogue on the ‘All project’ list page i.e. legal entities such as JPMF, DEFM, MXMF, SAMF, MYMF and RUMF meaning that the details of projects from of all these legal entities can be viewed at the same time without the hassle of changing legal entities again and again.



Consignment inventory represents a common practice in many industries specifically in Retail industry but has been adopted by number of manufacturing companies.

Consignment inventory refers to the stock that is owned by a Vendor but stored at your company’s Inventory dimension e.g. Site, warehouse, location, Aisle and then the payment of such inventory takes place when the inventory ownership is shifted to the company.

The concept of the vendor consigned inventory has been newly introduced in DAX365;

Before we start exploring this functionality and do some transactions, we will start with the mandatory setups that are required to perform such transactions.

Mandatory Setup

  • Creation of Inventory owner (Create the record for the inventory owner i.e. provide legal entity name who is supposed to take the ownership of the inventory and list down the vendors who you declare to be responsible for consigned inventory)
    Navigate to : Inventory management > Setup > Inventory owner

  • Configure Tracking dimension group and activating owner dimension.
    Note: In current AX version, the owner cannot be activated along with batch and serial tracking, a customization may be required if an inventory item is associated with batch and serial number)
    Navigate to: Product and information management > Setup > Dimension and variant groups > Tracking dimension group

  • Configure Inventory model group _ only standard cost and moving average inventory models are supported, so only the released products associated with such models can be used in such transactions.
    Navigate to: Inventory management > Setup > Inventory > Item model group 
  • Configure Inventory ownership change journal
    Navigate to: Inventory management > Setup > Journal names > Inventory

  • Configuring consignment warehouse separately (the logic of having different warehouse is to differentiate consignment inventory and to better manage the stock)
    Navigate to: Inventory management > Setup > Inventory breakdown > Warehouses

    (Note : Do not consider to provide vendor account while configuring warehouse as it has nothing to do with consignment warehouse, this vendor account insertion is for Sub-contract production process in which user specify where they need to deliver to subcontracts vendors so it is used for default warehouse delivery address)

Step by Step process 

  • Create Inventory owner i.e. enter vendor 1006 and create a record for USRT _ Why we do this? Because we need to create a link between our vendor and the owner inventory dimension.
  • Create tracking dimension group for type Owner.
  • Setup/configure Item model group (if there isn’t any existing one for Standard or moving average)
  • Use an existing product that is associated with inventory model of type standard cost/moving average or create a new released product and associate it with inventory model of type standard cost/moving average.

Note: If released product belongs to standard cost inventory model, you must                     activate a purchase and cost price for the site that will later be used for storing                   consignment inventory.

  • Configure a consignment warehouse and associate with the site that is supposed to be used for consignment inventory.
  • Configure journal name for Inventory ownership change and associate a voucher series to it.
  • To create consignment inventory transaction.
    Navigate to: to Procurement and sourcing > Consignment > Consignment replenishment orders.

  1. Create new consignment replenishment order by clicking New > select Vendor i.e. 1006 (the one we configured within inventory owner)
  2. Add line, select the Product i.e. CoProd-01, enter the QTY, enter Requested delivery date and enter the warehouse i.e. CONSWAR (or the consignment warehouse)
  3. Click Generate product receipt to physically update the consignment inventory.
  4. The Order status will be change to Completed.
  5. Visit the inventory transaction to see the impact of this consignment replenishment order.
  6. If the ownership is required to be shifted to the legal entity meaning that the current legal entity would like to take the ownership of the inventory, go to Inventory management > Journal entries > Items > Inventory ownership change or go to Procurement and sourcing > Consignment > Inventory ownership change to do so.

    1- Click New to create new Journal.
    2- In the line details> click New to create a record for the item i.e. CoProd-01, enter       the QTY (if the entire QTY needs to be shifted one can enter it but if user wants to     split the QTY it can be achieved as well).
    3- Change the warehouse to CONSWAR.
    4- Click Post to post the journal.
    5- Visit the inventory transaction to see the impacts
    Note: One can notice that a purchase order has been created and the physical inventory has been updated i.e. Receipt status = Received. At this point, the ownership of the inventory is changed from Vendor 1006 to USRT (legal entity) and Invoice now can be raised to create liability, as soon as the order is invoiced inventory status will also be updated i.e Receipt status will be = Purchased.
    Moreover, as a reference, the PO header will reflect the Origin of the PO as Consginment.


AX 2012, SSRS error: There was an error while trying to deserialize parameter

There was an issue we came across today where the users were not able to run any report on AX client and were getting the below error;

“The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter The InnerException message was ‘Element ‘’ contains data from a type that maps to the name ‘’. The deserializer has no knowledge of any type that maps to this name. Consider using a DataContractResolver or add the type corresponding to ‘SRSQueryBuilderArgs’ to the list of known types – for example, by using the KnownTypeAttribute attribute or by adding it to the list of known types passed to DataContractSerializer.’. Please see InnerException for more details”.

 This happens quite frequently when AOS serving the reporting server crashes, or someone restart the AOS server without ending client user sessions.


To overcome this problem and to make things straight, kindly follow the below steps;

  1. Manually end client’s session,  AX> System Admin > Users> Online user> End session.
  2. Stop AOS.
  3. Open SQL, Select the record from SysClientSessions, take the backup of the records just to be on a safe side.
  4. Delete all the records from SysClientSessions table from the databse.
  5. Restart SSRS services
  6. Start AOS

This should resolve your problem.. 🙂

How do you activate a registration worker in AX 2012?

I came across an issue today and I thought why not just share the resolution here publicly so others can also be benefited .

Summary :“I was maintaining a route version where I changed the resource on one route operation and added a new one, I then saved the line and clicked “Approve” as version needs to be approved before we activate it, though I got an Info-log indicating “01660 is not a registration worker or is not active”.



  • Go to Human Resource Module in AX
  • Navigate to Common > Workers > Workers

  • On the list page, apply a filter ALT+G and paste the personnel number i.e. 01660 under Personnel number column in the table.Note: Personnel number is a unique number and will be different in your case.
  • Once the record is found, click on Employment History button.
  • Create employment for the legal entity in which you are trying to approve the BOM.
  • Once the employment history is created, system will register the worker within that legal entity and it will not restrict user to “Approve” a BOM version.

Expected Results:

Problem will be solved, BOM version will be Approved and Activated


Procurement & Sourcing & Accounts Payable_AX 2012- “Differentiation”.

Before I start, I would like to express that my thirst of learning AX its newly added modules, features and functionalities  is not over. A concern raised in my mind during R&D, I thought it might also be a concern that arises in every second mind who is new to MS Dynamics AX 2012 that;

“What was/is the need of having this module Procurement and sourcing when we already had Accounts Payable module, and the module was not the part of the previous versions but Accounts Payable module is  there in AX 6 and AX 5 already”.

Answer to the question is:

Apparently, Procurement and Accounts Payable seems responsible for the same Procure to Pay (P2P) process, but the major difference to be highlighted is that they both came from two different business domains (One is more operational (procure) while other is more financial (payable)). E.g. in a normal business practice within the organization at the core level, the “Procurement” department buy the goods and services for the organization while “Accounts payable” department pays for the goods which are procured.

Although, it may seem like “Procurement” and “AP” are two cooperate bodies with two separate hearts, they share the same body, pump the same blood but to understand with a better example. “Procurement” negotiate and ink the contracts with the suppliers (vendors), it is then about managing those contracts ensuring that procurement staff is buying against those contracts and delivering the promised value but after the “Procurement” effort, it is “Accounts Payable” responsibility to settle vendors/suppliers outstanding bills/payment/Invoice.

Therefore, Procure to Pay is like Procurement and sourcing module specifically designed to “Procure” and Accounts Payable module is to “Pay” against those procured goods.

In order to conclude my post, in P2P process both modules are made to represent a detailed process of:

  • Vendor Management.
  • Purchasing Quotations.
  • Purchase Requisitions.
  • Purchase order processing.
  • Invoicing.
  • Vendor Payments.
  • Printing Checks.

but are added separately with two different names for different operations to be carried and are integrated to achieve goals at enterprise level.


Hope it will clear many doubts …!!

Delivery Date is different on Planned order compared to the one entered manually at time of creation..

Working for AX Implementation Support Team gives you a chance to get yourself familiar with different functionalities, features and their existence and usage.

Today, my user reported me an issue where he was puzzled by Dynamics AX behavior as AX kept on changing the planned purchase order and planned production creation date automatically from the date he was entering manually against the orders at time of their creation.


  • Delivery Date was changing automatically while creating planned purchase order.(i.e, I manually entered delivery date as 10/21/2015 at time of creation but system changed it to 11/10/2015) .


I analyzed the structure and here are the findings of this automatic date changing on planned production order:

  • The planned order was manually created, user entered the delivery date manually, So I did the same while testing.
  • At this point, system checks the feasibility whether the product can be produced within the desired date and then it picks the delivery date based on the calculated estimation.
  • In client’s environment, users uses routes in the production, these routes’ operations are tagged with resources, where the resource type is machine in most of the cases.
  • Resource had finite capacity and cannot be overbooked.
  • Resources were only be available for working/production on a slot which is a working day.
  • Hence, when a resource is fully booked even If a user enter a delivery date manually, system will always going to check the resource availability and going to decide the delivery date based on availability, (that is how the standard system behaves) In my case when I was entering the delivery date as 10/10/2015, system was changing the delivery date to 11/10/2015 because the resource was fully booked/reserved and the next available working day was 11/10/2015.

Example :

  •  I had Item “XYZ”
  • I was creating a planned order with a type “production”
  • The Item was associated with a route, the route active version was “ABC”
  • The route’s operation is tagged with one resource “PQR”
  • The resource’s capacity was set as “finite”
  • In order to check the resource availability, I clicked on the capacity load button.
  • A list page opened, that gave me a picture on the availability of the resource.
    (Note: Under this form, system indicated me that October was fully booked, and even in November the next available day for a resource for working was 11/10/2015 ).
  • In order to confirm this, I picked a resource “MNO “ that had no reservations and was fully available, I updated the route version and change the resource on route operation from “PQR” to “MNO”.
  • I then created some planned orders for the month of October as this resource availability was there for dates I was creating these planned order on.
  • System allowed me to enter my manually entered date.

Hence, this delivery date is not something that gets changed automatically, it is the way we setup resources that force this change.


The problem encountered against the planned purchase order, where system was changing the delivery date automatically from the date that I entered manually at time of creating planned purchase order from Master plan.

Here, I analyzed that client had active purchase agreements for almost every single item. Therefore, while testing this reported anomaly, I realized that my item also had an active purchase agreement and the lead time was defined on that agreement.

Furthermore, master planning parameter was also activated against the planned orders where it allows system to find trade agreements and the search criteria was set “Lowest Unit Price” .

The lead time defined on the purchase agreement was 14 days (working days).

So, when I was creating the planned purchase order it is picking the delivery date based on the lead time specified in the agreement.


  • I entered the delivery date as 10/21/2015 but system changed it to 11/10/2015.
  • As per configured calendar, the 14th working day was 11/10/2015 (lead time applied), which system picked up correctly as the delivery date.

Hope this detailed explanation would be useful for new ones just like me to explore Production and Master planning module in AX.

Substitute Variance in Production Order _ Standard MS Dynamics AX 2012

The common sources for a production-substitution variance includes the following:

  • Issue a material component that is not in the production BOM.
  • Add a component manually to the production BOM, and report it as consumed.
  • Add an operation manually to the production route, and report it as consumed.
  • Select a different BOM version when you are creating the production order, where the BOM version differs from the one that is used in the standard cost calculation.

These causes have been identified and highlighted by Microsoft, plus the information is also available on Tech Net. However, I have more findings on Substitute variance that cause this kind of variance and how it is different from Quantity variance.

A simple understanding on this variance is

Substitute variance will surely occur if there is a change in process adopted

If you save it in your mind, you will never be puzzled as why this variance is coming along while ending your production order.

People get confused between Quantity  variance and Substitute variance, How;

If someone changes the QTY on the picking list journal , post it manually, production order will end up having Quantity variance but if you are posting a route card journal manually and you change the number of hours on any operation from the estimated time then this will draw a Substitute variance on your production order.

Confusion starts here and the first question comes in your mind is that,

I am changing QTY which are also some values on picking list journal causing me a Quantity variance while on the other hand, I am doing same sort of stuff where I am changing the number of hours on my defined operations and it is causing “Substitute variance” .

Although, I am not changing or removing any operation but just changing process time slightly, so why system is not considering this  as Quantity variance”. 

In Standard AX 2012, how System is checking Substitute variance: 

  • At time of posting the route card journal, system will check as what processes are required to produce a finished good, system will check what operations are performed and how many hours a resource (machine/worker) will work on that particular operation to get that work done.  At this level,  system is doing a comparison between estimate and actual posting of the route transaction. If system finds any differences, then it will post these differences into Substitute variance.(Note: Estimates are the number of hours you defined against each operation with your route) 

Hence, the change in Hours or addition of hours or addition of new operation will always be considered as a process change by the system (that is how system considering the change) and for this vary reason it will drag this type of changes in Substitute variance.

Below is the standard script by Microsoft that is calculating different type of variances, where the highlighted lines are related to our scenario:


Hope that this builds up the logic behind the calculation of Substitute variance on a production order in AX 2012. 

Error while posting FTI (Free Text Invoice) in Dynamics AX 2012 : “Account Number for Transaction Type Customer Balance Does not Exist”.

If you have recently configured your Dynamics AX and about to process some transactions that will use your defined ledgers then it is recommended that you configure your Accounts structure and add to your Ledger before you post anything, else you would end up with an info log indicating:


Today, I was stuck in the same problem where I was trying to post a customer Free Text Invoice (FTI), and I received this error while posting it. I checked my posting profile and all other configuration in AR module but I couldn’t find any missing setup there. However, based on little more digging, I found that my account structure wasn’t configured neither activated nor added to my ledger, below is some more detail on how I fixed it.


Configure your accounting structure, Go to
General Ledger > Setup > Chart of accounts > Account Structure.

(Note: Make sure once you are done configuring your account structure, it is activated as well).

When your account structure is configured and activated, Go to General Ledger > Setup > Ledger > click Add button to add your activated Account structure.
(only the active account structures will be displayed under the drop down menu) 


This configuration has resolved my problem, hope it will resolve the problem of others too  🙂


Financial Dimension Error when ending a Production order that posses QTY variance and Purchase Variance _ Dynamics AX 2012 R3

It was little annoying last night when we stuck in one problem which from the picture, wasn’t looking as complex as we expected.

I decided to write a post to create some awareness among those who are new to production module just like me, to not only build some understanding on this problem but to make habit of sharing experiences 🙂

In one of our client’s Live environment:

  • I created a Production order.
  • Estimated the task.
  • Scheduled operations.
  • Started the production order but unchecked the check boxes of picking list journal and route journal to be posted automatically.
  • Changed the QTY on the picking list that created the QTY variance and adjust the price that created the price variance.
  • I posted picking list and route card journal manually.
  • RAF the production order.

At time of ending the production order, I received an error stating;


  • When checking the General ledger setup, I came to know that we have an account structure with an advance rule where we have set all the financial dimension fields mandatory, plus we have a combination activated where system will always check “specified” Business Units against “specified” Markets.

  • During the code analysis, I found that when a production order has a price/QTY variance, system picks the financial dimension from the costing sheet.

In my scenario, the CalcType against which I was getting the error message were of type “rate” and these rate type resources were defined in my costing sheet.
Inventory Management > Setup > Conversion > Costing Sheet.

(Here under this navigation, I found out that the highlighted 5 resources were missing the Business unit and Market which are compulsory as per the way advance rule is setup).

Note: It is AX default behavior where it is taking the financial dimensions from the costing sheet and merging them to the production, so when there is no business unit and market, system failed to merge anything at this stage unless you have fixed accounts defined against the posting ledgers. 

Hence, after confirming the code behavior, I provided the financial dimensions in these highlighted resources, Validated the costing sheet and Saved it

Ended the production order which got ended without any error messages.

MS Dynamics AX 2012: Stopped (error): X++ Exception: The text associated with this work item cannot be found in the assignee’s language..

While configuring a procurement workflow in MS dynamics AX 2012 for one of my client, I encountered with one workflow “stopped” error that happens rarely and not many get to know as how it happened and what is actually missing.

The error says:

“Stopped (error): X++ Exception: The text associated with this work item cannot be found in the assignee’s language, or in the default language for the system or legal entity. The workflow has stopped processing because of this error. Contact your system administrator for assistance.
at SysWorkflowWorkItem-createSysWorkflowWorkItem-createWorkItemsSysWorkflow-saveSysWorkflowQueue-resume..”


The problem occurs when the language translation for all the configured workflow steps are not specified.


In order to fix this issue:

1- Recall the workflow.
2- Go to the activated version of the workflow and Edit it.
3- Make sure that your workflow configuration have translations in the languages that your users are using as their default languages.


4- Activate the version after making all necessary amendments (updating translations).

5- Resubmit the workflow for the approval.

The problem should be resolved by following the above mentioned steps.

Happy DAXing…!!