Budget line match priority

Important

Dynamics 365 Finance has evolved into purpose-built applications to help you manage specific business functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Applies to: Lite deployment - deal to proforma invoicing.

Budget line match priority defines the order in which an actual is matched against the different dimensions of budget lines.

As part of the solution update that includes project budgeting, the Budget line match priority table is created in the solution.

You enable the project cost budget feature by using a feature flag. For more information, see Enable the project cost budget feature.

Note

After the project budget feature is enabled in an organization, it can't be disabled. However, you don't have to create a budget for every project.

After the feature flag is enabled, the Budget match priorities tab should appear on the project parameters main page. This tab shows the following default rows that are applicable for the Time, Expense, and Material transaction classes in the context of a class.

Field name Applicable transaction class Context Budget match priority
msdyn_unitschedule Expense Cost 0
msdyn_transactioncategory Expense Cost 1
msdyn_task Expense Cost 2
msdyn_costtype Expense Cost 3
msdyn_accountvendor Expense Cost 4
msdyn_unitschedule Material Cost 0
msdyn_product Material Cost 1
msdyn_writeinproductdescription Material Cost 2
msdyn_task Material Cost 3
msdyn_costtype Material Cost 4
msdyn_accountvendor Material Cost 5
msdyn_unitschedule Time Cost 0
msdyn_resourcecategory Time Cost 1
msdyn_resourceorganizationalunitid Time Cost 2
msdyn_bookableresource Time Cost 3
msdyn_task Time Cost 4
msdyn_costtype Time Cost 5
msdyn_accountvendor Time Cost 6

Note

msydn_unitschedule with the display name Unit Group, is a match priority which cannot be updated or deleted. This match priority ensures that the unit match and conversion happens in a right way.

How does budget match priority work?

Time entry, expense entry, or material use is submitted against a project for approval. After it's approved, it's considered an approved actual that's used in project cost budgeting calculations.

Actuals have dimensions that define an actual. Here are some examples:

  • The task that the actual is created against
  • The role of the resource that's submitting the time entry
  • The name of the material that's used
  • A flight expense that's billed against a project
  • A time entry from a subcontractor that's approved by a project manager

When actuals are posted against a project, they must be mapped to the correct budget lines. This mapping is done by matching the dimensions of incoming actuals with the dimensions of all budget lines in the cost budget. An actual is matched to the budget line that matches most of its dimensions.

During matching, the order that the matching algorithm works in is defined by the Budget line match priority table.

Priority 1 is the highest priority for dimensions of a transaction class. The algorithm tries to match all dimensions of an actual against all budget lines.

If no match is found, and no error is encountered, the matching algorithm avoids the lowest-priority dimension, according to the Budget line match priority table, and tries to match again. This process continues until either a match is found or an error is encountered. If more than one budget line matches an actual, this situation is also considered an error.

Example

This example shows how the process works for an expense that's posted against a project. The following table shows the priority order in which the actual is matched for an expense if the default budget match priority is used.

Field name Applicable transaction class Context Budget match priority
msdyn_transactioncategory Expense Cost 1
msdyn_task Expense Cost 2
msdyn_costtype Expense Cost 3
msdyn_accountvendor Expense Cost 4

The actual expense is matched to the budget line where the largest number of dimensions is matched.

  1. The matching algorithm tries to match a budget line where msdyn_transactioncategory, msdyn_task, msdyn_costtype, and msdyn_accountvendor are defined.
  2. If there's no match, the lowest-priority dimension, msdyn_accountvendor, is avoided in the next attempt to match against a budget line.
  3. If there still is no match, the next-lowest-priority dimension, msdyn_costtype, is avoided in the next attempt to match against a budget line.
  4. The process continues until a unique budget line is matched or an error is encountered.

Microsoft