Budget line match priority
Applies To: Project Operations for resource/non-stocked based scenarios, 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 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_task | Expense | Cost | 10 |
msdyn_transactioncategory | Expense | Cost | 20 |
msdyn_costtype | Expense | Cost | 30 |
msdyn_accountvendor | Expense | Cost | 40 |
msdyn_unitschedule | Material | Cost | 0 |
msdyn_task | Material | Cost | 10 |
msdyn_product | Material | Cost | 20 |
msdyn_writeinproductdescription | Material | Cost | 30 |
msdyn_costtype | Material | Cost | 40 |
msdyn_accountvendor | Material | Cost | 50 |
msdyn_unitschedule | Time | Cost | 0 |
msdyn_task | Time | Cost | 10 |
msdyn_resourcecategory | Time | Cost | 20 |
msdyn_resourceorganizationalunitid | Time | Cost | 30 |
msdyn_bookableresource | Time | Cost | 40 |
msdyn_costtype | Time | Cost | 50 |
msdyn_accountvendor | Time | Cost | 60 |
msdyn_unitschedule | Expense | Sales | 0 |
msdyn_task | Expense | Sales | 10 |
msdyn_transactioncategory | Expense | Sales | 20 |
msdyn_unitschedule | Material | Sales | 0 |
msdyn_task | Material | Sales | 10 |
msdyn_product | Material | Sales | 20 |
msdyn_writeinproductdescription | Material | Sales | 30 |
msdyn_unitschedule | Time | Sales | 0 |
msdyn_task | Time | Sales | 10 |
msdyn_resourcecategory | Time | Sales | 20 |
msdyn_resourceorganizationalunitid | Time | Sales | 30 |
msdyn_bookableresource | Time | Sales | 40 |
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 and sales 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 skips the lowest-priority dimension, according to the budget line match priority table, and attempts another match. This process is repeated until a match is found or an error occurs. If multiple budget lines match an actual, this situation is 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.
- The matching algorithm tries to match a budget line where msdyn_transactioncategory, msdyn_task, msdyn_costtype, and msdyn_accountvendor are defined.
- If there's no match, the lowest-priority dimension, msdyn_accountvendor, is avoided in the next attempt to match against a budget line.
- 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.
- The process continues until a unique budget line is matched or an error is encountered.