• Home
  • Blog
  • About Me
  • Home
  • Blog
  • About Me
Dynamics 365  ·  Project Service Automation

PSA Contractor Time Entry

By Joe Gill  Published On 25th July 2017

A shortcoming in the current release of Dynamics PSA, Project Service Automation, is that it only allows you to book time against a project for resources that are users. Resources in PSA can also be created for contacts and this is a typically how you handle sub contractors. You create them as a contact and then create a bookable resource records linked to this contact. You can then assign this resource tasks on your project.

The Time Entry function allows users to enter their time worked on project tasks and they can also use delegation to enter time worked on behalf of others users. When the time entry records are approved this triggers the creation of the project’s actuals records which get rolled up to the projects actual hours and progress percentage figures. More importantly the actuals are also used for invoicing. Unfortunately there is no way to enter the time worked for a contact type resources so your project level actual figures will be incorrect.

This blog posts suggests a “no code” way you can enter time worked for a contact resource  by booking their time against a single generic user and using a custom relationship to record which contact it relates to. So the first step is to create a new relationship between the between the time entry entity and the bookable resource entity.

PSA Time Entry Relationship


Then create a custom entity where you can enter contractors time. This basically is a copy of the time entry with an additional field to link it to the contractor’s resource record.

PSA Contractors Time Entry Entity

PSA Contractors Time Entry Entity

Now create a workflow that fires when a contractor time entry records is created that creates the time entry records and populates the lookup field we created in the first step. This time entry records will be created for the owner of the workflow.

Now when you save a new records contractor time entry record the workflow fires and creates  a time entry record. By default the time entry record is created with its Entry Status set to Draft so it needs to be submitted by the workflow owner or a delegate.  By setting the description field with the contractors name, in the workflow, the user submitting the time entry can see the contractors name.

PSa Time Entry Contractor

 

Once submitted the project approver can approve the time entry and the projects actuals get updated.

PSA Project Actuals

This is not a foolproof solution to this problem, as it does not cover scenarios like reversals,  but it does provide a simple no code solution to create contractor time entry in Dynamics Project Service Automation.

In case you are interested in trying to use the SDK to enter a time entry record for a contract type resource
by setting the bookablerersouce as shown unfortunately it won’t work. It always set the bookableresoure to the user running the code.

Entity e = new Entity(“msdyn_timeentry”);

e[“msdyn_bookableresource”] = new EntityReference(“bookableresource”, new Guid(“4F1483D8-5C33-E711-80FD-5065F38B0302”));

 


dynamics 365project service automationpsa

Related Articles


Dynamics 365  ·  Power Apps
Dynamics Web Chat with PowerChat
25th January 2018
Dynamics 365
How to Configure Dynamics 365 S2S Authentication
12th December 2017
Daay import Update Workflow
Dynamics 365
Data Import Update
19th February 2018

Leave A Reply Cancel reply

You must be logged in to post a comment.

Dynamics and Service Bus Queues
Previous Article
Search Attachment Content with Relevance Search
Next Article