Friday, August 31, 2018

Recognizing the remaining “On-account” on T&M project by dimension

Business case – A prepayment is received from the customer for an additional support contract for 35 hours on top of the actual core project. However the contract is such that whenever a consultant spends time on this engagement, that time is booked on the separate support project and a zero value invoice is raised against the project for the customer to know the hours spend till date. There is no obligation for the vendor to return the remaining hours amount to the customer. If the customer does not spend the agreed quota of 35 hours and project ends, then the vendor can write-off the remaining hours and recognize the revenue for the hours not used by the customer. This is a typical scenario in professional service companies and this is how you cater to it from Dynamics 365 FinOps Project management and accounting module.
Contract Value = 10,000
Cost price per hour = 100
Estimated cost = 3,500 (35*100)
Solution – A T&M kind of a project is created where ‘Hours’ and ‘On-accounts’ are set to go to ‘Balance’ first.


Project group setup

The project dimensions are as follows.


Dimensions on the project

For the prepayment received from the customer, an on-account is billed initially at the start of the project.To raise a prepayment, ‘Customer advance’ feature is used, which automatically create a ‘Deduction’ type of transaction along with the ‘Prepayment’ type. When the project invoice for prepayment is posted, the accounting entry is as below. This is an unearned revenue as associated cost is yet to be booked against this.
Note the dimensions on the posting. These dimensions are inherited from the project.


Dimensions on the on-account invoice

The consultants working on the project starts posting their time-sheets. In this example we will put two hour journals but with different ‘Department’ dimension on each one of them.
Time-sheet posted by consultant number one – Will
Note that Will belongs to ‘Department number 23 = Operations’


Time-sheet posted by Will

Time-sheet posted by consultant number one – Chris
Note that Chris belongs to ‘Department number 28 = Client services’


Time-sheet posted by Chris

Total of 30 hours are utilized by the vendor for customer incidents by the people from two different departments on the vendor side. Now at the month end, it the time to raise a 0 value invoice. The sale price against the hours transaction is netted off against the deduction type of on-account transaction. To achieve this deduction transaction is split at the time of invoice creation.


Raising a 0 value invoice

By doing this the revenue is split across the two cost transactions proportionately with correct dimensions on them. Please have a look at the screenshot below:


Cost and Revenue has same dimensions

So far so good. Now assume that the project is over and the vendor wishes to recognize the remaining revenue of 250. To do this, user needs to post a fee journal for a value of 250 and then raise a 0 value invoice by netting it off against the remaining  deduction on-account value. However the only issue with this is, the fee journal that is posted will be having dimensions from the project and hence the revenue posted after the 0 value invoice would also have dimensions from the project and not from the actual cost transactions.  If this is the option that user wishes to go ahead with then no need to navigate to ‘Fee journals’ menu item to create fee transaction specifically, it can be done on the ‘Draft invoice proposal’ screen by clicking the ‘Create fees’ button. Once the details are filled in and ‘Ok’ is clicked, then fee journal is posted, with dimensions inherited from the project and it will be a part of the invoice proposal, ready to be posted.


Create fee option on the ‘Draft invoice proposal’

However if the user wants to split the remaining revenue across the posted cost transactions, a manual fee journal needs to be created and the lines of the fee journal needs to be split in the equal proportion and on each line the appropriate dimensions from the cost transaction needs to be selected.
Fee journal lines for 150 and 100 are posted. The fee journal line numbers derived are in proportion with the total hours posted earlier. Have a look at the posted fee journal lines.


‘Accrue revenue’ checkbox checked, hence fee journal voucher

0 value invoice is then created including these fee journal lines.


0 value invoice created including the fee lines

Once this invoice is posted, the remaining revenue value of 250 is then automatically allocated to the already posted cost lines. This step serves two purposes, one to recognize the remaining revenue value which is initially posted as deferred revenue and second to recognize it by dimension, so that revenue and cost by dimension is also correct.
The revenue that was accrued by the fee journal is reversed and the remaining deferred revenue is recognized as a project revenue by dimension.


Revenue recognized by dimension

This manual workaround of fee journal is the way to recognize the remaining revenue on the project which is in balance sheet and that too properly by dimension.
Hope you have learnt something new after reading this today.
See you soon in the next post…till then take care..!!
Kind Regards
Sarang

Wednesday, August 22, 2018

Dynamics 365 FinOps workflow - "Company-specific" v/s "Organization-wide" and related setup

Workflows in Dynamics 365 FinOps are of two kind and they are:
  1. Company specific workflows
  2. Organization wide workflows
These workflows are system designed and thats how they are. Details of which workflows are company specific and which ones are organization wide is available on technet. However you could also get to know this when you create workflows. If the 'Association' points to a company like USSI in this example, its company specific workflow and if its 'Organization-wide', its organization wide workflow.

'Company specific' workflow

'Organization-wide' workflow

This is fine, however it gets tricky when you try to define email templates for the same. The reason I say this is tricky is, there two separate navigations in the system to define the email templates for those two types of workflows and thats not very obvious to the end user.

You may define the email template for one type, say 'Company' type and then try to configure it from the wrong navigation for 'Organization-wide'. Just to make it more clearer, the email template creation and configuration for 'Company' type workflow is defined in 'Organization administration' module and the ones for 'Organization-wide' type workflow is defined in 'System administration' module. Let me show you where.

Email template for 'Company' specific workflow

Email template navigation for 'Company specific' workflow
Email template for 'Company specific' workflow
To view all the email templates, user should click on the 'Show / Hide list' icon.

All email templates for 'Company specific' workflow
Company specific email templates are visible in the company specific workflows:


Email templates visible from 'Company specific' workflow

To configure a 'company specific' email template in workflow parameters, user needs to navigate to Organization administration module.

Organization administration > Workflow > Workflow parameters


Email template for 'Organization-wide' workflow


Email template navigation for 'Organization-wide' workflow


Email template for 'Organization-wide' workflow
To view all the email templates user should click on the 'Show / Hide list' icon.

All email templates for 'Organization-wide' workflow

'Organization-wide' email templates are visible in the 'Organization-wide' workflows:

Email templates visible from 'Organization-wide' workflow

To configure a 'Organization-wide' email template in workflow parameters, user needs to navigate to System administration module.

System administration > Workflow > Workflow parameters

Some additional points to remember with respect to the workflow email for both company and organization specific workflows.

Workflow batch creation

Workflow batch needs to be created for the workflow to process. That is done from the 'Workflow infrastructure configuration'.

Workflow infrastructure configuration


Email distributor batch

For the system to send email, there is a batch to be created and run in the background. This is where you do it.

Email distributor batch


SMTP server settings and Email provider 

Technical details around SMTP and Email provider, needs to provided by the system admin.

Email parameters
Email message placeholder in email template

All the notifications specified in the workflow will be emailed to the user if email template has the placeholder specified in it. The email templates can be designed as jazzy as possible, but these are just internal emails, hence they could be as simple as below:

Simple email template with "message" placeholder

This email template will take the message specified in the workflow step and send email message as below:

Workflow notification message
Message will appear in the email message as below. This email is not sent from the system , however i checked it from System administration > Email processing > Email sending status.

Actual email containing the message from the workflow step

Employee email and notification configuration

For the employee to receive emails following setup must be done on the user record. Navigate to the 'User options' from the below:

User options
Click on the 'Account' and enter the 'Email' and also select the 'Email provider id'.

Employee email


Also click on the 'Workflow' and make sure that the 'Send notifications in email' is set to Yes.

Workflow notifications toggle

I know the next point it not that relevant to this topic but wanted to cover it here as it is related to workflow and i do not want to create a separate blog post just for that small but important concept.

Workflow assignments - Expenditure reviewers

There is a new concept in the workflow assignments and that is 'Expenditure reviewers'. This option is present in 'Purchase order workflow', Purchase requisition workflow', 'Expense workflow' etc for 'Assignment type' = Participant.

Assignment type = Participant



Expenditure participant

These can be setup in setup section. I am giving the example of 'Purchase order expenditure reviewers' below.

Purchase order expenditure reviewers

The most important thing to note is there are two types of expenditure reviewers and they are:


  1. Project
  2. Non - project
'Project PO' related expenditure reviewers can be 'Project managers', 'Project controller' and 'Program sales manager' etc along with the 'Dimension owners'. 'Project managers', 'Project controller' and 'Program sales manager' can be specified on the project record and 'Dimension owners' can be specified on the individual dimension values.

Project expenditure reviewers setup



'Non-project PO' related expenditure reviewers can be 'Dimension owners' only.

Non-project expenditure reviewers setup

Above two screen shots mean that if the PO is a project PO then it would go for approval to the 'Project manager' AND the 'Business unit' owner of that PO. And if the PO is a non-project PO then it would go for approval to the the 'Department' owner of that PO.

The 'Project managers', 'Project controller' and 'Program sales manager'  can be set on the project record here:

Responsible persons on Project record

Dimension owner can be set here:

Dimension owner
There can be an overall dimension owner or there can be a dimension owner per legal entity, hence two 'owner' fields are highlighted in the above image.

I know this has been a long post but hope you are now more aware about the workflow and its related setup.

If you have not seen the previous post about functional debug if the workflow does not kick in, then its here.

Thanks
Sarang

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.

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