Sunteți pe pagina 1din 373

Contents

Overview
New and upcoming features
Plan your implementation (app version 3.x)
Sample data installation
Project planning and tracking guide
Basic quoting, pricing, and billing guide
Advanced quoting, pricing, and billing guide
Resource management guide
Reporting guide
Project Service upgrade (app version 3.x)
What's new or changed in Project Service Automation version 3
Upgrade considerations - Project Service Automation version 2.x or 1.x to version 3
Project Service (app version 3.x)
Project planning
Project schedules
Project costs and revenue
Sales estimates and projects
Project progress and cost consumption
Project templates
Project stages
Project settings
Pricing and costing dimensions
Create custom fields and entities
Add custom fields to price setup and transactional entities
Set up custom fields as pricing dimensions
Update plug-in attributes to include new pricing dimensions
Use an existing field in Project Service as a pricing dimension
Use bookable resource as a pricing dimension
Use transaction category as a pricing dimension
Turn off a pricing dimension
Quoting, pricing, and billing
Sales processes
Unit groups and units
Organizational units
Quotes and quote lines
Product-based quote lines
Project pricing
Product catalog pricing
Business transactions
Estimates
Analyzing project quotes
Recall previously approved time or expense entries
Cancel approval of previously approved time or expense entries
Actuals
Review project billing backlog
Invoicing
Multi-currency scenarios
Resourcing projects
Assign generic bookable resources to a task and generate resource requirements
Book named bookable resources to a project team and assign task
Book named resources from resource requirements
Submit a resource request
Accept or reject a proposed resource
Reconcile bookings and assignments
Resource management home page
Manage resources
Key concepts
Fulfilling resource requests
Proposing resources
Booking resources
Soft-book requirements
Skills and proficiency models
Resource management FAQ
Reporting
Dashboards
Working with the Project Service Automation data model
Create time entries
Time entry calendar
Customize weekly time entry
How-to guides (app version 3.x)
Pricing dimensions setup guide
Project management how-to guide
Resource management how-to guide
Reconciling assignments and bookings how-to guide
Time, expense, and approvals guide
FAQ and troubleshooting (app version 3.x)
How do I "soft book" resources?
How do I see chargeable utilization for resources?
Which booking allocation method should I use to avoid overbooking?
Can I book a resource to project from the schedule board?
How do I assign a resource to a task?
How are resource bookings and task assignments related?
Why is the price defaulting to zero on expense cost actuals?
Why is the price defaulting to zero on expense sales actuals?
Why is the price defaulting to zero on time cost actuals?
Why is the price defaulting to zero on time sales actuals?
Why can’t I delete records from the Actuals entity?
Development (app version 3.x)
Entity changes
Time and expense
Resource management
Deprecated Web resources in Project Service Automation v3.x
Guidance for earlier versions (app version 2.x and 1.x)
FAQ and troubleshooting
FAQ and troubleshooting
How do I assign a resource to a task (app version 2.x)?
How do I "soft book" resources (app version 2.x)?
How do I customize the Project Stages business process flow?
White papers
Administrator guide
Install and customize
Use demo data
Configure the Project Service app
Set up time units
Set up currencies and exchange rates
Create organizational units
Set up invoice frequencies
Configure transaction categories
Configure expense categories
Create product catalog items
Create a price list
Set up resources
Add resources
Add resource skills
Set up proficiency models
Add resource roles
Configure resource roles
Associate skills with resources
Associate skills with resource roles
Create a work hours template
Apply a calendar to a resource
Configure additional settings
Enable Project Finder Mobile
Resource manager guide
Manage resource requests
Schedule resources for a project
View resource availability
View resource utilization
Universal Resource Scheduling (URS)
Project manager guide
Provide work estimates
Create a project
Schedule a project with a work breakdown structure
Determine project cost and revenue estimates
Track project progress and cost
Create a project template
Submit resource requests
Create an Office 365 Group for a project
Add documents to a project
Track a project’s status
View project team members and manage bookings
View and edit project estimates
Approve time and expenses
Review project actuals
View and send invoices
View dashboards and reports
Use the add-in to plan work in Microsoft Project
Account manager guide
Create a customer account
Create a project opportunity
Create a project quote
Create a project contract
Time, expense, and collaboration
Get the apps
Sign in
View your schedule
Manage projects and bookings in Office 365
Enter time
Enter expenses
Delegate time or expense entry
Schedule time off
Collaborate using Office 365 Groups
Find projects with Project Finder mobile
Project Resource Hub guide
Notes for developers (app version 2.x)
How to add new custom forms for Opportunity, Quote, Order or Invoice entity
What is Dynamics 365 for Project Service
Automation (PSA)?
7/10/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 3.x, 2.x, and 1.x


The Project Service Automation (PSA) application helps organizations efficiently track, manage, and deliver
project-based services, from the initial sale all the way to invoicing. The app enables you to:
Plan projects, and create estimates and work schedules
Estimate and track project cost and revenue
Forecast resource requirements for projects in the pipeline
Track project progress and cost consumption
Manage quoting, pricing, and billing for projects
Assign and manage resources
Use reports and interactive dashboards to monitor key performance indicators for successful projects
...and more
In addition, to help you monitor and control costs for your project-based work, individual consultants easily enter
and track project time and expenses either on mobile or using a web browser.

Get help with PSA version 3.x


Looking for resources to help plan your implementation? Check out these downloadable guides.
Project planning and tracking guide
Basic quoting, pricing, and billing guide
Advanced quoting, pricing, and billing guide
Resource management guide
Reporting guide
Notes for developers

Guidance for earlier versions (app version 2.x or 1.x)


Administrator guide
Resource manager guide
Project manager guide
Account manager guide
Time, expense, and collaboration
White papers (app version 2.x or 1.x)
Notes for developers (app version 2.x)
Watch a 2-minute overview video
What's new in Project Service
1/24/2019 • 2 minutes to read • Edit Online

The team is excited to announce our newest updates! Ranging from improvements to the user interface, all the way
to more powerful search queries for resource scheduling, and more. You asked; we listened.
Take a look at the Spring '18 Release Notes for Business Applications to see our newest enhancements and
additions.

In development
To see what we have planned in the near future, head over to the October '18 Release Notes for Business
Applications.
Sample data installation for the Project Service
application
1/24/2019 • 12 minutes to read • Edit Online

To help you build your own demo environments, Microsoft provides downloadable sample data packages that
showcase the capabilities of Dynamics 365 for Customer Engagement for Project Service and Dynamics 365 for
Field Service. There are two types of sample data packages:
reference/setup data
demo data (reference/setup and transactional data such as work orders and projects)
The sample reference data packages are downloadable in three different packages, so you can install data only for
Project Service, or only for Field Service, or you can install sample data for both applications at once.
The sample setup/reference data packages are:
V902PSMasterData - Project Service version 3.x only
V902FSMasterData - Field Service version 8.x only
V902FPSMasterData - Field Service 8.x and Project Service 3.x
The latest demo data package is:
FPSDemoData - Field Service 8.x and Project Service 3.x
Installation instructions differ slightly in the users to create and configure section but the rest is the same as
in the previous blog post. This package features a reduced demo data set and takes approximately 3 hours
to install.
These sample data packages are available in English only.

IMPORTANT
There is no way to uninstall the sample data. You should only install these packages on demonstration, evaluation,
training, or test systems. Also note that installing an individual package, and then installing the other individual package, is
not supported. (In other words, you can't install FSMasterData followed by PSMasterData, or vice versa.) If you see yourself
needing sample data for both applications at any point in the future, you should install the v902FPSMasterData package.

When you install any of the sample data packages, the installation process performs the following actions:
Creates or sets default parameters for using Project Service, Field Service, or both applications (if
applicable).
Imports sample data for the applications, such as bookable resources, application-specific roles, sales and
cost price lists, organizational units, sales process records, and other entities to demonstrate key capabilities.

With the demo data package, you get the above and additional transactional data such as work orders and
projects.
Wondering what capabilities you can demo with the sample data? See the Fabrikam Robotics fictitious scenario in
Technical notes.
If you have questions about installing these sample data packages, send us an email at
fpsdemodata@microsoft.com.

Requirements
The installation protocol assumes the following about your target instance (org):
Dynamics 365 for Customer Engagement 9.0.x or later.
Base language is English and base currency is US dollar (USD,$).
The org has no Project Service or Field Service data already, or only has barebones default data that comes
with any new org.
The correct version of the business application is already installed:
For FPSDemoData or v902FPSMasterData: The org has Field Service version 8.x and Project
Service version 3.x installed.
For v902PSMasterData: The org has Project Service version 3.x installed.
For v902FSMasterData: The org has Field Service version 8.x installed.

NOTE
If you need to install the sample data on top of an existing Project Service and Field Service trial or demo environment that
already has data (not recommended), you'll need to suspend the safety prechecks performed by the installer. For more
information, see the technical notes below.

Prepare for installation


You need to run the installer on a computer with a recent version of Windows (Windows 10 preferred).
You should plan for the computer to remain connected to a network, and for the installation to run for up to 1 hour
for setup/reference data. (Normally the installation takes around 30 minutes for FPSMasterData, which
includes sample data for both applications.) For the FPSDemoData, the installation will take around 3 hours.
The computer should have the screen saver function turned off. Otherwise, session credentials for the installation
may be lost when the screen saver engages (unless you keep your session active throughout).
Download and unpack
The Project Service and Field Service sample data installer is distributed as a self-extracting executable. The file
names may vary depending on the sample data package, but otherwise the steps are the same no matter which
package you install.
After downloading a package, run the .exe file, and then accept terms and conditions to unpack the compressed zip
file. You then need to extract contents of that file to a folder on the computer.
Depending on the operating system and security settings, you may need to perform the following steps after
unpacking the zip file:
1. Find and right-click the FPSDemoData.dll file in the v902FPSMasterData /
PackageDeployer_FPSDemoData folder.
2. Choose Unblock.
3. Select Apply.
4. Select OK.

Create or configure users


The FPSDemoData package requires six users while FPSMasterData packages require one user. Refer to the
correct one for your sample data package.

Create or configure users - setup/reference data packages


The FPSMasterData package is designed to install with one user named Spencer Low with the settings described
here. To install the package correctly, you need to create (or temporarily rename) users in your Dynamics 365 for
Customer Engagement to match the incoming sample data configuration.
To create or configure users, go to Settings > Security > Users, and do the following:
1. Set UserFullname="Spencer Low" with username "spencerl" (lowercase) to the Project Manager and
Practice Manager roles.
2. Select the Spencer Low user, and then select Manage Roles. Find and select the System Administrator
role, and then select OK to grant full admin rights to Spencer Low. This step is necessary to ensure that
sample records are created with the correct user ownership and therefore populate views correctly.
3. From the downloaded package, you need to update a data mapping file with email addresses of the default
user context. To do this, open PkgFolder, and then find and open the ImportUserMapFile.xml file in
Notepad (or Visual Studio or another XML editor). Set the DefaultUserToMapTo= field to the email
address of the Spencer Low user.
4. If you aren't using Spencer Low with username spencerl, you need to update an additional file. Open the
DemoDataPreImportConfig.xml file, and then find the userstocreateandconfigure tag. Update the
<login> tag with the username of your Spencer Low user. For additional details, see Technical notes.

Create or configure users - demo data package


The demo data package requires six users. For the package to install correctly, do the following:
1. Create or temporarily rename existing users to match incoming sample data configuration by going to
Settings > Security > Users.
These roles are only needed for persona-based demos.
User Fullname="David So" as Field Service Technician
User Fullname="Jamie Reding" as Customer Service & Field Service Dispatcher
User Fullname="Molly Clark" as Account Manager
User Fullname="Spencer Low" as Practice and Project Manager
User Fullname="Veronica Quek" as Team Member
User Fullname="William Contoso"
2. For the purposes of demo data import, assign the six users above the Administrator role so sample records
import correctly.
3. Open PkgFolder and then find and open ImportUserMapFile.xml. Update the New= fields to the email
addresses of corresponding Users in your system.
4. If your "Spencer Low" full name user has a different user ID than "spencerl", then you need to update an
additional file. Open DemoDataPreImportConfig.xml and find the userstocreateandconfigure tag.
Update the <login> tag with the loginId (case-sensitive).
5. The first user's calendar (in the userstocreateandconfigure tag) is used to populate the work hours for all
bookable resources on import of demo data. Navigate to Settings > Security > Users, find your "Spencer
Low" user, and open the "Work Hours" option. Edit the existing work hours, selecting the Entire recurring
weekly schedule from start to end option. Ensure the Work hours are set to 8 AM - 5 PM (9 Hours),
Monday to Friday and with the Timezone set to Pacific Time (US & Canada). This is needed to
ensure that the Project and Schedule board show as expected.
Recommendation: Consider creating a backup of your org now, in case you need to revert to your starting point
if something goes wrong during the sample data installation. For more information, see Backup and restore
instances.

Run the Package Deployer


1. Find and run PackageDeployer.exe in the v902FPSMasterData OR PackageDeployer_FPSDemoData
folder.
2. Accept the terms and conditions.
3. On the next window:
a. Select deployment type Office 365.
b. Use the user and password of the system administrator user configured in "Create or configure users"
("Spencer Low" with "spencerl" username).
c. Make sure Display list of available organizations is selected.
4. Select the Dynamics 365 for Customer Engagement organization where you want to install the sample data.
5. Select Next until you see the Demo Data Setup dialog.

6. Before proceeding, note that installing sample data could take up to one hour (normally ~10 minutes). You'll
need to make sure the computer remains on and connected to a network throughout the installation
process, and that your session remains active.
7. When you're ready, click Next to start the sample data installation process. After the sample data is loaded,
click Finish.

Verify the sample data installation


For a sanity check, verify that the number of records and types of entities listed in Fabrikam Robotics fictitious
scenario appear as expected.
After the sample data completely loads, sign in as the Spencer Low user and confirm the following:
If the Project Service application is installed, go to Project Service > Settings > Price Lists. Confirm that
bill rates and costs rates exist with the appropriate currency for each country/region in the data set.
If the Project Service application is installed, go to Universal Resource Scheduling > Settings >
Organizational Units. Confirm that a cost price list with the appropriate currency has been associated with
each org unit (excluding city entries). If any are missing, find and associate the correct cost price list.
If the Field Service application is installed, go to Project Service > Settings > Price Lists. Confirm that bill
rates and costs rates exist. Go to Field Service > Settings > Price Lists and check that bill rates and costs
rates exist, with the appropriate currency, for each country/region in the data set.
Technical notes
See below for more technical details on the installation of this data.
Installing sample data on top of existing data (not recommended)
If you need to install sample data on top of an existing Field Service or Project Service trial or demo environment
that already has data, you'll need to suspend the safety prechecks performed by the installer.
To do this, go to the PkgFolder folder to find and open the DemoDataPreImportConfig.xml file with Notepad
(or another XML editor).
Find the following value, and then change the setting from true to false:

<TerminateOnPreCheckFailure>true</TerminateOnPreCheckFailure>

This change causes the installer to bypass some important safety checks, including:
Confirming that there is no more than one active Organizational Unit record, and then renaming it to
Fabrikam US.
Confirming that there is no more than one active Work Template record.
Confirming that there is no more than one active Project Parameter record, and then renaming that entry
to Parameters.
Configuration components
There are a number of other configuration components in this pre-import configuration file. For technical users,
some of these include:
<RequiredSolutions> specifies prerequisite solution installations and their version numbers.
<InstallSampleData> controls whether out-of-the-box sample data for the Dynamics 365 for Sales and
Service apps is installed.
false - skips installation of this built-in data (which is removable)
true - installs the built-in data concurrent with installation of the FS and PSA sample data
<PreImportDataCollection> specifies flat-file Data Maps and associated Records to be imported ahead
of the main sample data installation.
<EntitiesToEnableScheduling> specifies which entities should be enabled for Booking in Microsoft
Dynamics Scheduling (aka Universal Resource Scheduling).
<UsersToCreateAndConfigure> specifies Bookable Resources that will be created (if they don't exist
already) before the sample data import executes. Note that the source system sample data Bookable
Resource match with the target system Bookable Resource records on the FullName and login of each
resource. Therefore, it is NOT possible to change the names in this preconfiguration file unless you first
import sample data into a target system using these names, then rename the Bookable Resources to your
desired name set along with the Enabled User records, and then export the data again for import into your
final destination system (updating the ImportUserMapFile.xml Old and New entries accordingly).
<PluginsToDisable> specifies very discrete line-item plug-ins that must be disabled during the sample
data import and then reenabled afterwards.
Fabrikam Robotics fictitious scenario
The Field Service and Project Service sample reference data packages install the Fabrikam Manufacturing
Master Data (v3.0.0.0) solution, along with approximately 4,000 records and approximately 40 different entities.
The separate sample data packages for Field Service or Project Service contain a subset of the
v902FPSMasterData sample data for that application. The Demo Data package installs the Fabrikam
Manufacturing Demo Data (v3.0.0.7) solution with approximately 22,000 records across 148 entities.
The fictional company, Fabrikam Robotics, is a manufacturer of electronic device assembly line robots and is known
for their product quality, innovation, and solid customer service, including installation planning, implementation,
and ongoing maintenance services. Fabrikam is headquartered in the United States (Fabrikam US ), and has
project-based service operations in France, India, the United Kingdom, and Switzerland.
Field service operations are centered in the United States, mostly in the greater Seattle area. The company is
focused on leveraging Internet of Things (IoT) connectivity to monitor customer asset performance and deliver
increasingly proactive onsite services.
A high-level overview of the sample data is as follows:
Common sample data elements (included for both applications)
1 user
71 accounts
137 contacts
Various transaction types and categories
50 products with 1 product price list
14 price/cost lists
31 characteristics (resource skills) in 2 rating models with 3 levels (rating values)
Project Service
8 organizational units
6 role-specific utilization levels
2.8k+ role-price specifications
Field Service
4 territories
5 work order types
22 customer assets
9 incident types with a range of associated resource characteristics (9), services (13) and service tasks
(13)

The Demo Data package installs approximately 179 work orders, 12 projects, and associated transactional data.
Change the work hours for sample resources
By default, all bookable resources have a 24 work hours calendar.
If you need to change the work hours for sample bookable resources, go to Universal Resource Scheduling >
Scheduling > Resources.
Select a user (for example, Spencer Low ) and change Spencer's work hours to the hours you want to apply to
multiple users. Go to Universal Resource Scheduling > Settings > Work Hour Templates and edit the
Default Work Template record. In the Template Resource field, select a user with work hours that you want to
apply to other resources. Go to Universal Resource Scheduling > Scheduling > Resources > Active
Bookable Resources. Select the resources you want to change, and then select Set Calendar. On the Work
Template drop-down list, select the Default Work Hour template or another template with the correct templating
resource. When you go to the schedule board, you should see that the resources now have updated work hours.
Project planning and tracking
2/5/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


The Project Service application helps service organizations identify opportunities, submit bids, reach contractual
agreements, manage resources, track time and expenses, invoice customers, and deliver projects on time and
within budget.
The PDF link that was previously in this topic has been removed and the content has been moved to the following
topics:
Project schedules
Project costs and revenue
Sales estimates and projects
Project progress and cost consumption
Project templates
Project stages
Project settings

NOTE
This topic will be removed in a future documentation update.
Basic guide to quoting, pricing and billing
2/28/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


The ability to find the right resources at the right time, book those resources on projects, and keep resources
utilized helps organizations meet revenue targets and customer satisfaction goals.
The PDF link that was previously in this topic has been removed and the content has been moved to the following
topics:
Quoting, pricing, and billing
Sales processes
Quotes and quote lines
Product-based quote lines
Pricing
Product catalog pricing
Business transactions
Estimates
Actuals
Analyzing project quotes
Organizational units
Unit groups and units
Multi-currency scenarios
Recording actuals

NOTE
This topic will be removed in a future documentation update.
Advanced quoting, pricing, and billing guide
2/28/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


The ability to find the right resources at the right time, book those resources on projects, and keep resources
utilized helps organizations meet revenue targets and customer satisfaction goals.
The PDF link that was previously in this topic has been removed and the content has been moved to the following
topics:
Quoting, pricing, and billing
Sales processes
Quotes and quote lines
Product-based quote lines
Pricing
Product catalog pricing
Business transactions
Estimates
Actuals
Analyzing project quotes
Organizational units
Unit groups and units
Multi-currency scenarios
Recording actuals

NOTE
This topic will be removed in a future documentation update.
Resource management guide
3/29/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


The PDF link that was previously in this topic has been removed and the content has been moved to the following
topics:
Resource management home page
Key concepts
Fulfilling resource requests
Proposing resources
Booking resources
Soft-book requirements
Skills and proficiency models
Resource management FAQ

NOTE
This topic will be removed in a future documentation update.
Reporting guide
2/28/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


Project Service Automation (PSA) uses Dynamics 365 for Customer Engagement reporting methods and
technologies to help you determine the health of your projects and identify when you need to take corrective
action.
The PDF link that was previously in this topic has been removed and the content has been moved to the following
topics:
Reporting home page
Dashboards
Working with the Project Service Automation data model

NOTE
This topic will be removed in a future documentation update.
Upgrade home page
5/31/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x

Upgrade from PSA version 2.x or 1.x to version 3.x


New instances
As of May 17, 2019, when Microsoft Dynamics PSA is selected during the provisioning of a new instance, Project
Service Automation (PSA) version 3.x is installed by default.
Existing instances
As of May 17, 2019, customers who have an instance of PSA version 2.x and need to upgrade to version 3.x, which
is the Unified client interface-based (UCI) version of PSA, must contact support and provide the details of thier
instance, so that support can enable the instance for upgrade to version 3.x.

NOTE
PSA version 3.x includes significant changes. It has been built on the Unified Interface framework to help provide an improved
user experience. The redesigned app delivers a consistent, uniform user interface (UI), and it follows responsive design
principles for optimal viewing on any screen size or device. There have been other changes throughout the application. Some
of the areas that have been changed include pricing, booking and assigning resources, time, expenses, and approvals.

Before you begin the upgrade process, we recommend that you complete the following tasks:
Verify whether both Microsoft Dynamics 365 for Field Service and PSA are installed on the identified
instance. If both solutions are installed, you should plan to upgrade both before you resume regular use of
the instance.
Carefully review the following topics. Awareness and understanding of the changes between versions will
help you with the upgrade process. These topics provide information about the major changes in PSA,
together with considerations and recommendations for planning your upgrade to version 3.x.
What's new or changed in Project Service Automation version 3
Upgrade considerations - Project Service Automation version 2.x or 1.x to version 3
Upgrade your sandbox instance to evaluate the changes in your implementation before you upgrade your
production instance.
After you've reviewed the topics that were mentioned earlier and are ready to upgrade to PSA version 3.x or the
UCI-based version, submit a request to Microsoft support to make the upgrade available from Admin center. In
your request, provide the details of your instance.

Older versions of PSA (PSA version 2.x) in a newly created instance


As of May 17, 2019, all new instances will have UCI as the default client. For alignment with this change, PSA
version 3.x and Field Service version 8.x will be provisioned by default, because these versions are designed to
work with the UCI client.
If you're creating a new instance and want it to have older versions of Field Service and PSA (Field Service version
7.x and PSA version 2.x), make sure that you don't select Field Service or PSA during the instance provisioning
process. Instead, after the instance is provisioned, log a support ticket that includes the details of your instance, so
that support can enable your instance for older versions of Field Service and PSA.

NOTE
For the best experience when you use older versions of the Field Service and PSA applications, go to the System settings
page and for the field, Use the new Unified Interface only (recommended) field, select No as these versions aren't
designed to be correctly loaded in UCI. After you have turned off UCI, you can open and run these versions of Field Service
and PSA by using the old web client. For instructions about how to turn off the UCI client, see Enable unified interface only.
What's new or changed in Project Service
Automation version 3
3/22/2019 • 18 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


This topic provides information about the changes to user interface (UI), functionality, and terminology in Project
Service Automation (PSA) between version 2 or version 1 and version 3.

Project scheduling
The project schedule, which was known as the Work Breakdown Structure (WBS ) in previous versions, has been
renamed Schedule and is accessed by clicking the Schedule tab.

The schedule now has a new surface for interaction that is both modern and accessible, however the underlying
PSA scheduling engine has not changed. The control buttons in the schedule grid’s ribbon allow you to interact
with the schedule similar to the previous version of PSA. Additional changes to the schedule include:
Gantt chart - The Gantt chart is no longer present. A new Gannt visualization will be returning in a future
update.
Column headers - You can hide column headers in the grid by clicking the down indicator next to the column
title.
Columns - You can show hidden columns by clicking Add column.
Transaction category - A Transaction category lookup has been added to the schedule grid and is shown by
default.

Project templates
The following changes have been made to project template functionality.
Create a project template
You can create a project template in version 3 similar to previous version of PSA. The template can contain only a
schedule and the schedule can include assignments, but they are not required. If the schedule does have
assignments, they can only be for generic resources. You can generate resource requirements for generic
resources, but they can't be booked with real resources in the template. You can't book a real resource to a team in
a template.
Create a template from an existing template
When you create a new project template from an existing template in PSA version 3, the following happens:
The source project’s schedule is copied into the template.
Generic resources are copied into the team and any generic resource assignments are copied over.
Requirements for the generic resources are not copied over.
Create a template from an existing project
When you create a new project template from an existing project, the following happens:
The source project’s schedule is copied into the template.
Generic resources are copied into the team and any generic resource assignments are preserved. Requirements
for the generic resources are not copied over.
Named resources, both assigned or unassigned are removed from the team and replaced with generic
resources.
If present, customer information is removed.
If present, references to quotes and contracts are removed.
Create a project from a template
In PSA version 3, when you create a new project from a template, the following happens:
The schedule, team, and assignments are copied to the new project.
The start date is either the copy date or date selected by the user.
For any generic team members with resource requirements in the template, the requirements are not copied or
generated automatically. You will need to generate them.

Copy a project
In PSA version 3, when you copy a project, the following happens:
The estimated start date is copied, but can be changed.
The project schedule and tasks are copied.
Generic resources and their assignments are copied. Resource requirements for the generic resources are not
copied. You will need to re-generate them.
Real resources and their assignments are not copied. Instead, they are replaced by generic resources.
Actuals are not copied to the new project.

Move a scheduled project


When you move the schedule of existing project forward, the following happens:
Task dates are automatically moved to correspond with the movement period.
Assigned generic resources remain assigned.
If they are generated before the project is moved, requirements for the generic resource remain the same and
are not automatically re-generated. You will need to generate them again to reflect the new assignments due to
the task movement.
Assignments on real resources change to correspond with the task date movement. Bookings on real resources
do not change. You will need to modify the bookings using the reconciliation view.
Team resources with bookings but no assignments do not change.
Actuals do not move.

Estimates
Estimates have been split into two tabs, Resource assignment and Estimates. The Resource assignment tab
contains the effort estimates and shows the resource assignments for the tasks in a time-phased view. You can edit
the estimates based on what the scheduling engine has generated.

The Estimates tab shows the cost and sales amounts for resource assignments. The amounts are read-only. The
costing and sales pricing are now driven from the team member assignments on the schedule. This means that if
you have a task without any assignment, the task will show under the unassigned bucket. This also means that
without role, which is a default pricing dimension, there will be no estimated cost or sales if you have a customer
or contract/quote associated with the project.

Category is also supported on tasks in the schedule view. Grouping by category on the time-phased view of
estimates will provide a better experience, especially when you also have expense estimates in your project.
Expense estimates are entered using a grid on a separate tab.
Expense estimates can be entered in the grid on the Expense estimates tab.

Resource management
In PSA version 3, with the new Unified Client UI and changes in the relationship between bookings and
assignments, staffing a project with generic or real resources has changed dramatically from version 2 and version
1. However, the concepts of bookable resources, both real and generic remain the same, as do team members,
requirements, assignments, and bookings.

Assign a real bookable resource


In PSA version 3, bookings and task assignments are not as tightly intertwined as previous versions of PSA. You
can use the team grid to book a real team member, similar to in-market. Using the resource picker on the schedule,
you can select the team member created in the team view and then assign them to tasks. You can continue to
assign tasks to them, even past their bookings. Use the Reconciliation tab to reconcile team members that have
differences in bookings and assignments. The resource picker will show the team members for the project. You can
also use the resource picker to search for and view other bookable resources that are not part of the project team.
You can assign them to a task and they will become part of the project team. You will need to book them using the
Schedule board or Reconciliation tab.
Assign a generic bookable resource on a task and project team and then fulfill with a real resource via Schedule
Board
In PSA version 3, the generate team functionality is not used for generic resources. Instead, you can create and
directly assign a generic resource from the schedule by typing the position name of the generic resource in the
resource cell of the schedule. Or, you can select the resource icon in the cell and then, using the resource picker,
type the name of the generic resource you want to create. This will open a quick create panel that allows you to set
the role and organization unit of the generic resource team member. After you create the resource, it is assigned to
the task and you can continue to assign that generic resource to other tasks in the schedule.
When you have assigned the resource to all of the appropriate tasks, you can generate a resource requirement and
then fulfill it by directly booking with the Schedule board or by submitting a resource request. You can also add
generic resources directly to the team member grid.
Generic resources are added to the project team with no resource requirements and with the start/end dates of the
project until the resource requirement is generated. To generate a requirement, select the generic resource and
click Generate. The requirement link now displays and the required hours will be populated with the assigned
hours. You can click the link to open and update the requirement.
When the booking is complete and totally fulfilled by a named resource, the generic resource is replaced with the
named resource and the assignment on the schedule is updated with the named resource.
Proposed resources for requirements are now stored on a tab instead of a separate section.
Multiple named resources fulfilling a generic resource
When a requirement is fulfilled with multiple resources, the generic resource remains on the team and assigned to
the task. The named team members who are booked are not assigned as part of the position. The project manager
can assign the work as needed to the real resources. The Reconciliation view provides a breakdown of the
bookings across multiple resources to multiple task assignments. This is not done automatically because in more
complicated scenarios, such as one where you have a bundle of tasks making up the requirement, the intent of how
the project manager wants to assign, needs to be assumed. Because the system can't understand intent, the
assumptions will likely be different than intended and an incorrect or unpredictable result will occur. The
predictable outcome is that the generic resource remains assigned until the project manager deliberately assigns
resources using the Reconciliation view.
Reconciliation
The Reconciliation tab shows bookings and all assignments for each project team member. The view shows
hours in cells which can represent time points from months to days. This view allows project managers to reconcile
team member bookings and their assignments for their project team. This is helpful because bookings and task
assignments are not tightly coupled, which allows for more flexibility when planning a project.
For each resource, the view takes the difference between a team member's bookings and a rollup of their task
assignments and shows the following two differences that can occur with bookings and assignments in a project:
Booking shortage - Booking shortages occur when a resource has more assignments than bookings. Because
this capacity has not been reserved, a project manager can correct this by extending the resource’s bookings to
cover the deficit.
Excess bookings - Excessive booking occurs when a resource has been booked to the project but has not been
assigned to tasks. This may be an acceptable occurrence, for example if the resource has been booked prior to
task assignment. However in other cases, the resource may not be planned to be assigned, and the PM should
consider canceling the resource’s bookings to allow the capacity to be used for another project.
When you have task assignments for a resource without bookings (a booking shortage), you can select the
aggregate booking shortage and click Extend booking. From here, you can view the booking that is needed to
address the resource’s shortage and their availability.

Time and expense


This section provides information about the changes in time, expense, and approval in version 3 of PSA. As part of
the Dynamics 365 for Project Service Automation solution, the Time entry feature has been refreshed to leverage
the Unified Interface framework. This enables delivery of a consistent, uniform user interface that follows
responsive design for optimal viewing on any screen size or device.
Landing page
The non-extensible custom time entry experience has been deprecated in version 3. Instead, there is now an
extensible and accessible native grid experience. You can access time entry functionality by using the sitemap on
the left. With this change, you will no longer be able to enter time for one week at a time. Instead, you will need to
create a time entry for each day in the grid. After a few time entries have been created, users can bulk create time
entries with Copy function explained later in this topic.
Create new time entries
Click New in the ribbon to open a quick-create page for time entry where you enter duration in minutes, hours, or
days. To do this, just start typing h, m, or d along with the quantity.

Look-up fields are backed by system views. For example, after you enter project information, the Project task field
is set by default to My open project tasks view. To create time entries for tasks that are not assigned to the user,
click Change view on the lookup and select All Active project tasks. After the time entry has been created and
shows in the grid, you can edit any line values directly in the grid.
Bulk create/copy
After a few time entries have been created, you can use the copy functionality to bulk create additional time entries.
Click Copy to open the Copy dialog. In From period: Start Date, set the date range from which time periods
must be copied from. In To Period: Start Date, specify the date for which time entries must be created. Click
Copy to copy the time entries to the corresponding day of the week indicated in the To Period. For example,
Monday's time entry from last week will be copied into Monday for the week indicated in the To Period.
Import data
Assignments and exchange follow the same UI pattern, which allow the user to specify the date range from when
bookings need to be imported. You must then explicitly choose the bookings that should be copied into Draft time
entries. In version 3, you can no longer see the pattern of Suggested time entries on the grid and calendar.
Change in calendar control
In version 3, we have moved away from the custom calendar control and are now using the UC Calendar to
display time entries for the week. With this calendar, you can view day, week, and month.

NOTE
A limitation on the Calendar is that this control does not support actions on individual calendar items. For example, you will
not be able to select one or more calendar items and submit or delete those items. Clicking on a calendar item will open the
Time entry entity page for additional actions.

Extensibility
Capture data on custom fields in time and expense entry entities only - Time entry uses an editable grid, a
read-only grid, and calendar controls from the platform. All of these controls are native and therefore will support
customizations. In PSA version 3, you can add additional custom fields, set up lookup fields, and back them up with
custom views. You can also set custom business logic based on selected values in custom fields.
Capture data on custom fields in time and expense entry and propagate it through entities supporting
the submission and approval flow - The typical processing of time entries is shown in the following diagram.
If business requirements stipulate that time and expense entities must capture custom pricing dimensions and
propagate the values that are set by a time and entry resource in the custom pricing dimension through all of the
entities in the previous graphic, see Set up custom fields as pricing dimensions
To support business requirements where time and expense entities must capture custom non-pricing dimensions
and propagate the values, you can use the pricing dimensions setup and express the custom dimensions as pricing
dimensions with no cost or bill rate. Another scenario would be to add a custom field to each of the entities, using
the same field name across all entities. Custom plug-ins can be created to relate records in the entities that are
participating in the submission/approval flow using the transaction origin and transaction connection entities.
Delegate time and expense entry
The Common Data Service platform doesn't support one user impersonating another, which means in version 3 of
PSA there is no support for delegated time and expense entry. However, partners and customers have leveraged a
workaround to enable support for delegated time entry experiences in version 3. This is only a workaround and
not a complete solution, so it is important to understand the limitations and only use this approach if the
limitations are acceptable.

IMPORTANT
This information should only be considered suggested guidance for custom implementation by a partner/customer. The
product team will not offer formal support for this functionality through any of our support channels.

Customization details
Customization allows you to add Bookable resource to the create and edit experiences, which will allow a user to
act as a delegate by changing the Booking resource field to another user for whom time and expense entries
need to be recorded. The following steps cover time entry delegation. The same information applies to expense
entry delegation.
1. Ensure that the delegated user has global security access on projects and project tasks.
2. Because Bookable resource, which is a field on the Time entry entity, is not exposed on the Quick create
page, you need to add it.
-or-
3. Create a custom view to view only time entries that are created for the resource. Publish the customizations on
the app module designer for this view to show up under View selector on the Time entries page. There are
two plug-ins that handle setting the manager for non-project time entries:
PreValidateTimeEntryCreate
PreValidateTimeEntryUpdate
4. Create a new plug-in to overwrite the Manager field to the manager of the user assigned in the Bookable
resource field. Use the same Execution stage as the out-of-band (OOB ) plug-in (pre-validation) and use an
Execution order that is higher than OOB plug-ins (greater than 1). This will ensure that the custom plug-in is
executed after the OOB plug-ins.
End user experience
1. When you create a time entry on the quick create page, enter the Project and Project task details and then
choose the user on Bookable resource field for whom the time entries need to be recorded for.
2. By default, this field defaults to the logged in user, however given that the user overrode this field, time entry is
now created for the chosen Bookable resource.
3. When you submit the time entries that you created for these records, the entries will be queued up for the
approver in the project as expected.
4. When you recall the time entries created for the other user, the time entries will be returned to a state of Draft
with the Bookable Resource field set to the other user.
5. Optionally, you can switch to the custom view to filter time entries created for the other user.
Limitations
Copy and Import functionality works only in the context of the user who is logged in. This means that it is not
possible to copy or import time entries that are created for the user who is logged in as the bookable resource.
Time entries that are not for a project will be routed for approval to the manager of the bookable resource only if
step 4 in the section Customization Details above is completed. Otherwise, non-project time entries for the other
user will be incorrectly routed to the manager of the logged in user.
Other changes
The Bookings and Tasks functionality has been removed.

Multidimensional pricing
To maximize flexibility and meet different business requirements, version 3 of PSA supports discrete application of
pricing dimension sets to cost and bill rates. Dimension values can be set as the default and then propagated
across the costing and pricing process from resource profiling to time entry to project actuals. Customer-specific
configuration and modification or extension leverages standard Dynamics 365 for Customer Engagement
customizability infrastructure.
PSA ships with a default set of pricing dimensions and roles and resource units, and allows for the setup of prices
and costs for each Role and Organizational unit combination.
For customers of PSA that want to continue to use these out-of-the box fields as pricing dimensions in version 3,
there will not be any observable change. You can continue to use PSA as usual. If, however, you need to price or
cost for your resources using other additional attributes, version 3 allows for adding your own custom pricing
dimensions to PSA. The extension of custom pricing dimensions is a complicated configuration experience.

Quotes and contracts


In version 3 of PSA, aspects of setup and management for quotes and contracts have changed. The following
sections provide more detailed information.
Set up chargeability options
In versions 1 and 2, chargeability setup for roles and categories for specific quotes and contracts was done using
the Chargeability view that was in the top navigation of a quote line or a contract line. This was also where you
could set up prices for those roles and Expense categories. As of version 3, setup of chargeability options by role
and Expense category will be done at the quote or contract line level. Pricing setup is separate from Chargeability
setup. You will be able to find Chargeable roles and Chargeable categories as tabs on the Quote line and
Contract line pages without having to use the top navigation.

The setup of Chargeable roles and Chargeable categories also leverages the out-of-the-box editable grid control.
For each role and category, the supported options for billing type during the Quoting and Contracting phase
remain unchanged from prior versions as Chargeable and Non-chargeable. Complimentary is not a
supported type during the Quoting or Contracting phase. Complimentary is supported only during Time or
Expense approval.
Create and edit custom pricing for a PSA quote and project contract
In versions 1 and 2, using custom price list for specific quotes and contracts was done using Edit prices on the
Chargeability view. The Chargeability view was located in the top navigation of a quote line or a contract line.
This was also where you could set up chargeability options for roles and or expense categories. As of version 3,
creating and using a custom project price list on a PSA quote and PSA project contract has been separated from
chargeability setup. PSA quote and PSA project contracts have a new tab called Project price lists. This tab shows
an associated view of all Project price lists that are attached to the PSA quote or project contract. To create a
custom price list from an existing price list that is already associated to the project quote or contract, click Create
custom pricing. This will make a copy of all the associated price lists and attach them to the Quote or contract.
You can now open the price list and edit role or expense category price so that those pricing changes will only
apply to this quote or contract.
The following graphic is before custom price lists have been created.

The following graphic shows after custom price lists have been created.
NOTE
A short lag might occur between when you click Create Custom Pricing to when the custom price list is created. We
recommend refreshing the grid instead of clicking multiple times. A custom price list has been created if the associated price
list name has the quote name or the project contract name appended to it.
Upgrade considerations - PSA version 2.x or 1.x to
version 3
12/10/2018 • 6 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x

Project service automation and Field service


Both Project Service Automation and Field Service (FS ) use the Universal Resourcing Scheduling (URS ) solution
for resource scheduling. If you have both PSA and FS in your instance, you should plan on upgrading both
solutions to the latest version (version 3.x for PSA, version 8.x for FS ). Upgrading PSA or FS will install the latest
version of URS, which means that inconsistent behavior is possible if both PSA and FS solutions in the same
instance aren’t upgraded to the latest version.

Resource assignments
In Project Service Automation (PSA) version 2 and version 1, task assignments were stored as child tasks (also
called line tasks) in the Task entity, and indirectly related to the Resource Assignment entity. The line task was
visible in the assignment pop-up window on the Work Breadown Structure (WBS ).

In version 3 of PSA, the underlying schema of assigning bookable resources to tasks has changed. The line task
has been deprecated and there is a direct 1:1 relationship between the task in the Task entity and the team
member in the Resource Assignment entity. Tasks that are assigned to a project team member are now stored
directly in the Resource Assignment entity.
These changes impact the upgrade of any existing projects that have resource assignments for named bookable
resources and generic resources on a project team. This topic provides the considerations that you will need to take
into account for your projects when you upgrade to version 3.
Tasks assigned to named resources
Using the underlying task entity, tasks in version 2 and version 1 allowed team members to portray a role other
than their default defined role. For example, Gracie George, who’s by default assigned the role of Program
Manager, could be assigned to a task with the role of Developer. In version 3, the role of a named team member is
always the default, so any task that Gracie George is assigned to uses her default role of Program Manager.
If you have assigned a resource to a task outside of their default role in version 2 and version 1, when you upgrade,
the named resource will be assigned the default role for all task assignments, regardless of role assignment in
version 2. This will result in differences in the calculated estimates from version 2 or version 1 to version 3 because
estimates are calculated based on the role of the resource and not the line task assignment. For example, in version
2, two tasks have been assigned to Ashley Chinn. The role on the line task for task 1 is Developer and for task 2,
Program Manager. Ashley Chinn has the default role of Program Manager.

Because the roles of Developer and Program Manager differ, the cost and sales estimates are as follows:

When you upgrade to version 3, line tasks are replaced with resource assignments on the task of the bookable
resource team member. The assignment will use the default role of the bookable resource. In the following graphic,
Ashley Chinn who has a role of Program Manager, is the resource.
Because the estimates are based on the default role for the resource, the sales and cost estimates may change.
Note that in the following graphic, you no longer see the Developer role as the role is now taken from the
bookable resource’s default role.

After upgrade is complete, you can edit a team member's role to be something other than the assigned default.
However, if you change a team members role, it will be changed on all of their assigned tasks because team
members are no longer allowed to be assigned multiple roles in version 3.
This is also true for line tasks that were assigned to named resources when you change the resource’s organization
unit from the default to another organization unit. After the version 3 upgrade is complete, the assignment will use
the resource’s default organization unit instead of the one set on the line task.
Tasks assigned to generic resources
In version 2 and version 1, you can set the role and org unit on a task and then use the Generate team feature to
generate generic resources based on the attributes set on the task. In version 3, you create the generic team
members with role and org unit, and then assign the team members to tasks.
In version 2 and version 1, projects with generic resources can be in two states, or a mix of both at the task level.
For example, you can have the following scenarios:
Tasks with roles and org units set, but no affiliated resource assignment has been generated.
Tasks with generic team member resource assignments that were assigned by creating generic resource using
the Generate team feature.
Before you begin your upgrade, we recommend that you re-generate the team for each project that has tasks
assigned to generic resources or has yet to have the generate team process run on them.
For tasks that are assigned to generic team members that were generated with Generate Team, the upgrade will
leave the generic resource on the team and leave the assignment to that generic team member. We recommend
that you generate the resource requirement for the generic team member after the upgrade but before you book
or submit a resource request. This will preserve any org unit assignments on the generic team members that are
different than the project’s contracting org unit.
For example, in the Project Z project, the contracting org unit is Contoso US. In the project plan, testing tasks
within the Implementation phase have been assigned the role Technical Consultant and the assigned org unit is
Contoso India.
After the implementation phase, the integration test task is assigned to the role Technical consultant, but the org is
set to Contoso US.

When you generate a team for the project, two generic team members are created due to the different org units on
the tasks. Technical consultant 1 will be assigned the Contoso India tasks and Technical consultant 2 will have the
Contoso US tasks.
NOTE
In PSA version 2 and version 1, the team member does not hold the organization unit, that is maintained on the line task.

You can see the organization unit on the estimates view.

When the upgrade is complete, the organization unit on the line task that corresponds to the generic team member
is added to the generic team member and the line task is removed. Because of this, we recommend that before you
upgrade, you generate or re-generate the team on each project that contains generic resources.
For tasks that are assigned to a role with an org unit that differs from the org unit of the contracting project, and a
team has not been generated, upgrade will create a generic team member for the role, but will use the contracting
unit of the project for the team member's org unit. Referring back to the example with Project Z, this means that
the contracting org unit Contoso US, and the project plan testing tasks within the Implementation phase have been
assigned the role Technical Consultant with the org unit assigned to Contoso India. The Integration test task that is
completed after the Implementation phase has been assigned to the role Technical consultant. The org unit is
Contoso US and a team has not been generated. Upgrade will create one generic team member, a Technical
consultant that has the assigned hours of all three tasks, and an org unit of Contoso US, the project’s contracting
org unit.
Changing the default of the different resourcing org units on un-generated team members is the reason we
recommend that you generate or re-generate the team on each project that contains generic resources prior to the
upgrade so that the org unit assignments are not lost.
Project planning home page
3/7/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


Microsoft Dynamics 365 for Project Service Automation offers end-to-end support for service organizations by
providing tools for managing the sales and delivery process. It helps these organizations identify opportunities,
submit bids, reach contractual agreements, manage resources, deliver projects on time and within budget, record
time and expenses, and invoice the customer. Team members can collaborate on projects, and they can maintain
current, accurate project status information so that project managers can identify and manage project risks. These
advanced tasks are typically performed in larger organizations that have separate divisions that work together.

Project management tools


The project management tools in PSA help you easily run projects. Built-in templates and scheduling tools help
project managers and teams stay productive. Here are some of the tasks that the tools help with:
Plan projects by using a work schedule and estimates.
Estimate and track project costs and revenue.
Use project estimates during the sales process.
Forecast resource requirements for projects that are in the pipeline.
Successfully deliver projects by tracking progress and cost consumption.
The following topics provide information that will help project managers estimate work, estimate project costs, and
forecast resource requirements by using the tools that are supported in PSA:
Creating a schedule
Estimating project cost and revenue
Leveraging the schedule and estimates
Tracking project progress and cost consumption
Project templates
Project stages
Project settings
Project schedules
3/7/2019 • 7 minutes to read • Edit Online

Applies to Project Service app version 3.x


A project schedule communicates what work must be completed, which resources will do the work, and the
timeframe that the work must be finished in. It reflects all the work that is associated with delivering the project on
time. In Microsoft Dynamics 365 for Project Service Automation, you create a project schedule by breaking the
work down into manageable tasks, estimating the time that is required to do each task, setting task dependencies,
setting task durations, and estimating the generic resources that will do the tasks. The project schedule is created
on the Schedule tab of the project page.

Tasks
The first step in creating a project schedule is to break the work down into manageable portions. The schedule in
PSA supports the following features:
Project root node
Summary or container tasks
Leaf node tasks
Project root node
The project root node is the top-level summary task for the project. All other project tasks are created under it. The
name of the root node is always set to the project name. The effort, dates, and duration of the root node are
summarized based on the values in the hierarchy below it. You can't edit the properties of the root node. You also
can't delete the root node.
Summary or container tasks
Summary tasks have sub-tasks or container tasks under them. They have no work effort or cost of their own.
Instead, their work effort and cost are a rollup of the work effort and cost of their container tasks. The start date of
the summary task is the start date of the container tasks, and the end date is the end date of the container tasks.
The name of a summary task can be edited, but scheduling properties (effort, dates, and duration) can't be edited.
If you delete a summary task, you also delete all its container tasks.
Leaf node tasks
Leaf node tasks represent the most granular work on the project. They have an estimated effort, resources,
planned start and end dates, and a duration.

Creating a task hierarchy


You can create a task hierarchy by using the following options:
Add task button
Indent task button
Outdent task button
Move up and Move down buttons
Accessibility and keyboard shortcuts
Add task
The Add task button lets you create a new task in the hierarchy. If you don't select a position, the task is inserted
at the end.
A schedule ID is assigned to every task. The schedule ID represents the task's depth and position in the hierarchy.
It uses outline numbering. For tasks in the first level under the project root node, a numbering scheme of 1, 2, 3,
and so on, is used. For tasks under the first level, a numbering scheme of 1.1, 1.2, 1.3, and so on, is used.
Indent task
When a task is indented, it becomes a child of the task that is directly above it. The schedule ID of the task is then
recalculated so that it's based on the schedule ID of its new parent and follows the outline numbering scheme. The
parent task is now a summary task or a container task. Therefore, it becomes a rollup of its child tasks.
Outdent task
When a task is outdented, it's no longer a child of the task that was its parent. The schedule ID is then recalculated
so that it reflects the task's updated depth and position in the hierarchy. The effort, cost, and dates of the previous
parent task are recalculated so that they don't include this task.
Move up and Move down
The Move up and Move down buttons change the position of a task within its parent hierarchy. Changes of this
type don't affect the task's effort, cost, dates, or duration. Only the task's schedule ID is affected. The schedule ID is
recalculated so that it reflects the task's new position in the parent's list of child tasks.
Accessibility and keyboard shortcuts
The Schedule grid is fully accessible and can be used with screen readers such as Narrator, JAWS, or NVDA. You
can move through the grid area by using arrow keys (as in Microsoft Excel), you can use the Tab key to advance
through the interactive UI elements, and you can use the Down arrow key, the Enter key, or the Spacebar to select
and invoke the drop-down menus. The column headers are also interactive. You can hide and show columns, use
the Tab key and arrow keys to move through the column headers, and use the action buttons on the toolbar. In
addition, you can use the following keyboard shortcuts:
Refresh: ALT+SHIFT+F5
Add: ALT+SHIFT+Insert
Delete: ALT+SHIFT+Delete
Move up/down: ALT+SHIFT+Up/Down arrows
Indent/Outdent: ALT_SHIFT+Left/Right arrows
Expand/Collapse Hierarchies: ALT+SHIFT+Plus/Minus keys

Task attributes
A task's name describes the work that must be completed. In PSA, the attributes that are associated with a task
describe the schedule of the task and its staffing requirements.
Schedule attributes
The Effort, Start date, End date, and Duration attributes define the schedule for the task.
Additional schedule attributes include:
Effort hours: Enter an estimate of the hours that are required to complete the task.
Duration: Specify the number of workdays that are required to complete the task.
Schedule ID: This automatically generated ID is used to order tasks in the hierarchy. Dependencies between
the tasks manage the actual order in which the tasks are worked on.
Staffing attributes
Staffing attributes are accessed through the Resources field in the schedule. You can either search for an existing
resource, or click Create and in the Quick Create pane, add a project team member as a new resource.
The Role, Resourcing Unit, and Position Name fields are used to describe the staffing requirements for the
task. These staffing attributes together with the task schedule are used to find available resources to do this task.
Role - Specify the type of resource that is required to do the task.
Resourcing unit - Specify the unit that resources for the task should be assigned from. This attribute affects the
cost and sales estimate for the task if the cost and bill rate for the resource are set based on resourcing units.
Position name – Enter a friendly name for the generic resource that serves as a placeholder for the resource that
will ultimately do the work.
The Resources field holds the position name of the generic resource or named resource when one is found.
The Category field holds the values that indicate a broader type of work that the task can be grouped into. This
field doesn't affect scheduling or staffing. It's used only for reporting.
Task dependencies
You can use the schedule in PSA to create predecessor relationships between tasks. The Predecessor field under
Tasks takes one or more values to indicate the tasks that a task depends on. When predecessor values are
assigned to a task, the task can start only after all the predecessor tasks have been completed. Because of the
dependency, the planned start date of the task is reset to the date when the predecessor tasks are completed.
The task mode has no effect on updates that are made to the start and end dates of predecessor/dependent tasks.
Task mode
The task mode determines the scheduling of leaf node tasks. PSA supports two task modes for every task:
automatic scheduling and manual scheduling.
Auto -scheduling
When task mode is set to Automatically Scheduled for a task, the task scheduling engine uses the scheduling
rules on task attributes to determine the schedule for the task.
Scheduling rules
By default, if a leaf node task doesn't have predecessors, its start date is set to the project's scheduled start date.
The duration of a leaf node task is always calculated as the number of working days between its start and end
dates. When a task is automatically scheduled, the scheduling engine follows these rules:
The start and end dates of the task must be working days, according to the project's scheduling calendar.
For any task that has predecessor tasks, the start date is automatically set to the latest end date of its
predecessors.
Effort is calculated by using this formula: Number of people × Duration × Hours in a standard workday in the
project calendar.
Manual scheduling
If the rules of automatic scheduling don't meet your requirements, you can set the task mode for the task to
Manually Scheduled. This setting stops the scheduling engine from calculating the values of other scheduling
attributes. Regardless of the task mode, if you set predecessors on tasks, you always affect the dependent task's
start date.
Project costs and revenue
3/7/2019 • 6 minutes to read • Edit Online

Applies to Project Service app version 3.x


Project estimates provide the financial view for work that is estimated and scheduled in the project schedule. The
Estimates tab on the Projects page shows the cost and revenue impact of the work that you’re planning. It also
provides information about many predefined dimensions.

Cost and sales values of the project


Price lists define the cost and bill rates for roles in a project. You can determine the cost and revenue impact of the
work, based on the roles that are associated with the position name and the named resource that is assigned to a
task. If there are tasks that don't have any assignments (generic or named), you can’t get cost or sales estimates.
Cost and sales values consider the date that is defined in the price lists.
Default cost price
Every project belongs to an organization. This organization is shown in the Contracting Unit field in the project.
The price list that is associated with the contracting unit is used to determine the unit cost price. To determine the
correct cost prices on roles for the date that is defined on estimate lines, search for the combination of role, unit,
and organizational unit in the cost price list.
So that their cost prices can be calculated, all tasks must be assigned to a resource. Any uwnassigned tasks will
have a cost price of 0.00.
If the combination of role, unit, and organizational unit doesn't return a cost price from the contracting unit's price
list, the system ignores the unit. Instead, it searches for the combination of just role and organizational unit. If a
cost price is found, conversion factors are used to convert it to the unit that you selected on the estimate line.
If the combination of role and organizational unit doesn't return a cost price, the system ignores the organizational
unit. Instead, it searches for the combination of role and unit to set the default price (after any conversion is
applied).
If the system doesn't find a price for the role, the cost price on the estimate line is set to a default value of 0.00. All
cost amounts on the project cost estimate lines are recorded in the currency of the contracting unit.

NOTE
By default, Microsoft Dynamics 365 stores cost amounts in your base currency. However, the cost amounts that are shown
on the Estimates tab are in the currency of the contracting unit.

Default sales price


The sales price list is determined by either the sales entity that the project is attached to or the project customer.
When a sales entity, such as opportunity, quote, or contract, is associated with the project, the sales entity's sales
price is determined by the price list that is associated with the quote or contract. If the quote or contract has a
custom price list, that price list is used as the default sales price list for project estimates. If there is no association
with sales entities, the default sales price list from the parameters is used as the project's default sales price list
matched by the customer currency that is defined on the project.
Each estimate line has a resourcing unit that is associated with it. The resourcing unit indicates the organizational
unit that resources are booked from to complete the task. To determine the sales price for the associated roles,
search for the combination of role, unit, and resourcing unit in the sales price list. If there are no assignments on
the task, the sales price for the task is 0.00.
If the combination of role, unit, and resourcing unit doesn't return a sales price from the sales price list, the system
ignores the unit. Instead, it searches for the combination of just role and resourcing unit. If a sales price is found,
conversion factors are used to convert it to the unit that you selected on the sales estimate line.
If the combination of role and resourcing unit doesn't return a sales price from the sales price list, the system
ignores the resourcing unit. Instead, it searches for the combination of role and unit to set the default price (after
any conversion is applied).
If the system doesn't find a price for the role, the sales price on the estimate line is set to a default value of 0.00.
The Estimates tab has a grid view that shows estimate lines. The grid includes columns for the unit, total cost
price, and total sales price, as shown in the following illustration.

Time-phased view of project estimates


The time-phased view of project estimates shows the estimate data from the grid view across the timeline, in a
time scale that you select. By default, the estimate data is pivoted on the Role dimension.
Allocating estimated effort based on the task mode
In the time-phased view, you distribute the total effort that is estimated for the task by allocating effort hours per
unit time period in the selected time scale. The task mode determines how effort is allocated across the duration of
the task. The two kinds of allocation are Even and Work hours–based.
Work hours-based allocation
In auto-scheduling task mode, the daily default hours for task resources are set at the full work hour rate. This
behavior applies when effort is allocated by splitting it across the duration of the task in the time-phased view. For
example, if you estimate that a task will be completed by one resource in the Day time scale, the effort that is
allocated per day won't exceed the work hours per day that are defined in the project calendar. Therefore, the effort
allocation always makes sure that the resources are estimated to be used for the full day.
Even allocation
In manually scheduled task mode, the work hours from the project calendar aren't used. Instead, the task schedule
is based on user input. For these tasks, the effort allocation per unit time period in the selected time scale doesn't
have any limiting factor. The total effort on the task is equally split and allocated for each unit time period in the
selected time scale. Therefore, the task mode that is defined on the task determines the effort distribution, or the
allocation of effort per unit time period in time-phased estimates.

Grouping and time-phasing options


The time-phased view shows the distribution of the effort, cost, and sales estimates on a daily, weekly, monthly, or
yearly basis. By default, the estimate data is pivoted on the Role dimension. However, you can use the Group By
option to pivot on two other dimensions: Category and Resource.
In both the grid view and the time-phased view, you can select which fields are shown. Totals for each time block
are shown at the bottom of the project. They show the total estimated effort, cost, and sales for the day, week,
month, or year. The default cost price and sales price are date-effective. In other words, they change for each
resource, based on the time-phased view that you select.

Expense estimates
The Add a New Expense Estimate button in the grid view lets you record any expenses that are incurred in the
project, but that aren't directly related to labor. You can record the expense estimates for a specific task or for the
entire project. Select expense categories and the tentative date when you expect to incur the expense. If the
associated cost price list and sales price list have default prices (or if markup percentages are defined for expense
categories), they are automatically entered on the estimate line when the association occurs.
Sales estimates and projects
3/7/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


During the sales process, Microsoft Dynamics 365 for Project Service Automation lets you create sales estimates
by linking a project to a sales quote. In this way, deterministic estimation can occur during the sales process, to
take advantage of project scheduling and estimation capabilities. If the sale goes through, the schedule that was
used for sales estimation purposes can be used as the basis for further refinement of the project plan.

Linking a project to a quote line


When you create a project-based quote line, you can create a new project or associate an existing project pn the
Quote Line page.

When you create a new project from the quote line details, you can take advantage of project templates. Project
templates are model projects that represent standard project plans and financial estimates that are typical in an
organization. They can also represent copies of project plans and estimates from past projects.

When you create the project from the quote, the project is automatically associated with the quote line.
Components of estimates in a project
A schedule lets you divide work into tasks, maintain a hierarchy of tasks, determine what resources are required to
complete a task, and assign an estimate of the effort that is required to complete a task.
You can define the work effort and schedule estimates by using the fields on the Schedule tab of the Project
page. Because a price list is associated with the project, financial estimates are calculated by using cost and sales
prices that are defined in the price list.

Importing estimates from a project into a quote


After you define project estimates, you can import them into the quote line. On the Quote Line Details page,
select Import from estimates on the ribbon to summarize project estimates by transaction type, role, or task
level.
Project progress and cost consumption
3/7/2019 • 4 minutes to read • Edit Online

Applies to Project Service app version 3.x


The need to track progress against a schedule varies by industry. Some industries track at a granular level,
whereas other industries track at a higher level. This topic shows how to schedule in Microsoft Dynamics 365 for
Project Service Automation to meet your organization's requirements.

Effort tracking view


The Effort tracking view tracks the progress of tasks in the schedule. It compares the actual effort hours that have
been spent on a task to the planned effort hours for that task. PSA uses the following formulas to calculate the
tracking metrics:
Progress percentage = Actual effort spent to date ÷ Planned effort for the task
Estimate to complete (ETC ) = Planned effort – Actual effort spent to date
Estimate at complete (EAC ) = Remaining effort + Actual effort spent to date
Projected effort variance = Planned effort – EAC
PSA shows a projection of the effort variance on the task. If the EAC is more than the planned effort, the task is
projected to take more time than was originally planned. Therefore, it's behind schedule. If the EAC is less than the
planned effort, the task is projected to take less time than was originally planned. Therefore, it's ahead of schedule.

Re-projecting effort
It's common for a project manager to revise the original estimates on a task. Project re-projections are a project
manager's perception of estimates, given the current state of a project. However, we don't recommend that project
managers change the baseline numbers, because the project baseline represents the established source of truth for
the project's schedule and cost estimate, and all project stakeholders have agreed to it.
There are two ways that a project manager can re-project effort on tasks:
Override the default ETC with a new estimate of the actual remaining effort on the task.
Override the default progress percentage with a new estimate of the true progress on the task.
Each of these approaches cause a recalculation of the task's ETC, EAC, and progress percentage, and the projected
effort variance on a task. The EAC, ETC, and progress percentage on the summary tasks are also recalculated, and
produce a new projection of effort variance.

Re-projection of effort on summary tasks


Effort on summary tasks or container tasks can be re-projected. Regardless of whether the user re-projects by
using the remaining effort or the progress percentage on the summary tasks, the following set of calculations
begins:
The EAC, ETC, and progress percentage on the task are calculated.
The new EAC is distributed down to the child tasks in the same proportion as the original EAC was on the task.
The new EAC on each of the individualt tasks down to the leaf node tasks is calculated.
The affected child tasks down to the leaf nodes have their ETC and progress percentage recalculated based on
the EAC value. This results in a new projection for the effort variance of the task.
The EACs of the summary tasks all the way to the root node are recalculated.
Cost tracking view
The Cost tracking view compares the actual cost that was spent on a task to the planned cost on a task.

NOTE
This view shows only labor costs and doesn’t include costs from the expense estimates.

PSA uses the following formulas to calculate the tracking metrics:


Percentage of cost consumed = Actual cost spent to date ÷ Planned cost for the task
Cost to complete (CTC ) = Planned cost – Actual cost spent to date
EAC = CTC + Actual cost spent to date
Projected cost variance = Planned cost – EAC
A projection of the cost variance is shown on the task. If the EAC is more than the planned cost, the task is
projected to cost more than was originally planned. Therefore, it's trending over budget. If the EAC is less than the
planned cost, the task is projected to cost less than was originally planned. Therefore, it's trending under budget.

Project manager’s re-projection of cost


When effort is re-projected, the CTC, EAC, percentage of cost consumed, and projected cost variance are all
recalculated in the Cost tracking view.

Project status summary


Tracking data in the Effort tracking and Cost tracking views shows the progress and cost consumption at the
project root node, summary tasks, and leaf node tasks levels. The Status section on the Project entity page
shows a summary of project-level status.

Status summary fields


The Overall project status field is an editable field that shows the overall status of the project. It uses color-
coding, such as green, yellow, and red, to indicate increasing risk. The Comments field lets the project manager
enter specific comments about the status. The Status updated on field is not editable and the value is a
timestamp that indicates when the status was last updated.
The Schedule performance and Cost performance fields are set from the tracking date. When the schedule and
cost variance for the root node in the Effort tracking view are positive, you can set these fields to Ahead. When
the schedule and cost variance for the root node are negative, you can set them to Behind.
Project templates
3/7/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


A project template is a predefined framework that helps you quickly and easily start a project. In Microsoft
Dynamics 365 for Project Service Automation, you can use a predefined template to create a new project with a
single click. As for projects, you must define the prerequisites for project templates. You must define a project
calendar for each project template, and roles and price lists must be predefined in the organization, so that the
components of the template have useful data.
A project template consists of three components: a schedule, project estimates, and project team members.

Schedule
A schedule in a project template has the same set of elements as a schedule in a project. You can create a task
hierarchy, associate roles with tasks, define schedule attributes, and set dependencies. A schedule in a project
template also supports task modes for each task. Therefore, it supports the scheduling engine. You must associate
a project calendar with the project. When you create a work schedule, there is no difference between a project
template and a project.

Project estimates
Project estimates in a project template work the same way as project estimates in a project. However, the cost and
sales prices are pulled from the default cost and sales price lists that are defined in the parameters.

Creating a project from a template


There are several ways to create a project from a project template:
When you create a project from a quote, you can select a project template in the Quick Create: Project dialog
box.
When you create a project by selecting New Project, the Project page appears before the record is saved. In
the Pick a Template field, select one of the predefined project templates in the organization.
Use Create Project from a Template on the Template Entity page.

Copying components of template to project


When you copy the components of a project template to a project, a few overrides can occur, depending on the
settings in the project.
Copying the schedule
When you copy the schedule from a project template, if the project has a different project calendar than the
template, work hours from the project's calendar are applied to the task schedule. In this way, the schedule is
adjusted to match the backing project calendar. Similarly, the first task on the schedule takes the project's start
date, and the schedule of the rest of the hierarchy is updated based on the duration and dependencies that are
specified in the template.
Copying project estimates
When you copy across project estimate lines, the price lists are updated. For the cost price list, these updates are
based on the owning unit of the project. For the sales price list, they are based on the customer. For projects that
are associated with a sales entity, the unit cost and sales prices are determined based on these price lists.
Copying a project team
When a project team is copied from a project template to a project, the generic resources are copied, together with
the skills and proficiencies that are defined in the template. Generic resource assignments are also maintained as
they were in the project template. Named resources aren't supported in project templates.
Project stages
3/7/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


AProject stages are updated to reflect the state of the project as it progresses. The default business process flow
automatically updates some stages the stages of project while others are manually updated by the project
manager.
The following stages are defined in the default BPF:
New
Quote
Plan
Deliver
Complete
Close

New
When you create a project, the project stage is set to New. If the project was created from a template, it might
have schedule, estimate, and team data. Otherwise, it's just an outline of the project, and the remaining
components must be entered.

Quote
When you associate a project with a quote, or when you create a project from a quote, the project stage is set to
Quote, and the estimated start and end dates are updated. While the project is in the Quote stage, the Sales tab
on the Project Entity page shows details of the quote.

Plan
When you win a quote that is associated with a project, and the project is moved to the Contract phase, the
project stage is updated to Plan. While the project is in the Plan stage, the Project Entity page shows details of
the contract.

Deliver
When the project plan is completed, and you're ready to start the project, the project manager should update the
project stage to Deliver to show that the project has started.

Complete
When the work for the project is completed, the project manager can update the stage to Complete. By updating
the project stage to Complete, the project manager indicates that the work is 100-percent completed, but that the
project is being kept open so that any pending time or expense entries can be recorded.

Close
When all transactions are recorded for the project, the project manager can update the stage to Close. At that
point, no transactions can be recorded, and the project is set to read-only.
Project settings
3/7/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


Use the following settings to access the project planning features in Microsoft Dynamics 365 for Project Service
Automation (PSA).

Work template
To create a project schedule, you create a project calendar template that defines the number of working hours per
day and any business closures. To create a project calendar template, you associate a work template with the
Calendar template field for the project. Follow these steps to create a work template.
1. In PSA, in the left navigation pane, click Resources.
2. On the Resources list page, open a user record, and then select Show Work Hours.

NOTE
Make sure that you allow pop-ups on the browser page. This lets you see the work hours set for the resource.

3. On the Monthly View tab, click Set Up. A list of three options appears:
New Weekly Schedule
Work Schedule for One Day
Time Off

4. Select New Weekly Schedule, and then set the options for this resource schedule. You can set a recurring
weekly schedule, daily hour parameters, business closures, and more.
5. Set the date range, select Save, and then click Close.
6. Go back to the Resources list page, and select the resource that you set the work hours for.
7. Select Set Calendar As to set the work template.
8. In the Work Template dialog box, enter a name for the work template, and then select Apply.
You can now associate the work template with a project calendar template.

Resource roles
The term resource role refers to the set of skills, competencies, and certifications that a person must have to
perform a specific set of tasks on a project. PSA lets you cost and bill a resource's time based on the role that the
resource is associated with. Every organization must set up these roles by using the left navigation on the Project
Service menu.
Every organization must set up these roles on the Active Resource Categories page. To open this page, in the left
navigation pane, select Resource Roles.

Price lists
Price lists let you set cost and sales prices for resource roles, expense categories, products, and other elements in
an organization. Before you set financial estimates for the work that must be delivered for a project, you should
create a backing cost and sales price list. In the parameters section, you should also set up a default cost and sales
price list that applies to all projects that are created in the organization. On the Active Project Parameters page,
make sure that you set up a default cost and sales price list.
Pricing and costing dimensions home page
1/24/2019 • 2 minutes to read • Edit Online

The dimensions that are used in human resources to set up pricing and costs fall into two categories:
People
Planned work
Because of this, there are two types of pricing dimension values available in Project Service Automation (PSA):
Option sets - Dimensions that are fixed enumerations for a set of values.
Entity-based values - Dimensions that can be a varied set of values.

Pricing dimensions
PSA ships with a default set of pricing dimensions. You can view these by going to Project Service > Parameters.
In the parameter record, on the Amount-based pricing dimensions tab, verify that the role,
msdyn_resourcecategory and resourcing organizational unit, msdyn_organizationalunit have the fields
Applicable to sales and Applicable to cost set to Yes. This will allow you to set up the price and cost for each
role and organizational unit combination.

IMPORTANT
If you have been the using out-of-the box fields of role and organizational unit as pricing dimensions prior to version 3 of
PSA, there will not be any observable change. You can continue to use Project Service as usual.

If you need to price or cost for your resources using additional attributes, you can create customized fields, entities,
and dimensions. For more information, see the following topics, however note that you must complete the
procedures in the order listed below:
Create custom fields and entities
Add custom fields to price setup and transactional entities
Set up custom fields as pricing dimensions
Update plug-in attributes to include new pricing dimensions

Pricing human resource time


How an organization prices human resource time is often an important strategic consideration that directly affects
the organization's profitability. Work with the finance teams and practice heads when your organization is ready to
identify how it wants to set up bill and cost rates for human resource time.
Other considerations for pricing include whether to re-use fields or entities that are not currently pricing
dimensions but apply as a pricing dimension for your organization. Fields like Transaction Category
(msdyn_transactioncategory) and Bookable Resource (bookableresource) are examples of candidate
dimensions.
You should also consider whether your pricing dimension should be a table or an option set. If you foresee changes
to the values of a dimension which will exceed 10 or 12 and you need additional attributes on these values, you
could create an entity rather than an option set. Maintaining an option set, such as adding or removing values,
requires an admin or developer whereas adding new rows to a table can be done by most users.
The following example shows bill rates that are set up based on the role and the resourcing org unit to which the
resource belongs. Cost rates are typically based on the salary band of the employee and the org unit that they
belong to. In this example, the bill rate and cost rate tables will look like the following.
Sample bill rates

ROLE ORG UNIT UNIT PRICE CURRENCY

Developer Contoso US Hour 200 USD

Developer Contoso India Hour 112 USD

Sample cost rates

SALARY BAND ORG UNIT UNIT PRICE CURRENCY

My company_Band1 Contoso US Hour 145 USD

My company_Band2 Contoso India Hour 67 USD


Create custom fields and entities
1/24/2019 • 2 minutes to read • Edit Online

Complete the following steps any time that you want to create a custom option set or entity on the PowerApps
platform.
The procedures in this topic should be completed using the web interface of Project Service Automation (PSA).

IMPORTANT
We recommend that you make all custom pricing dimension changes in a separate solution. This important best practice
provides flexibility in the future to update or remove changes as needed, will help with re-use of your work, and makes it
easier to port these changes to another instance. After you have made all of the required changes, export this solution as a
Managed solution and import it into other instances to reuse your pricing setup.

Create a custom solution for pricing dimensions


1. In PSA, click Settings > Solutions, and then click New to create a new solution.
2. Name the solution, <your organization name> pricing dimensions, enter the remaining required
information, and then click Save.

Create custom fields and option sets in the pricing dimension solution
A pricing dimension can be an option set or an entity. Both must be created in your pricing solution. The steps in
this procedure explain how to create entity-based dimensions and option set-based dimensions.
Entity-based dimensions
1. In PSA, click Settings > Solutions, and then double-click <your organization name> pricing dimensions.
2. In Solution Explorer, on the left navigation pane, select Entities.
3. Click New to create a new entity called Standard Title. Enter the remaining required information, and then
click Save.

Option set-based dimensions


You can create two option set-based dimensions. Use Resource Work Location to track the price of Home
location work and Onsite work and use Resource Work hours with values Regular and Overtime to apply a
markup when work is completed.
1. In PSA, click Settings > Solutions, and then double-click <your organization name> pricing dimensions.
2. In Solution Explorer, on the left navigation pane, select Option Sets.
3. Click New to create a new option set, enter the remaining required information, and then click Save.
Create data for entity-based dimensions
You can create data for entity-based dimensions manually, or by using Microsoft Excel import or service calls. Use
the steps in this procedure to create two standard titles, Systems Engineer and Senior Systems Engineer from
the entity-based dimension, Standard Title. If the data that you want to create is small, as in the following
example, you can use a standard form.
1. In PSA, click Advanced Find. Select the entity Standard Title and then click Results. All of the rows in the
Standard Title entity will be shown.
2. Click New. In the Name field, enter "Systems Engineer" and then click Save.
3. Close the form.
4. Repeat steps 1 - 3 to create another standard title for "Senior Systems Engineer".

Add all required PSA entities and related components to the Pricing
Dimension Solution
You will need to add the following Project Service entities to your pricing solution. Use the steps in this procedure
to make some important schema changes in the pricing solution so that the entities become aware of the new
pricing dimensions.
1. In PSA, click Settings > Solutions, and then double-click <your organization name> pricing dimensions.
2. In Solution Explorer, on the left navigation pane, select Add Existing > Entities.
3. In the Solution Components dialog box, select the following entities:
Actual
Bookable Resource
Estimate Line
Invoice Line Detail
Journal Line
Project Contract Line Detail
Project Team Member
Quote Line Detail
Role Price Markup
Role Price
Time Entry
NOTE
Make sure to include all forms and views for each of the entities selected.

4. When prompted to include any dependent entities for the entities selected above, click No.
Add custom fields to price setup and transactional
entities
1/24/2019 • 7 minutes to read • Edit Online

This topic assumes that you have completed the procedures in the topic, Create custom fields and entities. If you
haven't completed those procedures, go back and complete them and then return to this topic.
In this topic, the procedures will show you how to add the required custom field references to entities and to the
user interface (UI) elements such as forms and views.

Add custom pricing dimension fields


After custom fields and entities have been created, the next step is to make price setup and transactional entities
aware of any custom entities or option sets by creating reference fields. Depending on whether your pricing
dimensions list includes option set dimensions or entity dimensions or both, follow only the steps in Option set-
based custom pricing dimensions or Entity-based custom pricing dimensions, or both, respectively.
Option set-based custom pricing dimensions
When a custom pricing dimension is option set-based, add it as a field to key Project Service entities. In the
following procedure, Resource Work Location and Resource Work Hours are used as the option set-based
pricing dimensions. These must first be added as fields to the pricing entities, Role Price and Role Price Markup.
1. In Project Service Automation (PSA), click Settings > Solutions, and then double-click <your organization
name> pricing dimensions.
2. In Solution Explorer, on the left navigation pane, select Entities > Role Price.
3. Expand the entity Role Price and select Fields.
4. Click New to create a new field called Resource Work Location and select Option set as the field type.
5. Select Use an existing Option set, select the Resource Work Location option set, and then click Save.
6. Repeat steps 1 - 5 to add this field to the Role Price Markup entity.
7. Repeat steps 1 - 5 for the Resource Work Hours option set.

IMPORTANT
When you add a field to more than one entity, use the same field name across all of the entities.
In the sales and estimation phases for a project, estimates of the work effort that is required to complete Local
and Onsite work, in Regular hours and Overtime hours are used to estimate the value of the Quote/Project.
The fields Resource Work Location and Resource Work Hours will be added to the estimation entities, Quote
Line Detail, Contract Line detail, Project Team Member, and Estimate Line.
1. In PSA, click Settings > Solutions, and then double-click <your organization name> pricing dimensions.
2. In Solution Explorer, on the left navigation pane, select Entities > Quote Line Detail.
3. Expand the Quote Line Detail entity, and select Fields.
4. Click New to create a new field called Resource Work Location and select the field type, Option set.
5. Select Use an existing Option set and Resource Work Location, and then click Save.
6. Repeat steps 1 - 5 to add this field to the Project Contract line detail, Project Team Member, and Estimate
Line entities.
7. Repeat steps 1 - 6 for the Resource Work Hours option set.
For delivery and invoicing, completed work needs to be accurately priced to select whether it was performed
Local or Onsite, and whether it was completed during Regular hours or Overtime on the Project Actuals. The
Resource Work Location and Resource Work hours fields should be added to the Time Entry, Actual,
Invoice Line Detail, and Journal Line entities.
1. In PSA, click Settings > Solutions, and then double-click <your organization name> pricing dimensions.
2. In Solution Explorer, on the left navigation pane, select Entities > Time Entry.
3. Expand the Quote Line Detail entity, and then select Fields.
4. Click New to create a new field called Resource Work Location and select Option set as the field type.
5. Select Use an existing Option set, select the Resource Work Location option set, and then click Save.
6. Repeat steps 1 - 5 to add this field to the Actual, Invoice Line Detail, and Journal Line entities.
7. Repeat steps 1 - 6 for the Resource Work Hours option set.
This completes the schema changes required for option set-based custom dimensions.

Entity-based custom pricing dimensions


When the custom pricing dimension is an entity, you will add 1:N relationships between the dimension entity and
key Project Service entities. Using the Standard Title example from above, it is reasonable to expect that each
employee is assigned a standard title. SAs a result, you will need a 1:N relationship from Standard Title to
Bookable Resource, or a N:1 relationship if it were created from Bookable Resource to Standard Title.
1. In PSA, click Settings > Solutions, and then double-click <your organization name> pricing dimensions.
2. In Solution Explorer, on the left navigation pane, select Entities > Standard Title.
3. Expand the Standard Title entity and select 1:N Relationships.
4. Click New to create a new 1:N relationship called Standard Title to Bookable Resource. Enter the required
information, and then click Save.
The Standard Title will also need to be added to Project Service Pricing entities, Role Price and Role Price
Markup. This is also completed using 1:N relationships between the Standard Title and Role Price entities and
Standard Title and Role Price Markup entities.
1. In Solution Explorer, on the left navigation pane, select Entities > Standard Title.
2. Expand the Standard Title entity and select 1:N Relationships.
3. Click New to create a new 1:N relationship called Standard Title to Role Price. Enter the required
information, and then click Save.
4. Repeat steps 1 - 4 to create 1:N relationships between the Standard Title and Role Price Markup entities,
In the sales and estimation phases for the project, to price the Quote/Project, estimates of the work effort are
required for each standard title. This means that 1:N relationships from Standard Title to each of these estimation
entities in Project Service are needed:
Quote line Detail
Project Contract Line Detail
Project Team Member
Estimate Line
5. Repeat steps 1 - 5 to create 1:N relationships from Standard Title to Quote line Detail, Project Contract
Line Detail, Project Team Member, and Estimate Line.
In the Delivery and Invoicing phases, the work completed by each standard title must be accurately priced on the
Project Actuals. This means that there needs to be 1:N relationships from Standard Title to Time Entry, Actual,
Invoice Line Detail, and Journal Line entities.
6. Repeat steps 1 - 6 to create 1:N relationships from Standard Title to Time Entry, Actual, Invoice Line
Detail, and Journal Line entities.

Set up Dimension value defaulting using the mappings features of the platform
For Time Entry, it would be helpful to have the system default the standard title on the Time Entry from the
Bookable Resource that is recording the time entry. Use the following steps to add field mappings on the 1:N
relationship from Bookable Resource to Time Entry.
1. In Solution Explorer, on the left navigation pane, select Entities > Standard Title.
2. Expand the Standard Title entity and select 1:N Relationships.
3. Double-click Bookable Resource to Time Entry. On the Relationship page, click Use Field mappings.
4. Click New to create a new field mapping between the Standard Title field on the Bookable Resource entity
to the Standard Title reference field on Time Entry entity.

This completes the schema changes required for entity-based custom dimensions.

Add custom fields to forms, views, and business rules


After you have made all of the required schema changes, the next step is to make the fields visible in the UI by
adding the fields to the forms and views.
1. Open the form or the view. On the right navigation pane, select the field and drag it on to the form canvas.
2. If you are editing a view, use the right navigation pane, click Add fields, and in the Field listing dialog box,
select the fields that you need and click Ok.
The following table provides a comprehensive list of out-of-the-box forms and views, by entity, that will need to be
updated with the new fields. If you have any additional views or forms in your customizations on these entities,
add the new fields to those as well.

PROJECT SERVICE ENTITY FORMS THAT NEED THE NEW FIELD VIEWS THAT NEED THE NEW FIELD

Role Price • Information • Active Resource Category Prices


• Resource Category Price Associated
View

Role Price Markup • Information • Active Role Price Markup


• Role Price Markup Associated View
PROJECT SERVICE ENTITY FORMS THAT NEED THE NEW FIELD VIEWS THAT NEED THE NEW FIELD

Quote line detail • Project Information • Active Quote Line Detail


• Project Quick Create • Combined Quote Line Details
• Quote Line Detail associated view

Project Contract line detail • Project Information • Combined Contract Line Details
• Project Quick Create • Active Contract Line Details
• Contract Line Details Associated View

Project Team Member • Information • Active Project Team Members


• New Form • Project Team Members
• Project Team members associated
View

Time Entry • Information • My Time Entries By Date


• Create Time Entry • My time Entries for this week
• Time entries for approval

Journal Line • Information • Active journal lines


• Quick create • Journal Line associated view

Invoice Line Detail • Information • Active Invoice Line Details


• Quick create • Chargeable Invoice Transactions
• Complimentary Invoice Transactions
• Invoice Line Detail associated view
• Non-Chargeable Invoice Transactions

Actual • Information • Actual Associated view


• Active Actuals

Custom fields may also need to be added on business rules depending on what you have defined. One out-of-the-
box example is for the business rule Editability of Time Entry based on status. This rule defines which fields
need to be locked when the Time Entry is in a non-editable status such as Approved. Add fields to this business
rule so that the fields are locked for editing when the Time Entry is in a status other than Draft or Returned.
Set up custom fields as pricing dimensions
1/24/2019 • 4 minutes to read • Edit Online

Before you begin, this topic assumes that you have completed the procedures in the topics, Create custom fields
and entities and Add custom fields to price setup and transactional entities. If you haven't completed those
procedures, go back and complete them and then return to this topic.
This topic provides information about setting up custom pricing dimensions. In the Project Service web interface,
on the Parameters page, the Amount-Based Pricing Dimensions tab shows the records in the pricing
dimension entities. By default, Project Service installation creates 2 rows in the grid on this tab:
msdyn_resourcecategory (Role)
msdyn_OrganizationalUnit (Organizational Unit)

IMPORTANT
Do not delete these rows. However, if you do not need them, you can make them not applicable in a specific context by
setting Applicable to Cost, Applicable to Sales, and Applicable to Purchase all to No. Setting these attribute values to
No has the same effect of not having the field as a pricing dimension.

For a field to become a pricing dimension, it must be:


Created as a field in the Role Price and Role Price markup entities. For more information on how to do this,
see Add custom fields to price setup and transactional entities.
Created as a row in the Pricing Dimension table. For example, add pricing dimension rows as shown in the
following graphic.

Notice that Resource Work hours (msdyn_resourceworkhours) has been added as a markup-based dimension
and has been added to the grid on the Markup Based Pricing Dimension tab.
IMPORTANT
Any change to pricing dimension data in this table, existing or new, is propagated to the Project Service pricing business logic
only after the cache is refreshed. The cache refresh time may take up to 10 minutes. Allow that length of time to see the
changes in price defaulting logic that must result from changes to the Pricing Dimension data.

Attributes of the Pricing Dimensions table


The following sections provide information about the different attributes in the Pricing Dimensions table.
Pricing Dimension Name
This value should be the exact same as the schema name of the field that is added to the Role Price table for
custom pricing dimensions. For more information about adding fields to the Role Price table, see Add custom
fields to price setup and transactional entities.
Type of dimension
There are two types of pricing dimensions:
Amount-based dimensions: The dimension values from the input context are matched to the dimension
values on Role Price line and the price/cost is defaulted directly from the Role Price table.
Markup-based dimensions: These are dimensions where Project Service will adopt the following 3-step
process to get the price/cost
1. Project Service matches the non-markup-based dimension values from the input context to the Role
Price line to get the base rate.
2. Project Service matches all of the dimension values from the input context to the Role Price Markup
line to get a markup percentage.
3. Project Service applies the markup percentage from the second step to the base rate obtained from the
Role Price table in the first step to arrive at final price/cost.
The following table illustrates the calculation of price markups.

RESOURCE WORK
ROLE ORG UNIT WORK LOCATION STANDARD TITLE HOURS MARK UP

Contoso India Onsite Overtime 15

Contoso India Local Overtime 10

Contoso US Local Overtime 20

If a resource from Contoso India whose base rate is 100 USD is working onsite, and they log 8 hours of Regular
time and 2 hours of overtime on the time entry, the Project Service pricing engine will use the base rate of 100 for
the 8 hours to record 800 USD. For the 2 hours overtime, a markup of 15% will be applied to the base rate of 100
to get a unit price of 115 USD and will record a total cost of 230 USD.
Applicable to Cost
If this is set to Yes, it indicates that the dimension value from the input context should be used to match to the
Role Price and Role Price Markup when retrieving the cost and markup rates.
Applicable to Sales
If this is set to Yes, it indicates that the dimension value from the input context should be used to match to the
Role Price and Role Price Markup when retrieving the bill and markup rates.
Applicable to Purchase
If this is set to Yes, it indicates that the dimension value from the input context should be used to match to the
Role Price and Role Price Markup when retrieving the purchase price. Currently Project Service does not
support subcontracting scenarios, so this field is not used.
Priority
Setting the dimension priority helps Project Service pricing produce a price even when it can't find an exact match
between the input dimension values and the values from the Role Price or Role Price Markup tables. In this
scenario, Project Service will use null values for unmatched dimension values by weighing the dimensions in order
of their priority.
Cost Priority: The value of a dimension's cost priority will indicate the weight of that dimension when
matching against the setup of cost prices. The value of Cost Priority must be unique across dimensions that
are Applicable to Cost.
Sales Priority: The value of dimension's sales priority will indicate the weight of that dimension when
matching against the setup of sales prices or bill rates. The value of Sales Priority must be unique across
dimensions that are Applicable to Sales.
Update plug-in attributes to include new pricing
dimensions
1/24/2019 • 2 minutes to read • Edit Online

NOTE
If you are not using the Project Service Automation (PSA) Quoting and Contracting features, you can skip this topic.

This topic assumes that you have completed the procedures in the topics, Create custom fields and entities, Add
custom fields to price setup and transactional entities, and Set up custom fields as pricing dimensions. If you
haven't completed those procedures, go back and complete them and then return to this topic.
When a quote line detail is created on the Quote Line page for a project quote line, the system creates two
estimate lines in the background -- one line for the cost side of the estimate and one for sales side. This is the same
for project contract lines.
When you make a change to the quantity or a field on the cost side, that change is propagated to the sales side.
This is possible because of the following plug-ins that must be re-registered after a change to pricing dimensions.
PreOperationContractLineDetailUpdate - Updates msdyn_orderlinetransaction.
PreOperationQuoteLineDetailUpdate - Updates msdyn_quotelinetransaction.
The following steps walk you through the process of registering the plug-ins.
1. Open the PluginRegistrationTool and connect to your online instance.
2. Click Search and search for the plug-in to be updated.

3. After the plug-in is found, select it and then click Select on Main Form.
4. Select the step of the plug-in to be updated, right-click, and then select Update.
5. In the update window, click the ellipsis (...) in the filtering attributes.

6. Select the pricing attribute check boxes.


7. Click OK to close the page and then select Update Step.

8. Repeat this process for the second plug-in, PreOperationQuoteLineDetail - Update of


msdyn_quotelinetransaction.
9. Close the plug-in registration tool.
Use an existing field in Project Service as a pricing
dimension
1/24/2019 • 2 minutes to read • Edit Online

Project Service Automation (PSA) has many fields on the Actuals entity that can be used as pricing dimensions for
resource-based pricing in project organizations. For example, one common field is Bookable Resource. Smaller
companies that have fewer than 20-30 billable resources may find that having bill and cost rates specific to each
resource is a simpler approach. However, as the billable workforce grows, this could become unrealistic to maintain
as resource cost and bill rates begin to vary as resources get promoted, gain more experience, or acquire a different
skill sets. Because this approach still works for companies of a certain size, see the topic, Use a bookable resource
as a pricing dimension to understand how an existing Project Service field can be used as a pricing dimension.
Another example is that of transaction category. Customers and Implementers have used the transaction category
in PSA to classify work and use the field to price and cost based on the category of work. For more information,
see Use transaction category as a pricing dimension.
Use bookable resource as a pricing dimension
1/24/2019 • 3 minutes to read • Edit Online

This topic provides information about using a bookable resource as a pricing dimension. Before you begin, if you
have not already created a pricing dimension solution, you will need to create a new one. If you already have a
pricing dimension solution, then you can make your changes in that solution. If you have not created a new pricing
dimension solution for your organization, complete the procedures in the Create custom fields and entities topic.

Add bookable resource to forms and views


To make the fields visible in the UI in the pricing dimension solution, you will need to walk through all of the forms
and views of the key Project Service entities and add these fields to the forms and views of those entities. The
following table is a comprehensive list of the out-of-the box forms and views, listed by entity, that will need to be
updated. If there are any additional views or forms in your customizations on these entities, add the new fields to
those as well. Open Solution Explorer for the pricing dimension solution and then click Publish All
Customizations.

ENTITY FORMS VIEWS

Role Price • Information • Active Resource Category Prices


• Resource Category Price Associated
View

Role Price Markup • Information • Active Role Price Markup


• Role Price Markup Associated View

Quote line detail • Project Information • Active Quote Line Detail


• Project Quick Create • Combined Quote Line Details
• Quote Line Detail associated view

Project Contract line detail • Project Information • Combined Contract line Details
• Project Quick Create • Active Contract Line Details
• Contract Line Detail associated view

Project Team Member • Information • Active Project Team Members


• New Form • Project Team Members
• Project Team members associated
View

Time Entry • Information • My Time Entries By Date


• Create Time Entry • My time Entries for this week
• Time entries for approval

Journal Line • Information • Active journal lines


• Quick create • Journal Line associated view

Invoice Line Detail • Information • Active Invoice Line Details


• Quick create • Chargeable Invoice Transactions
• Complimentary Invoice Transactions
• Invoice Line Detail associated view
• Non-Chargeable Invoice Transactions
ENTITY FORMS VIEWS

Actual • Information • Actual Associated view


• Active Actuals

Set up bookable resource as a pricing dimension


1. In the web interface, go to Project Service > Settings > Parameters. On the Parameter page, on the
Amount-Based Pricing Dimensions tab, notice that the grid on the tab shows the records in the pricing
dimensions entity.
2. Add Bookable Resource to this list of pricing dimensions as msdyn_bookableresource.
3. Indicate the context in which the bookable resource works as a pricing dimension and set the Applicable to
cost and Applicable to sales values.
4. In the Dimension Type field, select Amount-based.
5. Select the cost and sales priority for the bookable resource. Typically, when included as a pricing dimension, a
bookable resource has the highest priority so setting this to 1 (or 0 depending on how you count the priority)
would ensure that behavior.

Set up pricing dimension field names


When the field name of a pricing dimension in the Role Price table is different from its field name in any of the
other entities where price defaulting needs to work, the pricing dimension record must be made aware of the
different names.
For bookable resource, the Project Team Members entity has a slightly different field name
(msdyn_bookableresourceid) from what it is called on the Role price entity (msdyn_bookableresource). The
pricing dimension record for msydn_bookableresource must be made aware of this.
1. To do this, double-click the row in the Pricing Dimensions grid to open the dimension page of
msdyn_bookableresource.
2. On dimension page, on the Related tab, click Pricing Dimension Field Names.

4. On the associated view that opens, click Add New Pricing Dimension Field Name.
This opens the New Pricing dimension field name page for msdyn_bookableresource.
5. Add msdyn_projectteam to the Entity Locigal Name field and msdyn_bookableresourceid to the Field
Name field. Save the record.
Use transaction category as a pricing dimension
1/24/2019 • 2 minutes to read • Edit Online

This topic shows how to use a transaction category as a pricing dimension. Before you begin, if you have not
already created a pricing dimension solution, you will need to create a new one. If you already have a pricing
dimension solution, then you can make your changes in that solution. If you have not created a new pricing
dimension solution for your organization, complete the procedures in the Create custom fields and entities topic.

Add transaction category to forms and views


To make transaction category visible in the UI in the pricing dimension solution, you will need to walk through all
the forms and views of the key entities and add these fields to the forms and views of those entities. The following
table is a comprehensive list of the out-of-the box forms and views, listed by entity, that will need to be updated
with the new fields. If there any additional views or forms in your customizations on these entities, add the new
fields to those as well.

ENTITY FORMS VIEWS

Role Price • Information • Active Resource Category Prices


• Resource Category Price Associated
View

Role Price Markup • Information • Active Role Price Markup


• Role Price Markup Associated View

Quote line detail • Project Information • Active Quote Line Detail


• Project Quick Create • Combined Quote Line Details
• Quote Line Detail associated view

Project Contract line detail • Project Information • Combined Contract line Details
• Project Quick Create • Active Contract Line Details
• Contract Line Detail associated view

Project Team Member • Information • Active Project Team Members


• New Form • Project Team Members
• Project Team members associated
View

Time Entry • Information • My Time Entries By Date


• Create Time Entry • My time Entries for this week
• Time entries for approval

Journal Line • Information • Active journal lines


• Quick create • Journal Line associated view

Invoice Line Detail • Information • Active Invoice Line Details


• Quick create • Chargeable Invoice Transactions
• Complimentary Invoice Transactions
• Invoice Line Detail associated view
• Non-Chargeable Invoice Transactions
ENTITY FORMS VIEWS

Actual • Information • Actual Associated view


• Active Actuals

Set up transaction category as a pricing dimension


1. In the web interface, go to Project Service > Settings > Parameters.
2. On the Parameters page, on the Amount-Based Pricing Dimensions tab, note the grid on the tab shows the
records in the Pricing Dimensions entity.
3. Add Transaction Category to this list and set the Applicable to Cost and Applicable to Sale fields set to
Yes.
4. In the Dimension Type field, select Amount-based, and then select the priority for Transaction Category
related to cost and sales.
Turn off a pricing dimension
1/24/2019 • 2 minutes to read • Edit Online

You may need to review and update your pricing strategy every few years. Any updates you make might require
that you turn off an existing pricing dimension and create a new one. For example, you may have previously priced
by Role, but now you have decided to price by Work Experience. This may require you to turn off Role as a
pricing dimension and create Work Expereince as a new pricing dimension.
Turning off a pricing dimension, regardless if it is out-of-the-box or custom, can be done by setting the Applicable
to Cost and Applicable to Sales fields of the Pricing Dimension to No.
However, when you do this, you might receive the following error message.

This error message indicates that there are price records that were previously set up for the dimension that is being
turned off. All Role Price and Role Price Markup records that refer to a dimension must be deleted before the
dimension’s applicability can be to set to No. This rule applies to both out-of-the-box pricing dimensions and any
custom pricing dimensions that you may have created. The reason for this validation is because Project Service has
a constraint that each Role Price record must have a unique combination of dimensions. For example, on a price
list called US Cost Rates 2018, you have the following Role price rows.

STANDARD TITLE ORG UNIT UNIT PRICE CURRENCY

Systems Engineer Contoso US Hour 100 USD

Senior Systems Contoso US Hour 150 USD


Engineer

When you turn off Standard Title as the pricing dimension, and the Project Service pricing engine searches for a
price, it will only use the Org Unit value from the input context. If the Org Unit of the input context is “Contoso
US”, the result will be non-deterministic because both the rows will match. To avoid this scenario, when you create
Role Price records, Project Service validates that the combination of dimensions is unique. If the dimension is
turned off after the Role Price records are created, this constraint can be violated. Therefore, it is required that
before you turn off a dimension, you delete all Role Price and Role Price Markup rows that have that dimension
value populated.
Quoting, pricing, and billing home page
3/7/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


Quoting, pricing, and billing are features that are used by both small and large organizations. By understanding
how these features work in Microsoft Dynamics 365 for Project Service Automation (PSA), organizations can
more easily customize configurations.
The following topics provide more information about the quoting, pricing, and billing functionality in PSA:
Sales process
Quote lines
Pricing
Business transactions
Analyzing project quotes
Organizational units
Unit groups and units
Multi-unit currency
Recording actuals
Sales processes
3/7/2019 • 6 minutes to read • Edit Online

Applies to Project Service app version 3.x


The sales processes that are used in a project-based organization differ from the sales processes that are used in a
product-based organization. This difference occurs because the sales cycles for project-based organizations are
longer and require customized estimation techniques to analyze and create quotes for each deal. Microsoft
Dynamics 365 for Project Service Automation (PSA) uses some of the same functionality that is used in the sales
process for Microsoft Dynamics 365 for Sales. Here are some examples:
A Lead entity is used to track the sales process.
Qualifying leads are tracked as opportunities. The sales process can also start with opportunity.
All related artifacts for an opportunity are accessed. These artifacts include the sales team, stakeholders,
probability, rating, sales stages, and business processes.
Multiple quotes are created for an opportunity.
A quote is marked Closed as Won to create a sales order. In PSA, the sales order is customized and is called a
project contract.
The following illustration shows a typical sales process in a project-based organization.

Estimating a sale
The value of a sale can be estimated based on projects that have previously been delivered and the complexity of
projects. For projects that involve extensions to previous projects, or projects where the vendor's expertise is high
and well-known work templates are used, you can use a simpler estimation process. More complex projects
usually have a longer purchase process. Therefore, there are more stages in the sales estimation process. Early in
the process, the sales team uses the input of account managers and subject matter experts (SMEs) to start to
create a high-level estimate for each distinct component of work that is quoted. These components of work are
represented by quote lines.
You can create a high-level estimate of the quote. Eventually, this high-level estimate will be replaced by a more
detailed estimate that is based on a project plan that you create by using the standardized project templates. These
templates help you build a schedule and determine monetary values on the quote and its components (quote
lines).
You can create multiple quotes for a project and group them under a single opportunity entity type. Eventually,
one of those quotes is marked Closed as Won, and a project contract or statement of work (SOW ) is created. A
project contract holds the contracted value for each component (contract line) that is accepted by the customer for
delivery. An SOW is usually created as a Microsoft Word document. All invoices that are sent to the customer over
the course of the project's delivery reference the project contract or SOW.
You can also create alternate quotes under one opportunity entity type or set up the system so that a project
contract is created when a quote is won. In this case, you can attach a Word document that represents the SOW to
the project contract record.

Configuring the sales process


You can use business process flows (BPFs) in Microsoft Dynamics 365 to configure your sales process. BPFs give
your sales staff a guided visual interface that they can use to move deals forward through the stages that are
typical for your company.
For example, your company might have the following six stages in the sales process:
1. Qualify
2. Estimate
3. Internal review
4. Contract
5. Deliver
6. Close
These six stages are represented by chevrons (>) that you select to expand in each opportunity entity type that you
create.
Your organization might use different entities to represent the same deal as it evolves. Early in the sales process, a
deal is represented by the Opportunity entity. As time passes and more details emerge, you might use high-level
estimates to create one or more quotes. If one of these quotes is reviewed by internal and customer stakeholders,
the Quote entity represents the deal. After the customer accepts the quote, a project contract or SOW represents
the deal. To support this behavior, BPFs are structured so that each stage in the process is linked to a different
database table.
The Qualify stage in the sales process can be backed by an Opportunity entity. The Estimate and Internal
Review stages can be backed by a Quote entity. The Contract, Delivery, and Close stages can be backed by a
Project Contract entity.
As you move deals through the stages, you're prompted to create the appropriate entity record to help and guide
you through the process. The stages can be conditional. For example, if you require an internal review of a quote
only if the quote uses a custom price list, you can configure that condition in the appropriate stage of the business
process. The Internal Review stage is then shown only for quotes that use a custom price list. For all other deals
and quotes, the Estimate stage is followed by the Contract stage.

NOTE
PSA has specific pages for the Opportunity, Quote, Order, and Invoice entities. You must create project service
opportunities, quotes, orders, and invoices using the project information pages for these entities. If you use another page to
create a record, you won't be able to open the record from the Project Information page. If you want to open a record
from the Project Information page, you must delete the record and recreate it using the Project Information page. On
the Project Information page, business logic for each of these entity types ensures that the Type field of the record is set
correctly, and all of the mandatory concepts are properly initialized.
Differences between PSA and Dynamics 365 for Sales
Although the sales process in PSA uses the basic capabilities of the sales process in Sales, it does have some key
differences because of variations in the business practices of project-based organizations. Here are some
examples:
Project quotes – In PSA, a quote is closed after a project contract is created from a quote. In Sales, you can
keep a quote open after you've won it. The reason for this difference is that a match between a quote and a
project contract is better for project-based organizations.
Activation and revisions – In PSA, activation and revisions aren't supported for project quotes. In Sales, a
quote can be locked to prevent additional edits.
Closing a quote as lost or won – In PSA, when a project quote is closed as won or lost, the opportunity
remains open. All other quotes on the opportunity are closed as lost. In Sales, when a quote is closed as won or
lost, the user is prompted to take an action on the opportunity. Depending on the user input, the underlying
opportunity might be closed or left open.

Tracking revisions to quotes and project plans in the sales cycle


In PSA, you can't track revisions that are made to a quote. Instead, you must mark the existing quote Closed as
Lost and then create a new quote. You can copy a quote or clone a project-based quote by using PSA.

Tracking comments and approvals of quotes and project contracts


You can manage the review and approval of quotes and project contracts by using the record wall and posts in
Dynamics 365. Your organization can create custom workflows and plug-ins to assign, redirect, escalate, and
manage notifications of review and approval work items.
Unit groups and units
3/7/2019 • 4 minutes to read • Edit Online

Applies to Project Service app version 3.x


Unit groups and units are basic entities in Microsoft Dynamics 365. A unit is a single unit of measure, and multiple
units can be grouped into unit groups. A unit group is sometimes referred to as a unit schedule in the Dynamics
365 user interface (UI).
Here are some examples of units and unit groups:
Unit group: Distance
Units: Mile, Kilometer, and so on.
Unit group: Time
Units: Hour, day, week, and so on.
When you set up multiple units in a unit group, you must also set up a conversion factor between them by
designating the first unit that you set up as the default or primary unit for the unit group.
For example, in a Time unit group, if you set up Hour as the first unit, the system designates Hour as the default
unit. If the next unit that you set up is Day, you must set up a conversion factor for Day to Hour. If you then add
Week as a third unit, you must set up a conversion factor for Week in terms of Day or Hour.
The following image shows an example setup for the Day unit, where the Quantity field shows the number of
hours that are in a day, and Week, where the Quantity field show the number of days that are in a week.

Using units and unit groups


Microsoft Dynamics 365 for Project Service Automation (PSA) uses units and unit groups to process estimates
and entries for both expenses and time.
For expenses, each expense category has a default unit group and unit. These values are entered as default values
on price list entries for expense categories.
For example, you have an expense category that is named Mileage. It has a unit group that is named Distance
and a default unit that is named Mile. If you set up the Distance unit group so that it has two units (Mile and
Kilometer), you can set two prices for the Mileage category on one price list: price per mile and price per
kilometer.

EXPENSE CATEGORY UNIT GROUP UNIT PRICING METHOD PRICE PER UNIT

Mileage Distance Mile Price per unit 10 USD

Mileage Distance Kilometer Price per unit 6 USD

When you enter an expense on a project, the system determines the price through the combination of the
category and the unit on the expense.

EXPENSE DESCRIPTION EXPENSE CATEGORY UNIT QUANTITY UNIT PRICE

Drive to client Mileage Mile 10 10 USD


location

For time, each price list header has a Default Time Unit field. The value is set when you create the price list
header. This unit is then used to set all role-based prices on that price list.
Estimate lines for the Time on Quote field can be expressed in any unit of time. However, estimate lines on
projects and time entries for projects can use only the Hour unit of time. If the unit on the time entry or estimate
line doesn't match the unit on the price list line for that role, the system converts the price to the units that are
defined in the project estimate or the project actual transaction.
The following example shows how PSA uses the unit group, units, and conversion factors.
Units
Unit group: Time
Units: Hour
Day - Conversion factor: 8 hours
Week - Conversion factor: 40 hours
Price list setup on Project A:
Name: UK sales prices 2016
Default time unit: Day
Currency: GBP

ORGANIZATIONAL
ROLE UNIT GROUP UNIT UNIT PRICE

Developer Time Day Contoso UK 800 GBP

Time entry
The following table shows the resulting sales-side transaction created by PSA for a three hour project.

UNBILLED
SALES
PROJECT TASK ROLE QUANTITY UNIT UNIT PRICE AMOUNT

Project A Design Developer 3 Hour 100 GBP 300 GBP

Time unit FAQ


Does PSA convert to different units in the case of expenses?
No. Unit conversion works only for time. For expenses, if the system can't find a price for the combination of the
expense category and unit, the price is set to 0.00 by default.
Why does PSA convert time units?
In some countries or regions, there is a legal requirement that bill rates be set up in days. Price negotiation and
discounting during the quote cycle is done by using day rates for each billable role. Schedule estimation and time
entry are done in hours. To support this difference in time units, PSA converts time units.
Can time units be changed on project estimates?
No. Schedule estimation is currently restricted to hours and can’t be changed.
Can units and unit groups be edited, deleted, and added?
Yes. With exception of the Time unit group and the Hour unit, all units can be deleted or edited, and new units can
be added. In PSA, the Time unit group and the Hour unit can't be deleted. However, they can be updated with a
translated text for the Name field.
Organizational units
3/7/2019 • 8 minutes to read • Edit Online

Applies to Project Service app version 3.x


In Microsoft Dynamics 365 for Project Service Automation (PSA), an organizational unit is a distinct group or
division in a professional services company that employs billable resources that have cost rates.
For professional services companies that employ technical resources in various practice areas or business lines,
the cost to fill a role in one practice area or business line might differ from the cost to fill a role in another practice
area or business line. The concept organizational units helps in this scenario by providing a way to group a set of
billable roles in a division of a company that has a distinct cost structure for these roles.

Key attributes and associations of organizational units


In PSA, an organizational unit in PSA has a specific currency and specific cost price lists.
The currency of an organizational unit is the primary currency that is used to track costs.
One or more cost price lists can be attached to each organizational unit. PSA puts the following limitations on the
price lists that can be attached to an organizational unit:
Price lists must be in the currency of the organizational unit
Price lists must be of cost price lists
In addition, there is an attribute for the organizational unit on the Resource entity. Each resource can be assigned
to one organizational unit.

Roles of organizational units


The organizational unit plays two roles in PSA:
Contracting unit – The organizational unit that represents the company group or division that is primarily
responsible for winning the sale and managing the delivery of work and services to the customer. The
contracting unit is identified by the Contracting Unit field in the header section of the Opportunity, Quote,
Project Contract, and Project pages.
Resourcing unit – The organizational unit that a resource belongs to or is assigned to. This organizational unit
can provide its resources for some roles on statements of work (SOWs) and projects that are owned by the
contracting unit.
Organizational unit FAQs
Here are some of the most frequently asked questions about organizational units.
How is the Organizational Unit entity in PSA related to the Organization entity that already exists in Dynamics
365?
The Organization entity in Microsoft Dynamics 365 represents the name of a global Dynamics 365 instance. This
name is usually the name of the global enterprise.
The Organizational Unit entity represents a group or division in the global enterprise. This group or division has a
set of roles and a cost price list for those roles, and those roles and price list differ from the roles and price list of
other groups or divisions in the enterprise.
When PSA is installed, a default organizational unit is created based on the organization. All existing resources are
assigned to the default organizational unit. If any new Active Directory users or resources are imported into
Dynamics 365, the user import process assigns them to the default organizational unit in PSA.
How does the organizational unit entity differ from the business unit entity?
In Dynamics 365, the Business Unit entity is a security construct. The association of a user with a business unit
determines the entities and entity records that the user has access to. It also determines the permissions (Create,
Read, Write, Delete, Append, Append To, Assign, or Share) that the user has for those entity records.
The Organizational Unit entity represents a company group or division that has distinct cost rates for employees
that are assigned to it. The association of a resource with an organizational unit determines the resource's cost to a
project engagement.
When you implement Dynamics 365, optimize security authorization for the hierarchy of business units and the
assignment of users to business units. Assign all users who must typically access the same set of records to the
same business unit. The organizational unit has no effect on security authorization or access.
Example of organizational units and business units
Contoso, Ltd. has a thriving Microsoft technology practice. Prakash and Tricia are both C# developers, but Tricia is
in the United States, whereas Prakash is in India. Most of the project engagements require resources from
Contoso India and Contoso US, and Prakash and Tricia require the same level of security access to projects in this
practice area. However, the cost of developers from Contoso India differs significantly from the cost of developers
from Contoso US.
Here is an optimal way to design for this scenario by using Dynamics 365 and PSA.
1. Create the Microsoft technology practice as a business unit, and associate Prakash and Tricia with it. In this way,
you help guarantee that both employees have the same level of security access to any projects in that practice
area. They both will be able to check progress and report time, expenses, and task updates.
2. Create two organizational units to hel guarantee that the cost to the project is correctly reflected.
3. Associate Tricia wtih Contoso US and associate Prakash with Contoso India.
4. Assign appropriate cost price lists to both organizational units. TIn this way, you help guarantee that the costs
that are recorded on the project for Prakash and Tricia accurately reflect the difference in costs between
Contoso US and Contoso India.
Are organizational units related to sales territories in Dynamics 365?
There is no association or relationship between sales territories and organizational units. A sales territory is
typically a geographical area where sales occur. A sales price list can be associated with each sales territory.
An organizational unit is an internal group or division in the company that tracks costs for a set of roles that it sells
to other divisions or to external customers.
Example of organizational units and sales territories
Contoso, Ltd. has two development centers: Contoso US and Contoso India. Costs of resources differ greatly
between these two development centers.
Contoso sells its IT services in many international markets, such as Latin America, North America, Asia-Pacific,
Western Europe, and the Middle East. Bill rates for the same project roles can vary widely across these markets.
Contoso US and Contoso India should be set up as organizational units, and each organizational unit should have
its own cost price list. Asia-Pacific, Latin America, North America, Western Europe, and the Middle East should be
set up as sales territories, and each sales territory should have its own sales price list.
Why is there a restriction on the association of price lists with organizational units?
Sales pricing is usually unique to the geographical areas or markets where services are sold. Internal divisions of a
company don't usually have their own sales pricing for the same type of services. However, internal divisions have
a different cost of goods sold (COGS ), depending on the skills of the people that they employ and the labor
conditions of the region where they operate. Because organizational units are modeled as internal divisions of a
company, they can have only cost price lists.
Why can’t we associate sales price lists to organizational units?
In PSA, sales price lists can be associated with customers and sales territories. Transactional entities like
Opportunity, Quote, Project Contract, and Project use sales price lists that are attached to the customer account or
the sales territory to determine bill rates and potential revenue on the project engagement.
Cost price lists are associated with organizational units. Transactional entities like Opportunity, Quote, Project
Contract, and Project use cost price lists that are attached to the contracting unit to determine costs to a project
engagement.
Are organizational units hierarchical in PSA?
No. In the current release of PSA, organizational units are not hierarchical. This means that you can’t:
Configure a pattern for defaulting cost prices that traverses up a hierarchy.
Report revenue or cost rolled up at different levels of the organizational unit hierarchy.
We're a big multinational firm with a complex, multilevel hierarchy of cost centers, divisions, and billing offices.
How can we make the best use of the organizational unit concept in this version of the Project Service app?
When you have a complex hierarchy of cost centers, divisions, billing offices, etc., set up the leaf nodes of that
hierarchy as distinct organizational units. The following example shows a typical hierarchy:
Contoso India
SAP Practice
Technical Consultants
Functional Consultants
Microsoft Technology Practice
Technical Consultants
Functional Consultants
Contoso US
SAP Practice
Technical Consultants
Functional Consultants
Microsoft Technology Practice
Technical Consultants
Functional Consultants
If your hierarchy is similar, you must set it up as a flat list, as shown here:
Contoso India - SAP Practice - Technical Consultants
Contoso India - SAP Practice - Functional Consultants
Contoso India - Microsoft Technology Practice Functional Consultants
Contoso India - Microsoft Technology Practice Functional Consultants
Contoso US - SAP Practice - Technical Consultants
Contoso US - SAP Practice - Functional Consultants
Contoso US - Microsoft Technology Practice - Technical Consultants
Contoso US - Microsoft Technology Practice - Functional Consultants
We're a small professional services company that operates as only one division. How can we best use the
organizational unit concept in the current version of PSA?
If your company operates as one unit that has one cost price list, you don't have to set up any organizational units.
During PSA installation, Dynamics 365 creates one default organizational unit that has the same name as the
organization. By default, all users are assigned to this organizational unit. Whenever the system requires that an
organizational unit be selected, this organizational unit is selected by default.
When a project is created from a quote or project contract line, the default contracting unit comes from the
quote or project contract. If a project is created before sales entities such as quote or project contract, what is
the default contracting unit?
When a project is created on its own, the default contracting unit of the project is based on the user who creates it.
That user is also the default project manager. If the project is mapped to a sales entity such as a quote or project
contract, the contracting unit on the project is based on the sales entity instead. In this case, project estimates
might be recalculated, because the cost price list is used to calculate the cost estimate changes if the contracting
unit is changed. The sales price list is used to calculate the sales estimates that will be changed so that they are in
sync with the project price list on the quote.
The Contracting Unit and Currency fields on the project are locked for editing, because they must be in sync
with the values on the sales entity (quote or project contract) that the project is mapped to.
Quotes and quote lines
3/7/2019 • 8 minutes to read • Edit Online

Applies to Project Service app version 3.x


In Microsoft Dynamics 365 for Project Service Automation (PSA), there are two types of quotes: project quotes
and sales quotes. The two types differ in the following ways:
On a sales quote, there is only one grid for line items. On a project quote, there are two grids for line items: one
for project lines and one for product lines.
A sales quote supports activation and revisions. A project quote doesn’t support those processes.
You can attach multiple orders to a sales quote. You can attach only one project contract to a project quote.
You can win a sales quote and keep the related opportunity open. After a project quote is won, the related
opportunity is closed.
A sales quote doesn't include some fields and concepts that are included on a project quote has fields. The
fields include Contracting Unit, Account Manager, and Bill to Contact Name.
Sales quotes and project quotes are also identified by an option set–based field that is named Type. For a sales
quote, this field has the value Item -based. For a project quote, it has the value Work-based.
This topic will focus on the details of project quotes.
A project quote in PSA can have multiple line items or quote lines. In fact, a project quote has two grids for line
items. One grid is for project-based lines that allow for detailed estimations. The other grid is for product-based
lines that use a simple unit price and quantity-based approach.
Project-based – The amount (quoted value) is determined after you estimate how much work is required. You
can estimate work at a high level, or you can estimate it directly as line details below each quote line. Finally,
you can estimate work based on ground-up estimates, by using a project and project plan. Project-based quote
lines are found only in project-based quotes that are created by using PSA. This type of quote line is a
customized form of the write-in quote lines that are available in Microsoft Dynamics 365 for Sales.
Product-based – The amount (quoted value) is determined based on the quantity of units that is sold and the
product's unit sales price. The product on a product-based line can come from a product catalog in Sales, or it
can be a product that you define. This type of quote line is also available on project-based quotes that are
created by using PSA.
The amount on a quote is the total across the product-based lines and the project-based lines.

NOTE
Quotes and quote lines aren't required in PSA. You can start the project process with a project contract (sold project).
However, an opportunity is always required, regardless of whether you start with a quote or a project contract.

Project-based quote lines


A project-based quote line in PSA has the following billing methods:
Time and material
Fixed price
Time and material
The Time and material billing method is based on consumption. When you select this billing method, the
customer is invoiced as the project incurs costs. Invoices are created on a date-based periodic frequency. During
the sales process, the quoted value of a time-and-material component gives only an estimate of the final cost to
the customer. The vendor doesn't commit itself to completing the project at exactly the quoted value. Time-and-
material components increase the customer's risk. Customers might want to negotiate additional not-to-exceed
clauses to minimize their risk. PSA doesn't support setting not-to-exceed clauses.
Fixed price
In the Fixed price billing method, a vendor commits itself to delivering the project at a fixed cost to the customer.
The customer is billed the quoted value of the fixed-price quote line, regardless of the costs that the vendor incurs
to deliver that quote line. The fixed-price quote line value is billed in one of the following ways:
As a lump-sum amount at the start or end of the project, or when a project milestone is reached.
At a date-based frequency of equal installments of the fixed value on the quote line. These installments are
known as periodic milestones.
In installments that have a monetary value that is aligned with the progress of work or specific milestones that
are achieved on the project. In this case, the value of each installment can differ, but they must all add up to the
fixed value on the quote line.
PSA supports all three types of invoice schedules for fixed-price quote lines.

Transaction classification
Professional service organizations typically quote and invoice their customers by classification of costs. In PSA,
costs are represented by the following transaction classifications:
Time – This classification represents the cost of labor or human resources' time on a project.
Expense: – This classification represents all other kinds of expenses on a project. Because expenses can be
broadly classified, most organizations create subcategories, such as travel, car rental, hotel, or office supplies.
Fee – This classification represents miscellaneous overhead, penalties, and other items that are charged to the
customer.
Tax – This classification represents tax amounts that users add while they enter expenses.
Material transaction – This classification represents actuals from product lines on a confirmed project
invoice.
Milestone – This classification is used by the fixed-price billing logic in PSA.
One or more of these transaction classifications can be associated with each quote line. After a quote is won, the
mapping between transaction classification and quote line is transferred to the contract line.
For example, a quote might contain the following two quote lines:
Consulting work that uses a Time and material billing method where time and fee transaction classifications
are applicable. For example, all time and fee transactions for the Dynamics AX Implementation example
project are invoiced to the customer based on the time and materials that are used.
Related travel expenses that use a Fixed price billing method. For example, all travel expenses for the
Dynamics AX Implementation example project are invoiced at a fixed monetary value.

NOTE
The combination of the project and transaction classifications of Time, Expense, and Fee that are associated with a quote
line or contract line must be unique. If the same combination of project and transaction class is associated with more than
one contract line or quote line, PSA won't work correctly.

Billing types
The Billing Type field defines the concept of chargeability in PSA. It's an option set that has the following
possible values:
Chargeable – The cost that is accrued by this role/category is a direct cost that drives project execution, and
the customer will pay for this work. The payment can be administered as a time-and-material or fixed-price
arrangement. However, the employee who spends this time will receive the corresponding credit for his or her
billable utilization.
Non-chargeable – The cost that is accrued by this role/category is considered a direct cost that drives project
execution, even though the customer doesn't recognize this fact and won't pay for this work. The employee
who spends this time won't be credited with billable utilization for it.
Complimentary – The cost that is accrued by this role/category is considered a direct cost that drives project
execution, and the customer recognizes this fact. The employee who spends this time will be credited for
billable utilization for it. However, this cost isn't charged to the customer.
Not available – The costs that are incurred on internal projects that don't require revenue tracking are tracked
by using this option.

Invoice schedule
An invoice schedule is a series of dates when invoicing for a project occurs. You can optionally create an invoice
schedule on a quote line in PSA. Each quote line can have its own invoice schedule. To create an invoice schedule,
you must provide the following attribute values:
A billing start date
A delivery date that represents the billing end date on the project
An invoice frequency
PSA uses these three attribute values to generate a tentative set of dates to establish invoicing on.

Invoice frequency
Invoice frequency is an entity that stores attribute values that help express the frequency of invoice creation. The
following attributes express or define the Invoice frequency entity:
Period - Monthly, biweekly, and weekly periods are supported.
Runs per period - For weekly and biweekly periods, you can define only one run per period. For monthly
periods, you can define between one and four runs per period.
Days of run – The days when invoicing should be run. You can configure this attribute in two ways:
Weekdays - For example, you can specify that invoicing is run every Monday or every second Monday.
Customers who must set invoicing to run on a working day might prefer this kind of configuration..
Calendar days - For example, you can specify that invoicing is run on the seventh and twenty-first days
of every month. Some organizations might prefer this kind of configuration, because it helps guarantee
that invoicing in run on a fixed schedule every month.
Invoice schedule for a fixed-price quote line
For a fixed-price quote line, you can use the Invoice Schedule grid to create billing milestones that equal the
value of the quote line.
To create billing milestones that are equally divided, select an invoice frequency, enter the billing start date on
the quote line, and select Requested Completion Date for the quote in the Summary section of the quote
header. Then select Generate Periodic Milestones to create equally split milestones based on the selected
invoice frequency.
To create a lump-sum billing milestone, create a milestone, and then enter the quote line value as the milestone
amount.
To create billing milestones that are based on specific tasks in the project plan, create a milestone, and map it to
the project's schedule element in the billing milestone UI.
Product-based quote lines
3/7/2019 • 3 minutes to read • Edit Online

Applies to Project Service app version 3.x


Microsoft Dynamics 365 for Project Service Automation (PSA) uses the capabilities of the Microsoft Dynamics
365 product catalog to create product-based quote lines. Product-based quote lines can be "write-in" lines, or they
can be items from the product catalog.

Product catalog
The products in a Dynamics 365 product catalog have a default unit and unit group. If several products share the
same set of attributes, you can create a product family that also has those attributes. All the products in one
product family inherit the same set of attributes.
For example, a company sells subscription licenses for a variety of software. All subscription software has the
following two attributes:
Number of users
Subscription duration (in months)
A good way to maintain this type of catalog is to create a product family that is named Subscription Software,
and that has Number of users and Subscription duration as attributes. You can then add individual products,
such as Dynamics 365 for Sales or Dynamics 365 for Field Service to the Subscription Software product
family.

Adding product catalog items to a project quote


Project quote and project contract pages have sections for two types of lines: project-based lines and product-
based lines. For product-based lines, Dynamics 365 is used to add items from a product catalog to a quote. The
drop-down list on the quote line or project contract line includes all the products and units in the product price list
that is attached to the quote or project contract. You can also add products that aren't part of quote's product price
list.
Additionally, you can select products from other price lists, or you can select products directly from the product
catalog. When you select products directly from a product catalog, the default price list of that product is used to
get the product's sales price. If a default price list isn't set, the price is set to 0 (zero).
If a quote line is based on a product catalog, you can override the sales price directly on the quote line. Note that a
quote line in Dynamics 365 has a Pricing field. Two values are available:
Override pricing
Use default
If you set this field to Override pricing, Dynamics 365 doesn't set a default price. You must enter a price for the
product on the quote line. If you set this field to Use default, Dynamics 365 uses the default sales price and locks
the field to prevent editing.
After you install PSA, default sales prices are entered on the product-based lines on a quote. The Pricing field is
then set to Override pricing so that you can edit the default price on the quote lines.
Quantity factors for products
PSA uses quantity factors to support the sale of subscription-based products. For subscription-based products, the
quantity on the quote or project contract line is expressed as the number of user months.
Usually, the price of subscription software is stored in the catalog as the price per user per month. However, you
can use other time descriptions instead. During the sales process, the price on the quote line is usually the per-user,
per-month price that was negotiated and discounted by the IT sales agent. Each deal has a different number of
users and a different number of subscription months. The quantity that is used to compute the amount of the
quote line is a product of the number of users and the number of subscription months.
To support this type of sale, PSA introduced the concept of quantity factors. Quantity factors rely on the product
attributes in Dynamics 365. When you configure specific properties for a product, PSA lets you flag a subset of
those properties, or all the properties, as quantity factors.
PSA validates that only numeric properties or product properties that have a numeric data type are flagged as
quantity factors. When a product that quantity factors are configured for is added to a quote line, the Quantity
field on the quote line becomes a read-only field. After you enter values for product properties that are quantity
factors, PSA computes the quantity of the quote line.
For example, Dynamics 365 might have the following properties:
No of users - The number of users
No of Months - The number of subscription months
Product SKU
Tne No of Users and No of Months properties can be flagged as quantity factors by editing the properties of the
product line.
Project pricing
3/13/2019 • 7 minutes to read • Edit Online

Applies to Project Service app version 3.x


Microsoft Dynamics 365 for Project Service Automation (PSA) extends the Price list entity in Microsoft Dynamics
365 for Sales.

Key entities
A price list includes information that is provided by four different entities:
Price List - This entity stores information about context, currency, date effectivity, and time unit for pricing
time. Context shows whether the price list is expresses cost rates or sales rates.
Currency - This entity stores the currency of prices on the price list.
Date - This entity is used when the system tries to enter a default a price on a transaction. PSA pricing selects
the price list that has date effectivity that includes the date of the transaction. If PSA pricing finds more than
one price list that is effective for the transaction date is attached to the related quote, contract, or organizational
unit, then no price is defaulted.
Time - This entity stores the unit of time that prices are expressed for, such as daily or hourly rates.
The Price list entity has three related tables that store prices:
Role Price - This table stores a rate for a combination of role and organizational unit values and is used to set
up role-based prices for human resources.
Transaction Category Price - This table stores prices by transaction category and is used to set up expense
category prices.
Price List Items - This table stores prices for catalog products.

The price list is a rate card. A rate card is a combination of the Price List entity and related rows in the Role Price,
Transaction Category Price, and Price List Items tables.
Resource roles
The term resource role refers to a set of skills, competencies, and certifications that a person must have to perform
a specific set of tasks on a project.
Human resources time is usually quoted based on the role that a resource fills on a specific project. For human
resource time, PSA supports costing and billing that are based on resource role. Time can be priced in any unit in
the Time unit group.
The Time unit group is crated when PSA is installed. It has a default unit of Hour. You can't delete, rename, or edit
the attributes fo teh Time unit group or the Hour unit. However, you can add other units to the Time unit group.
If you try to delete either the Time unit group or the Hour unit, you might cause failures in the PSA business
logic.

Transaction categories and expense categories


Travel and other expenses that project consultants incur are usually billed to the customer. PSA supports pricing of
expense categories by using price lists. Airfare, hotel, and car rental are examples fo expense categories. Each price
list line for expenses specifies pricing for a specific expense category. For pricing of expense categories, PSA
supports the following three pricing methods:
At cost - The expense cost is billed to the customer, and no markup is applied.
Markup percentage - The percentage over the actual cost is billed to the customer.
Price per unit - A billing price is set for each unit of the expense category. The amount that is billed ot the
customer is calculated based on the number of expense units that the consultant reports. Mileage uses the
price-per-unit pricing method. For example, the mileage expense category can be configured for 30 US dollars
(USD ) per day or 2 USD per mile. When a consultant reports mileage on a project, the amount to bill is
calculated based on the number of miles that the consultant reported.
Project sales pricing and overrides
For project quotes and contracts, a project price list has a different price override pattern than a product price list.
On a product catalog–based quote line, you can override the price to roles and categories directly on the quote
line, because each quote line points to exactly one catalog item. However, on a project-based quote line, you can't
override the price to roles and categories directly on the quote line. To support the two distinct override patterns,
PSA has introduced a new price list association, the project price list.

NOTE
We recommend that you have a separate price list for your project resources and your catalog items, because of the
behavior differences between the two when you override pricing.

Each of the following entities can have one or more associated sales price lists for project pricing:
Customer (account)
Opportunity
Quote
Project Contract
The association of these entities with a price list is indicated by the project price lists. You can associate one or
more price lists with the Customer, Opportunity, Quote, and Project Contract sales entities.
A default project price list isn't automatically entered on a customer record. However, you can manually attach a
project price list to the customer record. Nevertheless, you should manually attach a project price list only when
you have a custom pricing agreement with the customer.
When a project price list is attached to a sales entity, PSA validates the following information:
The price list las a context of Sales.
The price list currency matches the customer currency.
On a project contract, PSA uses the following order of precedence to automatically set related project price lists:
1. Quote
2. Opportunity
3. Customer
4. Global settings for PSA
When a project price list is entered by default, PSA validates that the currency matches the customer’s currency,
and that the default price lists that have been entered have a context of Sales.
You can associate multiple project price lists with the Customer, Opportunity, Quote, and Project Contract entities.
This capability supports date-specific default prices for a long-running project contract, where you might require
more than one price list to account for price updates that occur because of inflation. However, if the price lists that
you associate with the Customer, Opportunity, Quote, or Project Contract entity have overlapping date effectivity,
the default prices might be incorrect. Therefore, you should make sure that project price lists that have
overlapping date effectivity aren't associated with those entities.
Deal-specific price overrides
In PSA, you can create deal-specific overrides for selected prices on project price lists that are entered by default
on a quote or project contract.
By default, a project contract always gets a copy of the master sales price list instead of a direct link to it. This
behavior helps guarantee that price agreements that are made iwth a customer for a statement of work (SOW )
don't change if the master price list is changed.
However, on a quote, you can use a master price list. Alternatively, you can copy a master price list and edit it to
create a custom price list that applies only to that quote. To create a new price list that is specific to a quote, on the
Quote page, select Create custom pricing. You can access the deal-specific project price list only from the quote.
When you create a custom project price list, only the project components of the price list are copied. In other
words, a new price list created as a copy of the existing project price list that is attached on the quote, and this new
price list has only related role prices and transaction category prices.

Tracking costs
PSA tracks costs for the use of human resource time on projects. It also tracks costs for other expenses that are
incurrred during hte project, such as travel expenses.
Like bill rates, cost rates for human resources are also set up using price lists. Here are the main differences in the
behavior of the cost price list and sales price list:
The cost rate of a resource can’t be overridden on a specific project, contract, or quote. However, bill rates
can be overridden on a per-deal basis if changes are made that are specific to the nature of the deal.
The following order is used to resolve a cost price list:
1. The cost price list that is attached to the organizational unit.
2. The cost price list that is attached to the project service parameters. Because cost price lists in many
different currencies can be attached to project service parameters, PSA does a currency match between
the currency of the contracting organizational unit of the project, contract, or quote, and the currency of
the cost price list.
3. For expenses, the at-cost and markup-over-cost pricing methods don’t apply to cost price lists. Even if
these pricing methods are used on cost price list lines to set up transaction category costs, the system
ignores them, and no default cost price is entered.
Product catalog pricing
3/7/2019 • 3 minutes to read • Edit Online

Applies to Project Service app version 3.x


Microsoft Dynamics 365 for Product Service Automation (PSA) uses price lists and price list item entities to
support product catalog pricing. For the most part, PSA uses this functionality for catalog-based lines on project
quotes and project contracts.
For project-based lines, a contract represents the deal after it was won. Because the process of negotiation usually
precedes the win, the pricing that is attached to the quote is always copied as-is to a new price list and attached to
the contract. This new price list can't be changed outside the scope of the contract. This limitation helps protect the
rate card that was negotiated from any price changes that occur in the master price list.
Products should be set up so that they have default cost and price lists in the product catalog. You must use the list
price, standard cost, and current cost to configure default cost and list prices. The default list prices are used on a
quote line or a project contract line only when the system can't find a price list line for that product in the product
price list for the quote or project contract.
The cost price of product catalog lines can be changed between quotes. This capability is important, because if you
don't accurately track costs, you can't determine operational profits on project engagements. By default, the
standard cost of the product is used as the cost price. However, the default cost price can be updated on the quote
line if there's a different cost price for that quote.

Price list items


You can add products from a product catalog to different price lists. Price list lines for products always reference a
specific unit. Pricing for a product on price list items can be configured as a currency amount. Alternatively, it can
be configured as a function of the list price, current cost, or standard cost.
PSA supports various rounding options when prices are configured as a function of the list price, standard cost, or
current cost. In addition to taking advantage of multiple pricing methods and rounding options, you can associate
discount lists with price list items.

When you create a new custom price list for a quote by selecting Create Custom Pricing on the Project Quote
page, PSA makes a copy of the price list, and the Entity field on the header of the new price list is set to Sales
Entity. The name of the new price list is appended with the name of the quote and a timestamp. You also can use
the name of the new price list and the name of the quote in custom workflows to trigger additional review and
approvals for quotes that use custom pricing.

Default product price list


Each customer record has a Default Price List field, where you can specify a price list that matches the currency
of the customer. In PSA, a default value isn't automatically entered in this field. When a custom pricing agreement
with a specific customer exists, you can use this field to associate a price list with that customer.
The Opportunity, Quote, and Project Contract entities use the following order to enter default product price lists.
The same order is used for project price lists.
1. Quote
2. Opportunity
3. Customer
4. Global settings for PSA
By default, the Product field on the quote line lists all the active products in the product price list of the quote. If a
product has been inactivated, or if it's a draft product, it isn't listed, even if it's in the price list.
Product catalog lines are added as invoice lines on the first invoice that is created for a project contract. On a draft
invoice, those invoice lines can be deleted. In that case, the lines will appear on a subsequent invoice until they are
invoiced, or until the invoice is sent to the customer. In PSA, you can't invoice a partial quantity of a product
invoice line. When the product lines from the project contract are invoiced, actuals are created. However, those
actuals aren't linked to the related project entity. In other words, product-based project contract lines are
independent of any project-based use. PSA doesn't track material consumption on projects.
Business transactions
3/7/2019 • 5 minutes to read • Edit Online

Applies to Project Service app version 3.x


In Microsoft Dynamics 365 for Project Service Automation (PSA), business transaction is an abstract concept that
isn't represented by any entity. However, some common fields and processes on entities are designed to use the
concept of business transactions. The following entities in PSA use this abstraction:
Quote line details
Contract line details
Estimate lines
Journal lines
Actuals
Of these entities, Quote line details, Contract line details, and Estimate lines are mapped to the estimation phase in
the project lifecycle. The Journal lines and Actuals entities are mapped to the execution phase in the project
lifecycle.
PSA treats records in these five entities as business transactions. The only distinction is that records in entities that
are mapped to the estimation phase are considered financial forecasts, whereas the records in entities that are
mapped to the execution phase are considered financial facts that have already occurred.
For more information, see Estimates and Actuals.

Concepts that are unique to business transactions


The following concepts are unique to the concept of business transactions:
Transaction type
Transaction class
Transaction origin
Transaction connection
Transaction type
Transaction type represents the timing and context of the financial impact on a project. It's represented by an
option set that has the following supported values in PSA:
Cost
Project contract
Unbilled sales
Billed sales
Inter organizational sales
Resourcing unit cost
Transaction class
Transaction class represents the different types of costs that are incurred on projects. It's represented by an option
set that has the following supported values in PSA:
Time
Expense
Material
Fee
Milestone
Tax
The Milestone value is typically used by the business logic for fixed-price billing in PSA.
Transaction origin
Transaction connection is an entity that stores the relation between two similar business transactions, such as cost
and related sales actuals, or transaction reversals that are triggered by billing activities such as invoice
confirmation or invoice correction.
Together, the Transaction origin and Transaction connection entities help you track relationships between business
transactions and actions that cause the creation of a specific business transaction.
Transaction connection
Transaction connection is an entity that stores the relation between two similar business transactions such as cost
and related sales actuals or transaction reversals triggered by billing activities such invoice confirmation or invoice
corrections.
Together, Transaction origin and Transaction connection help you keep track of relationships between business
transactions and actions that resulted in the creation of a specific business transaction.
Example: How Transaction origin works with Transaction connection
The following example shows the typical processing of time entries in a PSA project lifecycle.

1. Submission of a time entry causes the creation of two journal lines: one for cost and one for unbilled sales.
2. Eventual approval of the time entry causes the creation of two actuals: one for cost and one for unbilled sales.
3. When the user creates a project invoice, the invoice line transaction is created by using data from the unbilled
sales actual.
4. When the invoice is confirmed, two new actuals are created: an unbilled sales reversal and a billed sales actual.
Each of these events triggers the creation of records in the Transaction origin and Transaction connection entities
to help build a trace of relationships between these records that are created across time entry, journal line, actuals,
and invoice line details.
The following table shows the records in the Transaction origin entity for the preceding workflow.

EVENT ORIGIN ORIGIN TYPE TRANSACTION TRANSACTION TYPE

Time Entry Time entry Record Time Entry Journal Line Record Journal Line
Submission GUID GUID (cost)

Time entry Record Time Entry Journal Line Record Journal Line
GUID GUID (sales)
EVENT ORIGIN ORIGIN TYPE TRANSACTION TRANSACTION TYPE

Time Approval Journal Line Record Journal Line Unbilled Sales Record Actual
GUID GUID

Time entry Record Time Entry Unbilled Sales Record Actual


GUID GUID

Journal Line Record Journal Line Cost Actual Record Actual


GUID GUID

Time entry Record Time Entry Cost Actual Record Actual


GUID GUID

Invoice Creation Time entry Record Time Entry Invoice Line Invoice Line
GUID Transaction GUID Transaction

Journal Line Record Journal Line Invoice Line Invoice Line


GUID Transaction GUID Transaction

Invoice Confirmation Invoice Line GUID Invoice Line Billed Sales Record Actual
GUID

Invoice GUID Invoice Billed Sales Record Actual


GUID

Invoice Line Detail Invoice Line Detail Billed Sales Record Actual
GUID GUID

Time entry Record Time Entry Billed Sales Record Actual


GUID GUID

Journal Line Record Journal Line Billed Sales Record Actual


GUID GUID

Time entry Record Time Entry Unbilled Sales Actual


GUID Reversal GUID

Journal Line Record Journal Line Unbilled Sales Actual


GUID Reversal GUID

Draft Invoice Old ILD GUID Invoice Line Correction ILD GUID Invoice Line
Correction Transaction Transaction

Old IL GUID Invoice Line Correction ILD GUID Invoice Line


Transaction

Old Invoice GUID Invoice Correction ILD GUID Invoice Line


Transaction

Time entry Record Time Entry Correction ILD GUID Invoice Line
GUID Transaction

Journal Line Record Journal Line Correction ILD GUID Invoice Line
GUID Transaction
EVENT ORIGIN ORIGIN TYPE TRANSACTION TRANSACTION TYPE

Confirmed invoice Old ILD GUID Invoice Line Reversed Billed Sales Actual
correction Transaction Actual GUID

Old IL GUID Invoice Line Reversed Billed Sales Actual


Actual GUID

Old Invoice GUID Invoice Reversed Billed Sales Actual


Actual GUID

Time entry Record Time Entry Reversed Billed Sales Actual


GUID Actual GUID

Journal Line Record Journal Line Reversed Billed Sales Actual


GUID Actual GUID

Old ILD GUID Invoice Line New Unbilled Sales Actual


Transaction Actual GUID

Old IL GUID Invoice Line New Unbilled Sales Actual


Actual GUID

Old Invoice GUID Invoice New Unbilled Sales Actual


Actual GUID

Time entry Record Time Entry New Unbilled Sales Actual


GUID Actual GUID

Journal Line Record Journal Line New Unbilled Sales Actual


GUID Actual GUID

Correction ILD GUID Invoice Line New Unbilled Sales Actual


Transaction Actual GUID

Correction IL GUID Invoice Line New Unbilled Sales Actual


Actual GUID

Correction Invoice Invoice New Unbilled Sales Actual


GUID Actual GUID

The following table shows the records in the Transaction connection entity for the preceding workflow.

TRANSACTION TRANSACTION TRANSACTION TRANSACTION TRANSACTION TRANSACTION


EVENT 1 1 ROLE 1 TYPE 2 2 ROLE 2 TYPE

Time Entry Journal Line Unbilled Sales msdyn_journal Journal Line Cost msdyn_journal
Submission (Sales) GUID line (cost) GUID line

Time Approval Unbilled Unbilled Sales msdyn_actual Cost Cost msdyn_actual


Actual (Sales) Actual(cost)
GUID GUID

Invoice Invoice Line Billed Sales msdyn_invoice Unbilled Sales Unbilled Sales msdyn_actual
Creation Detail GUID linetransaction Actual GUID
TRANSACTION TRANSACTION TRANSACTION TRANSACTION TRANSACTION TRANSACTION
EVENT 1 1 ROLE 1 TYPE 2 2 ROLE 2 TYPE

Invoice Reversing Reversing msdyn_actual Original Original msdyn_actual


Confirmation Actual GUID unbilled sales
GUID

Billed Sales Billed Sales msdyn_actual Unbilled Sales Unbilled Sales msdyn_actual
GUID Actual GUID

Draft Invoice Invoice Line Replacing msdyn_invoice Billed Sales Original msdyn_actual
Correction Transaction linetransaction GUID
GUID

Confirm Billed Sales Reversing msdyn_actual Billed Sales Original msdyn_actual


Invoice Reversal GUID GUID
Correction

New Unbilled Replacing msdyn_actual Billed Sales Original msdyn_actual


Sales Actual GUID
GUID
Estimates
3/7/2019 • 4 minutes to read • Edit Online

Applies to Project Service app version 3.x


On a project-based quote, you can use the Quote line detail entity in Microsoft Dynamics 365 for Project Service
Automation (PSA) to estimate the work that is required to deliver a project. You can then share that estimate with
the customer.
Project-based quote lines don't have to have any quote line details. Alternatively, they can have many quote line
details. Quote line details are used to estimate time, expenses, or fees. PSA doesn't allow for material estimates on
quote line details. These are called transaction classes. Estimated tax amounts can also be entered on a transaction
class.
In addition to transaction classes, quote line details have a transaction type. PSA support two transaction types for
quote line details: Cost and Project Contract.

Estimate by using a contract


If you used a PSA quote when you created a project-based contract, the estimate that you did for each quote line
on the quote is copied to the project contract. The structure of a project contract is like the structure of project
quote that has lines, line details, and invoice schedules.
Estimates can be done directly in a project contract, as in a project quote. For a project quotation, the estimate is
done by using contract lines and contract line details. Contract line details can also be generated from a project
plan that was created by using the bottom-up estimate approach.
Contract line details can be used to estimate time, expenses, or fees. Estimated tax amounts can also be entered on
a contract line detail.
PSA doesn't allow for material estimates on contract line details.
The processes that are supported on a project contract are invoice creation and confirmation. Invoice creation
creates a draft of a project-based invoice that includes all unbilled sales actuals until the current date.
Confirmation makes the contract read-only and changes its status from Draft to Confirmed. After you take this
action, you can't undo it. Because this action is permanent, it's a best practice to keep the contract in a Draft status.
The only differences between draft contracts and confirmed contracts are their status and the fact that draft
contracts can be edited whereas confirmed contracts can't. Invoice creation and tracking actuals can be done on
both draft contracts and confirmed contracts.
PSA doesn't support change orders on contracts or projects.

Estimating projects
You can estimate time and expenses on projects. PSA doesn't allow for estimates of materials or fees on projects.
Time estimates are generated when you create a task and identify the attributes of a generic resource that is
required to perform the task. Time estimates are generated from schedule tasks. Time estimates aren't created if
you create generic team members outside the context of the schedule.
Expense estimates are entered in the grid on the Estimates page.
Understanding estimation
Use the following table as a guide for understanding the business logic in the estimation phase.

ADDITIONAL
SCENARIO ENTITY RECORD TRANSACTION TYPE TRANSACTION CLASS INFORMATION

When you need to Quote line detail Project contract Time Transaction origin
estimate the sales (QLD) record is field on the sales side
value of time on a created QLD row references
quote the Cost side QLD

A second QLD record Cost Time Transaction origin


is created by the field on the sales side
system to store the quote line detail
corresponding cost (QLD) row references
values. All non- the Cost side QLD
money fields are
copied from the sales
QLD to the Cost QLD
by the system.

When you need to Project contract line Project Contract Time Transaction origin
estimate the sales detail (CLD) record is field on the sales side
value of time on a created CLD row references
contract the cost CLD

A second CLD record Cost Time Transaction origin


is created by the field on the sales side
system to store the CLD row references
corresponding cost the cost CLD
values. All non-
money fields are
copied from the sales
CLD to the cost CLD
by the system.

When the user Estimate line record Project Contract Time


describes a resource to show the sales
on a project task value of the task is
created when a task is
created with all
required pricing
dimensions. Role and
organizational units
are the OOB Project
Service pricing
dimensions
ADDITIONAL
SCENARIO ENTITY RECORD TRANSACTION TYPE TRANSACTION CLASS INFORMATION

The estimate line Cost Time


record to show the
cost value of the task
is created when a task
is created with all
required pricing
dimensions. All non-
money fields are
copied from the sales
estimate line to the
cost estimate line by
the system. Role and
organizational unit
are the OOB PSA
pricing dimensions for
both cost and bill
rates.

Customizing the Quote line detail and Contract line detail entities
If you added a custom field on the quote line detail and want the system to enter the value of the field as a default
value on the related cost line that it creates, use the PreOperationContractLineDetailUpdate and
PreOperationQuoteLineDetailUpdate plug-in registration tools. These plug-ins must be re-registered after the
quote line detail or the contract line detail is changed. Follow these steps to complete the process.
1. Open PluginRegistrationTool, and connect to your online instance.
2. Select Search, and search for the plug-in to update.

3. Select the plug-in, and then, on the main page, select Select.
4. Select the step of the plug-in to update, right-click, and then select Update.
5. In the Update Existing Step dialog box, in the Filtering Attributes field, select the ellipsis button (...):

6. In the Select Attributes dialog box, select check boxes for custom attributes.
7. Select OK to close the dialog box, and then select Update Step.

8. Repeat steps 1 through 7 for the second plug-in.


9. Close the PluginRegistrationTool.
Analysis of project quotes
3/7/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


Microsoft Dynamics 365 for Project Service Automation (PSA) analyzes project quotes to estimate profitability. It
also analyzes how well the quote is aligned with customer expectations about the delivery date or completion
date, and about the budget.tions.

Profitability analysis
PSA analyzes profitability by using the gross margin and the adjusted gross margin.
PSA calculates the gross margin by using the following formula:
(Sum of estimated chargeable sales value – Sum of estimated chargeable costs) x 100

PSA calculates the adjusted gross margin by using the following formula:
(Sum of estimated chargeable sales value – Sum of all estimated costs) x 100

If the values for gross margin and adjusted gross margin differ by a wide margin, much of the work in the quote is
classified as non-chargeable.

Analysis of customer expectations


In PSA, you can analyze quotes and generate charts for customer expectations about the schedule and budget if
you enter values for the following fields:
The Requested delivery date field on the quote header.
The Customer budget field for each quote line (for project-based lines and product-based lines).
Analysis of customer expectations about the schedule is done by comparing the latest end date of the quote line
detail with the requested delivery date across all quote lines in the quote.
Analysis of customer expectations about the budget is done by comparing the sum of the total customer budget
with the quoted amount across all quote lines.
Recall approved time or expense entries
3/13/2019 • 3 minutes to read • Edit Online

Applies to Project Service app version 3.x


In Microsoft Dynamics 365 for Project Service Automation (PSA), a project team member or an other person who
submits a time or expense entry can recall that time or expense entry after it has been approved. The process for
recalling an approved time or expense entry has two steps:
1. A submitter requests a recall.
2. An approver approves the recall.

Request a recall
Follow these steps to request a recall of an approved time or expense entry.
1. For time entries, go to Projects > My Work > Time Entry.
–or–
For expense entries, go to Projects > My Work > Expenses.
2. For time entries, select all the time entries for a specific combination of a project and a task. Alternatively, in
the grid, select the individual cells for time on a specific date for a specific project.
–or–
For expense entries, select the row for the expense entry to recall.
3. Select Recall. A confirmation dialog box appears. If the selected time and expense entries were already
approved, you're prompted to enter a reason for the recall.
4. Enter a reason for the recall, and then select OK to confirm the operation. The system sends the person who
approved the entries a request to approve the recall.

NOTE
Although approved time and expense entries can be recalled, if an approved time or expense has already been invoiced to the
customer, a recall request can't be created. A user who tries to create a recall request will receive a message that states that
the time or expense can't be recalled because it was already invoiced.

Approve or reject a recall request


Follow these steps to approve or reject a recall request.
1. Go to Projects > My Work > Approvals.
2. On the Approvals list page, change the view to Recall requests for approval. A list of submitted recall
requests is shown.
3. Select one or more entries, and then select either Approve or Reject.
4. If you selected Approve, you receive a warning message that explains the impact of the approval. Select OK
to confirm the operation. The recall request is approved.
–or–
If you selected Reject, the recall request is rejected.

NOTE
As when a recall is requested, when a recall is approved, the system checks for any invoicing activity on the time or expense
entries. If an entry was already invoiced, or if it's on a draft invoice, the approver will receive an error message that states that
the time or expense can't be approved for recall, because it was already invoiced.

Impact of a recall request


When an approval is recalled, there is both operational impact and financial impact.
Operational impact
If a recall request is approved, the approval record is marked as Rejected. The status of the entry is changed to
either Returned or Rejected, depending on whether it's a time entry or an expense entry.
The project team member can view entries, edit and then resubmit entries, or delete entries entirely.
If a recall request is rejected, the status of the entry remains Approved, and the entry can't be edited by the project
team member or the approver for the project.
Financial impact
If a recall request is approved, the corresponding actuals for cost and sales are updated in the following manner:
The Adjustment Status field is updated to Adjusted.
The Billing Status field is updated to Canceled.
Next, reversal entries are created in the Actuals table. To create reversal entries, the system copies over the field
values from the original actuals. The only values that aren't copied over are the quantity values. These values are
reversed instead. Reversed actuals are created for both Cost and Unbilled Sales actuals. The Adjustment Status
field on the reversed actuals is set to Unadjustable, and the Billing status field is set to Canceled. Because of
these changes, the recorded spending and the revenue backlog on the project will no longer account for the
amounts that these actuals represent.
If a recall request is rejected, there is no financial impact on the project.

Changes to time entry records


The following illustration shows the changes that occur for approved time entries when they are recalled.
Changes to expense entry records
The following illustration shows the changes that occur for approved expense entries when they are recalled.
Cancel previously approved time or expense entries
3/13/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


In the latest version of Microsoft Dynamics 365 for Project Service Automation (PSA), approvers can cancel time
or expense entries that they previously approved.

Cancel a previously approved time or expense entry


Follow these steps to cancel a time or expense entry that you previously approved.
1. Go to Projects > My Work > Approvals.
2. On the Approvals list page, change the view to My past approvals. A list of the time and expense entries that
you previously approved is shown.
3. Select one or more entries, and then select Cancel approval. You receive a warning message.
4. Select OK to cancel the approval.

Understand the impact of canceling a time or expense entry approval


When an approval is canceled, there is both operational impact and financial impact.
Operational impact
On the operations side, when an approval is canceled, the status of the record is reset to Draft, and the approval no
longer appears in the My past approvals view. Instead, the canceled approval appears in either the Time entries
for approval view or the Expense entries for approval view, depending on whether it was a time entry or an
expense entry. Additionally, the status of the related time or expense entry is changed to Submitted, so that the
related entry is consistent with approvals that have a status of Draft.
As an approver, you can edit some of the fields of an approval that has a status of Draft. These fields include
Billing Type and Billable Hours for Time Entries. After you make changes, you can approve the record again.
Alternatively, you can reject the entry. If you reject the approval of a time entry, the status of the entry is changed to
Returned. If you reject the approval of an expense entry, the status is changed to Rejected. Functionally, both
returned and rejected entries behave the same as an entry that has a status of Draft. A project team member can
either make any required changes to the entry and then resubmit it for approval, or delete the entry entirely.
Financial impact
A project is also affected financially when an approval is canceled. First, the corresponding actuals for cost and
sales are updated in the following manner:
The adjustment status is set to Adjusted.
The billing status is set to Canceled.
Next, reversal entries are created in the Actuals table. To create reversal entries, the system copies over the field
values from the original actuals. The only values that aren't copied over are the quantity values. These values are
reversed instead. Reversed actuals are created for both Cost and Unbilled Sales actuals. The Adjustment Status
field on the reversed actuals is set to Unadjustable, and the billing status is set to Canceled.
After these changes are made, the amount that is recorded as spent on the project and the revenue backlog on the
project will longer account for the amounts that these actuals represent.
Actuals
3/13/2019 • 5 minutes to read • Edit Online

Applies to Project Service app version 3.x


Actuals are the amount of work that has been completed on a project. In Microsoft Dynamics 365 for Project
Service Automation (PSA), project actuals can be traced back to their source documents. Those source documents
include time, expense, and journal entries, and also invoices.

Submitting a time entry


In PSA, when a time entry is submitted for a project that is mapped to a time-and-materials contract line, two
journal lines are created. One line is for cost, and the other line is for unbilled sales. When a time entry is
submitted for a project that is mapped to a fixed-price contract line, a journal line is created only for cost.
Logic for entering default prices resides on the journal line. All the field values from a time entry are copied to the
journal line. These fields include the date of the transaction, the contract line that the project is mapped to, and the
currency result in the appropriate price list.
The fields that affect default prices, such as Role and Org Unit, cause an appropriate price to be entered by
default on the journal line. If you add a custom field on the time entry, and you want the field value to be
propagated to actuals, create the field on the Actuals entity, and use field mappings to copy the field from the time
entry to the actual.

Submitting an expense entry


In PSA, when an expense entry is submitted for a project that is mapped to a time-and-materials contract line, two
journal lines are created. One line is for cost, and the other line is for unbilled sales. When an expense entry is
submitted for a project that is mapped to a fixed-price contract line, a journal line is created only for cost.
Logic for entering default prices for expenses is based on the expense category that is selected on the Expense
entry page. The transaction date, the contract line that the project is mapped to, and the currency are all used to
determine the appropriate price list. However, for the price itself, the amount that the user entered is set directly
on the related expense journal lines for cost and sales by default.
In the current version of PSA, category-based entry of per-unit default prices on expense entries isn't available.

Using journals to record costs


In PSA, journals let you record cost or revenue in the material, fee, time, expense, or tax transaction classes. A
journal has a header, lines, and a Confirm action. Here are some scenarios where you might use a journal:
You must record material actual costs and sales on a project.
You must move transaction actuals from another system to PSA.
You must record costs that occurred in another system, such as procurement or subcontracting costs.

Recording actuals based on project events


PSA records the financial transactions that occur during a project. These transactions are recorded as actuals. The
following tables show the different types of actuals that are created, depending on whether the project is a time-
and-materials or fixed-price project, is in the presales stage, or is an internal project.
The resource belongs to same organizational unit as the project's contracting unit

BILLABLE OR SOLD PROJECT

TIME AND MATERIALS FIXED PRICE


PROJECT IN
TRANSACTION TRANSACTION THE PRESALES INTERNAL
EVENT ACTUALS CURRENCY FIXED PRICE CURRENCY STAGE PROJECT

A time entry No activity in the Actuals entity


is created.

A time entry No activity in the Actuals entity


is submitted.

Time is Cost actual Contracting Cost actual Contracting Cost actual Cost actual
approved, and unit currency unit currency
no change to
or increase in Unbilled sales Project
billable hours actual – contract
occurs during Chargeable currency
approval.

Time is Cost actual Contracting Cost actual Contracting Cost actual Cost actual
approved, and unit currency unit currency
a decrease in
billable hours Unbilled sales Project
occurs during actual – contract
approval. Chargeable currency
for the new
quantity
BILLABLE OR SOLD PROJECT

TIME AND MATERIALS FIXED PRICE


PROJECT IN
TRANSACTION TRANSACTION THE PRESALES INTERNAL
EVENT ACTUALS CURRENCY FIXED PRICE CURRENCY STAGE PROJECT

Unbilled sales Project


actual – Non- contract
chargeable for currency
the difference

An invoice is Unbilled sales Project Billed sales for Project Not applicable Not applicable
confirmed, reversal contract milestone contract
and no currency currency
change to or
increase in Billed sales Project
billable hours contract
occurs. currency

An invoice is Unbilled sales Project Not applicable Not applicable Not applicable Not applicable
confirmed, reversal contract
and a currency
decrease in
billable hours Billed sales – Project
occurs. Chargeable contract
for the new currency
quantity

Billed sales – Project


Non- contract
chargeable for currency
the difference

An invoice is Billed sales – Project Billed Project Not applicable Not applicable
corrected to Reversal contract sales contract
increase the currency reversa currency
chargeable l for
quantity. Billed sales Project milesto
contract ne
currency Chang
e in
milesto
An invoice is Billed sales – Project ne
corrected to Reversal contract status
decrease the currency from
chargeable Invoic
quantity. Billed sales for Project ed to
the new contract Ready
quantity currency for
invoic
e
Unbilled sales Project
– Chargeable contract
for the currency
difference

The resource belongs to an organizational unit that differs from the project's contracting unit
BILLABLE OR SOLD PROJECT

TIME AND MATERIALS FIXED PRICE


PROJECT IN
TRANSACTION TRANSACTION THE PRESALES INTERNAL
EVENT ACTUALS CURRENCY FIXED PRICE CURRENCY STAGE PROJECT

A time entry No activity in the Actuals entity


is created.

A time entry No activity in the Actuals entity


is submitted.

Time is Cost actual Contracting Cost actual Contracting Cost actual Cost actual
approved, and unit currency unit currency
no change to
or increase in Unbilled sales Project
billable hours actual – contract
occurs during Chargeable currency
approval.

Resourcing Resourcing
unit cost unit currency

Interorganizat Contracting
ional sales unit currency

Time is Cost actual Contracting Cost actual Contracting Cost actual Cost actual
approved, and unit currency unit currency
a decrease in
billable hours Resourcing Resourcing
occurs during unit cost unit currency
approval.

Interorganizat Contracting
ional sales unit currency

Unbilled sales Project


actual – contract
Chargeable currency
for the new
quantity

Unbilled sales Project


actual – Non- contract
chargeable for currency
the difference

An invoice is Unbilled sales Project Billed sales for Project Not applicable Not applicable
confirmed, reversal contract milestone contract
and no currency currency
change to or
increase in Billed sales Project
billable hours contract
occurs. currency
BILLABLE OR SOLD PROJECT

TIME AND MATERIALS FIXED PRICE


PROJECT IN
TRANSACTION TRANSACTION THE PRESALES INTERNAL
EVENT ACTUALS CURRENCY FIXED PRICE CURRENCY STAGE PROJECT

An invoice is Unbilled sales Project Not applicable Not applicable Not applicable Not applicable
confirmed, reversal contract
and a currency
decrease in
billable hours Billed sales – Project
occurs. Chargeable contract
for the new currency
quantity

Billed sales – Project


Non- contract
chargeable for currency
the difference

An invoice is Billed sales – Project Billed Project Not applicable Not applicable
corrected to Reversal contract sales contract
increase the currency reversa currency
chargeable l for
quantity. Billed sales Project milesto
contract ne
currency Chang
e in
milesto
An invoice is Billed sales – Project ne
corrected to Reversal contract status
decrease the currency from
chargeable Invoic
quantity. Billed sales for Project ed to
the new contract Ready
quantity currency for
invoic
e
Unbilled sales Project
– Chargeable contract
for the currency
difference
Review the invoicing backlog on projects and project
contracts
3/13/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


When a transaction is ready to have an invoice created and processed, the transaction should be marked Ready to
invoice. This topic describes the types of transactions that can be created in Microsoft Dynamics 365 for Project
Service Automation (PSA).

Review the time and material billing backlog


When a time or expense entry is submitted and approved for a project, PSA creates a project actual. If the
combination of the project and the transaction class are mapped to a contract line for a time-and-materials project,
two actuals are created when the entry is approved:
Cost actual
Unbilled sales actual
Unbilled sales actuals represent the billing backlog, and their billing status must be set to Ready to Invoice. When
a project invoice is created, unbilled sales actuals that are marked Ready to Invoice are copied over as invoice line
details.
To review the billing backlog for time and materials, go to Sales > Billing > Time and Material Billing Backlog.
Select all the unbilled sales actuals that are ready to be invoiced, and then select Ready to Invoice. The billing
status of these actuals is changed to Ready to Invoice.

Review the product billing backlog


In PSA, when a project contract has product-based contract lines, those lines are considered for invoicing whenever
an invoice is created for the project contract. Any product that has contract lines that are marked Ready to Invoice
is copied over to the project invoice as project invoice lines.
To review the billing backlog for products, go to Sales > Billing > Product Billing Backlog. Select all the
product-based contract lines that are ready to be invoiced, and then select Ready to Invoice. The billing status of
these lines is changed to Ready to Invoice.

Review billing milestones on fixed-price contracts


Each project contract line that has a fixed-price billing method must define contract milestones. These contract
milestones can be invoiced only if they are marked Ready to Invoice.
To review billing milestones, go to Sales > Billing > Fixed Price Milestones. Select the milestones that are ready
to be invoiced, and then select Ready to invoice. The billing status of these milestones is changed to Ready to
Invoice.
Invoicing in Project Service Automation
3/13/2019 • 5 minutes to read • Edit Online

Applies to Project Service app version 3.x


Invoicing in Microsoft Dynamics 365 for Project Service Automation (PSA) is useful, because it gives project
managers a second level of approval before they create invoices for customers. The first level of approval is
completed when the time and expense entries that project team members submit are approved.
PSA isn't designed to generate customer-facing invoices, for the following reasons:
It doesn't contain tax information.
It can't convert other currencies to the invoicing currency by using correctly configured exchange rates.
It can't correctly format invoices so that they can be printed.
Instead, you can use a financial or accounting system to create customer-facing invoices that use the information
from invoice proposals that are generated in PSA.

Creating project invoices in PSA


Project invoices can be created one at a time or in bulk. You can create them manually, or they can be configured so
that they are generated in automated runs.
Manually create project invoices in PSA
From the Project Contracts list page, you can create project invoices separately for each project contract, or you
can create invoices in bulk for multiple project contracts.
Follow this step to create an invoice for a specific project contract.
On the Project Contracts list page, open a project contract, and then select Create Invoice.

An invoice is generated for all transactions for the selected project contract that have a status of Ready to
Invoice. These transactions include time, expenses, milestones, and product-based contract lines.
Follow these steps to create invoices in bulk.
1. On the Project Contracts list page, select one or more project contracts that you must create an invoice for,
and then select Create Project Invoices.

A warning message informs you that there might be a delay before invoices are created. The process is also
shown.
2. Select OK to close the message box.
An invoice is generated for all transactions on a contract line that have a status of Ready to Invoice. These
transactions include time, expenses, milestones, and product-based contract lines.
3. To view the invoices that are generated, go to Sales > Billing > Invoices. You will see one invoice for each
project contract.
Set up automated creation of project invoices in PSA
Follow these steps to configure an automated invoice run in PSA.
1. Go to Project Service > Settings > Batch jobs.
2. Create a batch job, and name it PSA Create Invoices. The name of the batch job must include the term
"Create Invoices."
3. In the Job type field, select None. By default, the Frequency Daily and Is Active options are set to Yes.
4. Select Run Workflow. In the Look Up Record dialog box, you will see three workflows:
ProcessRunCaller
ProcessRunner
UpdateRoleUtilization
5. Select ProcessRunCaller, and then select Add.
6. In the next dialog box, select OK. A Sleep workflow is followed by a Process workflow.
You can also select ProcessRunner in step 5. Then, when you select OK, a Process workflow is followed by
a Sleep workflow.
The ProcessRunCaller and ProcessRunner workflows create invoices. ProcessRunCaller calls ProcessRunner.
ProcessRunner is the workflow that actually creates the invoices. It goes through all the contract lines that
invoices must be created for, and it creates invoices for those lines. To determine the contract lines that invoices
must be created for, the job looks at invoice run dates for the contract lines. If contract lines that belong to one
contract have the same invoice run date, the transactions are combined into one invoice that has two invoice lines.
If there are no transactions to create invoices for, the job skips invoice creation.
After ProcessRunner has finished running, it calls ProcessRunCaller, provides the end time, and is closed.
ProcessRunCaller then starts a timer that runs for 24 hours from the specified end time. At the end of the timer,
ProcessRunCaller is closed.
The batch process job for creating invoices is a recurrent job. If this batch process is run many times, multiple
instances of the job are created and cause errors. Therefore, you should start the batch process only one time, and
you should restart it only if it stops running.
Edit a draft PSA invoice
When you create a draft project invoice, all unbilled sales transactions that were created when the time and
expense entries were approved are pulled onto the invoice. You can make the following adjustments while the
invoice is still in a draft stage:
Delete or edit invoice line details.
Edit and adjust the quantity and billing type.
Directly add time, expense, and fees as transactions on the invoice. You can use this feature if the invoice line is
mapped to a contract line that allows for these transaction classes.
Select Confirm to confirm an invoice. The Confirm action is a one-way action. When you select Confirm, the
system makes the invoice read-only and creates billed sales actuals from each invoice line detail for each invoice
line. If the invoice line detail references an unbilled sales actual, the system also reverses the unbilled sales actual.
(Any invoice line detail that was created from a time or expense entry will reference an unbilled sales actual.)
General ledger integration systems can use this reversal to reverse project work in progress (WIP ) for accounting
purposes.
Correct a confirmed PSA invoice
Confirmed PSA invoices can be edited (corrected). When you correct a confirmed invoice, a new draft corrective
invoice is created. Because the assumption is that you want to reverse all the transactions and quantities from the
original invoice, this corrective invoice includes all the transactions from the original invoice, and all the quantities
on it are 0 (zero).
If any transactions don't require correction, you can remove them from the draft corrective invoice. If you want to
reverse or return only a partial quantity, you can edit the Quantity field on the line detail. If you open the invoice
line detail, you can see the original invoice quantity. You can then edit the current invoice quantity so that it's less
than or more than the original invoice quantity.
When you confirm a corrective invoice, the original billed sales actual is reversed, and a new billed sales actual is
created. If the quantity was reduced, the difference will cause a new unbilled sales actual to be created too. For
example, if the original billed sales was for eight hours, and the corrective invoice line detail has a reduced quantity
of six hours, PSA reverses the original billed sales line and creates two new actuals:
A billed sales actual for six hours.
An unbilled sales actual for the remaining two hours. This transaction can either be billed later or marked as
non-chargeable, depending on the negotiations with the customer.
Multiple-currency scenarios
3/7/2019 • 4 minutes to read • Edit Online

Applies to Project Service app version 3.x


Microsoft Dynamics 365 has two concepts of currencies:
Transaction currency - The currency that a transaction occurs in.
Base currency - The currency of the Dynamics 365 instance. This currency is set up when a Dynamics 365
instance is provisioned. It can’t be changed.
For example, Contoso US sold 100 t-shirts to a customer in the UK for 15 ounds sterling (GBP ) each. The
following table shows how this transaction is recorded in the Order Product entity.

PRICE PER EXCHANGE PRICE PER AMOUNT


PRODUCT QUANTITY UNIT CURRENCY AMOUNT RATE UNIT (BASE) (BASE)

T-shirt 100 15 GBP 1500 0.94 $17.25 $1,725

The Currency column shows the transaction currency, which is the currency that the sale occurred in. The
Exchange rate column is the exchange rate between the transaction currency and the base currency. The base
currency is US dollar (USD ). This base currency was set up when the Dynamics 365 instance was provisioned. As
the table shows, every transaction is recorded in both the transaction currency and the base currency. Dynamics
365 uses the currency exchange rate to calculate the base currency amounts.

PSA extensions
Microsoft Dynamics 365 for Project Service Automation (PSA) influences the transaction currency, because
business transactions usually have two aspects: cost and sales.
The following entities are considered business transactions:
Quote line detail
Project contract line detail
Estimate line
Journal line
Invoice line detail
Actual
In each of these entities, there is a record that represents the cost amount or the sales amount. As for any
Dynamics 365 entity that has an Amount field, each record includes amounts in both the transaction currency
and the base currency.
PSA expands the concept of transaction currency for the cost and sales in the following ways:
The cost transaction currency for time transactions always comes from the currency of the organization unit
that owns or manages the project. This organization unit is known as the contracting unit.
The sales transaction currency for time and expense transactions always comes from the currency of the
project contract.
The cost transaction currency for expenses comes from the currency that the expense entry was created in.
Multiple-currency scenario
This section describes an example of a project that Contoso UK delivers for a customer that is named Fabrikam,
Japan. Here is how the scenario has been set up:
1. GBP and Japanese yen (JPY ) are set up under Settings > Business Management > Currencies.
2. A customer account that is named Fabrikam - Japan is set up, and JPY is selected as the currency on the
account.
3. An organization unit that is named Contoso UK is set up, and GBP is selected as the currency.
4. A project contract is created, where Contoso UK is specified as the contracting unit and Fabrikam – Japan is
specified as the customer.
5. Project contract lines are created, based on the billing arrangements for the various transaction classes on the
project, such as billing for time versus billing for expenses.
6. A project is created where Contoso UK is specified as the contracting unit. This project is created and mapped
to the project contract lines.
During estimation that uses the quote line detail, the project contract line detail, or on the estimate line of the
schedule, two records are always created in the entity. One record is for cost, and the other record is for sales.
By default, the transaction currency on the cost record is set to the currency of the project’s contracting unit. In
this example, the currency is GBP.
By default, the transaction currency on the sales record is set to the currency of the project contract. In this
example, the currency is JPY.
When actuals are created for time using time entry or the journal line, the following behavior occurs:
By default, the transaction currency on the cost record is set to the currency of the project's contracting unit.
By default, the transaction currency on the sales record is set to the currency of the project contract.
When actuals are created for expenses by the expense entry or journal line, the following behavior occurs:
You can record the expense amount in any currency. Select the currency by using the currency picker on the
Expense Entry page or the Journal Line page. By default, the transaction currency for the cost record is set to
the currency on the expense entry.
By default, the transaction currency for sales record is the currency of the project contract. To set this currency,
the system first converts the transaction amount in the currency that the user entered to the base currency. It
then converts the amount to the currency of the project contract.
Computing roll-ups when project actuals are recorded in multiple transaction currencies
Dynamics 365 automatically handles roll-ups of amounts in different currencies. Here is an example.

TRANSAC
TRANSA TRANSA TION
CTION CTION RESOUR CATEGOR QUANTIT UNIT EXCHAN AMOUNT
CLASS TYPE DATE CE Y Y PRICE AMOUNT GE RATE IN BASE

Time Unbilled 14-Jun Prakash 8 hrs 20,000 160,000 123 1,300.81


sales JPY JPY USD

Time Unbilled 15-Jun Prakash 8 hrs 20,000 160,000 123 1,300.81


sales JPY JPY USD

Expense Unbilled 16-Jun Prakash Hotel 1 ea 250 EUR 250 EUR 0.94 265.95
sales USD
TRANSAC
TRANSA TRANSA TION
CTION CTION RESOUR CATEGOR QUANTIT UNIT EXCHAN AMOUNT
CLASS TYPE DATE CE Y Y PRICE AMOUNT GE RATE IN BASE

Expense Unbilled 17-Jun Prakash Car 1 ea 150 EUR 150 EUR 0.94 159.57
sales Rental USD

To calculate the total unbilled sales value on the project, you can create a roll-up field for the Amount field on all
the related unbilled sales actuals. The roll-up field is a construct of Dynamics 365 that allows for quick formulas on
related records.
Resourcing projects home page
12/14/2018 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


Resources are the most important asset of a service-based organization. The ability to find the right resources at
the right time, book those resources on projects and keep them utilized, helps the organization meet revenue
targets and customer satisfaction goals. You can use the project resourcing functionality in Project Service
Automation (PSA) to do the following:
Form project teams by booking available and qualified resources.
Create generic team member records and define their roles and resource organization unit.
Generate resource requirements for generic team members from their task assignments.
Match skills by identifying the skills defined on the resource demand against available resource skills.
Substitute resources.
Align project schedule assignments and resource bookings.
Reconcile differences in bookings and assignments.
Change resource bookings in response to out-of-office status.
Collaborate between project managers and resource managers.
View the history of resource utilization against a target, including a breakdown of how the resources' time was
utilized.
Maintain a skills and proficiency repository.
You can staff your project with a team of generic or named resources in PSA. You can use various methods to add
and assign team members and to manage their bookings and assignments. For additional information, see the
following topics:
Book named bookable resources to a project team and assigning them tasks
Assign generic bookable resources to a task and generate resource requirements
Book named resources from resource requirements
Submit a resource request
Accept or reject a proposed project resource from a resource request
Assign generic bookable resources to a task and
generate resource requirements
12/14/2018 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


In addition to booking and assigning named or real resources to your project, you can assign generic resources to
project tasks. These resources can serve as placeholders for named resources until you are ready to staff your
project with named resources.
1. In Project Service Automation (PSA), open the Project page and on the Schedule tab, enter the position name
of the generic resource in the Resource cell of the schedule. Or, click the Resource icon in the cell to open the
resource picker and then enter the name of the generic resource that you want to create.

This will open the Quick Create: Project Team Member panel.
2. Enter the role and organization unit of the generic resource team member and then click Save.
3. After you have created the new generic resource team member, it is assigned to the task. You can continue to
assign that generic resource to other tasks in the task schedule.

4. After you have assigned the generic resource, you can generate a resource requirement and fulfill it by directly
booking or submitting a resource request to a resource manager.

On the team member grid, in addition to being able to use the resource picker as mentioned above, you can add
generic resources directly. The resources are added with a resource requirement that is based on the start/end
dates and allocation method specified in the Quick Create: Project Team Member panel.
You can see a difference if you add the generic team member directly and then assign more tasks to the generic
resource than they have required hours to cover. Click Generate Requirement to regenerate the requirement to
balance the required hours against assignments.
You can also click the Resource requirement link in the team grid to open the requirement and add skills,
preferred resources, etc.
Book named bookable resources to a project team
and assign tasks
12/14/2018 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


You can add a named resource to your project team by booking them directly onto the team. To do this, complete
the following steps.
1. In Project Service Automation, go to Projects, and select the open the project that you are booking for.
2. On the Project page, on the Team tab, click New.

3. In the Quick Create Project Team Member dialog box, select the bookable resource. The Role field will
populate with the resource's default role if they have one assigned. You can change the role if needed.
4. Select the from and to dates that the resource will be needed and select the allocation method of the resource's
capacity.
5. If you want the team member to be a project approver, select Yes in the Project Approver field. This will mean
that the team member can approve submitted time and expense entries for this project.
6. Click Save.
You can now assign the booked resource to tasks on the project. On the Project page, click the Schedule tab to
assign tasks to the new resource. The resource picker that is launched from the Resources field in the task grid will
show the team members that you can select.

In version 3 for Project Service Automation (PSA), resource bookings and task assignments are not tightly
coupled. This means that when you use the resource picker in the schedule, you can assign tasks to team members
for more hours than their bookings cover on the project. You can see the differences between team member
bookings and assignments on the Team tab or on the Resource Reconciliation tab. You can also reconcile the
differences between bookings and assignments for resources at a more detailed level.
You can also use the resource picker on the Schedule tab to search for and select bookable resources that are not
already part of the project team. These are shown in the resource picker as Other Resources.

When you do this, the resource is added to the project team and assigned to the task, but no bookings are
generated.

You can use the Reconciliation tab’s extend booking capability or the Schedule Board to book the resource’s
capacity to the project.
After a team member is booked on your project, you can use maintain bookings or use the Schedule Board directly
to manage their bookings.
Book named resources from resource requirements
12/14/2018 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


You can book a named resource to replace generic resource that has a resource requirement.
1. In Project Service Automation (PSA), on the Projects page, click the Team tab.
2. Select the generic resource that has a resource requirement from the list and then click Book. Or, open the
resource requirement and then click Book.

3. On the Schedule Assistant page, select a named resource to book onto your project team and then click
Book.

When the booking is complete and fulfilled by a named resource, the generic resource is replaced with the named
resource.
The assignments on the schedule are updated with the named resource as well.

Fulfill a generic resource with multiple named resources


Fulfilling a requirement for a generic resource with multiple named resources is similar to assigning a single
named resource. For example, there is a task with a duration of five days and 120 hours of effort. This task can't be
completed by one resource that works a typical eight-hour day over a five day week.

The requirement is for 120 hours of robotics engineering over five days, which is 24 hours per day.
This is an example of when multiple named resources are needed to fulfill a generic resource request. You will need
to book multiple resources to fulfill the requirement.

The main difference in this scenario is that the generic resource remains on the team assigned to the task, and the
booked named resource team members are not assigned as part of the position. The project manager can assign
the work as appropriate to the named resources. The Reconciliation view can assist a project manager in
breaking up the bookings across multiple resources to task assignments. This is not done automatically because in
any scenario more complicated than the simple example above, such as where you have a bundle of tasks making
up the requirement, the intent of how the project manager wants to assign, needs to be assumed by the system.
Because the system can't understand intent, chances are that the assumptions will be different than intended and
an incorrect or unpredictable result will happen. The predictable outcome is that the generic resource remains
assigned until the project manager deliberately creates assignments, with the assistance of the Reconciliation
view.
Submit a resource request
12/14/2018 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


You can submit a generated resource requirement as a resource request. The request is then sent to a resource
manager for fulfillment.
1. In Project Service Automation (PSA), on the Projects page, click the Team tab to view a list bookable
resources.
2. Select the generic resource that has a resource requirement from the list and then click Submit Request.

The request status of the generic team member will change to Submitted.
After the request is fulfilled by the resource manager, the generic resource will be replaced by a named resource if
the resource manager fulfills the request with the booking of a named resource. Otherwise, the generic resource
will remain on the team and the request status will change to Needs Review, if the resource manager has
proposed a named resource.
Accept or reject a proposed project resource
12/14/2018 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


This topic provides information about how to approve or reject a proposed project resource.
When a resource manager proposes a named resource to fill the generic resource request for a project, the
Request Status field for the generic team member will be updated to Needs Review. The request will be sent to
the project manager for approval or rejection.

The grid on the Proposed Resources tab on the Project Team Member page shows the proposed resource’s
current bookings. After the proposal is accepted, the grid is updated to reflect that booking.
To accept the proposed resource and book that resource on your team, click Accept Proposals.
To reject the proposal, click Reject Resource.

Similar to directly fulfilling a generic resource request with a named resource, the generic resource will be replaced
and the assigned tasks will be updated with the named team member.
Reconcile bookings and assignments
5/15/2019 • 4 minutes to read • Edit Online

Applies to Project Service app version 3.x


A project team member's project bookings and project task assignments are loosely coupled. Therefore, a resource
can have task assignments that don't correspond to bookings and bookings that don't correspond to task
assignments. Ideally, project bookings and assignments are aligned, so that resources have committed capacity to
perform their task assignments. However, the reality is that bookings can occur based on availability, and task
timings can change as the project continues through its lifecycle. Therefore, the loose coupling allows for flexibility.
Because of the loose coupling of project bookings and task assignments, Microsoft Dynamics 365 for Project
Service Automation (PSA) includes a Reconciliation tab on the Project entity. This tab helps project managers
reconcile team members' bookings and their assignments for their project team.
For each named team member, the Reconciliation tab shows bookings and assignments down to the individual
task assignment. It shows hours in cells that can represent periods from months down to days.
In the Timescale field, you can select Month, Week, or Day. By default, Week is selected. However, you can
change the default value by selecting the Settings button. When the Reconciliation tab is opened, it shows the
current date, but you can use the calendar control to move forward or backward in time. When a project has a start
date that is in the future, the tab shows that date when it's opened. The calendar control also has options that let
you move to the project start and end dates.
You can use the expander controls on each resource to show the details of that resource's bookings. You can also
expand each resource's assignments to the level of the individual task.
The bottom of the Reconciliation tab shows an overall net total for the project, and the tab also includes a total
column. For each resource, the tab takes the difference between a team member's bookings on the project and
rollup of that team member's task assignments. Ideally, the difference should be 0 (zero). In other words, there
should be no difference between the resource's bookings and its task assignments. Any differences are indicated by
color and shading to call out two conditions:
Booking shortage – Booking shortages occur when a resource has more assignments than bookings. Because
this capacity hasn't been reserved, a project manager can correct this condition by extending the resource's
bookings to cover the shortage.
Excess bookings – Excess bookings occur when a resource has been booked to the project but hasn't been
assigned to tasks. This condition might be acceptable if, for example, the resource has been booked before task
assignment occurs. However, in other cases, the resource might not be planned to be assigned. In these cases,
the project manager should consider canceling the resource's bookings, so that the capacity can be used for
another project.

NOTE
The legend for these conditions might be hidden to leave more room for the grid. In this case, you can make the legend
visible by selecting the Settings button.

In some cases, when the Timescale field is set to a level that is higher than Day, differences might be calculated as
0 (zero). For example, at the Month level, the net difference for a resource might be 0 (zero) to indicate that
bookings equal assignments. However, if you look at the Week level, you might see that there are assignments of
0 (zero) hours and bookings of 40 hours in the first week of the month, and assignments of 40 hours and bookings
of 0 (zero) hours in the second week of the month. Although the total bookings and assignments for the month are
equal, they differ by week.
When you view higher time levels, the Reconciliation tab shows a cell indicator to notify you that there are
differences at lower time levels. For example, in the following illustration, a cell indicator appears in the cell for the
month of October 2018 for the resource that is named Katelyn Merritt. Therefore, you can see that, even though
the resource's bookings and assignments are equal when they are aggregated at the Month level, they don't match
at lower levels.

Double-click a cell to zoom in to the next lower level and view the difference. For example, if you double-click the
October 2018 difference for Katelyn Merritt, you drill down to the Week level. You can then see that the resource
has bookings of 16 hours but no assignments in the first two weeks of October, and 16 hours of assignments but
no bookings in the third week of October.

You can right-click a cell to zoom out the next higher level. You can also turn off the cell indicator by selecting the
Settings button.
You can also use the Previous and Next buttons above the grid to move through any differences in your project.
To use these buttons, you must first select a resource. Select Next to go to the next difference between bookings
and assignments for that resource. Select Previous to go to the previous difference.
In situations where you have task assignments for a resource but no bookings, you can select the booking shortage
and then select Extend Booking. You can then see the booking that is required in order to address the resource's
shortage. You can also view the resource's bookings on the current project and other projects. Select OK to create
the booking for the resource without regard to current availability. The project manager or resource manager can
then use Schedule Board to manage situations where a resource has become overbooked beyond capacity because
its bookings were extended.
Resource management home page
5/13/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


Resources are the most important asset of a service-based organization. The ability to find and book the correct
resources when you need them, and to keep them utilized, helps the organization meet revenue targets and
customer satisfaction goals. The following topics are focused on the resource management capabilities of
Microsoft Dynamics 365 for Project Service Automation (PSA):
Manage resources
Key concepts
Fulfilling resource requests
Proposing resources
Booking resources
Soft-book requirements
Skills and proficiency models
Resource management FAQ
Manage resources
5/13/2019 • 15 minutes to read • Edit Online

Applies to Project Service app version 3.x


Microsoft Dynamics 365 for Project Service Automation (PSA) includes a resource manager dashboard that
provides a visual overview of resource demand and utilization throughout the organization. You can use the charts
on this dashboard to visualize the following information:
Resource demand – The Active Resource Request chart shows resources that have been submitted. The
resources are aggregated by either role or project.
Unsubmitted resource demand – The Unassigned Resource Demand chart shows all the resource
requirements that haven't been submitted. It helps resource managers view demand that isn't firm and
might be submitted through a resource request.
Billable utilization for the past week – The Utilization by Role chart shows the percentage of the
organization's actual billable utilization by role against its target billable utilization by role.

NOTE
To make the Utilization by Role chart available, create a job that runs the UpdateRoleUtilization workflow. This
recurring job runs every seven days to calculate billable utilization for the previous seven days. The results are
aggregated by role.

Manage project team members


Project managers can use the resource manager dashboard to manage the resources on projects. For example,
they can add a team member directly to a project and book a team member to fulfill the resource requirements
that were captured by a generic resource.
Add a team member directly to a project
To add a team member directly to a project, on the Projects page, on the Team tab, select New. The Quick
Create:Project Team Member dialog box appears. In this dialog box, you can perform these tasks:
Book a named resource – In the Bookable Resource field, select the name of the resource. Then select the
role, set the period, and select an allocation method. The named resource that you selected is added to the
project by using the selected allocation method and the resources calendar.
Add a generic resource – Leave the Bookable resource field blank, and then select the role, set the period,
and select the preferred allocation method. A generic resource is added to the team as a placeholder to hold the
demand pattern that is used to book named resources on the team. The requirement is made according to the
project calendar.
Add a named resource to the team without consuming resource capacity – In the Bookable Resource
field, select a resource. Then select the period, and select None as the allocation method. The resource is added
to the team, but the resource's capacity isn't consumed through a booking.
Book a team member to fulfill resource requirements for a generic resource
In PSA, you can book a generic resource on a project team, and can specify the role, the required capacity, and how
that capacity is distributed. On the resource requirement, you can specify attributes that are associated with the
generic resource. These attributes include required skills, the preferred organizational unit, and preferred
resources.
Follow these steps to specify required skills on a generic resource for a developer.
1. On the Projects page, on the Team tab, select New to book a generic resource.

2. In the All Team Members view, in the Resource Requirement column, select the link to add required
skills for the generic resource.

3. On the Resource Requirement page that appears, in the Skills grid, select the ellipsis (...) and then select
Add New Requirement Characteristic to add the required skills for your developer.

4. In the Quick Create: Requirement Characteristic dialog box that appears, in the Characteristic field,
select the required skill. Then, in the Rating value field, select the proficiency level for that skill. Finally, in
the Resource Requirement field, set the requirement to source resources from organizational units or
even named resources. When you've finished, select Save.
5. On the Resource Requirement page, select Book to fulfill the resource requirement.

You can also select the generic resource in the All Team Members grid and then select Book.

NOTE
In this example, there are 40 required hours but no actual booked hours, because generic resources don't have
bookings. Additionally, there are no assigned hours, because the generic resource was added directly to the team. It
wasn't added by using task assignment.
On the Scheduling Assistant page, you can filter available resources by the requirements that are
specified on the resource requirement. Resources are sorted according to the sorting parameters that are
specified on the Schedule Board.

Here are some filters that are often used:


Characteristics along with a rating – Filter by skills, certifications, and other resource qualities, in
addition to ratings of proficiency.
Roles – Filter by the default roles that are assigned to bookable resources.
Organizational units – Filter bookable resources by the organizational units that they are assigned to.
6. If you aren't satisfied with the results of the initial requirement search, you can change the filter criteria.
Expand the Filter View pane on the left, and then select Search to find additional resources.

7. To change how the results are sorted, select Sort.


8. Select resources according to the demand that is specified on the requirement, as indicated at the top of the
grid. You can clear the selection of cells in the grid and leave that resource capacity open. Only one resource
at a time can be selected as booked.
9. Select Book to book the selected resource and leave the Schedule Board open, so that you can select
additional resources. Alternatively, select Book & Exit to book the selected resource and close the Schedule
Board.

You receive a notification about booked hours. The demand indicators show how much the booking
requirement is satisfied and how much remains. You can also see how much of the selected resource's
capacity is consumed. Select Expand to view more details about resource bookings.
10. Return to the All Team Members view. In the grid, notice that the generic resource has been replaced by
the named resource, and 40 hours are listed as booked for that resource.
NOTE
No assigned hours are shown, because they were booked directly on the team. They weren't booked by using task
assignment.

Assign generic resources to tasks and generate resource requirements


In PSA, you can create tasks and then assign generic resources to them. In this way, resource demand can be
represented by placeholders while you estimate your schedule and financial numbers. You can then generate
resource requirements for the generic resources and fulfill them.
1. On the Projects page, on the Schedule tab, select Add to create a task.

2. In the Resources field, select the Resource Picker symbol. The Resource Picker appears and shows existing
team members for the project.

3. Enter the name of the new generic resource, and then select Create.

4. In the Quick Create: Project Team Member dialog box that appears, in the Role field, select the role for
the generic resource. In the Resourcing Unit field, select the organizational unit for the generic resource.
Then select Save.
The generic team member is now assigned to the task.

On the Team tab, you will see the new generic team member. Notice that it has only assigned hours. These
hours are the sum of all tasks that are assigned to the generic team member. The generic team member
doesn't yet have required hours or a resource requirement.

5. You can now assign the generic team member to other tasks by using the Resource Picker.

When you've finished assigning the generic resource to tasks, you can generate a resource requirement for
the generic resource.
6. On the Team tab, select the generic resource, and then select Generate Requirement.
When the requirement is generated, the generic team member will have required hours and a link for the
resource requirement.

After you book a named resource, the generic resource is removed from the team and replaced by the
named resource.

On the Schedule tab, the generic resource assignments are removed and replaced by the named resource.

NOTE
This behavior occurs only when a named resource is fully booked for the generic resource requirement. When either a
named resource partially replaces the generic resource requirement or multiple named resources replace the generic
resource requirement, the generic resource remains assigned to the task.

In the following illustration, an 80-hour task has been planned for a five-day duration (16 hours per day
over five days) and assigned to the generic resource that is named Functional.

When you generate the requirement, it's for 80 hours over five days.
Because available resources work only eight hours per day, two resources are needed to fulfill the
requirement.

On the Team tab, you can now see that the generic resource has no required hours, but the assigned hours
still appear together with the two named resources that make up the fulfillment.

On the Schedule tab, the generic resource remains assigned to the task.

PSA doesn't assign both resources to the task, because that behavior would produce a less predictable schedule. In
this simple example, it's easy to divide the hours equally between two resources. However, in more complex
scenarios that involve multiple tasks and multiple resources, PSA would have to make assumptions about how it
should allocate the bookings that are received for multiple resources across multiple tasks.
Therefore, in these scenarios, the project manager is responsible for parsing the multiple bookings and assigning
them as needed. To allocate the bookings, the project manager assigns the tasks from the generic resources to the
named resources and then uses the Reconciliation view to make sure that the allocation works with the bookings.
Edit a resource requirement
After a resource requirement has been created, a project manager or resource manager might want to edit the
details to refine the search criteria when the Schedule Board is used. To edit the resource requirement, follow these
steps.
1. On the Projects page, on the Team tab, select the link to any requirement on a generic resource.
2. On the Resource Requirement page that appears, you can update several attributes. Here are some
examples:
Name
From Date
To Date
Duration
Resource Type
On the Resource Requirement page, the project manager or resource manager can also define the following
information:
Skills
Roles
Resource preferences
Preferred organizational unit
Update resource bookings after they are booked on a project
After you've added a generic or named resource to a project team, you can change the resource's bookings.
1. On the Projects page, on the Team tab, select a team member, and then select Maintain Bookings.

The Schedule Board appears and shows the project team member's bookings. Expand the team member's
record to view the hours that have been booked against this project and other projects that are consuming
the team member's capacity.
2. Select and drag the booking to extend or shorten it. A Create Resource Booking dialog box appears that
lets you adjust the booking.
3. Right-click the booking. You can then use the shortcut menu to complete the following actions:
Change the booking status.
Edit the booking.
Substitute a resource on the project team.
Change the booking status
You can change any default or custom booking status.

The following statuses are included in PSA:


Canceled – This status cancels a resource's booking and frees up the resource's capacity.
Hard Book – This status consumes a resource's capacity. A booking typically has this status when you open
Maintain Bookings from the All Team Members grid on the Projects page.
Soft Book – This status adds a resource to a team but doesn't consume the resource's capacity. It indicates that
the resource has been reserved for potential work but still has capacity if it's needed on other jobs. In the view
of overall resource availability, soft bookings have a different status than hard bookings.
Proposed – This status represents a resource manager's or project manager's proposal for a resource.
Proposals don't consume the capacity of a resource, and the resource isn't added to the project team. To hard-
book the resource on the team, the project manager must accept the proposal.
Submit resource requests
Resource requests are used to carry the demand (resource requirement) that must be fulfilled by a resource
manager. For a generic resource thta is already on the team, you can submit a resource request directly. A resource
request can be fulfilled in two ways:
The resource manager directly fulfills the request. In this case, the generic resource is replaced by a hard
booking that has a named resource.
The resource manager proposes a resource to the project manager, and the project manager approves or rejects
the proposed resource.
Direct fulfillment of resource requests
When a resource requirement is generated, a project manager can submit a resource request for a generic
resource by selecting the resource and then selecting Submit Request.

Comments about the resource can be provided to the resource manager who is fulfilling the request. After the
request is submitted, the Status field for the team member is changed to Submitted.

When the resource manager fulfills the request, the generic team member is replaced by the named resource in
the All Team Members grid.
Use a resource proposal for resource requests
Instead of directly booking a resource on a resource request, a resource manager can propose a resource to the
project manager. A resource manager might use this option when an exact match for the requirements isn't
available. When a resource manager proposes a resource, the project manager sees that the Status field for the
generic team member is changed to Needs Review.

To view the proposed resource together with a visualization of the effect of the proposal's booking, double-click the
team member that has a status of Needs Review. Then select the Proposed Resources tab.

Select Accept All Proposals to accept all proposed resources or Reject All Proposals to reject them. If you
accept the proposed resources, they are hard-booked on the project as team members and replace the generic
resources.

NOTE
You must either accept or reject all proposed resources. You can't partially accept or reject them.

Substitute a resource on the project team


Sometimes, a project manager must substitute a booked team member on a project.
1. On the Projects page, on the Team tab, select the resource that needs a substitute, and then select
Maintain Bookings.
2. Expand the resource to view the projects that it's assigned to.
3. Right-click the project, and then select Substitute Resource.
4. If you know the resource that you want to substitute for the current resource, select or type the name, and
then select Re-assign.

Alternatively, follow these steps to search for a resource:


a. Select Find Substitution.
The Schedule Assistant returns a list of available substitutes. In the Schedule Assistant, you can
further filter the available resources to find a suitable substitute.

b. To substitute the resource, select the resource that you want, and then select Substitute.
The bookings and assignments are substituted with the new resource.

Reconcile team member bookings and assignments


For team members, bookings and assignments are loosely coupled. In other words, resources can have
assignments but no bookings, or they can have bookings but no assignments. Ideally, bookings and assignments
should be aligned, so that resources have committed capacity to perform the task assignments. However, the
bookings might be based on availability, and task timings might change as the project continues. Therefore, the
loose coupling of bookings and assignments provides flexibility.
PSA has a Reconciliation tab that lets project managers reconcile team members' bookings and their
assignments for project teams.
The Reconciliation tab shows bookings and assignments down to the level of the individual task assignment for
each team member. It shows hours in cells that represent time periods from months down to days.
The tab also shows an overall net total for the project, together with a total column.
For each resource, the tab calculates the difference between the team member's bookings and a rollup of the team
member's task assignments. Ideally, this difference should be 0 (zero). In other words, there should be no
difference between bookings and assignments. Differences are colored and shaded to draw attention to two
conditions:
Booking shortage – A booking shortage occurs when a resource has more assignments than bookings.
Because this capacity hasn't been reserved, a project manager might want to correct this condition by extending
the resource's bookings to cover the deficit.
Excess bookings – Excess bookings occur when a resource has been booked to the project but hasn't been
assigned to tasks. This condition might be acceptable in the cases where the resource was booked to the project
before task assignment occurred. However, in other cases, the resource isn't planned to be assigned to tasks. In
these cases, the project manager should consider canceling the resource's bookings, so that the capacity can be
used for another project.
In some cases, when you view time at a higher level than the day level (for example, the month level), you might
see a net difference of zero for a resource (in other words, bookings = assignments). However, if you view time at
the week level, you might see that there are assignments of zero hours and bookings of 40 hours in the first week,
but assignments of 40 hours and bookings of zero hours in the second week. Overall, the bookings and
assignments are reconciled, but they differ from one week to the next.
When you view time at higher levels, cells in the Reconciliation tab have an indicator to inform you that there are
differences at lower levels. By double-clicking in a cell, you can zoom in to view the difference. You can then right-
click to zoom out. By selecting a resource and then using the Next difference control on the grid toolbar, you can
go to the next difference between bookings and assignments for that resource. You can then use the Previous
difference control to go back. You can also turn off the difference indicator and navigation behavior under
Settings.
If you have task assignments for a resource but no bookings, on the Projects page, on the Reconciliation tab,
select the booking shortage, and then select Extend Booking. The Extend Booking dialog box appears and
shows the booking that is needed to address the resource's shortage. It also shows the resource's existing bookings
across all projects or other schedulable entities. If you select OK to create the booking for the resource, regardless
of that resource's availability, you might cause overbooking.

The project manager or resource manager can then use the Schedule Board to manage any situations where a
resource is overbooked beyond its capacity.
Key concepts
3/29/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


The following table defines key concepts that are used in the Microsoft Dynamics 365 for Project Service
Automation app.

CONCEPT DEFINITION

Project team member As part of the project team, a project team member can be a
named resource that has bookings, a named resource that
doesn't have bookings, or a generic resource. Generic
resources don't have bookings, are local to the project, and
don't have capacity constraints across projects.

Project generic resource A resource placeholder that lets you form a team and staff a
project plan without having to know the named resource. The
project calendar is used as the generic resource's calendar.
Generic resources can be added to a project team and
assigned to tasks.

Booked hours Resource hours are hard-booked against a project to help


guarantee that the project work is completed. Booked hours
are consumed from the resource's overall capacity. Bookings
are against named resources only, not against generic
resources.

Assigned hours Resource hours are assigned to tasks in the project schedule.
Assignments can be against either named resources or
generic resources. Assignments can be independent of
bookings.

Required hours The capacity that is required, but that isn't yet fulfilled by a
named resource. Required hours are relevant only for generic
team members that have generated resource requirements.

Demand The current and incoming workload. In Project Service


Automation, demand is shown as resource requirements or
resource requests.

Resource requirement An entity that is used to capture required hours, start and
end dates, skills, geography, and other pricing dimensions for
the required resources. Resource requirements are either
generated from project team members or individually created.

Resource request An entity that is used as an "envelope" to carry the resource


requirement that must be fulfilled by a resource manager.

Resource default role The role that a resource is grouped under for utilization
calculation. The resource is assumed to have the required skills
for the role and to meet the target utilization for that role.

Resource organization unit The organizational unit that a resource is assigned to.
CONCEPT DEFINITION

Contour Task, requirement, or assignment hours as they are broken


down into a daily distribution. For example, a five-day, 40-
hour task can be contoured into eight hours per day over five
days.

Reconciliation view A view that shows the bookings and assignments for each
project team member. This view lets the project manager look
for any mismatch between bookings and assignments, and to
take corrective action if any mismatch occurs.

Work hours An entity that is used to identify resource capacity, and


working and non-working hours. This entity is also referred to
as the resource calendar.
Fulfilling resource requests
3/29/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


Resource requirements can be sent as resource requests to the resource manager who is responsible for fulfilling
those requests.
Resource requests are shown as a list in the Active Resource Requests view.

To fulfill a request, select it in the list, and then select Find Resources. Alternatively, double-click a row to open the
request. You can then select the Resource Requirement tab to view the requirements for that request. To start to
fulfill the request, select Find Resources.

The Schedule Assistant appears and is filtered by the requirements. Select the resource, and then select Book.
The generic team member is replaced with the hard-booked named resource on the project team and task
assignments in the project schedule.
Propose project resources
3/29/2019 • 4 minutes to read • Edit Online

Resource managers can propose a resource to the project manager by using a resource request.
1. From the request grid or the request itself, select Find Resources.
2. On the Schedule Assistant page, select the resource, and then, in the Create Resource Booking pane, in
the Booking Status field, select Book.

The following status updates occur:


On the Schedule Assistant page, the status indicators are updated to indicate that the booking is
proposed, not hard-booked.
On the resource request, the status is changed to Needs Review.

On the Team tab of the project, the generic team member's Request Status value is changed to Needs
Review.

The project manager can either accept or reject the proposal.


When resource managers process resource requests, they can use any of the following approaches:
Propose multiple resources to satisfy the demand if no single resource is available to fulfill the required hours.
Proposed hours are then split among multiple resources that can satisfy the required hours. In this scenario, the
hours can't overlap.
Propose fewer resources than are required. In this scenario, the proposed resource capacity is less than the
required hours that the requestor specified. Therefore, when the requestor accepts the proposed resources, an
unfulfilled resource requirement is created to capture the remaining demand.
Book multiple resources to satisfy the demand if no single resource is available to complete the work.
Book fewer resources than are required. In this scenario, the booked hours are fewer than the required hours.
The system guides you to propose resources instead of bookings, so that the requestor can verify and keep
track of remaining demand.

Billable utilization
Resources can have a target billable utilization. This target utilization is either defined as an attribute on a
resource's default role or set on the record of the individual bookable resource. Utilization calculations are based
on the actual hours that resources have reported by using approved time entries.
The following formulas are used to calculate utilization:
Billable utilization = Chargeable actual hours ÷ Resource capacity
Non-billable utilization = Actual time with billing type ID = Non-chargeable, Complementary, or Not available
÷ Resource capacity
Internal = Actual time with no sales contract ÷ Resource capacity
Resource capacity = Resource work hours – Out-of-office – Non-working days
You can find the Resource Utilization view in the Resources pane.

Each cell in the grid represents the billable utilization percentage of the resource in a period, such as a day, week,
or month. The following formulas are used to color the cells:
Green: Billable utilization >= Resource target utilization
Yellow: Target utilization – 20 <= Billable utilization < Target utilization
Red: Billable utilization < Target utilization – 20
Because the Resource Utilization view is based on the Schedule Board, you can use the filtering capabilities of
the Schedule Board to filter your results.
The grid requires that you set a target utilization on either the role or the individual resource. To do this setup, go
to Resources > Resource roles.
Additionally, a default role must be assigned to each bookable resource. Go to Resources > Resources. On the
Project Service tab, verify that a resource role is defined, and that the Is Default field for it is set to Yes. You can
add additional roles where Is Default = No. The role where the Is Default = Yes is used to evaluate the
resource's utilization against the target for that role.
On the Project Service tab, you can also set an individual target utilization for the resource. The utilization
calculation then uses that target utilization to evaluate the resource's target instead of the target of the resource's
default role.
Utilization is shown for a resource only if that resource has approved, chargeable time during the period that is
shown in the grid.

Resource availability
It's critical that resource managers be able to view the availability of resources and update bookings. In some
cases, there is no formal demand (resource request), but a resource manager must respond to an unplanned
demand that comes through channels such as an email, phone call, or instant message. Resource managers use
the Schedule Board to update resources and bookings.
Resource work hours are used as the basis for calculating the availability of a resource. Resource bookings
consume the capacity of the resources.

The Schedule Board uses colors and shading to show bookings, availability, and overbookings, and also the status
of bookings. A setting in the Schedule Board settings lets you show a legend.
If a right-pointing arrow appears next to an individual bookable resource on the Schedule Board, the resource can
be expanded to show details of the work that the resource is booked on.

Because Microsoft Dynamics 365 for Project Service Automation (PSA) uses the Universal Resource Scheduling
engine, if you also have Microsoft Dynamics 365 for Field Service installed, you can view the details of resource
bookings for projects, work orders, and any other entities that you've extended scheduling to.

To view more details about an individual resource, right-click it to open the resource card.
Use the Schedule Board to book project resources
3/29/2019 • 2 minutes to read • Edit Online

In addition to booking resources on a project from within a project, you can hard-book or soft-book resources
from the Schedule Board.
Before you can book from the Schedule Board, you must create or generate resource requirements. Follow these
steps to create resource requirements from the Schedule Board.
1. If the Booking Requirements pane at the bottom of the page is collapsed, select the expander control to
expand it.
2. In the Booking Requirements pane, on the Project tab, select the requirement to book.

3. Select Find Availability to filter the bookable resources and view the available resources.
4. Select one or more resources from the Schedule Board.
5. In the Create Resource Booking pane on the right side of the page, enter the booking information, and
then select Book and exit.
6. While the requirement is selected in the Create Resource Booking pane, select one or more cells of a
resource to create the booking.

7. Select Book.
The requirement is fulfilled by using the selected resource. In the Booking Requirements pane, notice that the
requirement has been updated, and the resource is shown as booked on the project.
Soft-book requirements
3/29/2019 • 2 minutes to read • Edit Online

A resource requirement can be hard-booked. A hard booking creates a proposal that consumes a resource's
capacity. The proposal is then sent back to the requester for approval. A soft booking tentatively adds a resource to
a project team and has a different status on the Schedule Board, but it doesn't consume the resource's capacity. To
soft-book a resource from the Schedule Board, set the Booking Status field to Soft.

When the Team tab is in the Named Team Members view, the resource appears there. The soft-booked hours
are reported in the Soft Booked Hours column.

Soft-booked team members can be assigned to tasks.


On the Reconciliation tab, no bookings are shown for a soft-book resource, because the Reconciliation tab
considers only hard-bookings.

NOTE
You can't soft-book a resource from a requirement that was generated from a generic team member.

On the Schedule Board, a different coloring is used for soft bookings for a resource.
To convert a soft booking to a hard booking, on the Schedule Board, right-click the soft booking, and then select
Change Status > Hard Book > Hard.

The booking is changed, and the status is changed on the Schedule Board. Because the booking status is now
Hard, the resource is shown as booked, and its capacity and availability are adjusted.
You can use the same method to cancel a hard booking or a soft booking from the Schedule Board.
To convert a resource that is soft-booked to hard-booked on the project's Team tab, select the resource, and then
select Confirm.
Skills and proficiency models
3/29/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


Skills are resource characteristics that are shared between Microsoft Dynamics 365 for Project Service
Automation (PSA) and Microsoft Dynamics 365 for Field Service (if present).
To maintain the repository of skills in PSA, go to Resources > Resource Skills.

Use proficiency models to rate resources


Skills for resources are rated by proficiency models. The individual ratings are in a proficiency model.
1. To create a proficiency model, go to Resources > Proficiency Models, and then select New.
2. In the new rating model, specify the minimum rating value, the maximum rating value, and the entity that is
being rated.
3. In the Rating Values sub-grid, you can define the different rating values, from the minimum to the maximum.
These rating values are shown on the Resource Requirements, Schedule Board, and Schedule Assistant
filters.
Resource management FAQ
3/29/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x

What is the difference between a team member and a resource


requirement?
A project team member can be assigned to tasks, booked or overbooked, and set as an approver. A resource
requirement can exist without a project team member, as a draft note of demand.

What is the difference between proposed and soft-booked hours?


Proposed hours and soft-booked hours differ in visibility. Proposed hours are visible only to resource managers
and the project manager who initiated the demand by using a resource request. Soft-booked hours are visible to
anyone who has access to the Schedule Board.

How can I see the soft-booked hours for resources on a team?


Soft bookings can made when you book a resource requirement. Resources that are soft-booked on a project team
appear as team members who have soft-booked hours. They also appear on the Schedule Board.

How do I change the required hours, and the start and end dates, for a
resource (generic or named) that I booked?
After resources are booked, select Maintain Bookings to make any changes that are required.

What resources types does Project Service Automation support?


User and Contact are the resource types that Microsoft Dynamics 365 for Project Service Automation (PSA)
supports. Although you can create other types of resources (for example, Equipment and Group), no end-to-end
use case is supported for them in PSA.

What is the difference between an assignment and a booking?


Assignments are the assignment of resources to project tasks in the project schedule. The resources can be either
real or generic resources. Bookings are the hard or soft allocation of resources to a project. Hard bookings
consume a resource's capacity. Ideally, for real resources, the bookings and assignments should agree, because
they don't differ. However, PSA doesn't enforce this agreement. The Reconciliation view shows a project manager
places where a resource's bookings and assignments don't agree.
Reporting home page
3/8/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


Microsoft Dynamics 365 for Project Service Automation (PSA) lets project-based organizations efficiently manage
the operations of their business. On any project, team members must manage the opportunity, quote and plan the
work, resource the projects, manage the work according to the plan, bill for the work, and then do the work to
complete the project. The ability to report on operations is key to determining the health of the organization and
taking any corrective action that's required. PSA uses Microsoft Dynamics 365 reporting methods and
technologies for all its reporting. For more information about the options for reporting, see the Customer
Engagement Reporting and Analytics Guide.

Report Wizard
The Report Wizard lets non-developers create simple reports in Dynamics 365. Because PSA is built on the
Microsoft Dynamics 365 for Customer Engagement platform, the experience is the same as the experience that is
documented in Create or edit a report using the Report Wizard. However, you will use the PSA-specific entities.

Custom SQL Server Reporting Services reports


If your business requires a specific report that can't be created by using the Report Wizard, you can create a
custom report. You must have Microsoft Visual Studio installed, together with the appropriate Microsoft SQL
Server Data Tools and Report Authoring Extensions. For more information about tools and versions, see Report
writing environment using SQL Server Data Tools. For information about how to create a custom report, see
Create a new report using SQL Server Data Tools.

Power BI insights apps


Together, Microsoft Power BI and Dynamics 365 give you a powerful way to work with your data, in the form of
insights apps. For information about the availability of insights apps, see the Power BI insights apps page.

Additional resources
For more information about reporting in PSA, see the following topics:
Working with the Project Service data model
Dashboards
Dashboards
3/7/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


Microsoft Dynamics 365 for Project Service Automation (PSA) includes two system dashboards: Practice
Manager and Resource Manager.

Practice Manager
The Practice Manager dashboard gives practice managers a graphical dashboard experience for tracking costs,
sales, and gross margin and utilization. It also lets practice managers slice the information by various dimensions,
such as customer, project, or resource role. For more information about how to create and customize dashboards,
see Create or edit dashboards.

Resource Manager
The Resource Manager dashboard gives resource managers a graphical dashboard experience for monitoring
resource requests, and resource demand and utilization. It also lets resource managers slice the monitored
information by various dimensions.
Working with the Project Service Automation data
model
3/22/2019 • 7 minutes to read • Edit Online

Applies to Project Service app version 3.x


Microsoft Dynamics 365 for Project Service Automation (PSA) extends Microsoft Dynamics 365 for Sales entities
and other entities. It also introduces its own entities in the Common Data Service data model. This topic describes
some of the entities that you will encounter in typical PSA reporting scenarios.

Reporting on opportunities
PSA extends the Sales Opportunity entity by adding fields that enable project-based scenarios. These fields are
identified by a schema name that is prefixed with msdyn_. One new field that is important for reporting on PSA
opportunities is Order Type. A value of Work Based for this field indicates that the opportunity is a PSA
opportunity. Other fields that have been added to the entity include Contracting Organization, which captures
the organization that is holding the opportunity, and Account Manager, which captures the name of the account
manager who is responsible for the opportunity.
The Opportunity Line entity also includes fields that are related to Project Service. Billing Method indicates
whether the opportunity line should be billed on a time-and-materials basis or a fixed-price basis, and Project
captures the name of the project that is backing the opportunity. Other fields that you can report on capture costs
and customer budget amounts for the line item.

Reporting on quotes
PSA extends the Sales Quote entity by adding project-related fields. Order Type distinguishes PSA quotes from
non-PSA quotes. A value of Work Based for this field indicates that the quote is a PSA quote. Other fields that
can be relevant to reporting on PSA quotes include amount fields, such as Chargeable Costs, Non-chargeable
Costs, Gross Margin, Estimates, and Budget. Other useful fields indicate whether the quote is profitable,
whether it will be completed on schedule, and whether it meets the customer's budget expectations.
PSA also extends the Sales Quote Line entity. One field that PSA adds is Billing Method, which indicates how
the quote line will be billed (time and materials or fixed price). Other fields that have been added to the entity
capture the related project that is backing the quote line, invoicing, cost, and budget.
PSA also adds new quote-related entities to the Dynamics 365 data model. Here are some examples:
Quote Line Detail – This entity contains the project estimate details of the quote line. It has two records for
each quote line. One record stores the cost and cost details of the quote line, and the other record stores the
sales amount and sales details of the quote line.
Quote Line Invoice Schedule – This entity contains the billing schedule for the quote line. This schedule is
generated based on the invoicing frequency that is assigned to the quote line.
Quote Line Milestone – This entity contains the billing milestones for fixed-price quote lines.
Quote Line Analytics Breakdown – This entity contains financial details of the quote line. These details can
be useful for reporting quoted sales and estimated cost amounts by various dimensions.
Other entities that PSA adds to quotes are Quote Line Project Price List, Quote Line Resource Category, and
Quote Line Transaction Category.
Reporting on project contracts
PSA extends the Sales Order entity that is used when project contracts are recorded. It adds an important new
field, Order Type, that identifies the contract as a PSA project contract instead of a sales order. A value of Work
Based for this field indicates that the order is a PSA project contract. Other new fields that are added to the Order
entity capture details about costs, PSA contract status, and the organization that owns the contract.
PSA also extends the Sales Order Line entity. Among the fields that it adds are fields that capture the billing
method (time and materials or fixed price), customer budget amounts, and the underlying project.
PSA also adds new entities that are designed for project contracts. Here are some examples:
Project Contract Line Detail – This entity contains the line-level details that are rolled up to the contract line
amount. These can be as detailed as line items that are generated from a project schedule at the task level.
Contract Line Invoice Schedule – This entity contains the billing schedule that is generated based on the
invoice frequency that is assigned to the contract line.
Contract Milestone – This entity contains the billing milestones for contract lines that have a fixed-price
billing term.
Other entities that PSA adds to contracts are Project Contract Line Project Price List, Project Contract Line
Resource Category, and Project Contract Line Transaction Category.
Reporting on projects
The Projects entity and its related entities are exclusive to PSA. Project is the top-level entity that is used to
capture the work and cost side of operations. Here is a list of the related entities:
Project team member – This entity contains details about the bookable resources that are assigned to the
project. Those resources can be generic bookable resources, or they can be named bookable resources that are
either entered by the project manager or generated from the project schedule.
Project Task – This entity contains the tasks that make up the project plan or schedule.
Resource Assignment – This entity contains the task assignment for the bookable resource.
Resource Requirement – This entity contains the requirements for any generic resource team members.
Estimate and Estimate line – These entities have a header/line relationship and contain expense estimates for
the project. Task estimates are stored on the Resource Estimate entity.
Reporting on resources
Project resources use the Bookable Resource entities from Universal Resource Scheduling (URS ) that are shared
with other apps, such as Microsoft Dynamics 365 for Field Service. Here is a list of the entities that you might have
to use when you report on project resources:
Bookable Resource – This entity represents the user, contact, generic resource, account, group, or equipment
that is used on the project team.
Bookable Resource Characteristics – This entity includes the skills, certifications, or education of the
resource. The characteristics can have rating values that are defined by the rating model.
Bookable Resource Category – This entity represents the role of the bookable resource.
Bookable resource bookings – This entity represents the time that is booked on projects for the resource.
Each booking has both a header entity and line entities, and each line has a status that represents the status of
the booking.

Reporting on actual transactions


When you approve a timesheet or expense, or invoice a contract in PSA, the business transaction is captured in the
Actual entity. This entity can serve as the basis for almost all finance-related reports in PSA. The Actual entity
captures the cost and sales transactions for the business event. It also captures many relevant attributes.
When you're working with the Actual entity, it's important that you understand what transaction or transactions
are recorded in the entity, and when the transactions are recorded. Here is the typical flow when you work with
time entries (the flow for expense entries is similar):
1. When the time entry is saved, no records are created in the Actual entity.
2. When the time entry is submitted, no records are created in the Actual entity.
3. When the time entry is approved, one record is be created in the Actual entity, and a second record can
also be created. The first record stores the cost of the time entry. The second record stores the unbilled sales
amount of the time entry. The second record is dependent on the project either having a customer, a quote,
or a contract line assigned to it.

TRANS
DOCU TRANS ACTIO RESOU
MENT ACTIO N CUSTO CONTR RESOU RCE BILLIN QUANT UNIT AMOU
DATE N TYPE CLASS MER ACT RCE ROLE G TYPE ITY PRICE NT

2/3/18 Cost Time Alpine Alpine Ashley Project Charg 8.0 50.00 400.00
ski CRM Chinn Mgr eable
house

2/3/18 Unbille Time Alpine Alpine Ashley Project Charg 8.0 100.0 800.00
d sales ski CRM Chinn Mgr eable 0
house

These two records are separate but related records. They are neither debits nor credits.
4. If a contract is associated with the project, when the time entry is invoiced, two more records are created in
the Actual entity. First, a negative amount for the unbilled sales record is created. This record essentially
reverses the unbilled sale. Second, a transaction for the billed sale is created. Once again, these records are
separate but related records, not debits and credits.

TRANS
DOCU TRANS ACTIO RESOU
MENT ACTIO N CUSTO CONTR RESOU RCE BILLIN QUANT UNIT AMOU
DATE N TYPE CLASS MER ACT RCE ROLE G TYPE ITY PRICE NT

2/4/18 Unbille Time Alpine Alpine Ashley Project Charg - 8.0 100.0 -
d sales ski CRM Chinn Mgr eable 0 800.00
house

2/4/18 Billed Time Alpine Alpine Ashley Project Charg 8.0 100.0 800.00
sales ski CRM Chinn Mgr eable 0
house

The Transaction Origin entity records the origin of the Actual record, and the Transaction Connection entity
records the related records for the Actual record. Additionally, the Actual record contains references the project,
project contract (order), bookable resource, and customer.
Create time entries
5/21/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


In previous versions of Microsoft Dynamics 365 for Project Service Automation (PSA), time entries were entered
on a weekly basis. In version 3 and later of PSA, time entries are entered on a daily basis. However, after a few time
entries have been created, you can bulk create or copy them.

Create a time entry


Follow these steps to create a time entry.
1. On the Time Entries page, select New.
2. In the Quick Create: Time Entry dialog box, enter the duration of the time entry in minutes, hours, or days.
The duration must be entered in the following format: x minutes, x hours, or x days. Hours and days can also
be entered as decimal values, such as x.x hours or x.x days.
3. Select the type of time entry and the project that you're entering the time entry for.
4. In the Project Task field, find the task for this time entry.

NOTE
If you're creating a time entry for a task that isn't assigned to a user, in the Project Task field, select the Search
button, select Change View, and then select All Active Project Tasks to list all tasks.

5. Enter a description, if a description is required, and then select Save and Close.
After the time entry is created and saved, you can edit it in the time entry grid. The time entry grid supports two
formats:
You can enter time entries in hh:mm format. This format is then converted to hours and fractions.
You can enter hours and fractions directly.
Note that the fractions of an hour aren't minutes. Therefore, 1.5 hours represents 1 hour and 30 minutes. The same
rule applies to fractions of a day. One day is 24 hours, and 0.5 days represents 12 hours.

Bulk create time entries


After a few time entries have been created, you can copy them to create additional time entries in bulk.
1. On the Time Entries page, select Copy Week.
2. In the From Period field group, in the Start Date and End Date fields, define the date range to copy time
entries from.
3. In the To Period field group, in the Start Date field, specify the date to create time entries for.
4. Select Copy to create a copy of the time entries that correspond to the day of the week that is specified in the
To Period field group. For example, the time entry for Monday of last week is copied to Monday of the week
that is specified in the To Period field group.

Import data for time entries


You can import data from project bookings and assignments. When you import data, you can specify the date
range of the bookings to import and then explicitly select the bookings that should be created as Draft time
entries.

Group by, sort, search, and filter capabilities


You can group and filter time entries by the dimensions that are specified in the columns. In the Group by field,
select the dimension to use to filter time entries. You can also sort the time entry records in ascending or
descending order by using the sort arrow on the column headings. Additionally, you can show or hide entries by
selecting the Filter button on the column headings, and then, in the Search box, entering the text that should be
used to search for time entries by project name, project task, time entry, or resource.
Time entry calendar
5/21/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


On the Time Entries page, you can view the time entries on the calendar by selecting Show as > Calendar
Control.

Updated calendar control


Microsoft Dynamics 365 for Project Service Automation (PSA) version 3 and later offers a new, extensible time
entry experience. This new experience replaces the Custom Calendar Control that was used in earlier versions.
However, you can still view time entries through a read-only calendar control that the Unified Interface Framework
provides for daily, weekly, or monthly views.
The calendar doesn't support actions on individual calendar items, and you can't select one or more calendar items
for submission or deletion. Instead, select a calendar item to open the Time Entry entity page, where you can
complete the required actions.

Extensibility
On the Time Entries page that has the time entry grid, you can add custom fields, set up lookup fields, and create
custom views. You can also set up custom business logic that is based on the values that are selected or entered in
custom fields.
Customize weekly time entry
7/12/2019 • 11 minutes to read • Edit Online

Applies to Project Service app version 3.x


In Microsoft Dynamics 365 for Project Service Automation (PSA) version 3.3, Microsoft introduced a modern grid
that lets project resources quickly enter time for up to one week at a time. The new weekly time entry grid can
show totals for entries by date, by row, or by week. Resources can make copies of time entries within the week and
also bulk-copy from previous weeks. System customizers can customize the view by adding fields, adding lookups
to other entities, and implementing custom business rules to support their organization's practices.
Time entry and the new weekly time grid are accessed through the site map. The non-extensible custom time entry
experience that was part of earlier PSA versions has been replaced by the extensible weekly time entry grid, and
also by an alternative experience in the read-only grid and calendar. Because of this change, users can enter time in
weekly amounts.

Page layout
The new weekly time entry grid is a custom control that has a toolbar and two main sections, Dimensions and
Duration. The toolbar includes a button that applies only to this custom control for the time entry grid. By
contrast, the buttons on the Action Pane at the top of the page apply to the three types of controls that are
supported for time entry: the weekly time entry control, the read-only control, and the calendar control.
Dimensions
The Dimensions section shows, as column headings, all the dimensions that time can be entered against. The
following dimensions are supported out of the box:
Project
Project Task
Role
Type
Entry Status
The Dimensions section doesn't allow for inline editing. This section is backed by a view that enables custom fields
to be added to the weekly time entry grid. For information about how to add custom fields, see the "Extensibility"
section later in this topic.
Duration
The Duration section shows the days of the week as column headers. This section allows for inline editing. After a
time entry row is created that has appropriate dimensions, users can quickly enter, inline, the amount of time that
they spent on those dimensions.

Create a new time entry


To create a new time entry in the time entry grid, select New. The Time Entry Quick Create dialog box appears.
In this dialog box, users can select the time entry date, and then enter data for the Project, Project Task, Role, and
Duration dimensions in minutes, hours, or days by typing h, m, or d, together with the number. Users can also
enter a description and comments that can be shared externally for the time entry. When users save their changes,
the values that they entered against the dimensions appear in the Dimensions section. Duration information that
they entered in the Duration field appears on the date that the time entry was created for.
Lookup fields are backed by system views. For example, after a user enters a project, the Project Task field is set to
the Copy view by default. To create time entries for tasks that aren't assigned to a user, select Change View in the
lookup dialog box, and then select the All Active Project Tasks view.

Edit a time entry


Details from some fields on the time entry page, such as Description and External Comments, aren't shown in
the weekly time entry grid. Instead, a small triangular indicator appears in duration cells that have these additional
details. Select the cell, and then select Edit Details to view the data in the Quick Edit pane. To edit or update the
details for a specific time entry that isn't part of the weekly time entry grid, users must open the Quick Edit pane.

Copy a time entry row


After the first time entry row has been created, users can select Copy Row to copy the whole row to a new row.
When a row is copied in this way, dimensions and durations are also copied. Users can also select Edit Row to
update dimension values and durations inline in the Duration section.

Open a time entry


To support optimal and quick entry in the most prominent fields, the weekly time entry grid show a subset of
selected dimensions and time durations. To view all the details of a single time entry, under Edit Entry, select
Open.

Submit a time entry


Users can submit a single time entry or a group of time entries by selecting a block of cells or a whole time entry
row, and then selecting Submit. Submitted time entries appear as entries that are pending approval on the
approvers' Approval page. After time entries are successfully submitted, they can't be edited.

Recall a time entry


You can recall time entries that you've submitted. You can recall a single time entry, a block of time entries, or a
whole row of time entries. Recalled time entries are available to resources for editing.

Time entry status


New time entries are automatically assigned a status of Draft. When a time entry is submitted, the status is
updated to Submitted. When a submitted time entry is approved, the status is updated to Approved. If a time
entry is rejected, the status is updated to Returned, and the entry becomes available for correction and
resubmission. Only time entries that have a status of Draft can be deleted.

View rejection comments


When a time entry is rejected by an approver, the approver might add rejection comments to help the resource
understand the reason for the rejection. To view the rejection comments for a time entry, select Open entry. The
rejection comments will be shown in the timeline. In the timeline, the resource can respond to the rejection
comments before he or she resubmits the entry.

Copy week
After a few time entries have been created, users can select Copy Week to bulk-create additional time entries. The
Copy dialog box appears. In the From period section, use the Start Date and End Date fields to define the date
range to copy time entries from. In the To Period section, in the Start Date field, specify the date to create time
entries for. Then select Copy. For the specified date in the "to" period, a copy of the time entries for the
corresponding day of the week in the "from" period is created. For example, Monday's time entry from last week is
copied into Monday of the week that is specified as the "to" period.

Import
The same basic process is used to import from bookings, assignments, and exchanges. Users can specify the date
range that bookings are imported from. They must then explicitly select the bookings that should be copied into
draft time entries. In the previous release, suggested time entries appeared in the grid and the calendar, and were
lost when the session was refreshed.

Extensibility
Add custom fields that have lookups to other entities
There are three main steps to adding a custom field to the weekly time entry grid.
1. Add the custom field to the quick create dialog box.
2. Configure the grid to show the custom field.
3. Add the custom field to either the row edit task flow or the cell edit task flow, as appropriate.
You must also make sure that the new field has the required validations in the row or cell edit task flow. As part of
this step, you must lock the field, based on the time entry status.
Add the custom field to the quick create dialog box
You must add the custom field to the Create Time Entry Quick Create dialog box. so that users can enter a value for
it when they add time entries by using the New button.
Configure the grid to show the custom field
There are two ways add a custom field to the weekly time entry grid. The first option is to customize the My
Weekly Time Entries view and add the custom field to it. You can choose the position and size of the custom field
in the grid by editing those properties in the view.
The second option is to create a new custom time entry view and set it as the default view. This view should contain
the Description and External Comments fields, in addition to the columns that you want to have in the grid. You
can choose the position, size, and default sort order of the grid by editing those properties in the view. Next,
configure the custom control for this view so that it's a Time Entry Grid control. Add this control to the view, and
select it for web, phone, and tablet. Next, configure the parameters for the weekly time entry grid. Set the Start
Date field to msdyn_date, set the Duration field to msdyn_duration, and set the Status field to
msdyn_entrystatus. For the default view, the Read-only Status List field is set to
192350002,192350003,192350004, the Row Edit Task Flow field is set to msdyn_timeentryrowedit, and the
Cell Edit Task Flow field is set to msdyn_timeentryedit. You can customize these fields to add or remove read-
only status, or to use a different task-based experience (TBX) for row or cell editing. These fields should be bound
to a static value.
Add the custom field to the appropriate edit task flow
The TBX pages that are used for editing can be found under Processes. The default pages are Project Service -
Time Entry Row Edit and Project Service - Time Entry Edit. You can either edit these default pages or create
new custom TBX pages.

NOTE
Both options will remove some out-of-box filtering on Project and Project Task entities, so that all lookup views for the
entities will be visible. Out of the box, only the relevant lookup views are visible.

You must determine the appropriate task flow for the custom field. Most likely, if you added the field to the grid, it
should go in the row edit task flow that is used for fields that apply to the whole row of time entries. If the custom
field has a unique value every day, such as a custom field for End time, it should go in the cell edit task flow.
To add the custom field to a task flow, drag a Field element into the appropriate position on the page, and then set
its properties. Set the Source property to Time Entry, and set the Data Field property to the custom field. The
Field property specifies the display name on the TBX page. Select Apply to save your changes to the field. Then
select Update to save your changes to the page.
To use a new custom TBX page instead, create a new process. Set the category to Business Process Flow, set the
entity to Time Entry, and set the business process type to Run process as a task flow. Under Properties, the
Page name property should be set to the display name for the page. Add all the relevant fields to the TBX page.
Save and activate the process, and then update the custom control property for the relevant task flow to the value
of Name on the process.
Add new option set values
To add option set values to an out-of-box field, open the editing page for the field, and then, under Type, select
Edit next to the option set. Next, add a new option that has a custom label and color. If you want to add a new time
entry status, the out-of-box field is named Entry Status, not Status.
Designate a new time entry status as read-only
To designate a new time entry status as read-only, add the new time entry value (the number, not the label) to the
Read-only Status List property. The editable part of the time entry grid will be locked for rows that have the new
status. Next, add business rules to lock all the fields on the Time Entry Row Edit and Time Entry Edit TBX pages.
You can access the business rules for these pages by opening the business process flow editor for the page and
then selecting Business Rules. You can add the new status to the condition in the existing business rules, or you
can add a new business rule for the new status.
Add custom validation rules
There are two types of validation rules that you can add for the weekly time entry grid experience: • Client-side
business rules that work in quick create dialog boxes and on TBX pages • Server-side plug-in validations that apply
to all time entry updates
Business rules
Use business rules to lock and unlock fields, enter default values in fields, and define validations that require
information only from the current time entry record. You can access the business rules for a TBX page by opening
the business process flow editor for the page and then selecting Business Rules. You can then edit the existing
business rules or add a new business rule. For even more customized validations, you can use a business rule to
run JavaScript.
Plug-in validations
You should use plug-in validations for any validations that require more context than is available in a single time
entry record, or for any validations that you want to run on inline updates in the grid. To complete the validation,
create a custom plug-in on the Time Entry entity.

IMPORTANT
Currently, a known issue on the TBX pages prevents users from correcting information and reselecting Done when an update
fails a plug-in validation. As a workaround, set up business rule validations to prevent this situation as much as possible.
Pricing dimensions setup guide
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


We have updated the content of the Pricing dimensions setup guide and moved it into this document library. To
learn more about setting up pricing dimensions, see Pricing and costing dimensions.
You can still access and download the Pricing dimensions setup guide (PDF ), however we will no longer be
updating this guide.
Project management how-to guide
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


This English-language document explains how to use new project management capabilities in Dynamics 365 for
Customer Engagement for Project Service (version 3.x).
Download PDF of project management how -to guide
Resource management how-to guide
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


This English-language document explains how to use new resource management capabilities in Dynamics 365 for
Customer Engagement for Project Service (version 3.x).
Download PDF of the resource management how -to guide
Reconciling assignments and bookings how-to guide
5/16/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


We have updated the content of the Assignment and booking reconciliation content and moved it into this
document library. To learn more about reconciling assignments and bookings, see Reconcile bookings and
assignments.
You can still access and download the Reconcile bookings and assignments (PDF ), however we will no longer be
updating this guide.
Time, expense, and approvals
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


This English-language document explains how to use time, expense and approvals capabilities in Dynamics 365 for
Customer Engagement for Project Service (version 3.x).
Download PDF of the time, expense, and approvals guide
How do I "soft book" resources?
1/24/2019 • 4 minutes to read • Edit Online

Applies to Project Service app version 3.x


You can tentatively schedule or "soft book" a resource onto a project team to show that you plan to assign the
resource to the project. Soft bookings don’t consume a resource’s available capacity, and you can assign soft-
booked team members to project tasks. However, because soft booking doesn’t consume a resource’s capacity, you
can still "hard book" the resource for other tasks within the same period. Generic resources can’t be soft-booked,
nor can a soft-booking fulfill a generic resource request.
Soft-booked project team members are listed on the Team tab, with their soft-booked hours shown in the Soft
Booked Hours column in the Named Resources view. Soft-booked team members are also listed on the schedule
board. Because they are soft booked, the schedule board doesn't show any consumption of capacity for these
resources. Soft-booked time doesn’t show up on the Reconciliation tab, nor is it shown in the Extend Bookings field
in the Reconciliation tab.
There are two ways to soft book a team member onto a project: directly from the schedule board, or by adding the
team member on the Team tab.

Soft book from the schedule board


To use this method, take the following steps:
1. Open the schedule board.
2. Select the Project tab on the bottom Booking Requirements panel of the schedule board.
3. Find the project you wish to soft book a resource on. Click on the Project column header and then use the filter
to filter if you have many projects.
4. Click on the project, then drag and drop it on the resource’s time grid.
5. With the Create Resource Booking panel now open on the right, adjust the start and end date. Then set the
Booking Status to Soft and set the hours.
6. Click Book.
7. Back on the project, the resource now shows on the Team tab as a resource. On the Named Team Member view
you’ll see the soft-booked hours in the Soft Booked Hours column.
Note that you can now assign the soft booked to tasks on the Schedule tab. On the Reconciliation tab, the resource
shows a booking deficit relative to their task assignment as the Reconciliation tab only considers hard bookings.
You can use the Extend Bookings feature to hard-book the resource to eliminate the deficit of hard bookings
against the resources assignments. You’ll have to manually cancel the soft booking for the resource by using
Maintain Bookings.

Soft book on the Team tab


Add team members directly on the Team tab, and then change their booking status from Hard to Soft with
Maintain Bookings. When you add a team member in this manner, it will always result in a hard booking unless you
select the allocation method as None. To use this method, take the following steps:
1. From the Team tab, Click New.
2. Select the bookable resource, role, from and to dates.
3. Select an allocation method other than None:
Full Capacity
Percentage Capacity
By Hours Distribute Evenly
By Hours Front Load
4. Click Save. You’ll see the resource on the grid and their hours in the Hard Booked Hours column.
5. Maintain the resource’s bookings by clicking Maintain Bookings.
6. When the schedule board opens, expand the resource to show their bookings. You will see the booking shown
as Hard.
7. Right-click the booking, under Change Status, select Soft Book and then Soft. The booking status is now Soft.
8. After closing the schedule board, you’ll see that the hours for the resource have moved from the Hard Booked
Hours column to the Soft Booked Hours on the Team tab grid, when looking at the Named Team Members view.
Note that if you hard-book a resource onto the team and then assign them tasks in the schedule, when you use
maintain bookings to change the status of Hard to Soft, it retains the task assignments for that resource. However,
on the Reconciliation tab, the resource will have a booking deficiency as only hard bookings are considered when
reconciling bookings versus assignments. You can use the Extend Bookings feature on the Reconciliation tab to
hard-book the resource to eliminate the deficit of hard bookings against the resources assignments. You’ll have to
cancel the soft-booking for the resource by using Maintain Bookings.
When you’re ready to change a soft-booked team member resource to a hard-booked team member, do the
following:
1. On the schedule board, expand the resource to show their bookings. You’ll see the booking shown as Soft.
2. Right-click the booking, under Change Status, select Hard Book and then Hard. The booking status is now Hard.
3. After closing the schedule board and going back to the project and opening the Team tab, you’ll see that the
hours for the resource have moved from the Soft Booked Hours column to the Hard Booked Hours column on
the Team tab when in the Named Team Members view. If the resource was assigned to tasks they’ll no longer
show a booking deficit on the Reconciliation tab as their bookings are now hard.
How do I see chargeable utilization for resources?
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


You’ll find the Utilization View on the Project Service Resource Utilization screen. The grid shows chargeable
utilization for each bookable resource.

The view is based on the schedule board, so you’ll find many of the same functions you’ll find there. The chargeable
utilization calculation works as follows:
Chargeable utilization = Chargeable actual hours/resource capacity.
The cells represent the calculated chargeable utilization for the period selected for the view (days, weeks, or
months). The colors in each cell show the chargeable utilization for a resource as compared to their target
chargeable utilization. The colors show the following status:
Green: billable utilization >= resource target utilization.
Yellow: target utilization – 20 <= billable utilization < target utilization.
Red: billable utilization < target utilization – 20.
The target utilization can be set on either the resource’s default role or on the individual resource itself. The
calculation looks at the individual for the target first, then to the resource’s default role. You can set the target on a
resource in Project Service by clicking Resources and then Resources. Click a resource to open the record and then
click on the Project Service tab to set the resource’s target utilization.
To set target utilization on a role go to Resources and then Resource Roles. Click on a role to open a record. Set the
target utilization for the role.

To calculate chargeable utilization for a resource, you need to make some settings. First, target utilization must be
set on either the individual resource or on resource roles. If you are using resource roles for targets, each individual
resource must have a default role. To set this, go to Resources and then Resources. Click a resource to open the
record and then click on the Project Service tab. In the Resource Role grid, make sure there’s one role for the
resource and Is Default is set to Yes.
The resource roles must be set to have a billing type of chargeable. Go to Resources and then Resource Roles. Click
on a role to open a record and then set the billing type default to Chargeable.
The resource must have working hours for the capacity calculation. To set this, go to Resources, and then Resources.
Click a resource to open the record and then click on Show Work Hours. You can bulk-update the list of resources
by applying a Work Hour Template from the Resource list view.
The chargeable actual hours are sourced from the Actuals entity. Actuals with billing type of chargeable are
included in the calculation and for this reason you must have projects where the actuals that are chargeable.
If you are not seeing chargeable utilization, here are some things you can check:
The resource has working hours defined for capacity.
The resource has either an individually defined utilization target or has a default role assigned to it. The role has
a utilization target defined for it.
Actuals have a billing type of chargeable for the period you are expecting a utilization calculation for. Here are
some things to check if you are seeing Actuals with billing types other than chargeable:
The role used on the actual has a default billing type of something other than chargeable.
The role on the project contract line backing the project has been set to non-chargeable.
The project does not have an associated contract line.
Which booking allocation method should I use to
avoid overbooking?
1/24/2019 • 4 minutes to read • Edit Online

Applies to Project Service app version 3.x


Whether you add a team member directly to a project on the Team tab, or book a resource to a project or
requirement from the schedule board, there are a few different booking allocation methods you can use. This article
explains how each method works, and which methods could lead to overbooking resources.
Choosing the allocation method when adding a team member to a project

Choosing the allocation method from the schedule board


Here’s a description of the booking allocation methods:
Full Capacity
This method books the resource’s full capacity for the specified from and to dates. For example, if a resource has a
calendar set to work 8 hours per day, 5 days a week, setting a start and end date that covers 5 working days books
the resource for 40 hours. The booking is done without regard to the resources remaining capacity. If a resource is
already booked during that period on other projects, the 40 hours is booked as additional hours, potentially leading
to overbookings.
Remaining Capacity
This method is only available when you book directly to a project using the schedule board. This method books the
resource’s available capacity within the specified date range. For example, if a resource has a capacity of 40 hours
per week and has already been booked 10 hours in a week, booking using the remaining capacity method for the
same week results in a booking for the remaining 30 hours of capacity for that week.
Percentage Capacity
This method books the resource for a percentage of capacity for the specified from and to dates. For example, if a
resource's calendar is set to work 8 hours per day, 5 days a week, setting a start and end date that covers 5 working
days and at 50% capacity would book the resource for 20 hours. The individual bookings per day are spread
equally across the period, for example 4 hours per day in this example. The booking is done without regard to the
resource’s remaining capacity. If the resource is already booked during that period on other projects, the 20 hours is
booked as additional hours, potentially leading to overbookings.
Evenly Distribute Hours
This method books the resource for a specified number of hours, distributing the time evenly per day over the
specified from and to dates. For example, if you book a resource for 20 hours over a 5-day period, this method
distributes the 20 hours evenly at 4 hours per day. The booking is done without regard to the resource's remaining
capacity. If the resource is already booked during that period on other projects, the 20 hours is booked as additional
hours, potentially leading to overbookings.
Front Load Hours
This method books the resource for a specified number of hours, front-loading the per-day hours over the specified
from and to dates. Front-loading consumes the resource's available capacity in a “first-in-first-consumed” order. For
example, if a resource’s work schedule is 8 hours per day, 5 days per week, and they have no current bookings,
booking the resource for 20 hours over a 5 working day period results in the following daily booking pattern:

DAY 1 DAY 2 DAY 3 DAY 4 DAY 5 TOTAL

Existing 0 0 0 0 0 0
bookings

New booking 8 8 4 0 0 20

The front load method takes into consideration existing bookings and available capacity. For example, if the same
resource already has 20 hours of bookings in the work week, the new bookings consume the remaining capacity as
follows:

DAY 1 DAY 2 DAY 3 DAY 4 DAY 5 TOTAL

Existing 8 8 4 0 0 20
bookings

New booking 0 0 4 8 8 20

Because available capacity is considered, you may get an error message if the resource has no remaining capacity
that can be absorbed by the booking. With this method, you can’t overbook.
None
This method is only available when you book from the Team tab within a project. This method adds the resource as
a team member on the project, but doesn’t create any bookings that absorb the resource's capacity. This method is
used when the default project manager team member is added when a project is created. The project manager user
who created the project is added by default to the project, so that the project entity record has an owner and there
is one approver on the project. Because this user doesn't have any bookings, if you do want to book the resource
you can either delete and then re-add them using a different allocation method, or add the resource to tasks and
then use Extend Bookings on the Reconciliation tab to create bookings for the assignments.

Allocation methods that lead to overbooking


To summarize, the following allocation methods lead to overbooking if the resource is already committed in other
projects (or for other work orders or schedulable entities):
Full Capacity
Percentage Capacity
Evenly Distribute Hours
When using one of these three allocation methods, you won’t be notified that the resource is overbooked. To
correct the overbooking, you’ll need to use the schedule board.
Can I create a project booking from the schedule
board?
1/24/2019 • 3 minutes to read • Edit Online

Applies to Project Service app version 3.x


You can book a resource onto a project either directly on the project team tab of the project or by generating a
resource requirement from a generic team member assignment and then fulfilling the generated requirement with
a project team member.
You can also book a resource onto a project directly from the schedule board. There are three options for doing this:
1. From a generated resource requirement. You can generate a resource requirement after creating a generic
resource and assigning tasks within a project. On the schedule board, these resource requirements show up on
the Open Requirements tab.

2. Using the primary requirements generated when a project is created. These show up on the schedule board on
the Project tab. If you have many projects, you might find it easier to use the column filters to find the specific
project you want to book to.
3. Creating a resource requirement from scratch and booking from it. You can create a resource requirement from
scratch and associate it with a project. On the schedule board, the resource requirement shows up on the Open
Requirements tab.

Book from a generated resource requirement


You can create a generic resource and assign it a task or multiple tasks within a project. You then generate a
resource requirement from the generic team member. On the schedule board, this resource will show up on the
Open Requirements tab. You might need to use column filters on the grid if you have many open requirements.
Select the requirement. The Find Availability tab appears at the top of the selected row.

Selecting the tab launches the Schedule Assistant mode of the schedule board and filters the available resources
that meet the resource requirement.
From there you can book a resource.
You can also drag and drop the selected row from the bottom of the schedule board to a resource in the grid above.
Select the requirement and drag it to a resource’s cell.

When you drop it, it opens the Create Resource Booking panel on the right.
Selecting Book books the resource onto the project team.

Book from the Primary Requirement


Creating a project in Project Service automatically creates a resource requirement called the Primary Requirement.
This is an empty requirement that is used to quickly book a resource with the schedule board without either
generating a requirement or creating one from scratch. Because the requirement is empty, you’ll need to specify
dates as well as the allocation method and hours if applicable.
To book a resource with the Primary Requirement, on the schedule board, select the Project tab. You might need to
use the column filter on the Project column if you have many projects.
Select the requirement that only has the project name as its name and has a duration of 0.
Select the Find Availability tab that appears on the row. This puts the schedule board in the Schedule Assistant
mode and shows available resources that can be booked onto the project.
Because a Primary Requirement is an empty requirement with 0 duration, you’ll need to set the duration on the
Create Resource Booking panel when selecting and booking a resource.

You can also select the Project Primary Requirement at the bottom of the schedule board and drag and drop it on a
resource to book it.
Since the Primary Requirement is an empty requirement that has 0 duration, you’ll need to set the duration on the
Create Resource Booking panel when selecting and booking a resource.

When you book a resource through the Primary Requirement on the schedule board, you add it to the project team
without any assignments.
Book from a new resource requirement
Go to Resource Requirements and select New to create a new resource requirement.

Associate the requirement to a project by selecting the Project tab of the requirement and selecting a project.
This newly created requirement shows as an Open Requirement on the schedule board that you can fulfill.

Booking the resource adds it to the project team.


Now that the resource is booked, you need to assign tasks manually.
How do I assign a resource to a task?
1/24/2019 • 3 minutes to read • Edit Online

Applies to Project Service app version 3.x


In this FAQ, we’ll describe the three ways you can assign a resource to a task in Project Service.

Booking a resource as a team member and then assigning the resource


to a task
You can add a resource to the project team and then assign the resource to tasks in the project schedule.
On the Team Member tab, you can add a new team member by selecting New. That opens the Team Member
Quick Create panel, where you can select the bookable resource name and set a role. After that, choose one of the
following allocation methods for the resource’s booking:
Full Capacity books the resource’s full capacity for the specified from/to dates.
Percentage Capacity books the resource for a percentage of the resource's capacity for the specified from/to
dates.
By Hours Distribute Evenly books the resource for a specified number of hours, distributing them evenly per
day over the specified from/to dates.
By Hours Front Load books the resource for a specified number of hours, front-loading the per-day hours over
the specified from/to dates.
None adds the resource to the team but doesn’t create any bookings that absorb their capacity.
On the Schedule grid for a task, select the Resource icon in the resource cell, and then select the team member you
just added. They appear under Team Members.
Note that both on the Team Member tab and the Reconciliation tab, the resource shows booked hours and
assigned hours. They should be the same, but don’t have to be as bookings and assignments are not tightly
coupled. The Reconciliation tab gives you details when they are different, such as when you assign a resource more
hours than you have booked. You can then take corrective action with this information, either extending the
resource's bookings or changing the assignment.

Creating a generic team member through task assignment


With this method you create a placeholder or generic resource that describes the characteristics of the named
resource you ultimately want to work on the tasks. You then generate a requirement (or submit a request using the
requirement) that is used to search and book the named resource.
1. On the Schedule grid for a task, select the resource icon in the resource cell.
2. Type a name to serve as the placeholder resource’s name; for example, “Program Manager.”

3. Select Create.
4. On the Quick Create Project Team Member field to the right, set the role for the generic resource.

5. You can continue to assign tasks to this placeholder resource by selecting the resource on the resource
selector for the task. They’re listed under Team Members.

6. When you’re done assigning the generic resource, select the generic resource on the Team tab and select
Generate Requirement to create a resource requirement for the generic resource.

7. Select Book for the generic resource. You can then use the schedule board to find and book a real resource.
You can also submit the requirement for fulfillment by a resource manager.

8. When the generic resource is fulfilled with a named resource, the generic resource is removed from the team
and the task assignments for the generic resource are assigned to the named resource that fulfilled the
generic resource’s resource requirement.
Assigning a named resource from the list of all bookable resources
You can use the search box in the resource selector to search all the bookable resources in Project Service and
assign them to a task.
1. On the Schedule grid for a task, click the Resource icon in the resource cell.
2. Start typing a name.
3. Search results for the name are displayed in the resource selector under Other Resources.
4. Select the resource and they will be assigned to the task.

Resources assigned this way are added to the team without any bookings (like adding a team member and
selecting none as the allocation method). They’re displayed in the Team tab and Reconciliation tab as resources with
only assignments and a booking deficit. Book them if you want to use their availability.
How are resource bookings and task assignments
related?
1/24/2019 • 3 minutes to read • Edit Online

Applies to Project Service app version 3.x


In Project Service, named resources can be booked to a project team and assigned project tasks in two ways:
The resource can be directly booked onto a project and then subsequently assigned to project tasks.
The tasks can be assigned to a generic or placeholder resource, which is then used to find and replace the
generic with a real, named resource. In both cases, the act of booking the resource reserves the resource’s
capacity.
The project manager planning the project owns the project plan and schedule. By using the generic resource for
assignment and then generating a resource request from it the project manager can book resources onto the
project with contours specified in the project plan. They can book resources onto a project and then assign them to
tasks, but there is no way to align the booking contours with the contours of the tasks. Project Service doesn’t let
bookings affect the project schedule.
Consider a complex project with multiple overlapping tasks where multiple resources of the same type need to
work concurrently. If a resource is given a contour that differs from that of the aggregate of their assignments, it’s
difficult to modify the tasks to fit the contour of the bookings to their discrete tasks and their original contours.
In the example below, the total effort required by the same resource from a set of four tasks is 62 hours over a two-
week period and there is a specific contour. If the resource Bob is booked for 62 hours during the same two weeks
but with a different contour, the requirement and bookings are in alignment.

TASK TOT
CON AL
TOU HOU MO TU WE TH FR SA SU MO TU WE TH FR
RS RS 6/4 6/5 6/6 6/7 6/8 6/9 6/10 6/11 6/12 6/13 6/14 6/15

Task 24 8 8 4 4
1

Task 16 4 4 8
2

Task 10 4 4 2
3

Task 12 4 8
4

Tota 62 8 8 8 4 4 8 4 8 2 8
ls

Bob's availability
RESO TOT
URCE AL
BOO HOU MO TU WE TH FR SA SU MO TU WE TH FR
KING RS 6/4 6/5 6/6 6/7 6/8 6/9 6/10 6/11 6/12 6/13 6/14 6/15

Bob 62 4 4 8 8 8 4 4 8 8 6

However, there is no systematic way to assign the booked hours contour to tasks on a per-day basis. If the project
manager is willing to change the project schedule to meet the availability of the resource, then they’ll have to
remove the assignment and revise all the tasks to match the booking contours.
In the case where an organization has given the task of project planning to both a project manager and a resource
manager, the project manager sets the schedule, and that includes contouring of the work required. The resource
manager shouldn’t be able to affect the schedule without the project manager’s knowledge by changing effort
contours while booking real resources. If the resource manager is fulfilling something different from what the
project manager requested, they need to come to agreement about what changes are needed in the project
schedule.
Since bookings and assignments in Project Service are not tightly coupled, it’s possible to book contours that are
different than the task contours or change the assignments to result in circumstances where bookings and
assignments are out of alignment.
Project Service has a Reconciliation View that allows the project manager to see the bookings and assignments for
each project team member. The view uses colors and shading to show where there is a mismatch between a team
members bookings and assignments. Based on this information, the project manager can take corrective action to
either extend resource bookings for cases where there are assignments and no bookings or cancel bookings where
resources are booked but have no assignments.
Note that if you move a task that you have contoured yourself, these contours aren’t maintained. The contours are
regenerated according to the project calendar to account for changes in work hours and holidays. This is by design
since the system doesn’t know the intent of the original contour and can’t determine whether it makes sense to
retain that contour in a new time period. Since bookings and assignments are disconnected, the bookings retain the
original booking contours. In this case, you’ll need to cancel and rebook to the new assignment contour.
Why is the price defaulting to zero on expense cost
actuals?
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


This FAQ applies to expense actuals where the transaction class is set to Expense and transaction type is Cost.

Troubleshooting cost rates on expense cost actuals


Go to the related expense entry and make sure that there’s an amount in the expense entry field. If the originating
expense entry didn’t have the amount field filled, then you have isolated the problem.
To solve this problem, recreate the expense entry with a valid amount and approve it.
Why is the price defaulting to zero on expense sales
actuals?
1/24/2019 • 4 minutes to read • Edit Online

Applies to Project Service app version 3.x


This FAQ applies to expense actuals where the transaction class is set to Expense and transaction type is Unbilled
Sales. The following three checks will help you troubleshoot why price (bill rate) is defaulting to 0 on expense sales
actuals.

Check 1: Identify the sales price list for project


Find the project from the project field of the actual and go to the project page. Then go to the Sales tab. On the
Project Contract lines grid, click on the link in the Project Contract field. The Project Contract page will open. On the
Project Contract page, go to the Project Price Lists tab. Check if there is at least one price list attached here.
If there is no price list attached in the Project Price Lists grid of the Project Contract do the following:
Attach a price list to the Project Price lists grid. The price lists allowed to be attached here should have the
context field set to Sales and the currency field on the price list should match the currency field on the Project
Contract. Once you’ve made the required fixes, recreate an expense entry, approve it, and verify that the unbilled
sales actual shows a valid price.
If you have one or more price lists attached in the Project Price Lists grid of the Project Contract, go to Check 2.

Check 2: Are any of the price lists identified above valid for the specific
date of the expense actual?
For Project Service to consider a price list for defaulting price, that price list should be applicable for the date on the
expense sales actual. Check the following to see if the price list(s) identified above are applicable:
Start by checking if start and end dates on the general tab for the price lists attached aren’t empty. If the start
and end dates on the price lists identified above are empty, you have isolated the problem.
Make a note of the start date field on your expense sales actual and check if any of the price lists identified is
applicable for that date. For example, the date of the expense actual should fall within the start date and end date
on the price list.
If there is no price list that covers that date on the expense sales actual, you have isolated the problem.
Modify the start and end dates of the price list to ensure that the price list covers the date of the expense
actual.
If there is more than one price list that covers the date on the expense sales actual, you have isolated the
problem. You can fix this by editing the start and end dates of the price list(s) so that there is only one
price list that covers the date of the expense actual.
If there is only one price list that covers that date of the expense actual, move to Check 3. Once you’ve
done made the required fixes, recreate an expense entry, approve it, and verify that the unbilled sales
actual shows a valid price.

Check 3: Is there a valid price for the expense category in the applicable
project price list?
If you have successfully completed Check 1 and Check 2, you should now have only one project price list that is
applicable for the date of the expense sales actual. Open this Project Price List and go to the Category Prices tab.
Make sure that there is a row in the grid for the specific expense category on the Expense actual.
If there is no row, then you have isolated the problem. Create a row in the Category price grid for the category
on your expense actual. Once this is done, recreate an expense entry, approve it, and verify that the unbilled
sales actual shows a valid price.
If there is a row for the expense category in the category prices grid, check if it has a valid price.
To understand what a valid price is, use these methods:
If the Pricing Method field on the Category price line is set to At Cost, then the unit rate on your Expense sales
actual will be defaulted to the value in the Expense entry.
If the Pricing Method field on the Category price line is set to Markup Percentage, then check if the Percent field
is set to a valid value. The unit rate on your Expense sales actual is defaulted by applying this markup percent to
the price in the Expense entry.
If the Pricing Method field on the Category price line is set to Price per Unit, then check if the Price field is set to
a valid value. The unit rate on your Expense sales actual will be defaulted to the currency amount specified in the
Price field.
If the price setup for the expense category isn't valid, then you have isolated the problem. The solution is to edit the
category price line with a valid price for the expense category in accordance with the rules above. Once you’ve
done that, recreate an expense entry, approve it, and then check that the unbilled sales actual gets a valid price.
If you still don't see a valid price on your expense sales actual after doing the three checks above, please log a
support ticket.
Why is the price defaulting to zero on time cost
actuals?
1/24/2019 • 3 minutes to read • Edit Online

Applies to Project Service app version 3.x


This FAQ applies to actuals where the transaction class is set to Time and transaction type is Cost. The following
three checks will help you troubleshoot why the price is defaulting to 0 on time cost actuals.

Check 1: Identify the cost price list for the project


Find the project from the project field of the actual and then go to the project page. Click on the contracting unit
link in the field. On the Contracting Unit page, check if the contracting unit has a price list in the Cost Price Lists
grid.
If there is more than one price list, you have isolated the problem. Project Service only supports one price list per
organizational unit. Remove all prices lists from this entity until there is only one price list attached in the Cost Price
Lists grid of the Organizational Unit.
If there are no price lists attached to the Organizational Unit, make a note of the currency of the Organizational
unit. Go to the Project Service and then Parameters and open the Price Lists tab. Check if there are any price lists
with context set to Cost and currency that matches the currency of the Organizational Unit.
If there are no price lists that match that criteria, you have isolated the problem. Make sure to have at least one
price list whose context is set to Cost and whose currency matches the currency of the Organizational Unit.
If there is more than one price list that match that criteria, continue reading this document to make more checks.

Check 2: Are any of the price lists identified above valid for the specific
date of the time cost actual?
For Project Service to consider a price list for defaulting price, that price list should be applicable for the date on the
time cost actual. Check the following to see if the price list(s) identified above are applicable:
Check if the start and end dates on the general tab for the price lists attached aren’t empty. If the start and end
dates on price lists identified above are empty, you have isolated the problem.
Make a note of the start date field on your time cost actual and check if any of the price lists identified is
applicable for that date. For example, the date of the time cost actual should fall within the start date and end
date on the price list.
If there is no price list that covers that date on the time cost actual, you have isolated the problem. Modify
the start and end dates of the price list to ensure that the price list covers the date of the time cost actual.
If there is more than one price list that covers the date on the time cost actual, you have isolated the
problem. You can fix this by editing the start and end dates of the price list(s) so that there is only one
price list that covers the date of the time cost actual.
If there is only one price list that covers that date of the time cost actual, move to the next check in the
document. Once you’ve done made the required fixes, recreate a time entry, approve it, and verify that the
time cost actual shows a valid price.

Check 3: Is there a price in the price list for the pricing dimensions on
the time cost actual?
If you have successfully completed Check 1 and Check 2, you should now have only one price list that is applicable
for the date of the time cost actual. Open this Price List and go to the Role Prices tab. Make sure that there is a row
in the grid for the pricing dimensions on the time cost actual.
If there is no row in the role price grid for the pricing dimensions on the time cost actual, then you have isolated the
problem. Create a row in the Role prices grid for the pricing dimensions on your time cost actual. Once this is done,
recreate time entry, approve it, and verify that the time cost actual shows a valid price.
If you still don't see a valid price on your time cost actual after you’ve done the three checks above, please log a
support ticket.
Why is price defaulting to zero on time sales actuals?
1/24/2019 • 3 minutes to read • Edit Online

Applies to Project Service app version 3.x


This FAQ applies to actuals where the transaction class is set to Time and transaction type is Unbilled Sales. The
following three checks will help you troubleshoot why price (bill rate) is defaulting to 0 on time sales actuals.

Check 1: Identify the sales price list for the project


Find the project from the project field of the actual and go to the project page. Then go to the Sales tab and on
Project Contract lines grid, click on the link in the Project Contract field. The project Contract page will open. On the
Project Contract page, go to the Project Price Lists tab. Check if there is at least one price list attached here. If there
is no price list attached in the Project Price Lists grid of the Project Contract you have isolated the problem. Attach
a price list to the Project Price lists grid. The price lists allowed to be attached here should have the context field set
to Sales and the currency field on the price list should match the currency field on the Project Contract. Once
you’ve done made the required fixes, recreate a time entry, approve it, and verify that the unbilled sales actual
shows a valid price.
If you have one or more price lists attached in the Project Price Lists grid of the Project Contract, proceed to the
next check in the document.

Check 2: Are any of the price lists identified above valid for the specific
date of the time sales actual?
For Project Service to consider a price list for defaulting price, that price list should be applicable for the date on the
time sales actual. Check the following to see if the price list(s) identified above are applicable:
Check if the start and end dates on the general tab for the price lists attached aren’t empty. If the start and end
dates on price lists identified above are empty, you have isolated the problem.
Make a note of the start date field on your time sales actual and check if any of the price lists identified is
applicable for that date. For example, the date of the time sales actual should fall within the start date and end
date on the price list.
If there is no price list that covers that date on the time sales actual, you have isolated the problem.
Modify the start and end dates of the price list to ensure that the price list covers the date of the time
sales actual.
If there is more than one price list that covers the date on the time sales actual, you have isolated the
problem. You can fix this by editing the start and end dates of the price list(s) so that there is only one
price list that covers the date of the time sales actual.
If there is only one price list that covers that date of the time sales actual, go to Check 3. Once you’ve
done made the required fixes, recreate a time entry, approve it, and verify that the time sales actual shows
a valid price.

Check 3: Is there a price in the price list for the pricing dimensions on
the time sales actual?
If you have successfully completed Check 1 and Check 2, you should now have only one price list that is applicable
for the date of the time sales actual. Open this Price List and navigate to the Role Prices tab. Make sure that there is
a row in the grid for the pricing dimensions on the Time sales actual.
If there is no row in the role price grid for the pricing dimensions on the time sales actual, then you have isolated
the problem. Create a row in the Role prices grid for the pricing dimensions on your time sales actual. Once this is
done, recreate time entry, approve it, and verify that the time sales actual shows a valid price.
If you still don't see a valid price on your time sales actual after following the three checks above, please log a
support ticket.
Why can’t I delete records from the Actuals entity?
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app version 3.x


Project Service Automation (PSA) doesn't allow you to delete actuals because they serve as the source of truth for
transactions that have financial implications to downstream systems, such as the general ledger. If actuals could be
deleted, the integrity of the financial reporting transactions could be questioned. To establish an audit trail,
customers should use journals to create compensating transactions.
Development home page (Project Service
Automation 3.x)
3/28/2019 • 2 minutes to read • Edit Online

Microsoft Dynamics 365 for Project Service Automation (PSA) 3.x offers new features, implementation of new
platform capabilities, and improvements to existing features in various areas. The following topics provide more
information about the changes that were made in the newest version of PSA:
Entity, control, and user interface changes (Project Service Automation 3.x)
Time and Expense changes (Project Service Automation 3.x)
Resource management changes (Project Service Automation 3.x)
Deprecated web resources in Project Service Automation 3.x
Entity, control, and user interface changes (Project
Service Automation 3.x)
3/28/2019 • 2 minutes to read • Edit Online

With the release of Microsoft Dynamics Project Service Automation (PSA) 3.x, many changes have been made to
the entities, controls, views, and user interface. This topic provides information about these important changes.

Parent-child relationships for sales document, sales document line,


sales document line detail entities
In versions of Dynamics 365 Project Service Automation (PSA) released prior to version 3.0, some of the
relationships between sales documents, sales document lines, and sales document line detail entities were
implemented through string fields that would hold a string representation of GUID of the related entity. This was
due to platform limitations that required significant custom code on the server and client sides of the solution to
make those relationships work similar to typical Dynamics CRM entity relationships and to make string fields act
like lookup fields.
PSA 3.0 has been updated to leverage the new entity relationships between sales document and sales document
line entities.
Because lookup fields can now be used to indicate references to entities, the fields that held the string value of the
GUID of the related entity in previous versions are no longer needed and therefore have been deprecated. The
custom client and server side code that handles the relationships defined by legacy string fields has also been
deprecated.
Entity schema changes
The following table provides a one-to-one list of the deprecated string fields and the new lookup fields for the
entities.

ENTITY DEPRECATED FIELD (STRING) NEW FIELD (LOOKUP)

invoicedetail (Invoice Line) msdyn_contractline msdyn_contractlineid

msdyn_actual (Actual) msdyn_salescontractline msdyn_salescontractlineid

msdyn_contractlineinvoiceschedule msdyn_contractline msdyn_contractlineid


(Project Contract Line Invoice Schedule)

msdyn_contractlinescheduleofvalue msdyn_contractline msdyn_contractlineid


(Project Contract Line Milestone)

msdyn_fact (Fact) msdyn_salescontractline msdyn_salescontractlineid

msdyn_invoicelinetransaction (Invoice msdyn_invoiceline msdyn_invoicelineid


Line Detail) msdyn_salescontractline msdyn_salescontractlineid

msdyn_journalline (Journal Line) msdyn_salescontractline msdyn_salescontractlineid


ENTITY DEPRECATED FIELD (STRING) NEW FIELD (LOOKUP)

msdyn_orderlineresourcecategory msdyn_salescontractline msdyn_contractlineid


(Project Contract Line Resource
Category)

msdyn_orderlinetransaction (Project msdyn_salescontractline msdyn_salescontractlineid


Contract Line Detail)

msdyn_orderlinetransactioncategory msdyn_contractline msdyn_contractlineid


(Project Contract Line Transaction
Category)

msdyn_orderlinetransactionclassification msdyn_contractline msdyn_contractlineid


(Project Contract Line Transaction
Classification)

msdyn_quotelineinvoiceschedule msdyn_quoteline msdyn_quotelineid


(Quote Line Invoice Schedule)

msdyn_quotelineresourcecategory msdyn_quoteline msdyn_quotelineid


(Quote Line Resource Category)

msdyn_quotelinescheduleofvalue msdyn_quoteline msdyn_quotelineid


(Quote Line Milestone)

msdyn_quotelinetransaction (Quote msdyn_quoteline msdyn_quotelineid


Line Detail)

msdyn_quotelinetransactioncategory msdyn_quoteline msdyn_quotelineid


(Quote Line Transaction Category)

msdyn_quotelinetransactionclassificatio msdyn_quoteline msdyn_quotelineid


n (Quote Line Transaction Classification)

SalesOrderDetail (Order Line) msdyn_quotelineid msdyn_quoteline

Deprecated custom views and controls


The following custom views and controls, and their related artifacts, have been deprecated.
Chargeability view.
Custom grid controls for showing quote line details on the Project Information page for the quote line.
Custom grid controls for showing project contract line details on the Project Information page for the sales
order line.

NOTE
For the full list of deprecated resources, see Deprecated Web resources in Project Service Automation v3.x

Unified Client Interface App Module


With the introduction of Unified Client Interface (UCI) App Modules, the PSA site map entries have been removed
from the system.
Functionality related to form switching for Opportunity, Quote, Order, Invoice has been deprecated as it is no
longer required because the UCI App Module includes only PSA versions of the forms.
The following web resources have been deprecated:
msdyn_\SalesDocument\SalesDocumentFormLoader.js
msdyn_\SalesDocument\PSSalesDocumentCustomFormIds.js

NOTE
For the full list of deprecated resources, see Deprecated Web resources in Project Service Automation v3.x.
Time and Expense changes (Project Service
Automation 3.x)
3/28/2019 • 2 minutes to read • Edit Online

In Microsoft Dynamics 365 for Project Service Automation (PSA) version 3.0, the Time and Expense views have
been updated so that they take advantage of the new platform framework for custom controls.
Previously, the calendar and grid views for Time and Expense were implemented as DHTMLX controls. The
artifacts that are related to that implementation of the calendar and grid views are now obsolete (deprecated).
For the full list of deprecated resources, see Deprecated web resources in Project Service Automation 3.x.
Resource management changes (Project Service
Automation 3.x)
3/28/2019 • 3 minutes to read • Edit Online

The sections of this topic provide information about the changes that have been made to the Resource
management area of Microsoft Dynamics 365 for Project Service Automation (PSA) version 3.x.

Project estimates
Instead of being based on the msdyn_projecttask entity (Project Task), project estimates are based on the
msdyn_resourceassignment entity (Resource Assignment). Resource assignments have become the "source of
truth" for task scheduling and pricing.

Line tasks
In PSA 3.x, line tasks are obsolete (deprecated). Assignments now point to the whole task instead of the line tasks.
The following example shows how a task that is named "Test task" is assigned to team members A and B in earlier
versions of PSA and in PSA 3.x.
Before PSA 3.x:
Test task
Test task – Line task 1
Assignment to A
Test task – Line task 2
Assignment to B
PSA 3.x:
Test task
Assignment to A
Assignment to B

Unassigned assignment
In PSA 3.x, an unassigned assignment is an assignment that is assigned to a NULL team member and a NULL
resource. Unassigned assignments can occur in a couple of scenarios:
If a task has been created, but it hasn't yet been assigned to any team member, an unassigned assignment is
always created.
If all assignees on a task are removed, an unassigned assignment is re-created for that task.

Scheduling fields on the Project Task entity


The fields on the msdyn_projecttask entity have been deprecated or moved to the msdyn_resourceassignment
entity, or they are now referenced from the msdyn_projectteam entity (Project Team Member).
NEW FIELD ON
DEPRECATED FIELD ON MSDYN_RESOURCEASSIGNMENT
MSDYN_PROJECTTASK (PROJECT TASK) (RESOURCE ASSIGNMENT) COMMENT

msdyn_assignedresources None

msdyn_assignedteammembers None

msdyn_numberofresources None

msdyn_scheduledhours None

msdyn_effortcontour msdyn_plannedwork The format of the JavaScript Object


Notation (JSON) data structure that is
stored in the field has been changed.

Schedule contour
The schedule contour is stored in the Planned Work field (msdyn_plannedwork) of each Resource
Assignment entity (msdyn_resourceassignment).
Structure
The new structure of the schedule contour consists of flexible time slices that are defined for each day of the
schedule. Each time slice has the following properties:
Start – The start of the working hours for the day, according to the project calendar.
End – The end of the working hours for the day, according to the project calendar.
Hours – The number of hours that are assigned on the day.
Example
This example uses a project calendar where the workday is from 9 AM to 5 PM in the UTC -8 time zone.

[{"End":"\/Date(1543885200000)\/","Start":"\/Date(1543856400000)\/","Hours":8},
{"End":"\/Date(1543971600000)\/","Start":"\/Date(1543942800000)\/","Hours":8},
{"End":"\/Date(1544058000000)\/","Start":"\/Date(1544029200000)\/","Hours":2}]

Auto -scheduling and manual scheduling


If a task is auto-scheduled, the hours are front-loaded, and the task duration might be reduced.
Example
The following task is auto-scheduled for 18 hours over three days (December 3, 2018, to December 5, 2018).

[{"End":"\/Date(1543885200000)\/","Start":"\/Date(1543856400000)\/","Hours":8},
{"End":"\/Date(1543971600000)\/","Start":"\/Date(1543942800000)\/","Hours":8},
{"End":"\/Date(1544058000000)\/","Start":"\/Date(1544029200000)\/","Hours":2}]

If a task is manually scheduled, the hours are evenly distributed to all the dates.
Example
The following task is manually scheduled for 18 hours over three days (December 3, 2018, to December 5, 2018).
[{"End":"\/Date(1543885200000)\/","Start":"\/Date(1543856400000)\/","Hours":6},
{"End":"\/Date(1543971600000)\/","Start":"\/Date(1543942800000)\/","Hours":6},
{"End":"\/Date(1544058000000)\/","Start":"\/Date(1544029200000)\/","Hours":6}]

Assignment unit
The assignment unit has been deprecated in PSA 3.x. The task effort hours are now equally divided, per day,
among all the assigned resources.
Example
In this example, the task is is assigned to two resources and is auto-scheduled for 36 hours over three days
(December 3, 2018, to December 5, 2018).
Assignment 1:

[{"End":"\/Date(1543885200000)\/","Start":"\/Date(1543856400000)\/","Hours":8},
{"End":"\/Date(1543971600000)\/","Start":"\/Date(1543942800000)\/","Hours":8},
{"End":"\/Date(1544058000000)\/","Start":"\/Date(1544029200000)\/","Hours":2}]

Assignment 2:

[{"End":"\/Date(1543885200000)\/","Start":"\/Date(1543856400000)\/","Hours":8},
{"End":"\/Date(1543971600000)\/","Start":"\/Date(1543942800000)\/","Hours":8},
{"End":"\/Date(1544058000000)\/","Start":"\/Date(1544029200000)\/","Hours":2}]

Pricing dimensions
In PSA 3.x, resource-specific pricing dimension fields (such as Role and Organizational Unit) have been
removed from the msdyn_projecttask entity. These fields can now be retrieved from the corresponding project
team member (msdyn_projectteam ) of the resource assignment (msdyn_resourceassignment) when project
estimates are generated. A new field, msdyn_organizationalunit, has been added to the msdyn_projectteam
entity.

FIELD FROM MSDYN_PROJECTTEAM (PROJECT TEAM MEMBER)


DEPRECATED FIELD ON MSDYN_PROJECTTASK (PROJECT TASK) THAT IS USED INSTEAD

msdyn_resourcecategory msdyn_resourcecategory

msdyn_organizationalunit msdyn_organizationalunit

Contours
The pricing and estimation contour fields have been deprecated on the msdyn_projecttask entity. They have been
moved to the msdyn_resourceassignment entity.

NEW FIELD ON MSDYN_RESOURCEASSIGNMENT (RESOURCE


DEPRECATED FIELD ON MSDYN_PROJECTTASK (PROJECT TASK) ASSIGNMENT)

msdyn_costestimatecontour msdyn_plannedcostcontour

msdyn_salesestimatecontour msdyn_plannedsalescontour

The following fields have been added to the msdyn_resourceassignment entity:


msdyn_plannedcost
msdyn_plannedsales
The following fields for planned, actual, and remaining cost and sales are unchanged on the msdyn_projecttask
entity:
msdyn_plannedcost
msdyn_plannedsales
msdyn_actualcost
msdyn_actualsales
msdyn_remainingcost
msdyn_remainingsales
Deprecated web resources in Project Service
Automation 3.x
3/28/2019 • 2 minutes to read • Edit Online

Because of the new client interface and other changes that have been made to the Microsoft Dynamics 365 for
Project Service Automation (PSA) solution, some of the web resources for the solution are longer used. Therefore,
they are obsolete (deprecated) as of version 3.0.

Deprecated style sheets


msdyn_\Common\Css\RadialGauge.css
msdyn_\Common\DHTMLXDualViewApp\Content\Calendar\Calendar.css
msdyn_\Common\DHTMLXDualViewApp\Content\Calendar\dhtmlxscheduler.css
msdyn_\Common\DHTMLXDualViewApp\Content\dhtmlx.css
msdyn_\Common\DHTMLXDualViewApp\Content\DualViewApp.css
msdyn_\Common\DHTMLXDualViewApp\Content\Grid\Grid.css
msdyn_\Content\Fonts\DynamicsSymbol\DynamicsSymbol.css
msdyn_\Content\Fonts\DynamicsSymbol\DynamicsSymbol.eot.css
msdyn_\Content\Fonts\DynamicsSymbol\DynamicsSymbol.svg.css
msdyn_\Content\Fonts\DynamicsSymbol\DynamicsSymbol.svgz.css
msdyn_\Content\Fonts\DynamicsSymbol\DynamicsSymbol.ttf.css
msdyn_\Content\Fonts\DynamicsSymbol\DynamicsSymbol.woff.css
msdyn_\Content\Fonts\DynamicsSymbol\DynamicsSymbolTestPage.css
msdyn_\ContractBilling\Style\ContractBilling.css
msdyn_\Controls\BryntumGantt\css\sch_gantt_all.css
msdyn_\Controls\DHTMLXGantt\Css\dhtmlxgantt.css
msdyn_\Controls\DHTMLXScheduler\Styles\Combo\dhtmlxcombo.css
msdyn_\Controls\DHTMLXScheduler\Styles\dhtmlxscheduler.css
msdyn_\Controls\DHTMLXSuite\Styles\dhtmlx.css
msdyn_\Controls\DHTMLXSuite\Styles\Terrace\dhtmlx.css
msdyn_\Controls\DHTMLXSuite\Styles\Web\dhtmlx.css
msdyn_\Controls\Navigation\Navigation.css
msdyn_\Expense\App\Content\Calendar\Calendar.css
msdyn_\Expense\App\Content\Expense.css
msdyn_\Expense\App\Content\Grid\Grid.css
msdyn_\Libraries\perfectScrollbar\perfectScrollbar.css
msdyn_\Project\Estimates\Css\Estimates.css
msdyn_\Project\ProjectTeam\Css\ProjectTeamControls.css
msdyn_\Project\WBS\Css\WBS.css
msdyn_\ProjectApprovals\Content\ProjectApprovals.css
msdyn_\ProjectTasks\App\Content\Calendar\Calendar.css
msdyn_\Resource\AvailabilityView\Base\AvailabilityView.css
msdyn_\Resource\AvailabilityView\Base\AvailabilityViewForm.css
msdyn_\Resource\AvailabilityView\Base\CandidateView.css
msdyn_\Resource\AvailabilityView\Base\Elements\Demand\DemandCard.css
msdyn_\Resource\AvailabilityView\Base\Elements\Project\ProjectCard.css
msdyn_\Resource\AvailabilityView\Base\Elements\Project\ProjectReservationCard.css
msdyn_\Resource\AvailabilityView\Base\Elements\Reservation\ReservationCard.css
msdyn_\Resource\AvailabilityView\Base\Elements\Resource\ResourceCard.css
msdyn_\Resource\AvailabilityView\Base\Elements\Timeframe\Timeframe.css
msdyn_\Resource\AvailabilityView\Common\Css\DetailsPopup.css
msdyn_\Resource\AvailabilityView\GenericResourceAssignment\AvailabilityViewForm.css
msdyn_\Resource\AvailabilityView\MaintainBookings\AvailabilityViewForm.css
msdyn_\Resource\AvailabilityView\ProjectManagerView\AvailabilityViewForm.css
msdyn_\Resource\AvailabilityView\RequestFulfillment\AvailabilityViewForm.css
msdyn_\Resource\AvailabilityView\ResourceSubstitution\AvailabilityViewForm.css
msdyn_\Resource\Candidate\CandidateCard\HorizontalCandidateCard.css
msdyn_\Resource\Candidate\CandidateCard\VerticalCandidateCard.css
msdyn_\Resource\Candidate\Common\Progress\Bar.css
msdyn_\Resource\Candidate\Common\Progress\Radial.css
msdyn_\Resource\Capacity\Pages\WorkTemplateLookupForm.css
msdyn_\Resource\CompareView\CompareView.css
msdyn_\Resource\Css\SetRole.css
msdyn_\Resource\Utilization\Css\ResourceUtilization.css
msdyn_\Resource\Utilization\Elements\UtilizationCard.css
msdyn_\skins\skyblue\dhtmlx.css
msdyn_\skins\terrace\dhtmlx.css
msdyn_\Time\App\Content\Calendar\Calendar.css
msdyn_\Time\App\Content\Grid\Grid.css

Deprecated HTML pages


msdyn_\Common\Localization\Tools\LabelTool.htm
msdyn_\Common\Pages\RadialGaugeView.htm
msdyn_\Content\Fonts\DynamicsSymbol\DynamicsSymbolTestPage.htm
msdyn_\ContractBilling\ChargeabilityView\ChargeabilityView.htm
msdyn_\ContractBilling\Pages\ContractLine.htm
msdyn_\ContractBilling\Pages\ContractLineGrid.htm
msdyn_\ContractBilling\Pages\InvoiceFrequencyDetailGrid.htm
msdyn_\Controls\Navigation\Templates\NavigationActionButtonTemplate.htm
msdyn_\Controls\Navigation\Templates\NavigationButtonGroupWithDefaultTemplate.htm
msdyn_\Controls\Navigation\Templates\NavigationButtonTemplate.htm
msdyn_\Controls\Navigation\Templates\NavigationDropdownTemplate.htm
msdyn_\Expense\App\Pages\Expense.htm
msdyn_\Project\Estimates\Pages\Estimates.htm
msdyn_\Project\ProjectTeam\Pages\ProjectApplicantControls.htm
msdyn_\Project\ProjectTeam\Pages\ProposedResourcesControls.htm
msdyn_\Project\WBS\Pages\WBS.html
msdyn_\Project\WBS\Pages\WBSTracking.html
msdyn_\ProjectApprovals\Pages\ProjectApprovalRejectionComment.html
msdyn_\ProjectTasks\App\Pages\ProjectTasks.htm
msdyn_\Resource\AvailabilityView\Base\AvailabilityView.htm
msdyn_\Resource\AvailabilityView\Base\AvailabilityViewTemplate.htm
msdyn_\Resource\AvailabilityView\Base\CandidateViewTemplate.htm
msdyn_\Resource\AvailabilityView\Base\Elements\Demand\DemandCard.htm
msdyn_\Resource\AvailabilityView\Base\Elements\Project\ProjectReservationCard.htm
msdyn_\Resource\AvailabilityView\Base\Elements\Reservation\ReservationCard.htm
msdyn_\Resource\AvailabilityView\Base\Elements\Resource\ResourceCard.htm
msdyn_\Resource\AvailabilityView\Base\Elements\Timeframe\Timeframe.htm
msdyn_\Resource\AvailabilityView\Common\Templates\AvailabilityViewBooking.htm
msdyn_\Resource\AvailabilityView\Common\Templates\AvailabilityViewDemand.htm
msdyn_\Resource\AvailabilityView\Common\Templates\AvailabilityViewFilter.htm
msdyn_\Resource\AvailabilityView\Common\Templates\AvailabilityViewLegend.htm
msdyn_\Resource\AvailabilityView\Common\Templates\AvailabilityViewOptions.htm
msdyn_\Resource\AvailabilityView\Common\Templates\AvailabilityViewViewPane.htm
msdyn_\Resource\AvailabilityView\Common\Templates\ProjectDetailsPopup.htm
msdyn_\Resource\AvailabilityView\Common\Templates\ResourceDetailsPopup.htm
msdyn_\Resource\AvailabilityView\Common\Templates\WorkOrderDetailsPopup.htm
msdyn_\Resource\AvailabilityView\GenericResourceAssignment\AvailabilityView.htm
msdyn_\Resource\AvailabilityView\MaintainBookings\AvailabilityView.htm
msdyn_\Resource\AvailabilityView\ProjectManagerView\AvailabilityView.htm
msdyn_\Resource\AvailabilityView\RequestFulfillment\AvailabilityView.htm
msdyn_\Resource\AvailabilityView\ResourceSubstitution\AvailabilityView.htm
msdyn_\Resource\Candidate\CandidateCard\HorizontalTemplate.htm
msdyn_\Resource\Candidate\CandidateCard\VerticalTemplate.htm
msdyn_\Resource\Candidate\Common\Progress\BarTemplate.htm
msdyn_\Resource\Candidate\Common\Progress\RadialTemplate.htm
msdyn_\Resource\Candidate\InfoCard\Availability\ProgressTemplate.htm
msdyn_\Resource\Candidate\InfoCard\Booking\TableTemplate.htm
msdyn_\Resource\Candidate\InfoCard\Cost\TableTemplate.htm
msdyn_\Resource\Candidate\InfoCard\Persona\FabricTemplate.htm
msdyn_\Resource\Candidate\InfoCard\Skill\ProgressTemplate.htm
msdyn_\Resource\Candidate\InfoCard\Utilization\TableTemplate.htm
msdyn_\Resource\Capacity\Pages\WorkTemplateLookup.htm
msdyn_\Resource\CompareView\CompareView.htm
msdyn_\Resource\CompareView\CompareViewPopup.htm
msdyn_\Resource\Pages\SetRole.htm
msdyn_\Resource\Utilization\Elements\UtilizationCard.htm
msdyn_\Resource\Utilization\Pages\ResourceUtilization.htm
msdyn_\Time\App\Pages\TimeEntry.htm

Deprecated images
msdyn_\Common\DHTMLXDualViewApp\Content\Calendar\imgs\databg.png
msdyn_\Common\DHTMLXDualViewApp\Content\Calendar\imgs\databg_dayoff.png
msdyn_\Common\DHTMLXDualViewApp\Content\Calendar\imgs\databg_now.png
msdyn_\Common\DHTMLXDualViewApp\Content\Calendar\imgs\dropdown_arrow.gif
msdyn_\Common\DHTMLXDualViewApp\Content\Calendar\imgs\tentative_border.png
msdyn_\Common\DHTMLXDualViewApp\Content\Grid\More_EllipsisColumn_10.png
msdyn_\Common\DHTMLXDualViewApp\Content\Grid\SortingDown_10.png
msdyn_\Common\DHTMLXDualViewApp\Content\Grid\SortingUp_10.png
msdyn_\Controls\BryntumGantt\images\1px.png
msdyn_\Controls\BryntumGantt\images\add.png
msdyn_\Controls\BryntumGantt\images\altrow.png
msdyn_\Controls\BryntumGantt\images\arrow_move_16x16.png
msdyn_\Controls\BryntumGantt\images\arrow_move_32x32.png
msdyn_\Controls\BryntumGantt\images\check.png
msdyn_\Controls\BryntumGantt\images\column_header_bg.gif
msdyn_\Controls\BryntumGantt\images\column_header_over_bg.gif
msdyn_\Controls\BryntumGantt\images\column_weekend_header_bg.gif
msdyn_\Controls\BryntumGantt\images\delete.gif
msdyn_\Controls\BryntumGantt\images\dependencyterminal.png
msdyn_\Controls\BryntumGantt\images\drop_above.gif
msdyn_\Controls\BryntumGantt\images\drop_add.gif
msdyn_\Controls\BryntumGantt\images\drop_append.gif
msdyn_\Controls\BryntumGantt\images\drop_below.gif
msdyn_\Controls\BryntumGantt\images\drop_between.gif
msdyn_\Controls\BryntumGantt\images\drop_no.gif
msdyn_\Controls\BryntumGantt\images\drop_no.png
msdyn_\Controls\BryntumGantt\images\drop_yes.gif
msdyn_\Controls\BryntumGantt\images\drop_yes.png
msdyn_\Controls\BryntumGantt\images\edit.png
msdyn_\Controls\BryntumGantt\images\invalid_line.gif
msdyn_\Controls\BryntumGantt\images\overriddenDay.png
msdyn_\Controls\BryntumGantt\images\overriddenWeekDay.png
msdyn_\Controls\BryntumGantt\images\pattern.png
msdyn_\Controls\BryntumGantt\images\progressbar_handle.png
msdyn_\Controls\BryntumGantt\images\scroll_left.gif
msdyn_\Controls\BryntumGantt\images\scroll_right.gif
msdyn_\Controls\BryntumGantt\images\tab_bar_default_bg.gif
msdyn_\Controls\BryntumGantt\images\transp_1px.png
msdyn_\Controls\BryntumGantt\images\zonebg.png
msdyn_\Controls\DHTMLXScheduler\Styles\imgs\but_repeat.gif
msdyn_\Controls\DHTMLXScheduler\Styles\imgs\buttons.png
msdyn_\Controls\DHTMLXScheduler\Styles\imgs\calendar.gif
msdyn_\Controls\DHTMLXScheduler\Styles\imgs\clock_big.gif
msdyn_\Controls\DHTMLXScheduler\Styles\imgs\clock_small.gif
msdyn_\Controls\DHTMLXScheduler\Styles\imgs\collapse_expand_icon.gif
msdyn_\Controls\DHTMLXScheduler\Styles\imgs\controls.gif
msdyn_\Controls\DHTMLXScheduler\Styles\imgs\databg.png
msdyn_\Controls\DHTMLXScheduler\Styles\imgs\databg_now.png
msdyn_\Controls\DHTMLXScheduler\Styles\imgs\export_ical.png
msdyn_\Controls\DHTMLXScheduler\Styles\imgs\export_pdf.png
msdyn_\Controls\DHTMLXScheduler\Styles\imgs\icon.png
msdyn_\Controls\DHTMLXScheduler\Styles\imgs\images.png
msdyn_\Controls\DHTMLXScheduler\Styles\imgs\loading.gif
msdyn_\Controls\DHTMLXScheduler\Styles\imgs\resize_dots.png
msdyn_\Controls\DHTMLXScheduler\Styles\imgs_dhx_terrace\arrow_left.png
msdyn_\Controls\DHTMLXScheduler\Styles\imgs_dhx_terrace\arrow_right.png
msdyn_\Controls\DHTMLXScheduler\Styles\imgs_dhx_terrace\but_repeat.gif
msdyn_\Controls\DHTMLXScheduler\Styles\imgs_dhx_terrace\calendar.gif
msdyn_\Controls\DHTMLXScheduler\Styles\imgs_dhx_terrace\clock_big.gif
msdyn_\Controls\DHTMLXScheduler\Styles\imgs_dhx_terrace\clock_small.gif
msdyn_\Controls\DHTMLXScheduler\Styles\imgs_dhx_terrace\close_icon.png
msdyn_\Controls\DHTMLXScheduler\Styles\imgs_dhx_terrace\collapse_expand_icon.gif
msdyn_\Controls\DHTMLXScheduler\Styles\imgs_dhx_terrace\controls.png
msdyn_\Controls\DHTMLXScheduler\Styles\imgs_dhx_terrace\databg.png
msdyn_\Controls\DHTMLXScheduler\Styles\imgs_dhx_terrace\databg_now.png
msdyn_\Controls\DHTMLXScheduler\Styles\imgs_dhx_terrace\export_ical.png
msdyn_\Controls\DHTMLXScheduler\Styles\imgs_dhx_terrace\export_pdf.png
msdyn_\Controls\DHTMLXScheduler\Styles\imgs_dhx_terrace\resize_dots.png
msdyn_\Controls\DHTMLXScheduler\Styles\imgs_dhx_terrace\resizing.png
msdyn_\Expense\App\Content\Grid\minus.gif
msdyn_\Expense\App\Content\Grid\plus.gif
msdyn_\Expense\imgs\Expense.SVG
msdyn_\imgs\Auto_Scheduled_16.png
msdyn_\imgs\CreatePeriodicMilestones_icon.png
msdyn_\imgs\dhxgrid_skyblue\minus.gif
msdyn_\imgs\dhxgrid_skyblue\plus.gif
msdyn_\imgs\Estimates\ShowGrid_16.png
msdyn_\imgs\Estimates\ShowTimePhased_16.png
msdyn_\imgs\GoToProject_icon.png
msdyn_\imgs\ico_fhe_1080.png
msdyn_\imgs\Manual_Scheduled_16.png
msdyn_\imgs\NavTile_icon_PSA.png
msdyn_\imgs\Project_icon.png
msdyn_\imgs\ProjectService_White.svg
msdyn_\imgs\Search_Grey_16.png
msdyn_\imgs\WBS\ChooseColumns_16.png
msdyn_\imgs\WBS\DownArrow_16.png
msdyn_\imgs\WBS\HideGantt_16.png
msdyn_\imgs\WBS\Indent_16.png
msdyn_\imgs\WBS\NewUsers_16.png
msdyn_\imgs\WBS\Outdent_16.png
msdyn_\imgs\WBS\UpArrow_16.png
msdyn_\Resource\AvailabilityView\Common\img\cancelIcon.png
msdyn_\Resource\AvailabilityView\Common\img\ExtensionIcon.png
msdyn_\Resource\AvailabilityView\Common\img\unknownResource.jpg
msdyn_\skins\skyblue\imgs\dhxcombo_skyblue\dhxcombo_arrow_down.gif
msdyn_\skins\skyblue\imgs\dhxcombo_skyblue\dhxcombo_chbx.gif
msdyn_\skins\terrace\imgs\dhxacc_terrace\dhxacc_btns.gif
msdyn_\skins\terrace\imgs\dhxacc_terrace\dhxacc_cell_progress.gif
msdyn_\skins\terrace\imgs\dhxcombo_terrace\dhxcombo_arrow_down.gif
msdyn_\skins\terrace\imgs\dhxgrid_terrace\ar_left.gif
msdyn_\skins\terrace\imgs\dhxgrid_terrace\ar_left_abs.gif
msdyn_\skins\terrace\imgs\dhxgrid_terrace\ar_left_abs_dis.gif
msdyn_\skins\terrace\imgs\dhxgrid_terrace\ar_left_dis.gif
msdyn_\skins\terrace\imgs\dhxgrid_terrace\ar_right.gif
msdyn_\skins\terrace\imgs\dhxgrid_terrace\ar_right_abs.gif
msdyn_\skins\terrace\imgs\dhxgrid_terrace\ar_right_abs_dis.gif
msdyn_\skins\terrace\imgs\dhxgrid_terrace\ar_right_dis.gif
msdyn_\skins\terrace\imgs\dhxgrid_terrace\item_chk0.gif
msdyn_\skins\terrace\imgs\dhxgrid_terrace\item_chk1.gif
msdyn_\skins\terrace\imgs\dhxgrid_terrace\minus.gif
msdyn_\skins\terrace\imgs\dhxgrid_terrace\pagIng_page.gif
msdyn_\skins\terrace\imgs\dhxgrid_terrace\pagIng_pages.gif
msdyn_\skins\terrace\imgs\dhxgrid_terrace\pagIng_rows.gif
msdyn_\skins\terrace\imgs\dhxgrid_terrace\plus.gif
msdyn_\skins\terrace\imgs\dhxlayout_terrace\dhxlayout_cell_btns.gif
msdyn_\skins\terrace\imgs\dhxlayout_terrace\dhxlayout_cell_progress.gif
msdyn_\skins\terrace\imgs\dhxlayout_terrace\dhxlayout_sep_h.gif
msdyn_\skins\terrace\imgs\dhxlayout_terrace\dhxlayout_sep_v.gif
msdyn_\skins\terrace\imgs\dhxtabbar_terrace\dhxtabbar_arrows.gif
msdyn_\skins\terrace\imgs\dhxtabbar_terrace\dhxtabbar_cell_progress.gif
msdyn_\skins\terrace\imgs\dhxtoolbar_terrace\dhxtoolbar_arrow.gif
msdyn_\Time\imgs\Time.svg

Deprecated JavaScript scripts


msdyn_\Common\DAL\BatchJobDataContext.js
msdyn_\Common\DAL\DataExportDataContext.js
msdyn_\Common\DAL\LoadUserSettings.js
msdyn_\Common\DAL\OrganizationDataContext.js
msdyn_\Common\DAL\PriceListItemDataContext.js
msdyn_\Common\DAL\ResourceBookingDataContext.js
msdyn_\Common\DAL\ResourceRequirementDataContext.js
msdyn_\Common\DAL\WebAPIAction.js
msdyn_\Common\DAL\WebAPIFunction.js
msdyn_\Common\DHTMLXDualViewApp\Localization\DHTMLXFormats.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\Utils\AppUtils.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\Utils\DHTMLXUtils.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\Utils\FlexGridDefinition.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\Utils\FlexListBoxEditorDecorator.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\Utils\GridFieldDefinition.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\Utils\LightboxKeyEventHandler.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\Utils\TimeSlot.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\Utils\TrackHours.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\ViewModels\NotesViewModel.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\ViewModels\ProjectAndTaskViewModel.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\ViewModels\ResourceCategoryViewModel.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\ViewModels\ResourceScheduleViewModel.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\ViewModels\ThemeViewModel.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\Views\ActionDialogBase.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\Views\DateRangeView.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\Views\DelegationPopup.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\Views\FlyoutViewBase.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\Views\MainViewBase.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\Views\MenuView.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\Views\Message.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\Views\Messagebar.js
msdyn_\Common\DHTMLXDualViewApp\Scripts\Views\SidebarViewBase.js
msdyn_\Common\Localization\DHTMLXLocalizer.js
msdyn_\Common\Localization\Tools\Scripts\LabelTool.js
msdyn_\Common\Models\Actual.js
msdyn_\Common\Models\BatchJob.js
msdyn_\Common\Models\BookableResourceBooking.js
msdyn_\Common\Models\BookableResourceBookingHeader.js
msdyn_\Common\Models\BookingStatus.js
msdyn_\Common\Models\Colors.js
msdyn_\Common\Models\DataExport.js
msdyn_\Common\Models\Delegation.js
msdyn_\Common\Models\ExchangeAppointment.js
msdyn_\Common\Models\Expense.js
msdyn_\Common\Models\ExpenseReceipt.js
msdyn_\Common\Models\Note.js
msdyn_\Common\Models\OptionSets\BillingType.js
msdyn_\Common\Models\OptionSets\BookingStatus.js
msdyn_\Common\Models\OptionSets\CurrencyFormatCode.js
msdyn_\Common\Models\OptionSets\ExpenseStatus.js
msdyn_\Common\Models\OptionSets\OpportunityStatus.js
msdyn_\Common\Models\OptionSets\PriceCalculation.js
msdyn_\Common\Models\OptionSets\ResourceScheduleTimeCodes.js
msdyn_\Common\Models\PriceListItem.js
msdyn_\Common\Models\ProjectTaskStatusUser.js
msdyn_\Common\Models\ResourceAssignmentDetail.js
msdyn_\Common\Models\ResourceScheduleTimeInfo.js
msdyn_\Common\Models\Theme.js
msdyn_\Common\Models\TransactionOrigin.js
msdyn_\Common\Scripts\RadialGauge.js
msdyn_\Common\Scripts\RadialGaugeContractViewModel.js
msdyn_\Common\Scripts\RadialGaugeProjectViewModel.js
msdyn_\Common\Scripts\RadialGaugeView.js
msdyn_\Common\Utils\ComboCreator.js
msdyn_\Common\Utils\Cookie.js
msdyn_\Common\Utils\CRMHideTopBar.js
msdyn_\Common\Utils\DecoratorManager.js
msdyn_\Common\Utils\EventHandler.js
msdyn_\Common\Utils\FetchXMLQuery.js
msdyn_\Common\Utils\FetchXmlRequest.js
msdyn_\Common\Utils\FileSelector.js
msdyn_\Common\Utils\JobQueue.js
msdyn_\Common\Utils\SelectArray.js
msdyn_\Common\Utils\SoapMessage.js
msdyn_\Common\Utils\ViewVisibilityObserver.js
msdyn_\ContractBilling\ChargeabilityView\ChargeabilityView.js
msdyn_\ContractBilling\ChargeabilityView\ChargeabilityViewModel.js
msdyn_\ContractBilling\Model\AccountPriceList.js
msdyn_\ContractBilling\Model\ContactPriceList.js
msdyn_\ContractBilling\Model\ContractLineDetail.js
msdyn_\ContractBilling\Model\ContractLineInvoiceSchedule.js
msdyn_\ContractBilling\Model\DefaultPriceList.js
msdyn_\ContractBilling\Model\InvoiceFrequencyDetail.js
msdyn_\ContractBilling\Model\Quote.js
msdyn_\ContractBilling\Model\QuoteLineDetail.js
msdyn_\ContractBilling\Model\QuoteLineInvoiceSchedule.js
msdyn_\ContractBilling\Scripts\RequireJSConfig.js
msdyn_\ContractBilling\Scripts\SalesContractView.js
msdyn_\ContractBilling\ViewModel\InvoiceFrequencyDetailViewModel.js
msdyn_\Controls\DHTMLXScheduler\CustomExtensions\dhtmlxscheduler_customExtension_Keyboard.js
msdyn_\Controls\DHTMLXScheduler\CustomExtensions\dhtmlxscheduler_customExtension_MultiSelect.js
msdyn_\Controls\Grid\AbstractGridControl.js
msdyn_\Controls\Grid\EditableGridControl.js
msdyn_\Controls\Grid\GridIdentifier.js
msdyn_\Controls\Grid\GridLoader.js
msdyn_\Controls\Grid\ReadOnlyGridControl.js
msdyn_\Controls\Grid\TimeoutLoader.js
msdyn_\Controls\Navigation\NavigationController.js
msdyn_\Controls\Navigation\NavigationFactory.js
msdyn_\Controls\Navigation\NavigationModel.js
msdyn_\Expense\App\Scripts\Utils\LightboxProjectSectionWithCheckbox.js
msdyn_\Expense\App\Scripts\ViewModels\ExpenseViewModel.js
msdyn_\Expense\App\Scripts\ViewModels\ExpenseViewModelActionDialog.js
msdyn_\Expense\App\Scripts\ViewModels\ExpenseViewModelCalendar.js
msdyn_\Expense\App\Scripts\ViewModels\ExpenseViewModelChart.js
msdyn_\Expense\App\Scripts\ViewModels\ExpenseViewModelFlexGrid.js
msdyn_\Expense\App\Scripts\Views\CalendarView.js
msdyn_\Expense\App\Scripts\Views\CalendarViewReceiptDecorator.js
msdyn_\Expense\App\Scripts\Views\ExpenseView.js
msdyn_\Expense\App\Scripts\Views\FlexGridView.js
msdyn_\Expense\App\Scripts\Views\RecallDialog.js
msdyn_\Expense\App\Scripts\Views\SidebarView.js
msdyn_\Expense\App\Scripts\Views\SubmitDialog.js
msdyn_\Expense\Moca\Scripts\ExpenseRibbon.js
msdyn_\Integration\Scripts\ExportActuals.js
msdyn_\Integration\Scripts\IntegrationUtils.js
msdyn_\Invoice\Scripts\InvoiceLineRibbon.js
msdyn_\Invoice\Scripts\InvoiceRibbon.js
msdyn_\Libraries\perfectScrollbar\perfectScrollbar.js
msdyn_\Libraries\SDK.Soap\Entities\Sdk.- msdyn_timeentry.js
msdyn_\Project\Estimates\Scripts\Estimates.js
msdyn_\Project\Estimates\Scripts\EstimatesView.js
msdyn_\Project\Estimates\Scripts\RequireJSConfig.js
msdyn_\Project\ProjectTeam\Scripts\ProjectTeamGridIcon.js
msdyn_\Project\WBS\Ext\form\field\Text.js
msdyn_\Project\WBS\Gnt\field\Duration.js
msdyn_\Project\WBS\Gnt\field\Effort.js
msdyn_\Project\WBS\Scripts\RequireJSConfig.js
msdyn_\Project\WBS\Scripts\WBS.js
msdyn_\Project\WBS\Scripts\WBSAssignedResourcesCombo.js
msdyn_\Project\WBS\Scripts\WBSLocalizer.js
msdyn_\Project\WBS\Scripts\WBSPredecessorsCombo.js
msdyn_\Project\WBS\Scripts\WBSTracking.js
msdyn_\Project\WBS\Scripts\WBSView.js
msdyn_\Project\WBS\View\AssignResourcesCombo.js
msdyn_\Project\WBS\View\FilterColumns\Category.js
msdyn_\Project\WBS\View\FilterColumns\FilterField.js
msdyn_\Project\WBS\View\FilterColumns\Name.js
msdyn_\Project\WBS\View\FilterColumns\Resources.js
msdyn_\Project\WBS\View\FilterColumns\Roles.js
msdyn_\Project\WBS\View\RequireJSConfig.js
msdyn_\Project\WBS\View\StoreManager.js
msdyn_\Project\WBS\View\ViewTask.js
msdyn_\Project\WBS\View\ViewTaskInitializer.js
msdyn_\ProjectApprovals\Scripts\ProjectApprovalRejectionComment.js
msdyn_\ProjectTasks\App\Scripts\ViewModels\ProjectTasksCalendarViewModel.js
msdyn_\ProjectTasks\App\Scripts\ViewModels\ProjectTasksGridViewModel.js
msdyn_\ProjectTasks\App\Scripts\ViewModels\ProjectTasksViewModel.js
msdyn_\ProjectTasks\App\Scripts\Views\ProjectTasksCalendarView.js
msdyn_\ProjectTasks\App\Scripts\Views\ProjectTasksGridView.js
msdyn_\ProjectTasks\App\Scripts\Views\ProjectTaskView.js
msdyn_\Resource\AvailabilityView\Base\AvailabilityView.js
msdyn_\Resource\AvailabilityView\Base\AvailabilityViewDataService.js
msdyn_\Resource\AvailabilityView\Base\AvailabilityViewLocalStorage.js
msdyn_\Resource\AvailabilityView\Base\AvailabilityViewMemoryStorage.js
msdyn_\Resource\AvailabilityView\Base\AvailabilityViewViewModel.js
msdyn_\Resource\AvailabilityView\Base\AvailabilityViewViewModelBase.js
msdyn_\Resource\AvailabilityView\Base\AVChart.js
msdyn_\Resource\AvailabilityView\Base\AVChartManager.js
msdyn_\Resource\AvailabilityView\Base\AVRow.js
msdyn_\Resource\AvailabilityView\Base\AVRowFactory.js
msdyn_\Resource\AvailabilityView\Base\AVStateManager.js
msdyn_\Resource\AvailabilityView\Base\dyn.js
msdyn_\Resource\AvailabilityView\Base\Elements\Candidate\CandidateCard.js
msdyn_\Resource\AvailabilityView\Base\Elements\Demand\DemandCard.js
msdyn_\Resource\AvailabilityView\Base\Elements\Project\ProjectCard.js
msdyn_\Resource\AvailabilityView\Base\Elements\Project\ProjectReservationCard.js
msdyn_\Resource\AvailabilityView\Base\Elements\Project\ProjectReservationChartRow.js
msdyn_\Resource\AvailabilityView\Base\Elements\Reservation\AVChartItem.js
msdyn_\Resource\AvailabilityView\Base\Elements\Reservation\AVChartItemFactory.js
msdyn_\Resource\AvailabilityView\Base\Elements\Reservation\AVChartRow.js
msdyn_\Resource\AvailabilityView\Base\Elements\Reservation\AVDraggableChartItem.js
msdyn_\Resource\AvailabilityView\Base\Elements\Reservation\AVDraggableChartRow.js
msdyn_\Resource\AvailabilityView\Base\Elements\Reservation\ReservationCard.js
msdyn_\Resource\AvailabilityView\Base\Elements\Resource\AVCollectionItem.js
msdyn_\Resource\AvailabilityView\Base\Elements\Resource\ResourceCard.js
msdyn_\Resource\AvailabilityView\Base\Elements\Timeframe\Timeframe.js
msdyn_\Resource\AvailabilityView\Common\Scripts\AvailabilityViewBooking.js
msdyn_\Resource\AvailabilityView\Common\Scripts\AvailabilityViewConstants.js
msdyn_\Resource\AvailabilityView\Common\Scripts\AvailabilityViewDemand.js
msdyn_\Resource\AvailabilityView\Common\Scripts\AvailabilityViewFilter.js
msdyn_\Resource\AvailabilityView\Common\Scripts\AvailabilityViewOptions.js
msdyn_\Resource\AvailabilityView\Common\Scripts\AvailabilityViewTimeUtils.js
msdyn_\Resource\AvailabilityView\Common\Scripts\AvailabilityViewViewPane.js
msdyn_\Resource\AvailabilityView\Common\Scripts\BookingDetailsHelper.js
msdyn_\Resource\AvailabilityView\Common\Scripts\BookingDialog.js
msdyn_\Resource\AvailabilityView\Common\Scripts\ProjectDetailsPopup.js
msdyn_\Resource\AvailabilityView\Common\Scripts\RequireJSConfig.js
msdyn_\Resource\AvailabilityView\Common\Scripts\ResourceDetailsPopup.js
msdyn_\Resource\AvailabilityView\Common\Scripts\WorkOrderDetailsPopup.js
msdyn_\Resource\AvailabilityView\GenericResourceAssignment\AvailabilityViewViewModel.js
msdyn_\Resource\AvailabilityView\MaintainBookings\AvailabilityViewViewModel.js
msdyn_\Resource\AvailabilityView\MaintainBookings\Elements\MaintainBookingsResourceCard.js
msdyn_\Resource\AvailabilityView\MaintainBookings\MaintainBookingsProjectDetail.js
msdyn_\Resource\AvailabilityView\ProjectManagerView\AvailabilityViewViewModel.js
msdyn_\Resource\AvailabilityView\RequestFulfillment\AvailabilityViewViewModel.js
msdyn_\Resource\AvailabilityView\ResourceSubstitution\AvailabilityViewViewModel.js
msdyn_\Resource\Candidate\CandidateCard\CandidateCardViewModel.js
msdyn_\Resource\Candidate\Common\Model\Requirement.js
msdyn_\Resource\Candidate\Common\Model\Resource.js
msdyn_\Resource\Candidate\Common\Model\TeamMember.js
msdyn_\Resource\Candidate\Components\CandidateCardComponent.js
msdyn_\Resource\Candidate\Components\ComponentBuilder.js
msdyn_\Resource\Candidate\Components\HorizontalCandidateCard.js
msdyn_\Resource\Candidate\Components\VerticalCandidateCard.js
msdyn_\Resource\Candidate\InfoCard\Availability\AvailabilityInfoCard.js
msdyn_\Resource\Candidate\InfoCard\Booking\BookingInfoCard.js
msdyn_\Resource\Candidate\InfoCard\Cost\CostInfoCard.js
msdyn_\Resource\Candidate\InfoCard\InfoCard.js
msdyn_\Resource\Candidate\InfoCard\Persona\PersonaInfoCard.js
msdyn_\Resource\Candidate\InfoCard\Skill\SkillInfoCard.js
msdyn_\Resource\Candidate\InfoCard\Utilization\UtilizationInfoCard.js
msdyn_\Resource\Capacity\Scripts\WorkTemplateLookupViewModel.js
msdyn_\Resource\CompareView\CompareViewViewModel.js
msdyn_\Resource\CompareView\PopupViewModel.js
msdyn_\Resource\CompareView\RequireJSConfig.js
msdyn_\Resource\Fulfillment\Scripts\ResourceBookingAction.js
msdyn_\Resource\Profile\Scripts\UserCompetencyView.js
msdyn_\Resource\Utilization\Elements\UtilizationCard.js
msdyn_\Resource\Utilization\Scripts\ResourceUtilizationViewModel.js
msdyn_\SalesDocument\PSSalesDocumentCustomFormIds.js
msdyn_\SalesDocument\SalesDocumentFormLoader.js
msdyn_\Time\App\Scripts\Datasources\DatasourceBase.js
msdyn_\Time\App\Scripts\Datasources\ExchangeAppointmentDatasource.js
msdyn_\Time\App\Scripts\Datasources\Operations.js
msdyn_\Time\App\Scripts\Datasources\ResourceAssignmentDatasource.js
msdyn_\Time\App\Scripts\Datasources\ResourceBookingDatasource.js
msdyn_\Time\App\Scripts\Datasources\TimeEntriesDatasource.js
msdyn_\Time\App\Scripts\Utils\LightboxProjectTaskRoleSections.js
msdyn_\Time\App\Scripts\ViewModels\FilterViewModel.js
msdyn_\Time\App\Scripts\ViewModels\TimeEntryViewModel.js
msdyn_\Time\App\Scripts\ViewModels\TimeEntryViewModelActionDialog.js
msdyn_\Time\App\Scripts\ViewModels\TimeEntryViewModelCalendar.js
msdyn_\Time\App\Scripts\ViewModels\TimeEntryViewModelChart.js
msdyn_\Time\App\Scripts\ViewModels\TimeEntryViewModelFlexGrid.js
msdyn_\Time\App\Scripts\ViewModels\TimeEntryViewModelFlexGridAll.js
msdyn_\Time\App\Scripts\ViewModels\TimeEntryViewModelFlexGridApproved.js
msdyn_\Time\App\Scripts\ViewModels\TimeEntryViewModelFlexGridDraft.js
msdyn_\Time\App\Scripts\ViewModels\TimeEntryViewModelFlexGridRejected.js
msdyn_\Time\App\Scripts\ViewModels\TimeEntryViewModelFlexGridStatusBase.js
msdyn_\Time\App\Scripts\ViewModels\TimeEntryViewModelFlexGridSubmitted.js
msdyn_\Time\App\Scripts\ViewModels\TimeEntryViewModelGrid.js
msdyn_\Time\App\Scripts\Views\CalendarView.js
msdyn_\Time\App\Scripts\Views\CopyFromPopup.js
msdyn_\Time\App\Scripts\Views\FilterFlyout.js
msdyn_\Time\App\Scripts\Views\FlexGridView.js
msdyn_\Time\App\Scripts\Views\FlexGridViewAll.js
msdyn_\Time\App\Scripts\Views\FlexGridViewApproved.js
msdyn_\Time\App\Scripts\Views\FlexGridViewDraft.js
msdyn_\Time\App\Scripts\Views\FlexGridViewRejected.js
msdyn_\Time\App\Scripts\Views\FlexGridViewStatusBase.js
msdyn_\Time\App\Scripts\Views\FlexGridViewSubmitted.js
msdyn_\Time\App\Scripts\Views\ImportFromPopup.js
msdyn_\Time\App\Scripts\Views\RecallDialog.js
msdyn_\Time\App\Scripts\Views\SidebarView.js
msdyn_\Time\App\Scripts\Views\SubmitDialog.js
msdyn_\Time\App\Scripts\Views\TimeEntryView.js
msdyn_\Time\Moca\Scripts\TimeEntryRibbon.js
How do I assign a bookable resource to a task in the
web app (Project Service app v2.x)?
1/24/2019 • 4 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


There are two ways to assign a resource to a task in Project Service. You can book a resource as a team member
and then assign it to a task. Or, you can create a generic team member through role assignment on tasks, generate
a team, and then fulfill the backing requirements with a named resource.
Note that if you’d like to assign a bookable resource to a task, the bookable resource team member must have
enough available bookings. The status of the booking must be Commit Type Hard Book and Status Committed. If
there aren’t enough bookings for the resource, Project Service removes the assignment and displays the following
error message:
Unable to assign resource to task - Following resource(s) do not have sufficient hours booked against project

Book a resource as a team member and then assign the resource to a


task
With this method you add a resource to the project team and then assign tasks to the resource in the project
schedule. Here’s how you do this:
1. On the team member grid, add a new team member by selecting New.
2. On the Team Member Quick Create screen, select the bookable resource name and set a role.
3. Select the From and To dates.

4. Select one of the following allocation methods for booking the resource:
Full Capacity books the resource’s full capacity for the specified from and to dates.
Percentage Capacity books the resource for a percentage of the resource's capacity for the specified from
and to dates.
By Hours Distribute Evenly books the resource for a specified number of hours, distributing it evenly per
day over the specified from and to dates.
By Hours Front Load books the resource for a specified number of hours, front-loading the per-day hours
over the specified from and to dates.
Don’t select None because it adds the resource to the team but doesn’t create any bookings that absorb the
resource's capacity.
5. Select Save.
Note that the hours of the booking must be enough to cover the effort hours and date ranges of the tasks
that you assign this resource to. If they aren’t in alignment, you can’t assign the resource to the task.
6. On the work breakdown structure (WBS ) for the task, click the resource cell dropdown. Then:
a. Select Add.
b. Select the dropdown under Resources and select the team member you added above.
c. Select OK. The team member is now assigned to the task.

On the team member grid, you’ll see the aggregate of the resource’s assigned hours under Assigned Hours. It will
be less than or equal to the booked hours for the resource.

If the task you’re attempting to assign to the resource starts after the end date of the resources bookings, the
resource won’t appear in the dropdown.
Note that you can assign a resource to more hours than their booked hours if the resource has some remaining
unassigned capacity. In this case the resource will only be partially assigned up to their bookings. You can see these
remaining unassigned task hours by adding the Unstaffed Hours column to the work breakdown structure.
If resources are assigned to their booked hours (their booked hours equals their assigned hours), you’ll see the
following error message when you attempt to assign them further tasks:
Unable to assign resource to task - Following resource(s) do not have sufficient hours booked against project.
Additionally, the default project manager team member that is added to the team when you create the project is
added without any bookings and can’t be assigned to any task. They won’t show up in the resource dropdown for
tasks.
If you want to assign this resource, you need to remove them from the team and then re-add them with an
allocation method other than None. The reason they’re added to the team when the project is created is so that a
project has at least one project approver by default.

Create a generic team member through role assignment on tasks


This method assures that resources have enough bookings for tasks. First, you create a placeholder or generic
resource that describes the characteristics of the named resource you ultimately want to work on the tasks by
generating a team after assigning roles to tasks. Here’s how you do this:
1. On the work breakdown structure, select a task.
2. Select the Assigned Role dropdown icon in the resource cell.
3. Select the Role dropdown and select the role for the generic resource.
4. Select OK.

Once you’ve completed assigning roles to the tasks in the WBS, select Generate Project Team. Project Service
creates the minimum number of generic team members based on the roles, resourcing organization units, and
project calendar by aggregating the task assignments.
On the Team Member grid, you’ll see resources of the Generic Resource type with the role and position name. If
two resources are needed for a role to complete the work, the Generate Team feature creates two team members
and uses position name to set them apart.

You can open the backing resource requirement for the generic team member by selecting the link under Resource
Requirement.
Select Book for the generic resource, and then you can use the schedule board to find and book a real resource.
You can also submit the requirement for fulfillment by a resource manager by selecting Submit Request.
When the generic resource is fulfilled with a named resource, the generic resource is removed from the team and
the task assignments for the generic resource are assigned to the named resource that fulfilled the generic
resource’s resource requirement.
How do I "soft book" resources in the web app
(Project Service app v2.x)?
1/24/2019 • 4 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


You can tentatively schedule or "soft book" a resource onto a project team to show you plan to assign the resource
to a project. Soft bookings don’t consume a resource’s available capacity. Soft-booked team members can’t be
assigned to project tasks. Only resources with the Status Hard Booked and Commit Type Committed can be
assigned to tasks (assuming they have enough hard booking hours to cover the assignment effort).
Soft-booked project team members show up in the Team Member grid with their soft-booked hours shown in the
Soft Book column. They also show up on the schedule board. Again, they don’t indicate any consumption of
capacity as soft-booking doesn’t consume capacity of a resource.
There are three ways to soft-book a team member onto a project with Project Service version 2.x. You can soft-
book with the schedule board, use the Maintain Bookings feature, or by creating a generic resource. These methods
are described below.

Soft-book with the schedule board


To soft-book with the schedule board, follow this procedure:
1. Open the schedule board.
2. Select the Project tab on the bottom Booking Requirements panel of the schedule board.
3. Find the project you wish to soft-book a resource on. If you have many projects, click on the Project column
header and then use the filter to find your project.
4. Click on the project, then drag and drop it on the resource’s time grid.
5. This opens the Create Resource Booking panel on the right. Adjust the start and end date, select the Booking
Status as Soft and set the hours.
6. Click Book.
7. Back on the project, the resource will now show as a team member with the soft booked hours in the Soft Book
column.
Note that you can’t assign them to tasks on the work breakdown structure (WBS ) as resources must be hard
booked on the team to be assigned.

Soft-book using the Maintain Bookings feature


To soft-book with Maintain Bookings follow this procedure:
1. From the team member grid, Click New.
2. Select the bookable resource, role, from/to.
3. Select an allocation method other than None:
Full Capacity
Percentage Capacity
By Hours Distribute Evenly
By Hours Front Load
4. Click Save. You’ll see the resource on the team grid and their hours indicated as Hard.
5. Maintain the resource’s bookings by clicking Maintain Bookings.
6. When the schedule board opens, expand the resource to show their bookings. You will see the booking indicated
as Hard.
7. Right-click the booking, under Change Status, select Soft Book and then Soft. The booking status is now Soft.
8. After closing the schedule board, you’ll see that the hours for the resource have changed from Hard to Soft on
the team member grid. Note that if you hard book a resource onto the team and then assign them tasks in the
WBS, when you use maintain bookings to change the status of Hard to Soft, it will remove the assignments
from the tasks for that resource, as only hard booked resources can be assigned to tasks.

Soft-book by creating a generic resource


You can create a soft-booking by generating a generic resource team member, fulfilling with schedule board or
Resource Request and changing the type during the booking. To do this, use the following procedure:
1. On the project WBS, assign roles to the tasks you wish to generate generic team members for.
2. Click Generate Project Team.
3. On the project team member grid, select the generic resource and click Book.
4. On the schedule board, select the resource that you wish to book.
5. On the schedule board’s Create Resource Booking panel, change the Booking Status to Soft.
6. Click Book or Book and Exit.
After closing the schedule board, you’ll see the selected resource added to the team with Soft booked hours as well
as assigned hours. You’ll also see that the generic resource remains on the team as an indicator that the tasks are
assigned to a soft-booked team member.
When you’re ready to change a soft-booked team member resource to a hard-booked team member so that you
can assign them to tasks, do the following:
1. Select that resource and click Maintain Bookings.
2. When the schedule board opens, expand the resource to show their bookings. You’ll see the booking marked as
Soft.
3. Right-click the booking, under Change Status, select Hard Book and then Hard. The booking status is now Hard.
4. After closing the schedule board, you’ll see that the hours for the resource have changed from Soft to Hard on
the team member grid. You may now assign the resource to tasks (provided there is alignment between the
hard-booked hours and the effort hours of the task for assignment). Note that if you followed the generic
resource fulfilment steps in item #3 above, when you change the status of the soft-booked bookable resource to
hard, the generic team member is removed from the team.
How do I customize the Project Stages business
process flow?
1/24/2019 • 5 minutes to read • Edit Online

Applies to Project Service app version 2.4.4.30 or earlier on Dynamics 365 (online) version 9.x
Applies to Project Service app version 1.x on Dynamics 365 (online) version 8.2
There's a known limitation in earlier versions of the Project Service application that the names of the stages in the
Project Stages business process flow must exactly match the expected English names (Quote, Plan, Close).
Otherwise, the business logic, which relies on the English stage names, doesn't work as expected. That's why you
don't see familiar actions such as Switch Process or Edit Process available on the project form, and customizing
the business process flow isn't encouraged.
This limitation has been addressed in version 2.4.5.48 and later. This article provides suggested workarounds if you
need to customize the default business process flow for earlier versions.

Business logic requires an exact match with English stage names


The Project Stages business process flow includes business logic that drives the following behaviors in the app:
When the project is associated with a quote, the code sets the business process flow to the Quote stage.
When the project is associated with a contract, the code sets the business process flow to the Plan stage.
When the business process flow is advanced to the Close stage, the project record is deactivated. When the
project is deactivated, the project form and work breakdown structure (WBS ) are set to read-only, the named
resource bookings are released, and any associated price lists are deactivated.
This business logic relies on the English names for the project stages. This dependency on the English stage names
is the main reason why customization of the Project Stages business process flow isn't encouraged, as well as why
you don’t see the common business process flow actions like Switch Process or Edit Process on the project entity.

What happens if the stage names don't match the English names?
In the Project Service app version 1.x on the 8.2 platform, when the stage names in the business process flow don’t
match the English stage names exactly, the business logic that sets the right stage for quotes or contracts, or that
closes the project, is skipped. No error messages are displayed. Therefore it appears that you are able to customize
the Project Stages business process flow. However, you won’t see any of the automatic processes working for
quotes, contracts, and project close.
In the Project Service app version 2.4.4.30 or earlier on the 9.0 platform, there was a significant architectural
change to business process flows, which required a re-write of the business process flow business logic. As a result,
if the process stage names don’t match the expected English names, you do receive an error message.
Therefore, if you want to customize the Project Stages business process flow for the project entity, you can only add
brand new stages to the default business process flow for the project entity, while keeping the Quote, Plan, and
Close stages as-is. This restriction ensures that you don’t get errors from the business logic that expects the English
stage names in the business process flow.
In version 2.4.5.48 or later, the business logic described in this article has been removed from the default business
process flow for the project entity. Upgrading to that version or later will let you customize or replace the default
business process flow with one of your own.
Workarounds for earlier versions
If upgrading isn't an option, you can customize the Project Stages business process flow for the project entity in one
of these two ways:
1. Add additional stages to the default configuration, while retaining the English stage names for Quote, Plan, and
Close.

2. Create your own business process flow and make it the primary business process flow for the project entity,
which lets you have any stage names you want. However, if you want to use the same standard project stages
Quote, Plan, and Close, you need to do some customizations that are driven off your custom stage names. The
more complex logic is in the closing of the project, which you can still trigger by just deactivating the project
record.

Additional considerations for Project Service app version 2.4.4.30 or earlier on platform 9.0
In Project Service 2.4.4.30 or earlier on platform 9.0, with a custom business process flow the Stage Name field on
the project entity used in the Project By Stage chart and project list views won’t update, because it’s coupled to
the default Project Stages business process flow. You can address this issue with the following steps:
Add a custom field to capture the current business process flow stage that is updated as the user advances
through the custom business process flow.
Modify the Project By Stage chart to work with your custom field instead of the default configuration.
Steps to create your own business process flow for the project entity
To create your own business process flow for the project entity do the following:
1. Go to Settings > Process Center. Don’t copy the Project Stages business process flow because that also copies
the Project Service business logic.
2. Use the Process Designer to create the stage names you want. If you want the same functionality as the default
stages for Quote, Plan, and Close, you’ll have to create that based on your custom business process flow’s
stage names.

3. In the Process Designer, click Order Process Flow to make the custom business process flow the primary
business process flow for the project entity by moving it above the Project Stages business process flow to the
top of the list.

The following steps apply to Project Service app 2.4.4.30 or earlier on the 9.0 platform
4. Add a new custom field to the project entity to capture the custom stages in your custom business process flow.
You’ll need to add business logic (plugin/workflow ) to update this field when the stage on the custom business
process flow is updated.

5. Modify the Project By Stage chart to use your new custom field for stages.
6. Modify any views for the project entity to include your new custom field for stages.
White papers for Project Service
7/31/2019 • 2 minutes to read • Edit Online

These white papers are designed to provide in-depth information for Customer Engagement project service
automation.
External system integration for project service
Basic guide to quoting, pricing, and billing for project service
Advanced guide to quoting, pricing, and billing for project service
Guide to project planning and tracking for project service
Reporting for project service
Resource management for project service
See Also
Overview of Project Service
Administrator guide (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


This guide takes you through the process of installing and configuing :
Install and customize
Experiment with demo data
Configure Project Service Automation
Set up time units
Set up currencies and exchange rates
Create organizational units
Set up invoice frequencies
Configure transaction categories
Configure expense categories
Create product catalog items
Create a price list
Set up resources
White papers
See Also
Overview of Project Service Automation
Account Manager Guide Project Manager Guide
Resource Manager Guide
Time, Expense, and Collaboration Guide
Install and customize (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Project Service capabilities in Dynamics 365 for Customer Engagement is an end-to-end solution that you need to
install before users can start using the capabilities to manage and deliver project-based sales. While it's an end-to-
end solution, you can still make customizations as needed to suit your organization.

Install Project Service


Project Service is a preferred solution. There are several ways to purchase the solution. More information:
Onboard your organization and users.

Customize Project Service forms and reports


If you want to customize any of the Project Service forms, dashboards, or reports, you can find more information
about customizing Dynamics 365 for Customer Engagement in the following links:
Customize your Dynamics 365 for Customer Engagement Customer Engagement system
Create and design forms
Create and edit dashboards
Create and edit processes
Introduction to reporting & analytics
See Also
Administrator Guide
Account Manager Guide
Project Manager Guide
Resource Manager Guide
Time, Expense, and Collaboration Guide
Experiment with demo data (Project Service)
7/31/2019 • 2 minutes to read • Edit Online

To become familiar with Dynamics 365 for Customer Engagement for Project Service, it’s useful to have a pre-
configured environment to explore. For this purpose, we’ve created a separate sample data installation package
(English-language only at this time) that makes it easier to learn about these solutions.
The installation package is available on the Microsoft Download Center.
Running the Package Deployer install performs the following actions:
Creates or sets default parameters that drive behavior of Project Service
Imports sample data such as Bookable Resources, Roles, Sales and Cost Price lists, Organizational Units,
relevant sales process records, Work Orders and Projects

IMPORTANT
There is no way to un-install the demo data. Therefore, you should only use this package on demonstration, evaluation,
training and test systems.

For more information, see this blog.


See Also
Administrator Guide
Account Manager Guide
Project Manager Guide
Resource Manager Guide
Time, Expense, and Collaboration Guide
Configure Project Service
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Before you can use the Project Service automation capabilities in Dynamics 365 for Customer Engagement to
manage your accounts, projects, and resources, you need to complete a few configuration steps to ensure the
Project Service solution matches your organization’s needs. These steps include:
Set up time units. Configure the time units in the product catalog that you’ll use as a base for scheduling
and billing your projects.
Set up currencies and exchange rates. Set up the currencies to use for your projects.
Create organizational units. Set up the groups that your company uses to divide its business, whether by
geography, business function, or other logical division.
Set up invoice frequencies. Set up time periods that you want to use for billing your clients.
Configure transaction categories. Set up transaction categories your consultants can charge their billable
and unbillable expenses to.
Configure expense categories. Set up the categories your consultants can charge their billable and
unbillable expenses to.
Create product catalog items. Add the products you sell, such as software licenses, to the product catalog.
Create a price list. Configure different price lists, depending on how much you want to charge your clients
for each role their project requires.
Set up resources. Add the skills, proficiencies, resource roles, and other resource information that you’ll
need for your projects.
See Also
Overview of Project Service Automation
Configure Project Service Automation
Account Manager Guide
Project Manager Guide
Resource Manager Guide
Time, Expense, and Collaboration Guid
Set up time units (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Configure the time units in the product catalog that you’ll use as a base for scheduling and billing your projects.
1. Go to Settings > Product Catalog.
2. Click Unit Groups.
3. Click the Time unit group (created during Project Service installation).
4. On the Units tab, click Add New Unit, and then change the values as necessary. Add as many units as you
need. For example, you might want to create the following units:
Day with Base unit = Hour and Quantity = 8
Week with Base unit = Day and Quantity = 5
See Also
Configure Project Service
Set up currencies and exchange rates (Project
Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


In order to create quotes and invoice your customers in Project Service, you need to set up the currencies and
exchange rates for the areas in which you do business.
1. Go to Settings > Business Management.
2. Click Currencies.
3. Click New.
4. Select the three-letter ISO Code of the currency to set up and set the exchange rate with the base currency.
See Also
Configure Project Service
Create organizational units (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Your company probably organizes its consulting business by geography, function, or other areas. You can create
organizational units that reflect your consulting business. A Project Service organizational unit is a group or
division in a professional services company that employs billable resources with cost rates that are distinct from
other such groups or divisions in the company.

NOTE
A Project Service organizational unit is separate from a business unit in Customer Engagement. Business units are more of a
security structure that affects levels of access to Customer Engagement information, and are usually organized around
company divisions, like parent company and subsidiaries or divisions. Organizational units represent how your consulting
company categorizes its different businesses, whether by geographic location (like EMEA or LATAM), by function (like
Product Development or IT Outsourcing), or by other parameters.

1. Go to Project Service > Organizational Units.


2. Click New.
3. In the General area, enter a name for the organization unit in Name, and fill in the other fields as
necessary.
4. Click Save to create the record so you can continue editing it.
5. Under Cost Price Lists, click + to add a price list. You can only add price lists with the Cost context here.
6. In the Name field, click the Search button and select a price list you want to make available to this
organizational unit. Continue adding price lists as needed.
7. When you’re done, click Save at the bottom right corner of the screen.
See Also
Configure Project Service Automation
Set up invoice frequencies (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Project Service invoice frequencies determine how often you bill your clients, and on which day of the time period
you specify. Set up an invoice frequency for each time period you plan to use for billing your clients, such as
monthly, biweekly, or weekly.
1. Go to Project Service > Invoice Frequencies.
2. Click New.
3. In the General area, enter a name for the invoice frequency in Name.
4. In Period, select Monthly, Biweekly, or Weekly.
5. If you specified a period of monthly or biweekly, in Days of run, select Day of period to invoice on the
specified day of the period (whether weekday or weekend), or select Weekday of period to invoice on the
specified weekday of the period.
6. If you specified a period of monthly, in Runs per month, select the number of times per month you want to
run the invoice.
7. In the Invoice Frequency Details area, change the day or weekday details as necessary to make sure the
invoice runs on the correct day or weekday of the period you specified.
8. When you’re done, click Save at the bottom right corner of the screen.
See Also
Configure Project Service
Configure transaction categories (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Set up transaction categories to define a superset of expense categories.
1. Go to Project Service > Transaction Categories.
2. Click New.
3. In the General area, fill in the fields as needed.
4. Click Save at the bottom right corner of the screen.
See Also
Configure Project Service
Configure expense categories (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Your consultants incur expenses when they work for your clients, including airfare, meals, mileage, and other
expenses. Set up expense categories your consultants can use to enter their expenses, so you can invoice your
client for those expenses.
Each expense category can have its own unit group and unit. You can define pricing for each expense category for
each unit in the unit group assigned to the expense category.
1. Go to Project Service > Expense Categories.
2. Click New.
3. In the General area, fill in the fields as needed. It’s a good practice to set up the following expense
categories at a minimum:
Airfare
Hotel
Meal
Car rental
Per diem
4. Click Save at the bottom right corner of the screen.
See Also
Configure Project Service Automation
Create product catalog items (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


If you want to include products, such as software licenses, on your project quotes and estimates, you need to add
each product to the product catalog in Dynamics 365 for Customer Engagement.
For more information about adding products to the product catalog, see Create a product (Sales).
See Also
Configure Project Service
Create a price list (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Price lists provide a template your account managers can use for creating quotes and projects, and for establishing
the costs of a project. They provide a line item list of roles and expenses, and the price you will charge for each.
You can create multiple price lists so that you can maintain separate price structures for different regions you sell
your products in or for different sales channels. It’s a good idea to create at least one price list for every currency
you plan to bill your customers in.
To create financial estimates for the work to be delivered, make sure every project has a backing cost and sales
price list. Set up a default cost and sales pricelist that applies to all projects created in your organization.
Price lists rely on roles and expense categories, so before you create a price list, make sure you’ve already
configured the roles and expense categories you want to use while creating the price list.
1. Go to Project Service > Price Lists.
2. Click New.
3. In Context, select whether this price list is for Cost, Purchase, or Sales.
4. In Name, enter a name for the price list.
5. In Currency, select the currency you’re going to use for billing or costing.
6. In Time Unit, specify the period of time the price applies to, such as day or hour.
7. Fill in the Start Date, End Date, and Description as needed.
8. Click Save to create the record so you can continue editing it.
9. To add a role price to the price list, click + under Role prices.
10. In the Role Price pane, fill in the details, and then click Save. Continue adding role prices as necessary.
When you’re done, click Save at the bottom right corner of the screen.
11. To add an expense category price to the price list, click + under Category prices.
12. In the Transaction Category Price pane, fill in the details, and then click Save. Continue adding category
prices as necessary. When you’re done, click Save at the bottom right corner of the screen.
13. To add price list items to the price list, click + under Price List Items.
14. In the Price List Item pane, fill in the details, and then click Save. Continue adding price list items as
necessary. When you’re done, click Save at the bottom right corner of the screen.
15. To add territory relationships to the price list, click + under Territory Relationships.
16. In the New Connection window, fill in the details, and then click Save. Continue adding territory
relationships as necessary. When you’re done, click Save at the bottom right corner of the screen.
See Also
Configure Project Service Automation
Set up resources (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Before requesting or assigning resources in Project Service, you need to define the roles and the skill sets that
your clients’ projects need. This requires some configuration on your part:
Add resource skills
Set up proficiency models
Add resource roles
Configure resource roles
Associate skills with resource roles
Add resources
Associate skills with resources
Create a work hours template
Apply a calendar to a resource
Configure additional parameters settings
See Also
Configure Project Service
Add resources (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Add resources so you can book them for projects. Resources can include users, contacts, accounts, groups, or
equipment—anything that you might want to include in your project scheduling and invoicing.
You can assign resources to organizational units if you need to have different costing and pricing for resources for
different divisions in your company.
1. Go to Project Service > Resources.
2. Click New.
3. Select the Resource Type, and then select the settings you want for each field.
4. Click Save to save the record so you can continue editing it.
5. To add a skill for the resource, click + under Resource Skills.
6. In the screen that pops up, fill in the fields as needed and click the Save button at the bottom right corner of
the screen.
7. Continue adding skills as necessary.
8. To add a resource role, click + under Resource Role.
9. When you’re done making changes, click Save at the bottom right corner of the screen.
See Also
Set up resources
Add resource skills (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Your clients’ projects no doubt require a variety of different skills to complete the job, such as SQL programming
or agile methodologies. Enter each skill so you can associate it with resource roles and resources later on.
1. Go to Project Service > Resource Skills.
2. Click New.
3. In the General area, enter a name for the skill in Name, and then fill in the other fields as necessary.
4. Click Save.
When you create a new skill, it’s automatically activated. If you don’t want this skill available for use yet, click
Deactivate at the top of the screen. Then go back and activate it when you want to make it available.
In the next step, you’ll set up proficiency models so you can rate a consultant’s proficiency with each skill
and match it to the proficiency a project requires.
See Also
Set up resources
Set up proficiency models (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Now that you’ve added the skills for your clients’ projects, you need a way to rate your consultants’ skills so you
can match them to project requirements. You can use the default proficiency model, edit it, or create a new one to
match the needs of your organization.
1. Go to Project Service > Proficiency Models.
2. To view or edit the default proficiency model, click Default Rating Model in the list, or to create a new
proficiency model, click New.
3. If you’re creating a new proficiency model, fill in the fields in the General area, and then click Save to create
the record so you can continue editing it. When you create your own proficiency model, keep in mind that
higher numbers are better.
For example, if you’re viewing or editing the default rating model, you’ll see the following proficiency levels
in Rating Values.

NAME VALUE

Familiar 1

Good 2

Proficient 3

4. To add or change a proficiency level, click the table button and make the changes you want.
5. Click the Save button in the bottom right corner of the screen.
See Also
Set up resources
Add resource roles (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Set target utilization rates for each role. These settings determine resource availability and utilization when you’re
staffing projects and analyzing actuals.
1. Go to the resource role you want to configure the utilization for (Project Service > Resource Role).
2. Click the down arrow next to the resource role at the top of the screen.
3. Click Role Utilization.
4. Click Add New Role Utilization.
5. In the General area, fill in the fields as needed.
6. Click Save or Save & Close.
See Also
Set up resources
Configure resource roles (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Roles play an important part in project planning, when determining resource requirements or costs of a project.
For each role your projects require, you need to create a resource role and associate skills and proficiencies to that
role. For example, you might want to create roles for developer, project manager, or game tester. You’ll also set the
skills and proficiency levels required for the role.
Configure resource roles to ensure effective project estimation for your organization. Also make sure you
accurately set the billing type. An item set with a non-chargeable billing type doesn’t show up on contract or quote
lines.
Once you’ve set up resource roles, you can set up cost and sales prices with a price list.
For each role you want to add, do the following:
1. Go to Project Service > Resource Roles.
2. Click New.
3. In the General area, enter a name for the role in Name, and then fill in the other fields as necessary.
4. Click Save to create the record so you can continue editing it.
5. In the Skills area, click + to add a skill.
6. In the Role competency requirement pane, click in the Skill field, click the Search button, and then select
a skill.
7. Select a proficiency for that skill, and then click Save.
8. Continue adding skills as necessary. When you’re done, click Save at the bottom right corner of the screen.
9. To make this resource role available for projects to use, click Activate.
See Also
Set up resources
Associate skills with resources (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


In the previous step, you already associated some skills with a new resource. From time to time, you might need to
add additional skills to a resource.
1. Go to Project Service > Resources.
2. Double-click the resource you want to add skills to.
3. In the Skills area, click + to add a skill.
4. In the screen that pops up, fill in the fields as needed, and then click the Save button at the bottom right
corner of the screen.
5. Continue adding skills as necessary. When you’re done, click Save at the bottom right corner of the screen.
See Also
Set up resources
Associate skills with resource roles (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


While you were adding resource roles, you probably already associated some skills to them. From time to time,
you might need to add additional skills to a resource role.
1. Go to Project Service > Resource Roles.
2. Click the resource role you want to add skills to.
3. In the Skills area, click + to add a skill.
4. In the Role competency requirement pane, click in the Skill field, click the Search button, and then select a
skill.
5. Select a proficiency for that skill, and then click Save.
6. Continue adding skills as necessary. When you’re done, click Save at the bottom right corner of the screen.
See Also
Set up resources
Create a work hours template (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Before you can create project schedules, you need to set up a project calendar that defines the number of working
hours to accommodate per day in the schedule and any business closures. You do this with a work hours template,
which contains details about work hours per day, days off, and any other business closures.
When you’re creating a project, you associate a work template to the project calendar to apply the schedule for the
project.
There are two ways you can create a work hours template:
Create a work hours template based on a resource’s calendar.
Create a new work hours template.
To create a work hours template based on a resource’s calendar
1. Go to Project Service > Resources.
2. Select the resource you want to base your work hours on.
3. Click Save Calendar As, enter a name for the work hours template, and then click Save.
4. When you’re done changing options, click Save and Close.
5. Click the Save button at the bottom right corner of the screen.
To create a new work hours template
1. Go to Project Service > Work Hours Templates.
2. Click New.
3. Enter a name for the work hours template.
4. Select a resource to base the work hours on, and then click Save.
See Also
Set up resources
Apply a calendar to a resource (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Once you’ve created a work hours template, you need to assign it to resources so their calendars reflect the
working hours specified in the template.
1. Go to Project Service > Resources.
2. Select the resource you want to set the calendar for. You can select more than one resource.
3. Click Set Calendar.
4. Choose the work hours template you want to apply.
5. Click Apply.
See Also
Set up resources
Configure additional parameter settings (Project
Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Once you’ve configured the items in previous topics, you need to set additional project parameters to use for your
projects. When you first installed Project Service, you created a parameters setting to first create all the records
required for Project Service to work. Now it’s time to go back and configure additional fields for these settings.
You’ll need to have configured the following settings:
Organizational unit
Invoice frequency
Work hours template
Price list
In this step, you’ll also indicate what type of resource allocation you want:
Central. Only resource managers can allocate resources to projects.
Hybrid. Resource managers, project managers, and account managers can allocate resources to projects.
To set project parameters:
1. Go to Project Service > Parameters.
2. Click the parameters setting you want to configure (the one you created when you first installed Project
Service), or click New to create a new one.
3. In the General area, set all the options for your project parameters.
4. In the Price List area, click + to add a price list, select a price list in the Project Parameter Price List drop-
down list, and then click Save.
5. Click the Save button in the bottom right corner of the screen.
See Also
Set up resources
Enable Project Finder Mobile app features (Project
Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Your resources can use the Project Finder Mobile app on their phone with Project Service to find new projects to
work on and update their skill sets.
The app is available for Apple iPhone, Android phones, and Windows Phone.
You need to set a couple of options in the parameters setting for your organizational unit to allow users to view
projects' resource requirements and update their skills.

NOTE
The Project Finder Mobile app only works with Customer Engagement, not with on-premises installations.

1. Go to Project Service > Parameters.


2. Click the parameters setting you want to use for allowing the Project Finder Mobile app features.
3. In the General area, set Resource requirements visible to resources to Yes.
4. Set Allow skill update by resource to Yes.

This is a global setting. Project managers can set whether an individual project will be visible on that
project's Project Team page.

Email notifications
Project Service sends emails regarding resource requests to the following recipients at the following times:

RECIPIENT EVENT

Project manager - When a resource signs up for a project with the Project
Finder Mobile app.
RECIPIENT EVENT

Resource - When the project work the resource has signed up for has
already been fulfilled by another resource.
- When their skill approval request has been approved or
rejected.
- When their project sign up request has been approved or
rejected.

Privacy notice
By enabling the Project Finder mobile app, you provide users in the organization with visibility into project work
and the ability to sign up for work. Users can also work with the Project Finder app to view and update their skills.
The Project Finder mobile app is enabled via the Project Service Parameters Setting, by setting the value of the
Resource requirements visible to resources and Allow skill update by resource attributes to Yes. Changing the value
of these attributes to No disables this functionality.
When using this feature, be sure to consider the following key points:
Resource requirements visible to resources. Setting this attribute to Yes provides users with visibility into
project work exposes the following information about a project:
Project name
Role name
Customer name
Customer address
Work duration
Allow skill update by resource. Setting this attribute to Yes provides users with the ability to add skills to
their profiles and to set their level of proficiency for the skills they add.
See Also
Set up resources
Resource manager guide (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


The Project Service capabilities in Dynamics 365 for Customer Engagement help you find the right resources at
the right time for the right project and make sure all resources are utilized efficiently.
Deploy your company’s consultants efficiently and effectively with the Project Service. These provide you with
the tools you need to schedule resources based on the requirements and schedules of consulting projects and on
the skills and availability of your consultants. You can quickly find the most qualified consultants who are
available to work on projects, and you can easily see how to better schedule them during the course of each
project.
Resource scheduling helps you do the following:
Match resources to projects, based on how well their skills and proficiency levels match the project
resource requirements.
Match a resource’s schedule to a project calendar, based on their availability and scheduled time off. The
color-coded calendar gives you visual cues about resource availability.
Review the capacity of each consultant and determine how that capacity is currently used. This can help
you find where a consultant might be under- or over-utilized, or if they’re working at capacity.
Assign a percentage or a specific number of hours for a worker’s capacity to a project.
Make group resource bookings.
Soft book or hard book resources, and convert soft-booked hours into hard-booked hours in one step.
Automatically form a project team based on resources defined in a work breakdown structure for a
project.
Fulfill resource requests (book, propose, find substitute resources).
Assign resources according to a central (resource manager assigns) or hybrid model (resource manager
and other managers can assign). For more information about setting a central versus hybrid resource
management model, see Configure additional parameters settings (Project Service).
You can manage resources efficiently across projects and ensure that projects are staffed appropriately.
You’ll need to perform the following tasks:
Manage resource requests. Match the skills and proficiencies of your consultants to the right projects.
View resource availability. Check consultants’ availability in a calendar view.
View resource utilization. See the percentage of time that your consultants are currently booked.
Schedule resources for a project. Schedule consultants for a project.
For more information about submitting resource requests for individual projects, see Submit resource
requests.
See Also
Overview of Project Service
Administrator Guide
Account Manager Guiden
Project Manager Guide
Time, Expense, and Collaboration Guide
Manage resource requests (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Account managers and project managers regularly request resources for their projects. With the Project Service
capabilities in Dynamics 365 for Customer Engagement Customer Engagement, you can find and match
consultants who have the required skills and proficiencies to those resource requests.
1. Go to Project Service > Resource Requests.
2. Select a resource request and click Find Resources. This shows a calendar view of all resources and their
availability, with color coding that provides a visual view of a resource’s booking status.
Do any of the following to optimize your search:
Select a view or sort order from the top of the screen. You can also select whether to show availability
for the Day, Week, or Month, and use the arrows to view the previous or next time period. Use the
search box to find a specific resource.
Click Options to change what displays. For example, you can show a legend that shows the color
scheme for the different types of bookings, or you can choose to show only a certain type of booking
(for example, hard booking or soft booking).
Click Filter to display the Filter pane, which lets you filter your results by organizational unit, role,
skill, or other attributes.

3. In the calendar for the resource you want to book, select the time period to book the resource, and then
either click Book to book the resource or Propose Booking to propose the booking and have the
requestor approve it. When you book a resource, you can soft book or hard book.
See Also
Resource Manager Guide
Schedule resources for a project (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


You can check resource availability to get an overall view of how booked your resources are, or you can filter the
view by skills, team, location, and other options.
The schedule board shows list of resources and their availability. Select a view mode to show availability by Hours,
Day, Week, or Month.
Before you use the schedule board, it’s important to set it up. More information: Configure the schedule board
(Field Service or Project Service Automation)

If you are using an older version, for resource availability see, View resource availability.

IMPORTANT
To use the schedule board booking functionality, geocoding, and location services, you need to turn on maps.
1. From the main menu, click Resource Scheduling > Administration.
2. Click Scheduling parameters.
3. Open record and scroll down to the Resource Scheduling Optimization section.
4. On the Connect to Maps field, choose Yes.
5. Accept terms and save the record.

1. From the Main menu, click Project Service > Schedule board. From here, there are several ways to manually
schedule a booking requirement. Choose the method that works for you.

Right-click on an unscheduled booking to find available resources


1. From the **Booking Requirement** list, right-click on an unscheduled booking and choose one of the
following:

1. Choose **Find availability - Current Resources** to find an available resource from the list on
the schedule board.

2. Choose **Find availability - All Resources**, to find an available resource from resources in the
system

> [!NOTE]
> When you do this, the filters will show options for the selected booking requirement.

3. When you see an available slot right-click on the time slot on the schedule board and choose
**Book Here**. Or, drag and drop the booking requirement to the available time slot.

Book a resource using the daily view and find who’s under-booked
1. On the schedule board, click **View Mode** and select **Days**.

This shows a grid view of how many hours a resource is booked per day and which days they are free.

2. Click the name of the resource you want to book, and then click **Book**.

3. On the **Resource booking (create)** dialog box, choose the project that you want to book the resource
for along with booking method and start and end times.

4. When you’re done, click **Book**.

Drag an unscheduled booking requirement from the list view to the


schedule board
1. Select an unscheduled booking requirement from the list at the bottom.

2. Drag the booking requirement to an available resource/time slot on the schedule board.

3. When you're done, click **Book**.

See Also
Resource Manager Guide
View resource availability (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


You can check resource availability to get an overall view of how booked your resources are, or you can filter the
view by skills, team, location, and other options.

NOTE
This feature is supported in Dynamics CRM Online 2016 Update 1. Interested in getting this feature? Find your Dynamics
365 administrator or support person
If you are using an newer version, for resource availability see, Schedule resources for a project (Project Service Automation).

1. Go to Project Service > Resource Availability.


This shows a calendar view of all resources and their availability. Select a view or sort order from the top of
the screen. You can also select whether to show availability for the Day, Week, or Month, and use the
arrows to view the previous or next time period. Use the search box to find a specific resource.
2. Click Options to change what displays. For example, you can show a legend that shows the color scheme
for the different types of bookings, or you can choose to show only a certain type of booking (for example,
hard booking or soft booking).
3. Click Filter to display the Filter pane, which lets you filter your results by organizational unit, role, skill, or
other attributes.
See Also
Resource Manager Guide
View resource utilization (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


You can check resource utilization to determine utilization levels for your resources and help you make decisions
about how to fully take advantage of your resources’ time.
1. Go to Project Service > Resource Utilization.
This shows a calendar view of all resources and their availability. Select a view or sort order from the top of
the screen. You can also select whether to show availability for the Day, Week, or Month, and use the
arrows to view the previous or next time period. Use the search box to find a specific resource.
2. Click Options to change what displays. For example, you can show a legend that shows the color scheme
for the different types of bookings, or you can choose to show only a certain type of booking (for example,
hard booking or soft booking).
3. Click Filter to display the Filter pane, which lets you filter your results by organizational unit, role, skill, or
other attributes.
See Also
Resource Manager Guide
Schedule anything with Universal Resource
Scheduling (Sales, Customer Service, Field Service,
Project Service Automation)
7/31/2019 • 4 minutes to read • Edit Online

Schedule anything in Dynamics 365 for Customer Engagement using Universal Resource Scheduling. You can
enable scheduling for any entity including custom entities.
For example, you can enable scheduling for the opportunity form and schedule marketing visits for your
opportunities. You can also do this for the case form and schedule time to work on cases.
For organizations that use:
Dynamics 365 for Field Service, you’ll see a new integrated scheduling experience. More information:
Dynamics 365 for Field Service Help
Dynamics 365 for Project Service Automation, you’ll have a new improved scheduling experience. More
information: Dynamics 365 for Project Service Automation Help

Prerequisites
Before you can use Universal Resource Scheduling, make sure you have:
Dynamics 365 for Field Service, Project Service, or Customer Service.
A license for Universal Resource Scheduling. More information: Onboard your organization and users to
Dynamics 365 for Customer Engagement (online)
User credentials with the Universal Resource Scheduling security role, in order to manage the solution once
it has been deployed.

Enable scheduling for an entity


When scheduling is enabled for an entity, the system creates a resource requirement record for the entity. This way,
when you create a resource requirement, the system automatically checks which entity the resource requirement is
for.
1. From the main menu, click Resources Scheduling > Administration.
2. Click Enable Resource Scheduling for Entities.
3. On the Setup Wizard - Enable Scheduling, click Add Entity and select the entity that you want to enable
scheduling for.
4. Click Booking Relationship and select Create New Relationship.
5. Click Requirement Relationship and select Create New Relationship.

NOTE
If you already have relationships created then you can select form an existing relationship.
6. Click Publish Customization.
7. On the BOOKING SETUP METADATA: INFORMATION form, use the tooltips to edit the default opens.

NOTE
To update the Booking Status Field Logical Name, you will first need to customize the system to add additional
statuses. More information: Customize your Dynamics 365 for Customer Engagement system - define status reasons
In attribute settings sections field, can be mapped from entity that was enabled for scheduling to fields on booking
requirement. For example, from Date, to Date, Territory, Duration and others.

8. When you’re done, click Save on the lower right corner.

Edit or turn off scheduling for an entity


1. From the main menu, click Resources Scheduling > Administration > Enable Schedulable for
Entities.
2. From the list of Enable Entities, double click on the entity that you want to edit.
3. When the BOOKING SETUP METADATA: INFORMATION form opens, do one of the following:
To turn off scheduling for the entity, on the command bar, click DEACTIVATE. On the Confirm
Deactivation dialog box, click Deactivate.
Or, you can edit the form and when you’re done, click Save on the lower right corner.

Schedule something
Step 1: Create a resource requirement
1. From the main menu, click Sales, Service, or Marketing.
2. Choose an entity that has scheduling turned on. For example, let’s say it’s turned on for the Leads entity. In
this case, from the main menu you would choose Marketing > Leads.
3. From the list of leads choose an existing lead.
4. When the form opens, go to the sub-grid menu, and click Resource Requirement.
5. Under the Resource Requirement Associated View, click New.
6. On the Resource Requirement form, use the tooltips to fill in the inform required information.
7. When you’re done, click Save.
A plugin runs and checks the relationships and automatically sets the booking set-up metadata relationship
appropriately.
Step 2: Schedule the booking requirement
To learn more about the schedule board, Configure the schedule board.
There a few different ways to schedule a booking requirement:
Option 1: Right click on an unscheduled booking and find available resources.
1. From the main menu, click Resource Scheduling > Schedule Board.
2. From the Booking Requirement list, right click on an unscheduled booking and choose one of the
following:
Choose Find availability - Current Resources to find available resource from the list of resources
on the schedule board.
-Or-
Choose Find availability -Current Resources, to find available resource from resources in the
system.

NOTE
When you do this, the filters will show the options for the selected booking requirement. If you can't find a
available resource for the book, try adjusting the filters.

3. When you see the available slot right click on the time slot on the schedule board and choose Book
Here. Or, drag and drop the booking requirement to the available time slot.
Option 2: Drag an unscheduled booking requirement from list view to the schedule board.
1. From the main menu, click Resource Scheduling > Schedule Board.
2. Select an unscheduled booking requirement from the list at the bottom.
3. Drag the item to an available resource/time slot on the schedule board.
Option 3: Schedule a booking requirement form the entity form.
1. From the main menu, click Sales, Service, or Marketing.
2. Choose and entity that as scheduling turned on.
For example, let’s say it’s turn on for the Leads entity. In this case, from the main menu you would
choose Marketing > Leads.
3. From the list of leads, choose the lead that you want to schedule a booking for.
4. When the lead form opens, on the command bar, click Book.
5. Use the schedule assistant to book the requirement.
See also
Install Dynamics 365 for Field Service
Install Dynamics 365 for Project Service Automation
Project manager guide (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Project Service capabilities in Dynamics 365 for Customer Engagement help you create project quotes and
contracts, and create and manage projects for your clients after you’ve won the contract. They also provides
analytics to help you ensure projects are feasible and profitable. You can set up projects on a time and materials
or fixed-price basis.
Project management tools help you to:
Effectively estimate work
Forecast resource requirements when projects are in the pipeline
Enable team members to collaborate on projects and maintain current and accurate project status at all
times
Proactively identify and resolve potential threats to the success of each and every engagement.
This guide provides information you need to create and manage projects:
Provide work estimates for a project during the sales process
Create a project
Use the Project Service Automation add-in to plan your work in Microsoft Project
Schedule a project with a work breakdown structure
Determine project cost and revenue estimates
Track project progress and cost
Create a project template
Submit resource requests
Create an Office 365 Group for a project
Add documents to a project
Track a project’s status
View project team members and manage bookings
View and edit project estimates
Approve time and expenses
Review project actuals
View and send invoices
View dashboards and reports

Prerequisites
If you haven't already, you’ll need to complete the following items before you can start creating projects:
Create a work hours template. Set up a project calendar that defines the number of working hours to
accommodate per day in the schedule and any business closures.
Create a price list. Set cost and sales prices for resource roles in your organization, as well as for other
categories like expenses and products.
Add resource roles. Define roles to help determine resource requirements and project costs.
See Also
Overview of Project Service
Administrator Guide
Account Manager Guiden
Resource Manager Guide
Time, Expense, and Collaboration Guide
Provide work estimates for a project during the sales
process (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


During the sales process, you can work out sales estimates from the ground up with quote lines. Project Service
capabilities in Dynamics 365 for Customer Engagement provide a more scientific and deterministic way of coming
up with sales estimates by breaking down work items and associating relevant attributes that contribute toward
the estimates for the project in the work breakdown structure.
Once you win the sale, you can use the associated work breakdown structure in your project plan, refining it as
necessary for successful completion of your project.

Link a project to a quote line


When creating a project-based quote line, you can create a new project from the quote line. You can then use
project templates, which are either pre-configured standard project plans and financial estimates common to your
organization, or a copy of a project plan and estimates from a past project. When you create a project, choosing a
project template provides a basis to refine the project plan, estimates, and role requirements. By creating your
project from the quote, the project is automatically associated with the quote line.

Project estimate components


The work breakdown structure in a project provides a way to break down work into tasks, maintain a hierarchy of
tasks, and assign an estimate of effort required to complete each task. You can also associate roles to a task to
indicate an estimate of the type of resource required to complete a task and a schedule.
The work breakdown structure helps you determine work effort and schedule estimates. By default, the project
uses default price lists that you defined earlier. The cost and sales prices defined in the price lists help determine
financial estimates for the project’s work breakdown.
If your project is associated with a quote, and the quote has a different price list from the default, the quote’s price
list is used for financial estimates.

Import estimates from a project into a quote


Once you have project estimates in the project, you can import these estimates into the quote line:
In Quote Line Details, click Import from estimates.
Select whether to import project estimates summarized by transaction type, role, or work breakdown
structure node level.
See Also
Project Manager Guide
Create a project (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Create a project using the Project Service capabilities in Dynamics 365 for Customer Engagement when you want
to create an opportunity, quote, or contract for project-based services. The Project Service capabilities help you
manage your project from opportunity through completion. When you create a project, you’ll also create a work
breakdown structure, which affects your quotes, cost estimates, and resource management.
1. Go to Project Service > Projects.
2. Click New Project.
3. In the Summary area, enter a name for your project, and then fill in as many of the details as you can.
Items marked with a red asterisk (*) are required.
4. Click Save to create your project so you can continue editing it.
Next, you’ll create a work breakdown structure for your project to define the tasks, timing, and resource roles
needed for the project.
See Also
Project Manager Guide
Schedule a project with a work breakdown structure
(Project Service)
1/24/2019 • 6 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


A project schedule communicates what work needs to be performed, which resources will perform the work, and
the timeframe in which that work needs to be completed. The project schedule reflects all the work associated with
delivering the project on time. One of the first steps in the initiation phase of the project is to come up with a
project schedule. To establish a project schedule, you need to create a work breakdown structure.
Create a project structure with a work breakdown structure, which helps you:
Break down work into manageable tasks
Estimate the time required to complete a task
Set task dependencies and task duration
Determine the roles required to complete each task
The project schedule in the work breakdown structure has a familiar look and feel, complete with an
interactive Gantt chart.

Create a work breakdown structure for a project


Create a work breakdown structure to represent the sequence of tasks in a project. The work breakdown structure
includes tasks, requirements for each task, and revenue and cost information. In your work breakdown structure,
you can add:
The sequence of tasks in a hierarchy
Other tasks, if any, that must be completed before a task can be started
The starting date, ending date, and duration of a task
The number of hours required for a task
Any required worker skills and education
The workers who are assigned to a task
Estimated revenue and costs

Task types
You’ll use the following types of tasks when creating your work breakdown structure:

Project root node The top-level summary task for the project. All other project
tasks are created under it. The name of the root task is the
project name. The effort, dates, and duration of the root node
are based on the values on the hierarchy below it. You can’t
edit root node properties or delete the root node.
Summary or container tasks A summary task is a task that has sub-tasks under it. A
summary task doesn’t have any work effort or cost of its own.
Its work effort and cost are a rollup of its sub-tasks. You can
change the name of a summary task, but you can’t change
the effort, dates, or duration, because those are automatically
calculated. Deleting a summary task deletes the task and all of
its sub-tasks.

Leaf node tasks A leaf node task represents the most detailed work on the
project. It has an estimated effort, a planned number of
resources, planned start and end dates, and a duration.

Task hierarchy
You have the following options when creating a task hierarchy:
Add task. You can add a task at a position you choose in the task hierarchy. If you don’t select a position,
your new task appears at the end.
Indent task. Indent a task to make it a child of the task directly above it.
Outdent task. Outdent a task to make it so it’s no longer a sub-task of its original parent task.
Move up and Move down. Move tasks up and down in the hierarchy of its parent task. Moving a task up
or down has no effect on its effort, cost, dates, or duration.

Task attributes
A task’s name describes the work that needs to be completed. You use various task attributes to describe the
schedule and staffing requirements for the task.
Schedule attributes
Assign values to Effort hours, Number of resources, Start date, End date, and Duration to determine the
schedule for the task.
Effort is an estimate of the hours it takes to complete the task.
Number of resources is an estimate that the project manager puts in the task to help come up with the best
possible schedule.
Duration (in days) indicates the number of work days it will take to complete the task.
Staffing attributes
Role, Resource organizational unit, Number of resources, and Resources describe the staffing
requirements for the task.
Role describes the type of resource needed to perform the task.
Resource organizational unit indicates the organizational unit from which resources should be staffed for
that task; this also impacts the cost and sales estimate of the task, since this is accounted for when determining
the unit sales price for the resource.
Resources holds a generic resource or a named resource when one is found.

Task dependencies
You can create predecessor relationships between one or more tasks in the work breakdown structure. You can set
one or more values for the predecessor field on tasks to indicate the tasks that it will be dependent on. When you
assign a predecessor value to a task, the task can only start when all the predecessor tasks have completed. Setting
this dependency on a task will result in the recalculation of the planned start date of the task as the latest end of all
of its predecessors. Predecessor-related impacts on a schedule are not limited by the task mode defined on the
task.

Task mode
Task mode is one of the important factors that determine scheduling leaf node tasks. There are two task modes for
every task: auto scheduling mode and manual scheduling mode.
Auto scheduling. When you set the task mode to Automatically Scheduled, the task scheduling engine
uses the scheduling rules on the following task attributes to determine the schedule for the task:
Predecessors
Effort
Number of resources
Start and end dates
Scheduling rules. The start date of a leaf node task that does not have predecessors defaults to the
project’s scheduling start date. The duration of a leaf node task is always calculated as the number of
working days between its start and end dates. When a task is automatically scheduled, the scheduling
engine follows the rules below:
Start and end dates of a task must always be working days according to the project’s scheduling
calendar
The start date of a task that has predecessors defaults to the latest end date of its predecessors
Effort = Number of people * Duration * hours in a standard work day of the project calendar
Manual scheduling. In some cases, you might want to deviate from these rules. In these cases, you can set
the task mode for the task to be manually scheduled. This stops the scheduling engine from calculating the
values for other scheduling attributes. Setting predecessors on tasks always impacts the dependent task’s
start date.

Create a work breakdown structure


1. Go to Project Service > Projects.
2. Click the project you want to work on.
3. In the bar across the top of the screen, select the down arrow next to the project name, and then click Work
breakdown structure.
4. To add a task, click Add Task. Fill in the fields for the task, and then click Save.
5. Continue adding tasks until your work breakdown structure is complete. While creating your work
breakdown structure, you can do the following to organize your tasks:
Select a task and click Indent to move it under another task or click Outdent to move it out a level.
Select a task and click Move Up or Move Down to move it up or down in the list.
Click Hide Gantt to hide the Gantt chart, and click Show Gantt to display it again.
Select a different period of time for the Gantt chart in Time Scale.
6. To add the roles you specified in your work breakdown structure to your project’s team members, click
Generate Project Team.
7. Click Save at the bottom right corner of the screen when you’re done making changes.
See Also
Project manager guide
Determine project cost and revenue estimates
(Project Service)
1/24/2019 • 5 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Project estimates provide the financial view for the work estimated and scheduled in the project’s work breakdown
structure. The estimates view informs you of the cost and revenue impact of the planned work. The estimates view
provides a tool to see the information on a number of pre-defined dimensions to best inform you of the financial
impact of the project.

Cost and sales value of the project


Project Service price lists define the cost and bill rates for roles projects use. Based on the roles associated with the
tasks in the project’s work breakdown structure, you can determine the cost and revenue impact of the work
involved.

Cost price defaulting


Every project belongs to an organization (indicated in Owning Unit in the project). The price list associated with
the owning organizational unit determines the unit cost price. The Dynamics 365 for Project Service Automation
determine cost prices for roles by searching for the combination of role, unit, and organizational unit in the cost
price list to get the correct cost price for the date effective on estimate lines.
If the combination of role, unit. and organizational unit doesn’t result in a cost price from the owning unit’s price
list, the unit is disregarded in favor of the combination of role and organizational unit. If there is a cost price, this
price is converted to the unit you chose on the estimate line.
If the combination of role and organizational unit doesn’t result in a cost price, the organizational unit is
disregarded in favor of the role and unit combination, and the price is defaulted after applying any conversion, if
required.
If there isn’t a price for the role, then the cost price defaults to 0.00 on the estimate line.
All cost amounts on project cost estimate lines are in the currency of the owning organizational unit.

Sales price defaulting


The sales price list is based on the sales entity that the project is attached to. The sales price list associated with the
quote or contract determines the unit sales price. If the quote or contract has a custom price list, this will be the
default sales price list for project estimates. If there is no association to the sales entities, then the default sales
price list configured in parameters settings will be the default sales price list for the project. Each estimate line has
a resource organizational unit associated to indicate the organizational unit from which the resources will be
booked for completing the task. The sales price for the associated roles is determined by searching for the
combination of role, unit, and resource organizational unit in the sales price list to get the correct sales price for the
date effective on the estimate lines.
If the combination of role, unit, and resource organizational unit doesn’t result in a sales price from the sales price
list, the system will disregard unit and search for the combination of role and resource organizational unit. If a sales
price is found, this will be converted to the unit you chose on the sales estimate line.
If the system doesn’t find a price for the role, then the sales price must default to 0.00 on the estimate line.
The estimates view has a grid view that displays a flat grid of estimate lines with unit and total cost and sales price.

Time-phased view of project estimates


In the time-phased view for project estimates, the estimates data from the grid view is pivoted by default by role,
and shows a spread of estimate data across the timeline in the chosen timescale.

Effort estimate allocation based on task mode


In the time-phased view, total effort estimated for the task is distributed by allocating a certain number of effort
hours per unit time period of the chosen timescale. In project service, the task mode determines how effort is
allocated across the duration of the task. The two kinds of allocation are even allocation and work hours based
allocation

Work hours based allocation


Auto scheduling task mode for a task governs that for the number of resources estimated on the task, they are
estimated to be utilized for the full work hours per day. This applies when allocating the effort by splitting it across
the duration of tasks in the time phased view as well. For instance, on a ‘Day’ timescale, for a task estimated to be
completed by one resource, the effort allocated per day will not exceed work hours per day defined in the project’s
calendar. Therefore, the effort allocation always ensures that the resources are estimated to be utilized for the full
day.

Even distribution
Manually scheduled task mode doesn't honor the work hours, project calendar, or number of resources defined on
the task. The task schedule is based on user input. For such tasks, the effort allocation per unit time period of the
chosen timescale doesn't have any limiting factors. The total effort on the task is equally split and allocated for each
unit time period on the chosen timescale.
In this way, the task mode defined on the task determines the effort distribution or allocation of effort per unit time
period in time-phased estimates.

Grouping and time-phasing options


This view helps you understand the distribution of the effort, cost, and sales estimates on a per day, week, month,
or year basis. The Group By option allows pivoting the estimates data on two other dimensions: category and
resource. On both the grid view and the time-phased view you can choose the fields to be displayed. Totals for
each of the time blocks is displayed at the bottom indicating the total estimated effort, cost. and sales for the day,
week, month, or year.
The cost and sales price defaulting takes is date effective—when the rates for the roles change it will be more
transparent in the time-phased view when viewing estimate data pivoted on ‘Resource’ and time-phased by week.

Expense estimates
Any expense that will be incurred in the project that is notdirectly related to labor to be expended can be recorded
in the project estimates in the grid view. Using the Add expense estimate option in the grid view, you can
accomplish this. The expense estimates can be recorded for a specific task or for the entire project;you can choose
expense categories on these lines and choose a tentative date when the expense is expected to be incurred. If the
associated cost and sales price list have default prices, or markup percentages defined for expense categories, it will
be defaulted on the estimate line on association.
See Also
Project Manager Guide
Track project progress and cost (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


The need for tracking progress against a work breakdown structure varies across industry verticals. Some
industries do it more diligently at a very granular level of the work breakdown structure, while others might track
at a higher level of the work breakdown structure.

Effort tracking view


The effort tracking view shows the tracking of progress for tasks in the work breakdown structure. It compares the
actual effort hours spent against a task till date to the planned effort hours on a task.
Sometimes you might need to revise the original estimates on a task. The task might be moving faster or slower
than originally anticipated because of changes in scope or having less experienced people than originally planned
for. We don't recommend changing your baseline numbers, because the project baseline is the published source for
the project’s schedule and cost estimates that all stakeholders on the project have agreed to.
See Also
Project Manager Guide
Create a project template (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Project templates save you time if your company regularly bids on similar types of projects. They provide a
standard set of roles and estimated hours for a type of project. Account managers and project managers can create
projects based on a project template, or they can copy the template and make one of their own.

Components of project template


A project template consists of three components:
Work breakdown structure: A work breakdown structure in a project template has the same set of
elements as in the project. You can create a task hierarchy, associate roles to task, define schedule attributes,
set dependencies and view all the data in the Gantt. The work breakdown structure in project templates also
support task modes for each task. There is no difference between a project template and a project when
creating work schedule.
Project estimates: Project estimates in templates work the same way as they do in projects, except the
price lists for defaulting the cost and sales prices are always the default cost and sales price lists defined in
Project Service parameters. The rest of the functionality is the same as in a project.
Project team formation: When forming a project team for a project template, you can’t book a named
resource in a template. You can use Generate Project Team in the work breakdown structure to generate a
set of generic resources. You can also specify required skills and proficiencies for generic resources. You
can’t substitute a generic resource with a bookable resource in project templates.

Create a project from a template


You can create a project from a template in these following ways:
When creating a project from the quote, you can choose a project template in the project quick create form.
When creating a project by clicking New Project, the project form displays before you save the record.
From here, you can click Pick a template field to choose from the list of pre-defined project templates in
your organization.
Click Create project from a template on the Project Template page to create a project from the
template.

Copying components of a template to a project


When you copy components of a template into a project, there are a few things you should know about.
Copying a work breakdown structure: When you copy the work breakdown structure from a project template,
if the project has a different project calendar than the template, the work hours from the project’s calendar will be
applied to the schedule of tasks. This adjusts the schedule to the backing project calendar. Similarly, the first task
on the work breakdown structure takes the project’s start date, so the rest of the task hierarchy schedule is
updated based on the duration and dependencies specified in the template’s work breakdown structure.
Copying project estimates: When you copy across project estimate lines, price lists are updated based on the
owning unit of the project for the cost price list and customer for the sales price list. The unit cost and sales prices
are determined from these price lists on projects that are associated to a sales entity.
Copying a project team: When you copy the project team from the template to a project, the generic resources
are copied across, along with the skills and proficiencies defined in the template. Generic resource assignments are
also maintained as in the project template.
See Also
Project Manager Guide
Submit resource requests (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Once you’ve won a project contract, you’ll need to staff your project. Your work breakdown structure already
established the resource roles you need to complete the project, so now it’s time to request the resources that
match the requirements.
1. Go to Project Service > Projects.
2. Click the project you want to work on.
3. In the bar across the top of the screen, select the down arrow next to the project name, and then click
Resource Requirements.
4. To submit resource requests, select the roles you want to request resources for, and then click Submit
Request.
5. To hard book a resource instead, select the role, and then click Hard Book. This shows a calendar view of all
resources and their availability, with color coding that provides a visual view of a resource’s booking status.
Do any of the following to optimize your search:
Select a view or sort order from the top of the screen. You can also select whether to show
availability for the Day, Week, or Month, and use the arrows to view the previous or next time
period. Use the search box to find a specific resource.
Click Options to change what displays. For example, you can show a legend that shows the color
scheme for the different types of bookings, or you can choose to show only a certain type of booking
(for example, hard booking or soft booking).
Click Filter to display the Filter pane, which lets you filter your results by organizational unit, role,
skill, or other attributes.
In the calendar for the resource you want to book, select the time period to book the resource, and
either click Book to book the resource, or Propose Booking to propose the booking and have the
requestor approve it.
6. A resource manager needs to review and approve your resource requests.
See Also
Project Manager Guide
Create an Office 365 Group for a project (Project
Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Provide a space where team members for a project can collaborate on project documents, view the team’s calendar,
and have group conversations by creating an Office 365 Group for that project.
1. Go to Project Service > Projects.
2. Click the project you want to work on.
3. In the bar across the top of the screen, select the down arrow next to the project name, and then click Office
365 Groups.
4. Click Create Office 365 Group. You’ll receive an email when your group is ready.
See Also
Project Manager Guide
Add documents to a project (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Keep project-related documents organized by adding them to your project.
1. Go to Project Service > Projects.
2. Click the project you want to work on.
3. In the bar across the top of the screen, select the down arrow next to the project name, and then click
Documents.
4. Enter a name for the document in Name, and then copy the URL from the document’s SharePoint location
to Document Location.
5. Click Save.
See Also
Project Manager Guide
Track a project’s status (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Use the Dynamics 365 for Project Service Automation to track the progress of a client’s project.
As the engagement progresses, the project stages update to reflect the stage of the engagement:

New When you create a project, the stage is set to New. If you
created the project from a template, at this stage the project
may have a schedule, estimates, and team data. Otherwise, it
will be the outline of the project and you need to manually
enter the rest of the project components.

Quote When you associate a project to a quote or create it from a


quote, the project stage is set to Quote, and the estimated
start and end datesare updated as well. When the project is in
the quote stage, details on the quote display on the Sales tab
on the Project page.

Plan When you win a quote associated with a project, and when
the engagement progresses to the contract stage, the project
stage updates to Plan. Contract details display on the Sales
tab on the Project page.

Complete When the project work is complete, you can flip the stage to
Complete. When the project stage is set to complete, it’s
understood that the work is 100% complete but the project is
kept open for any pending time or expense entries to be
recorded.

Close When all transactions have been recorded on the project and
you don't expect any more to be logged, you can manually set
the stage to Close. When the project is set to Close, you can’t
log any more transactions on the project and the project will
be read only.

To track a project’s status


1. Go to Project Service > Projects.
2. Click the project you want to work on.
3. In the bar across the top of the screen, select the down arrow next to the project name, and then click
Project Tracking.
4. Select Effort Tracking or Cost Tracking in the drop-down list above the task list.
5. Double-click any task to edit it. You can also move or resize the bars in the Gantt chart to change the time
and progress for a task.
See Also
Project Manager Guide
View project team members and manage bookings
(Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


You can view a list of your project’s team members, and from there you can maintain bookings and submit
resource requests.
1. Go to Project Service > Projects.
2. Click the project you want to work on.
3. In the bar across the top of the screen, select the down arrow next to the project name, and then click
Project Team Members.
4. To submit resource requests, select the roles you want to request resources for, and then click Submit
Request.
5. To hard book a resource instead, select the role, and then click Hard Book. This shows a calendar view of all
resources and their availability, with color coding that provides a visual view of a resource’s booking status.
Do any of the following to optimize your search:
Select a view or sort order from the top of the screen. You can also select whether to show availability
for the Day, Week, or Month, and use the arrows to view the previous or next time period. Use the
search box to find a specific resource.
Click Options to change what displays. For example, you can show a legend that shows the color
scheme for the different types of bookings, or you can choose to show only a certain type of booking
(for example, hard booking or soft booking).
Click Filter to display the Filter pane, which lets you filter your results by organizational unit, role,
skill, or other attributes.
In the calendar for the resource you want to book, select the time period to book the resource, and
then either click Book to book the resource or Propose Booking to propose the booking and have
the requestor approve it.
6. To manage the resource bookings for this project, select the resources you want, and then click Maintain
Bookings.
7. A resource manager needs to review and approve your resource requests.
See Also
Project Manager Guide
View and edit project estimates (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


With the Project Service capabilities in Dynamics 365 for Customer Engagement, you can view estimates for a
project, including estimates by cost, sales, or effort.
1. Go to Project Service > Projects.
2. Click the project you want to work on.
3. In the bar across the top of the screen, select the down arrow next to the project name, and then click
Project Estimates.
4. In Time-phase By, select Effort, Cost, or Sales to change which project estimates to display.
5. To add or delete expenses, click Show Grid View. To create a new expense, click New Expense. To delete
an expense, select it from the list, and then click Delete Expense. When you’re done adding or deleting
expenses, click Save.
See Also
Project Manager Guide
Approve time and expenses (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


After consultants enter their time and expenses for a project, you need to approve them so they are properly billed
or costed to projects.
1. Go to Project Service > Approvals.
2. Click the item to approve.
3. In the Time Entries, Expense Entries, and Absence/Vacation tabs, review each item and make changes
as necessary.
4. To approve an item, select it and click Approve. You can select and approve multiple items at once.
5. To reject an item, select it and click Reject. You can select and reject multiple items at once.
6. To view charts of time and expenses by project, click Dashboard.
See Also
Project Manager Guide
Review project actuals (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Navigate to project actuals and make sure that cost and unbilled sales for time are logged for the correct sales and
cost prices and that the Contracting and Resourcing Units are recorded correctly on the actuals.
See Also
Project manager guide
View and send invoices (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


When you create a project, you set the frequency to generate invoices. You can view and review invoices before
you send them to your customers.
1. Go to Project Service > Invoices.
2. Click the invoice you want to review.
3. Make any changes as necessary. When you’re done making changes, click Recalculate.
4. When you’re ready to send the invoice, click Send to Customer.
5. Once the customer has paid the invoice, click Mark Invoice as Paid.

Manually invoice a contract


You can manually invoice a project instead of invoicing it automatically.
1. Go to Project Service > Projects.
2. Click the project you want to invoice.
3. Click Sales and then click Invoice.
4. Select the parameters for the transactions you want to invoice, including cutoff date, type of item to invoice,
unit, and milestone. When you’re done selecting the parameters, click Next.
5. Click Finish.
See Also
Project Manager Guide
View dashboards and reports (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Dashboards and reports give you an understanding of where your business stands. The Practice Management
dashboard gives you an all-up view of your costs, gross margin, and role utilization. You can also track your sales
numbers with the Sales Activity Social dashboard.
To view dashboards that provide an all-up view of your project sales and resource utilization:
1. Go to Project Service > Dashboards.
2. In the bar across the top of the screen, select the down arrow next to Dashboards and select the dashboard
you want to see.
To view Project Service reports:
3. Go to Project Service > Reports.
4. Click the report you want to see.
5. Select a date range and click View Report.
See Also
Project Manager Guide
Use the Project Service Automation Add-in to plan
your work in
4/5/2019 • 6 minutes to read • Edit Online

Microsoft Project
Applies to Project Service app versions 2.x and 1.x
Project Service makes it easier for you to do your project planning including estimates. You can define the work so
that costs, effort, and sales value are clear as the final proposal is submitted.
Now you can install the Dynamics 365 Project Service Automation Add-in for Microsoft Project and do your
planning work in the familiar environment of Microsoft Project. Use the robust planning and management
capabilities of Microsoft Project and then update your project plan in Project Service Automation.

IMPORTANT
To use the SharePoint document management feature in Customer Engagement Customer Engagement to store your
Microsoft Project files for Project Service projects, your Microsoft Project admin will need to turn on document
management. More information: Enable SharePoint document management for specific entities
The Dynamics 365 Project Service Automation Add-in for Microsoft Project is only compatible with Microsoft Project 2016
Professional Edition.

Download and install the add-in


Have your Project Service sign-in information ready. You will need this information to connect from Microsoft
Project to Project Service.
1. From the download center you can, download the add-in for your supported version of Project Service,
either V2.X or V3.4+.
2. Click the download link.
3. When the download is complete, click Yes to install the add-in.

Configure the add-in


1. Open Microsoft Project and click the Project Service tab.
2. Click Connect.
3. Enter your sign-in information and then click Sign in.
Now you can start using the add-in.

Read from a template


Read from a template that you created in Project Service and copied into Microsoft Project to start your project
planning. More information: Create a project template (Project Service Automation)
1. From the Project Service tab, click Read > Project Service Automation Project Template.
2. Choose a project template from the list and then click Open.
NOTE
By default, the tasks that are copied from the template into Project are set as manually scheduled.

Assign Project Service roles to project resources


1. Open a project and click the Task ribbon.
2. Click the Gantt Chart menu and then choose Resource Sheet.
3. On the Resource Sheet, click the Project Service Resource Role drop-down menu and choose a Project
Service Automation role.

Staff your project with resources


1. From the Project Service tab, select a row and click Find Resources.
2. On the Book Resource screen, select the resource that you want to use for the project.
3. Click Book and then click OK.

Publish your project


When your project planning is complete, the next step is to import and publish the project in to Project Service.
The project will import into Project Service. The pricing and team generation process are applied. Open the project
in Project Service to see that the team, project estimates, and work breakdown structure has been generated. The
following table shows where to find the results:

Microsoft Project Gantt Chart Imports into the Project Service Work Breakdown Structure
screen.

Microsoft Project Resource Sheet Imports into the Project Service Project Team Members
screen.

Microsoft Project Use Usage Omports into the Project Service Project Estimates screen.

To import and publish your project


1. From the Project Service tab, click Publish > New Project Service Automation Project.
2. On Publish to a new project in Project Service dialog box, enter the Project Name and select the
Customer.
3. Optionally check the Link project plan to Project Service Automation to link the plan Project file to
Project Service Automation.
4. Click Publish.
Linking the Project file to Project Service makes the Project file the master and sets the work breakdown
structure in Project Service to read-only. In order to make changes to the project plan, you need to make
them in Microsoft Project and publish them as updates to Project Service.

Edit a project that’s been imported


To make changes to a project plan that's been imported into Project Service, you have two options:
Open the master file and edit it in Microsoft Project
Unlink the file and edit it directly in Project Service. By default, a project that’s been uploaded from
Microsoft Project is locked and can only be edited in Project. To edit the file in Project Service, the file has to
been unlinked.
Edit in Microsoft Project
1. From the main menu, click Project Service > Projects.
2. From the list of projects, open the one you created in Microsoft Project.
3. Click Open in MS Project from the ribbon. This will open the linked master file in Microsoft Project.
Unlink a file and edit in Microsoft Project Service
1. From the main menu, click Project Service > Projects.
2. From the list of projects, open the one you created in Microsoft Project.
3. Click Unlink from MS Project from the ribbon.

Upload a Project file to SharePoint or Office Groups


You can upload your Project file to SharePoint and find it under the Associated Documents for your Project Service
project. You need to have your administrator configure SharePoint document management for Customer
Engagement and turn it on for the Project entity. More information: Set up SharePoint document management
You can also upload your Project file to OneDrive for Business if you have Office Groups set up. More information:
Collaborate with your colleagues using Office 365 Groups
Upload a file for SharePoint
1. From the main menu, click Project Service > Upload.
2. Select To Project Service Automation Project Documents.
3. On the Enable Open in Microsoft Project dialog select Yes or No.
When you click Yes you'll be able click on the Open in Microsoft Project button in Project Service
Automation and launch Microsoft Project and load the Project file from the SharePoint document
library.
When you click No the link for the Open in Microsoft Project button won't work.
4. The Microsoft Project file can be found in Project Service under Documents for the specific Project Service
project.
Upload a file for Office Groups
1. From the main menu, click Project Service > Upload.
2. Select To Project Service Automation Project Documents.
3. On the Enable Open in Microsoft Project dialog select Yes or No.
When you click Yes you'll be able click on the Open in Microsoft Project button in Project
Service Automation and launch Microsoft Project and load the Project file from the SharePoint
document library.
When you click No the link for the Open in Microsoft Project button won't work.
4. The Microsoft Project file can be found in Project Service under Documents for the specific Project Service
project.
Publish your project as a template
You can save your project and reuse it by saving it as a project template in Project Service. Project templates are
reusable project plans in Project Service. More information: Create a project template (Project Service Automation)
1. From the Project Service tab, click Publish > New Project Service Automation Project Template.
2. On the Publish to a new project in Project Service template dialog box, enter the Project template
name.
3. Optionally, check the Link project plan to Project Service Automation to link the plan Project file to
Project Service.
4. Click Publish.
Linking the Project file to Project Service makes the Project file the master and sets the work breakdown structure
in the Project Service template to read-only. In order to make changes to the project plan, you need to make them
in Microsoft Project and publish them as updates to Project Service.
See Also
Project Manager Guide
Account Manager Guide (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Project Service capabilities in Dynamics 365 for Customer Engagement guide you through the sales and
contracts process for project-based accounts. In addition to creating accounts, this guide takes you through the
sales process, including:
Create a customer account
Create a project opportunity
Create a project quote
Create a project contract
See Also
Overview of Project Service
Administrator Guide
Project Manager Guide
Resource Manager Guide
Time, Expense, and Collaboration Guide
Create a customer account (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Create an account for each client you’re working with, whether you’re quoting a project or actively working on an
existing project for them.
1. Go to Project Service > Customers.
2. Click New.
3. In the Summary area, enter a name for your new account in Name, and then fill in the other fields as
necessary.
4. Click Save to create the record so you can continue editing it.
5. In the Project Price Lists area, click + to add a price list. You can add more than one price list for this
account.
6. When you’re done, click Save at the bottom right corner of the screen.
See Also
Account Manager Guide
Create a project opportunity (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Opportunities are warm leads from customers who are interested in contracting your services. Project Service
capabilities in Dynamics 365 for Customer Engagement guide you through the steps for opening an opportunity
for one of your accounts, preparing a project quote, and working out a project contract with your customer. Start by
adding an opportunity. You can add estimates for services and products to the opportunity, as well. When you add
an opportunity, you’re in the Qualify phase of your project.
1. Go to Project Service > Opportunities.
2. Click New.
3. In the Summary area, enter your opportunity's company and other information.
4. Add any notes and activities (for example, phone calls or emails) related to this lead. To learn more about
adding notes and activities, see Keep track of notes, tasks, calls, or email with activities.
5. To add stakeholders, in the Stakeholders area, click +.
6. To add sales team members, in the Sales Team area, click +.
7. To add competitors, in the Competitors area, click +.
8. To add a product to the opportunity, click New under Product-based Lines in the Opportunity Lines
area. Select an item under Product Name, and then specify the quantity, sales price, and customer budget.
9. To add a project estimate to the opportunity, click + under Project-based Lines in the Opportunity Lines
area. Enter the name, budget amount, and project, if available. If you need to create a project with a work
breakdown structure to come up with an estimate, see Create a project.
10. When you’re done editing, click the Save button at the bottom right of the screen.
See Also
Account Manager Guide
Create a project quote (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Creating a quote is similar to creating an opportunity. While an opportunity is for internal information, a quote is
what you send out to your potential customers. You can create one or more quotes for each opportunity. When
you’re creating a quote to send to your potential customer, you’re in the Propose stage of your project.
1. To create a quote from an opportunity, go to Project Service > Opportunities, and then click the
opportunity you want to create a quote for.
2. Click Next Stage on the right side of the process bar, and then either select an existing quote or click
Create to create a new quote.
3. In the Summary area, change any information as necessary.
4. Click Save to create the quote so you can continue editing it.
5. To add a product to the quote, click New under Product-based Lines in the Quote Lines area. Select an
item under Product Name, and then specify the quantity, sales price, and quoted amount.
6. To add a project estimate to the quote, click + under Project-based Lines in the Quote Lines area. Enter
the name, budget amount, and project, if available. If you need to create a project with a work breakdown
structure to come up with an estimate, see Create a project.
7. When you’re done editing, click the Save button at the bottom right of the screen.
8. When you’re ready to send the quote to your customer, click More (…), click Run Report, and then click
Quote. Save the report as a Word document, edit as necessary, and send the quote to your customer.
9. If your customer accepts your quote, click Close as Won at the top of the Quote screen. If your customer
wants you to change some items, follow this entire process again to create a new quote. If your customer
decides not to use your services at this time, click Close as Lost at the top of the Quote screen.
When you close a quote as won, your project moves on to the Contract stage, and the Project Contract
screen prompts you to create a contract for this project.
See Also
Account Manager Guide
Create a project contract (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Now that you’ve won the quote for your project, it’s time to create a contract with your customer and make it
official. You can create one or more contracts for each quote. When you’re creating a contract, you’re in the
Contract phase of your project.
1. In the Project Contract screen from the previous step, change any information as necessary in the
Summary area.
2. To add a product to the contract, click New under Product-based Lines in the Contract Lines area. Select
an item under Product Name, and then specify the quantity, sales price, and contracted amount.
3. To add a project-based line to the contract, click + under Project-based Lines in the Contract Lines area.
Enter the name, budget amount, and project, if available. If you need to create a project with a work
breakdown structure to come up with an estimate, see Create a project.
4. When you’re done editing, click the Save button at the bottom right of the screen.
5. When you’re ready to send the contract to your customer, click More (…), click Run Report, and then click
Order. Save the report as a Word document, edit as necessary, and then send the contract to your customer.
6. If your customer confirms your contract, click Confirm at the top of the Project Contract screen. If your
customer wants you to change some items, create a new contract. If your customer decides not to use your
services at this time, click Close as Lost at the top of the Project Contract screen.
See Also
Account Manager Guide
Time, expense, and collaboration guide (Project
Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Welcome to the Project Service app, which helps companies manage their project-based sales. Dynamics 365
for Customer Engagement stands for customer relationship management, which your company uses to manage
relationships with your clients.
This guides you through entering your time and expenses for the projects you’re working on. Stay on top of
your time and expense entry to make sure:
Your clients are billed properly
You get credit for the work you’ve done
Your managers know the status of your projects
You can also collaborate with your fellow team members by sharing documents and starting
conversations through Office 365 Groups associated with your projects.
You can enter time and expenses through the web app (browser-based app), or with the Customer
Engagement for phones and tablets app on your mobile device. When you’re ready for your next project,
you can use the Project Finder Mobile app.
Click on a link below to learn more about what you can do with Project Service:
Get the apps
Sign in
View your schedule
Manage projects and bookings in your Office 365 calendar
Enter time
Enter expenses
Allow someone else to enter your time entry or expense
Schedule time off
Collaborate with your project team members with Office 365 Groups
Find your next project with the Project Finder Mobile app
See Also
Overview of Project Service
Administrator Guide
Account Manager Guide
Project Manager Guide
Resource Manager Guide
Get the apps (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


If you want to enter your time and expenses on your mobile device, Get and install Dynamics 365 for phones and
tablets.
You can also use the Project Finder Mobile app on your phone to find a new project to work on and apply for it.
More information: Find your next project with the Project Finder Mobile app
See Also
Time, Expense, and Collaboration Guide
Sign in (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


When you sign in to Dynamics 365 for Customer Engagement Customer Engagement apps, you need to have the
following information from your Dynamics 365 for Customer Engagement administrator:
URL for your organization’s Customer Engagement system
Your user name
Your password
You probably received this information in an email from your admin. If you don’t have all this info, or if you
have issues signing in, Find your Dynamics 365 for Customer Engagement administrator or support
person.

Set your personal options to allow email


You need to configure your email settings to allow others to send email on your behalf, so Project Service can send
email notifications for you when you have time and expenses to approve or sign up for projects.
1. Click the gear button in the top right corner of the screen.
2. Click the Options.
3. Click the Email tab.
4. Select Allow other Microsoft Dynamics 365 for Customer Engagement users to send email on your
behalf.
5. Click OK.
See Also
Time, Expense, and Collaboration Guide
View your schedule (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


When you want to see what you’re working on for the week, take a look at your schedule.
If you’re using the web app:
1. Go to Project Service > Bookings and Tasks. This brings up a calendar view of your schedule.
2. Click Previous or Next to see your schedule for the previous or next week. Click Today to get back to the
current week. You can click a task to update it, if needed.
3. If you’d rather see a list of what you’re working on, click Grid. You can edit tasks inline, if needed.
4. To see tasks that you’ve already completed, click Show Completed Tasks.
See Also
Time, Expense, and Collaboration Guide
Manage projects and bookings in your calendar
(Project Service)
3/18/2019 • 2 minutes to read • Edit Online

NOTE
DEPRECATED: This feature has been deprecated and is no longer available.

Applies to Project Service app versions 2.x and 1.x


Office 365
View personal appointments, project-work bookings, and field service work order assignments using the Office
365 calendar.
With everything in one place, it’s easy to manage your day. Your meetings, appointments, bookings, and tasks are
all available in your Office 365 calendar.
If you’re using Project Service, you can also enter your personal appointments in the Project Service time entry
view. This lets project and resource managers know your availability for projects. It also saves you time, because
you don’t have to enter info about your personal appointments twice. You can simply import your personal
appointments from your calendar to Project Service time entry view.
Your calendar will sync project and work order bookings from today to upcoming four weeks. This setting can’t be
changed.
Syncing is only supported one way, from Customer Engagement Customer Engagement to your Office 365
calendar. If you update a field service or project service booking in your Office 365 calendar, it will not sync and
update in Customer Engagement. If you want to update or modify a booking, make sure you do it in Customer
Engagement – so that the booking syncs with your calendar.
To learn how to use your Office 365 calendar, see Calendar in Outlook on the web for business.

Set-up
Before you can see and manage your bookings on your Office 365 calendar, you need to set a few things up.
You will need to have Office 365 Global Administrator or Customer Engagement System Administrator
credentials.
Your Dynamics 365 for Customer Engagement Admin will need to configure the email server profile and
each user will need to configure their mailbox. More information: Set up email processing through server-
side synchronization

Turn on synchronization for your Customer Engagement organization


(admin task)
1. From the main menu, click Settings -> Administration.
2. Click System Settings.
3. Click the Synchronization tab.
4. Under Select whether to enable syncing of resource booking with, check the Synchronize resource
booking with Outlook.

Turn on synchronization for your user profile (user task)


1. Click the Settings button in the upper-right corner of the screen.
2. Click Options.
3. Click the Synchronization tab.
4. Under Resource booking sync with Outlook, check the Synchronization resource booking with
Outlook.

Import your personal appointments (user task)


You can import your personal appointments from your calendar to Project Service Automation time entry view.
1. Open Office 365 calendar and click Import Data.
2. On the Filters screen, select Appointments from Exchange and then click Apply.
3. The system will pull appointments into time entry view as suggested entries from the current week. To add
entries for another week, click Previous or Next.
4. Select the appointment that you want to add to Project Service Automation time entry view.
5. On the Time Entry popup box, select the appropriate options to convert the appointment to a Project
Service Automation time entry view.
6. Click Save.
See Also
Time, Expense, and Collaboration Guide
Enter time (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Enter your hours at least weekly—or at the frequency requested by your managers—to ensure your clients are
invoiced and you’re credited correctly.
If you’re using the web app:
1. Go to Project Service > Time Entries. This brings up your calendar.
2. To see your calendar for the previous or next week, click Previous or Next. Click Today to get back to the
current week.
3. To enter your time, either click New or double-click in the calendar under the day you want to enter time for.
4. Fill in the fields in the Time Entry form and click Save.
5. Continue entering time for the week. When you’re done and everything looks correct, click Submit. A
manager will review and approve your time entries.
6. If you want to change an entry that you already submitted, select the entry in your calendar and then click
Recall.
7. If you want to copy all the entries from a previous week to the current week, click Copy From and select the
timesheet week you want to copy.
8. If you’d rather see a list of what you’re working on, click Grid.
If you’re using the mobile app:
9. From the menu, go to Time Entries. You can switch to Day, Week, or Month view, or navigate to the
previous or next time period.
10. Tap … and tap New.
11. Fill in the details as necessary and tap Save.
See Also
Time, Expense, and Collaboration Guide
Enter expenses (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Enter your expenses at least weekly—or at the frequency requested by your managers—to ensure your clients are
invoiced and you’re credited correctly.
If you’re using the web app:
1. Go to Project Service > Expenses. This brings up your calendar.
2. To see your calendar for the previous or next week, click Previous or Next. Click Today to get back to the
current week.
3. To enter an expense, either click New or double-click in the calendar under the day you want to enter time
for.
4. Fill in the fields in the New Expense form, and then click Save.
5. Continue entering your expenses for the week. When you’re done and everything looks correct, click
Submit. A manager will review and approve your expenses.
6. If you want to change an entry that you already submitted, select the entry in your calendar, and then click
Recall.
7. If you’d rather see a list of what you’re working on, click Grid.
If you’re using the mobile app:
8. From the menu, go to Expenses. You can switch to Day, Week, or Month view, or go to the previous or
next time period.
9. Tap … and tap New.
10. Fill in the details as necessary, and then tap Save.
See Also
Time, Expense, and Collaboration Guide
Allow someone else to enter your time entry or
expense (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Set up a delegate to let someone else make time or expense entries on your behalf in Project Service.

Create a delegate
1. From the main menu, click Project Service > Delegations.
2. On the command bar, click New.
3. Name: Enter a name for the record.
4. Type: Select whether the delegate can enter time or expense entries on your behalf.
5. Delegate: Select the name of the person you want to be the delegate.
6. Start and end dates: Choose dates when delegation starts and ends.
7. When you're done, click Save & Close.

Turn off delegation


1. From the main menu, click Project Service > Delegations.
2. Select the delegation record you want to turn off.
3. On the command bar, click Deactivate.
4. On the Confirm Deactivation dialog box, click Deactivate.

Enter time for someone else


1. From the main menu, click Project Service > Time Entries.
2. On the command bar, select the RESOURCE NAME drop-down menu, and select the name of the person
who you’re entering time for.
3. Click OK.
4. This brings up the calendar. To see the calendar for the previous or next week, click Previous or Next. Click
Today to get back to the current week.
5. To enter your time, either click New or double-click in the calendar under the day you want to enter time for.
6. Fill in the fields in the Time Entry form and click Save.
7. Continue entering time for the week. When you’re done and everything looks correct, click Submit.

Enter expenses for someone else


1. From the main menu, click Project Service > Expenses.
2. On the command bar, select the RESOURCE NAME drop-down menu, and select the name of the person
who you’re entering expenses for.
3. Click OK.
4. To see the calendar for the previous or next week, click Previous or Next. Click Today to get back to the
current week.
5. To enter an expense, either click New
6. Fill in the fields in the New Expense form. You can also add receipts.
7. When you’re done, click Save.
See Also
Time, Expense, and Collaboration Guide
Schedule time off (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


Schedule your vacation time or leave of absence in much the same way as you enter time for a project.
If you’re using the web app:
1. Go to Project Service > Time Entries. This brings up your calendar.
2. To see your calendar for the previous or next week, click Previous or Next. Click Today to get back to the
current week.
3. To enter your time, either click New or double-click in the calendar under the day you want to enter time for.
4. Fill in the fields in the Time Entry form.
5. In Type, select Vacation or Absence.
6. Click Save.
7. Continue entering time for the week. When you’re done and everything looks correct, click Submit. A
manager will review and approve your time off.
8. If you want to change an entry that you already submitted, select the entry in your calendar, and then click
Recall.
9. If you want to copy all the entries from a previous week to the current week, click Copy From and select the
timesheet week you want to copy.
10. If you’d rather see a list of what you’re working on, click Grid.
See Also
Time, Expense, and Collaboration Guide
Collaborate with your project team members with
Office 365 Groups (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


With Dynamics 365 for Customer Engagement, you can collaborate with your team members on project
documents, view your team’s calendar, and have group conversations.
1. Go to Project Service > Projects.
2. Click the project you’re working on.
3. In the bar across the top of the screen, select the down arrow next to the project name, and then click Office
365 Groups. This displays your project, along with items shared with your group.
4. To open your team’s workspace in Office 365 Groups, click Open Calendar, Open Conversations, Open
Notebook, Open Documents, or Open People.
See Also
Time, Expense, and Collaboration Guide
Find your next project with the Project Finder Mobile
app (Project Service)
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


With the Project Finder Mobile app on your iPhone, Android phone, or Windows Phone, you can look up projects
and sign up for ones that best meet your skill set and interests. You can also update your skills and proficiency
levels with the app.
When you first start the app, you'll need to enter the URL for your Customer Engagement system, your user ID,
and your password. If you don't have this information, contact your Customer Engagement administrator.

Find a project
The Project Finder Mobile app shows a list of projects ranked according to how well your skills and proficiency
levels match the required skills and proficiency levels for the project. The projects that are the best fit for you
appear at the top of the list. A checked box under the project title indicates your skills meet or exceed the
requirements for the project.
Tap the arrow to the right of the project you're interested in to see more details and sign up for it.

Update your skills


Tap the profile button on the bottom right of the screen to update your skills and proficiency levels.

See Also
Time, Expense, and Collaboration Guide
User guide for Project Resource Hub
1/24/2019 • 2 minutes to read • Edit Online

Applies to Project Service app versions 2.x and 1.x


With the Project Resource Hub app, you can enter time and expenses for the projects you’re working on the go.
Stay on top of your time and expense entry to make sure:
Your clients are billed properly
You get credit for the work you’ve done
Available anywhere, on any device
There are two flavors of Dynamics 365 for Project Service Automation:
If you're using a desktop, you'll use the Project Service app.
If you’re in the field using a smartphone or tablet, you’ll use the Project Resource Hub app which is a subset
of the Project Service app. The Project Resource Hub app is built on the Unified Interface framework, which
uses responsive web design principles to provide an optimal viewing and interaction experience for any
screen size, device, or orientation.

Install the mobile app


Before you can start using the Project Resource Hub app, you need to install the Dynamics 365 for Customer
Engagement mobile app on your device.
More information: Install Dynamics 365 for phones and tablets.

Basic Navigation
1. When you sign in on the Dynamics 365 for Customer Engagement mobile app, you’ll see the MyApps page
with a list of the apps that you access to.
2. Select Project Resource Hub.
The navigation bar
Use the nav bar to get to your work area, create a new record, search, or do other tasks. To access more commands,
tap

Favorites and recently used records


The Favorites and Recently Used sections provide quick access to your records, views, and dashboards.
To access these sections, tap the Menu button on the nav bar, and then tap the Favorites and Recent
button.
To pin an item as a favorite, from the list of Recently Used items, tap the pin. This will pin and move the
item to Favorites.

Enter time
Enter your hours at least weekly—or at the frequency requested by your managers—to ensure your clients are
invoiced and you’re credited correctly.
1. Tap the menu button, and then tap Time Entries. This brings up your calendar.
2. To see your calendar for the previous or next week, tap the Previous or Next button. Tap Today to get back
to the current week.
3. To enter your time, tap New on the command bar.
4. Fill in the fields in the form and tap Save.
5. Continue entering time for the week. When you’re done and everything looks correct, tap Submit. A
manager will review and approve your time entries.

Enter expenses
Enter your expenses at least weekly—or at the frequency requested by your managers—to ensure your clients are
invoiced and you’re credited correctly.
1. Tap the menu button, and then tap Expenses. This brings up your calendar.
2. You can switch to Day, Week, or Month view, or navigate to the previous or next time period.
3. To enter your expense, tap New on the command bar.
4. Fill in the fields in the form and tap Save.
5. Continue entering expenses for the week. When you’re done and everything looks correct, tap Submit. A
manager will review and approve your expenses.

General information on how to use the mobile app


More information: Mobile Basics Guide.
See Also
Overview of Project Service
Time, Expense, and Collaboration Guide
Add new custom entity forms (Project Service
Automation 2.x)
3/28/2019 • 3 minutes to read • Edit Online

Type field
Microsoft Dynamics 365 for Project Service Automation (PSA) relies on the Type (msdyn_ordertype) field of the
Opportunity, Quote, Order, and Invoice entities to distinguish work-based versions of these entities from item -
based and service-based versions. Work-based versions of these entities are handled by PSA. Lots of business
logic on the client side and server side of the solution depends on the Type field. Therefore, it's important that the
field be initialized with a correct value when the entities are created. An incorrect value can cause incorrect
behaviors, and some business logic might not run correctly.

Automatic form switching


To avoid potential data corruption and unexpected behaviors that are caused by incorrect initialization and editing
of the sales entity records, PSA now includes logic for automatic form switching in out-of-box forms. This logic
takes users to the correct form for working with the work-based version or any other type of Opportunity, Quote,
Order, or Invoice entity. When a user opens the work-based version of an Opportunity, Quote, Order, or Invoice
entity, the form is switched to Project Information.
The automatic form switching logic relies on the mapping between the formId value and the msdyn_ordertype
field. All out-of-box forms have been added to that mapping. However, custom forms must be manually added to
indicate which version of the entity they are intended to handle. This is based on the msdyn_ordertype field. If the
form switching is missing from the mapping, logic will switch to the out-of-box form, based on the value that is
saved in the msdyn_ordertype field of the entity.

Add custom forms and turn on the form switching logic


The following example shows how to add a custom form, My Project Information, so that it works with work-
based opportunities. The same process is used to add custom forms so that they work with quotes, orders, and
invoices.
Follow these steps to create a custom version of the Project Information form.
1. In the Opportunity entity, open the Project Information form, and save a copy under the name My
Project Information.
2. Open the new form, and then, in the properties, make sure that the form initialization scripts from the
Project Information form are present.

IMPORTANT
Don't remove the scripts. Otherwise, some data might be initialized incorrectly.

3. Verify that the Type (msdyn_ordertype) field is present in the form.


IMPORTANT
Don't remove this field. Otherwise, the initialization scripts will fail.

4. Find the formId value of the new form. You can complete this step in two ways:
Export the My Project Information form as part of an unmanaged solution, and then look up the
formId value in the customization.xml file of the exported solution.
Open the My Project Information form in the form editor, and then look for the globally unique
identifier (GUID ) next to the fromId parameter in the URL, as shown in the following illustration.

5. Create an msdyn_ordertype mapping for the formId value by editing the


msdyn_/SalesDocument/PSSalesDocumentCustomFormIds.js web resource. Remove the code from the
resource, and replace it with the following code.
define(["require", "exports"], function (require, exports) {
"use strict";
var SalesDocumentCustomFormIds = (function () {
function SalesDocumentCustomFormIds() {
}
SalesDocumentCustomFormIds.overwriteFormIds = function (mappedFormIds) {
/*
---- Notes ----
mappedFormIds[SalesEntity][OrderType] => The array of forms IDs that support particular
entity and order type
Add or overwrite customized formId for the particular entity and order type by calling:
mappedFormIds[<EntityType>][<msdyn_ordertype>].push("<formId>");
Allowed msdyn_ordertype values for reference:
ServiceBased: 690970002 (Field Service version of the entity)
WorkBased: 192350001 (PSA version of the entity)
ItemBased: 192350000 (Regular out of the box entity)
Uncomment and update one of the following lines to register custom PSA form for required
entity:
*/
//mappedFormIds[1][192350001].push("<formId>"); //Quote
//mappedFormIds[5][192350001].push("<formId>"); //Quote Line
//mappedFormIds[2][192350001].push("<formId>"); //Sales Order
//mappedFormIds[6][192350001].push("<formId>"); //Sales Order Line
// In this example we have added new form for Opportunity
mappedFormIds[0][192350001].push("192EE537-DCC4-45D3-B7AF-EA694B9113D2"); //Opportunity
//mappedFormIds[4][192350001].push("<formId>"); //Opportunity Line
};
return SalesDocumentCustomFormIds;
}());
exports.default = SalesDocumentCustomFormIds;
});

6. Save and then publish the customizations.

S-ar putea să vă placă și