Showing posts with label Dynamics 365 FinOps. Show all posts
Showing posts with label Dynamics 365 FinOps. Show all posts

Wednesday, January 30, 2019

Project budgets and cost control in Dynamics 365 FinOps - IMP Parameters (Quick post)

Project budget control in Dynamics 365 FinOps is widely used for cost control (and can be used for revenue control, if the project is a capped T&M kind of a project). However, I am going to write about some of the typical parameters which I feel are important for a consultant to know while discussing this feature with the client.

Budget control parameters
Independent budgeting for sub-projects
  • If YES, the user can create a fresh budget for a sub-project
  • If NO, the user needs to create a budget revision to create a budget for sub-project
Allow budgeting control outside the project hierarchy
  • If YES, the user can associate this project to a project budget of some another project outside of the current project hierarchy, where a budget is defined. When this value is YES in the project parameters, then on the project record, if the user turns the 'Use alternate project budget for budget verification', the 'Alternate project' drop down will display those projects in the system on which project budget is defined.
Associating the project budget to a project budget of some other project
  • If NO, the user even if the ‘Use alternate project budget for budget’ on the project record is set to YES, the ‘Alternate project’ drop down will display nothing.
Budget control interval
  • This is like telling the system at what point in time do you wish the budget control action to kick in. Do you wish to kick in the control mechanism when the ‘Total budget’ is hit or ‘Project to date’ is hit or  ‘Current period’ is hit or any other value etc.
  • The value selected on the parameters is copied over to the new project. This value can be overridden on the project. If the value of this parameter on the project is other than 'Total budget', then it works in conjunction with the 'Allocate amount' feature, which is available while creating the budget.
  • 'Allocate amount' feature should be used before the budget is submitted for approval. This feature is not available after the budget is approved. (Readers - Please let me know if there is any other way to allocate the amount after the budget is approved.)
Allocate budget feature not available after budget approval


Thanks
Sarang Kusare


Monday, November 5, 2018

Open in Excel v/s Export to Excel

Open in Excel v/s Export to Excel

This is a short post explaining the subtle difference between 'Open in Excel' and 'Export in excel feature' in Dynamics 365 FinOps.

Open in excel

When the 'Open in Excel' option is clicked on the data grid in Dynamics 365 FinOps, then the system opens the DYNAMIC excel sheet using 'Data connector'. That DYNAMIC excel sheet is nothing but the 'Data entity' holding that data. The sheet is dynamic because if the user creates a new record in the excel sheet and hit 'Publish', then the new record is created in the system and stored in the database. Similarly, if the user edits/deletes any record in the excel sheet and publishes the sheet, then the grid is updated accordingly.

Open in Excel


Data entity file created


Data connector

Export to excel

When the 'Export to Excel' option is clicked on the data grid in Dynamics 365 FinOps, then the system downloads the STATIC excel sheet with the data from the data grid on the screen. It is just a copy of the data and has no impact on the actual data in the system if records are created, edited or deleted in the excel sheet.

Export to Excel
Static excel sheet with downloaded data

Hope the difference is clear now.

Thanks

Kind Regards
Sarang

Monday, September 17, 2018

Quick post : Split the On-account invoice transaction for Credit note

When the project invoice includes just one on-transaction, then system does not allow the user to split that single transaction during the credit note.

Single on-account transaction cannot be split during credit note 

However when the project invoice involves multiple on-account transactions from the same and / or multiple projects / sub-projects, then the user can split the credit note and just process the credit note for the desired on-account transactions.

Multiple on-account transaction on the same invoice can be split during credit note
If the invoice proposal is run again, then only the one selected for credit note appears in the 'Create invoice proposal'.

On-account transaction selected for credit note
Once the credit note is posted, the transaction status for the selected on-account transaction changes to 'Chargeable'.

Status changed to 'Chargeable'
Thanks
Sarang Kusare

Friday, September 14, 2018

Calculation Method and Balancing Fee Journal

There are three calculation methods when it comes to fixed price projects, they are:


  1. None
  2. Markup percent total
  3. Markup percent estimate line

This post is not about describing what each of the calculation method does but this post is the super summary of when does the system create the balancing fee journal and when it does not. This post is for the advanced users of revenue recognition functionality. It is assumed that the readers of this post are aware of all the three methods and how they behave. This is a small post to just present the gist in a table format with respect to the creation of balancing fee journal for all three calculation methods.

Calculation method and Balancing fee journal

System behavior is different when the: 
  • dimensions are NOT present on the project and hours transactions and  
  • dimensions on the project and hours transactions are different
No dimensions on the project and hours transactions

Contract value - 100,000

On account transaction
Hours forecast - 146

Hours forecast
No dimensions on the project

No dimensions on project
Contract value distributed during the estimate

Contract value distribution among cost lines

Cost posted for all the three cost lines are 1,800, 1,200 and 3,600, which is equal to 6,600. Based on the contract value distribution, the revenue recognized should be 30,000. [((1,800 / 3,600) *20,000) + ((1,200 / 3,600) *30,000)) + ((3,600 / 18,000) *50,000))]

System suggested percent complete

System suggested percent complete

Actual hours v/s Hours forecast

But system suggested percent complete is 27.40 [((Total posted hours / Total hours forecast in Qty)*100), which is (40/146)*100 = 27.40] hence the accrued revenue value would be 27,400. Hence the balancing fee journal should be approximately 2,600. Completion is based on 'Quantity' in the cost template.

When the estimate is posted, following is the voucher posted:

One voucher for accrued revenue
And the posted transactions are as below, which shows the actual 30,000 accrued revenue and the balancing fee transaction of approximately 2,600. However strange enough there is no voucher for that balancing transaction.

Balancing fee transaction 

Dimensions on the project and hours transaction are different

I repeated the above example with the same values, but this time with the dimensions on the project and hours transaction. However the 'Department' dimension  on the project is 22, and on all the three hours transactions are 23, 24 and 25 respectively.

With all the steps same as above, when the estimate was created, the system showed a percent complete of 27.40. I manually changed to 25 to see the impact on the posting.

Percent complete changed from automatic to manual

The voucher that was posted was expected to have a balancing fee transaction of 5000, with the dimensions from the project.

Balancing fee transaction

Posted transaction was as below:

Posted transactions
However in this case the voucher was posted for the balancing fee transaction.

Hopefully this post has helped you get more insight into the revenue recognition and generation of balancing fee transaction.

Kind Regards
Sarang Kusare

Thursday, August 16, 2018

Workflow not kicking in - Try this (Functional Debug)

Many times there is a situation where the workflow does not kick in, no matter what. It does not give any error but it does not progress either. In such situations, a functional person can do the following debug steps before going to a a technical consultant. Most of the times this should resolve the issue, if it doesn't then definitely it needs to be looked into by a technical consultant.

Navigate to System administration > Workflow >  Workflow infrastructure configuration

Navigation for 'Workflow infrastructure configuration'


Workflow infrastructure configuration
Check the ‘Batch group’ and verify that it is specified and it is the one which is defined in the 'Batch group'. Next navigate to System administration > Setup > Batch group

Navigation to 'Batch group'

Batch group
Click on the 'WF' batch group and click on 'Batch servers'. In this environment the workflow batch group is named 'WF'. It can be different for you. Once you clock on the batch servers, make sure that the desired server is in the 'Selected servers' and if it is not then select it from the 'Remaining servers' and push it to 'Selected servers'. The thumb rule is (which might not be the case with all) name of the desired server is mostly same as the name of environment and can be found in the URL of the environment. See the screenshot below.

Selected servers and name in the URL
Next navigate to System administration > Setup > Server configuration

Navigation to Server configuration
Make sure that the server selected above in the 'Selected servers' above, has a record created.

Server configuration
Next navigate to System administration > Inquiries > Batch jobs

Navigation to Batch jobs
Search for the workflow batches by typing in the 'work' in the filter for 'Job description'

Batch jobs
Make sure that the status of the jobs is 'Waiting'.

Batch jobs status - Waiting
If you wish to alter the status of the batch jobs, multi-select the workflow batch jobs and click on the 'Change status' option in the 'Batch job' group in the 'Action pane'.

Change status of batch jobs
Change it either to 'Withhold'  or 'Cancelling' and then change it back to 'Waiting' again. This should hopefully solve the issue.

Select new status for workflow batch jobs
If not, then delete the batch jobs and create the new batch jobs again by configuring the 'Batch group' in the 'Workflow infrastructure configuration', which would auto create these three workflow batch jobs.

All the steps mentioned above should hopefully resolve the workflow issue and if not, then this it is time to consult the technical consultant. Hope this helps.

Latest: 22nd Jan 20205

Please make sure that these batch jobs status are changed to "Waiting".




Thanks
Sarang

Friday, August 10, 2018

Sales price on a project PO - When is it editable / non-editable ??

Reinventing the wheel is always frustrating and royal waste of time. To avoid that, i am writing this post. This is nothing big but just a small note so that it becomes permanent in my memory and i need NOT spend time on it in future if it crosses my path again.

Sales price field on the project tab in the project PO behaves differently based on whether it is for item or procurement category and whether cost is to be consumed on the project at the time of receipt or not. We are going to discuss all of these scenarios in detail below.

Sales price field on the project PO - Items

Without the consumption of cost on project at the time of receipt

When there is no requirement to have cost absorbed on the project at the time of PO product receipt, then the Sales price field on the project PO is editable and user can edit it. The sale price field will pre-populate sales price value if it is already set on the item record (in the Sales tab, Base price) and user will have the ability to change it.

The project parameter for cost not to be consumed on the project is as below:

Cost not to be consumed on project at product receipt

Sales price setup on the product on sales tab.

Base sales price 

With this setting, the user is able to edit the sales price on the project PO.

Sales price field is editable on a PO
As stated earlier the price is pulled from the base sales price but user can edit this. This value will be charged to customer when the project invoice is raised for this cost (PO).

With consumption of cost on project at the time of receipt

When there is a requirement to have cost absorbed on the project at the time of PO product receipt, the following parameters needs to be switched on.

Project purchase order setting for absorbing cost on project
However when these parameters are switched on, the system creates a SO of type 'Item requirement' in the background when the project PO is created. On this PO, the Sales price field for the item is 0 and not editable.

Sales price field is 0 and not editable

Sales price in this case is stamped on the auto created Sales order of type 'Item requirement' and also on the associated 'Item requirement' record, which can be updated. This is price which would then be used when the project invoice is raised for this cost (PO).

Sales price updated on the Item requirement record is reflected on the Sales order record and vice versa.

Sales price on the Item requirement record.



Sales price on the Sales order line

This value will be charged to customer when the project invoice is raised for this cost (PO).


Sales price field on the project PO - Procurement category

With 'Set the cost price as the sales price by default' parameter switched off

When the project PO is created for a procurement category, then if the the below parameter is switched off, then the sales price is not editable and the sales price is pulled from the sales price setup done for the attached project category.

Set the cost price as the sales price by default - OFF

Sales price on the project PO with procurement category is not editable and the price is pulled from the sales price setup for the category in the projects module.

Sales price is not editable

Sales price pulled from the project sales price setup. This category is linked to the procurement category in the PO line.

Sales price setup in projects module.

If no price is setup then sales price would be 0.

**Cost consumption on the project can only be done for the stocked items, hence if procurement categories are used on the project PO, cost can ONLY be consumed on the project after the PO invoice**

With 'Set the cost price as the sales price by default' parameter switched on

When the project PO is created for a procurement category, then if the the below parameter is switched on, then the sales price is not editable but the sales price is equal to the cost price.

Sales price is not editable but same as cost price
Ideally in this option, sales price should have been editable. I mean system should propose the sales price equal to cost price but the sales price field should have been editable for the user to edit / change. Is this possible in standard? Can anyone shed some light?

Other than this question, now i am comfortable with the 'Sales price edit / no -edit' issue on a project PO for item and procurement category. I hope you all to.

Thanks

Kind Regards
Sarang


Monday, August 6, 2018

Revenue Recognition - Jumping months in Straight Line Rev Rec.

In my recent project i had to work a lot on the straight line rev rec functionality in detail and had to test many different scenarios. This gave me more insight into what is system capable of doing and what the system is not capable of doing with respect to recognizing revenue in a straight line scenario.

Straight line revenue recognition will always recognize revenue (approx.) equal revenue per month if the estimation is done each month. However there are many scenarios which needs to be thought into, like:


  • What happens if the user forgets to estimate the first month and directly runs the estimation in the second or the third month (for e.g. - Actual start date : 1st Jan 2018 and Actual end date : 31st Dec 2018 and estimation posted for directly for March 2018) or 
  • What happens if the user jump months suddenly in between and runs the estimation for a month missing a few ones in between (for e.g. - Actual start date : 1st Jan 2018 and Actual end date : 31st Dec 2018 and estimation posted for sequentially from Jan 2018 till March 2018 and then user forgets the estimation for April 2018 and May 2018 and then runs estimation for June 2018 directly)

Lets see below how the system reacts to the above two scenarios.

Estimation directly for any month other than the first month

In the example below, the 'Actual start date' and 'Actual end date' is 1st Jan 2018 and 31st Dec 2018 respectively.

Actual start and end date
No estimates are posted for Jan 2018 and Feb 2018 and directly user is trying to post estimate for March 2018.

Estimation for March 2018
System creates the estimate for March directly, with the correct percentage to recognize till March 2018.

Revenue recognized till date = (12000 / 365) * 90 = 2958.90
Percentage complete = (2958.90 / 12000) *100 = 24.66

Revenue value and percentage for March 2018
System allows the user to estimate directly for any other month for the first estimate, the way it allowed for in the above example. But are we allowed to skip months in between after the first estimate, lets see in the next section below.

Skipping few months in between and then estimating  

In the example below, the 'Actual start date' and 'Actual end date' is 1st Jan 2018 and 31st Dec 2018 respectively.

Actual start and end date
Estimation done and posted successfully for first three months .i.e. for Jan, Feb and March.

Estimation for Jan, Feb and March
Now if i try to create an estimate for June 2018;

Estimation for June 2018 NOT CREATED

Ideally it is expected that system should either calculate the estimate OR if not possible system should display an error message. But system does nothing other than closing the 'Create estimate' screen. This means that system does not allow the user to skip months and then estimate for some other month without estimating the missing months.
Though this is correct from a business perspective but system should have displayed an error message instead of just displaying nothing and doing nothing. 

So in a scenario if the user has forgotten to estimate for some months and now is trying to estimate for the current month, system expects the user to first complete the previous estimations before running the estimate for the current month.

Estimation for June 2018 CREATED
So in conclusion:

  • if the user has started his estimation from the first month, he/she is not permitted to skip months in between. 
  • if user has missed the estimation for the first few months, then for the first estimate, system permits to skip months but not thereafter.
Hope this helped get more insight into the system behavior for straight line revenue recognition scenarios.

Thanks

Kind Regards
Sarang