FetchXML to get the Bookable Resource vs there Sales Price

You can use the below code to get the bookable resource and its sales price.

FetchXML Code

<fetch version=”1.0″ output-format=”xml-platform” mapping=”logical” distinct=”true”>
<entity name=”bookableresourcebooking”>
<attribute name=”starttime” />
<attribute name=”resource” />
<attribute name=”endtime” />
<attribute name=”duration” />
<attribute name=”msdyn_projectid” />
<attribute name=”bookingtype” />
<attribute name=”bookingstatus” />
<attribute name=”bookableresourcebookingid” />
<order attribute=”starttime” descending=”true” />
<filter type=”and”>
<condition attribute=”bookingstatus” operator=”ne” uiname=”Canceled” uitype=”bookingstatus” value=”{0ADBF4E6-86CC-4DB0-9DBB-51B7D1ED4020}” />
<condition attribute=”duration” operator=”ne” value=”0″ />
<condition attribute=”msdyn_projectid” operator=”not-null” />

<condition attribute=”starttime” value=”@sd” operator=”on-or-after”/>
<condition attribute=”endtime” value=”@ed” operator=”on-or-before”/>

</filter>

<link-entity name=”msdyn_project” from=”msdyn_projectid” to=”msdyn_projectid” link-type=”inner” alias=”cy”>
<link-entity name=”msdyn_resourcerequirement” from=”msdyn_projectid” to=”msdyn_projectid” link-type=”inner” alias=”cz”>
<attribute name=”cf_role” />
<filter type=”and”>
<condition attribute=”cf_role” operator=”ne” uiname=”Non-Billable” uitype=”bookableresourcecategory” value=”{93807AC5-176A-E811-A963-000D3A81E302}” />
</filter>

<link-entity name=”bookableresourcecategory” from=”bookableresourcecategoryid” to=”cf_role” link-type=”inner” alias=”da”>
<link-entity name=”msdyn_resourcecategorypricelevel” from=”msdyn_resourcecategory” to=”bookableresourcecategoryid” link-type=”inner” alias=”r_price”>
<attribute name=”msdyn_priceinprimaryunit_base”/>
<attribute name=”msdyn_priceinprimaryunit”/>
<attribute name=”msdyn_price”/>
<attribute name=”transactioncurrencyid”/>
<filter type=”and”>
<condition attribute=”msdyn_organizationalunit” operator=”eq” uiname=”CloudFronts” uitype=”msdyn_organizationalunit” value=”{95E73D37-0A6A-E811-A964-000D3A81EAE4}” />
</filter>

<link-entity name=”pricelevel” from=”pricelevelid” to=”msdyn_pricelist” link-type=”inner” alias=”ep”>
<attribute name=”name”/>
<attribute name=”createdon”/>

<order attribute=”createdon” descending=”true” />

<link-entity name=”msdyn_orderpricelist” from=”msdyn_pricelist” to=”pricelevelid” link-type=”inner” alias=”price_list” >
<attribute name=”msdyn_pricelist” />
</link-entity>
</link-entity>
</link-entity>
</link-entity>
</link-entity>
<link-entity name=”salesorderdetail” from=”msdyn_project” to=”msdyn_projectid” link-type=”inner” alias=”dc”>
<attribute name=”msdyn_billingmethod”/>
<filter type=”and”>
<condition attribute=”msdyn_billingmethod” operator=”eq” value=”192350000″ />
</filter>
<link-entity name=”salesorder” from=”salesorderid” to=”salesorderid” link-type=”inner” alias=”fr” >
<attribute name=”name”/>
</link-entity>
</link-entity>
</link-entity>
</entity>
</fetch>

Also: if you want to see it in the advanced find, attached is the screenshot how it will look.

role price

 

Delegate work around in PSA V3

As we explore the time entry functionality, the option of Delegates functionality is no longer available OOB in PSA V3.

Though we can enable Delegate entity from the site map.

But, even then there are some customizations that might be needed on Time Entry entity.

Like:

  1. adding a look up for the bookable resource.
  2. Writing a plugin/Workflow to update the bookable resource field from the lookup field added on the time entry screen.
  3. Adding validity period that validates until when the delegate function should be available for a resource.
  4. Plugin to check whether the validity is still prevailing or not and in case not, removing the name of the resource from the bookable resource field added on the time entry entity.

 

But if we try to compromise on the functionality of checking the validity in Pt. 3 above which V2 version of PSA offers, we can achieve the same by exposing the Bookable Resource field on the Quick Create Time Entry Form.

Follow the steps to expose the same:

Step 1: Go to D365 Custom app: This will take you to the old classic interface.

1

Step 2: Go To SettingsàSolutions and open an un-managed solution of yours.

2

Step 3: Browse to Time Entry Entity and open the Quick Create Form from the Forms section as shown below.

3

Step 4: Drag the Bookable resource field from the Field Explorer on to the quick create form as per below:

4

 

Step 5: Publish the customization and then check the time entry screen to see if the field is visible.

 

Step 6: Open the Time Entry Quick create form to do a new time entry.

5

 

Fill the time entry. Now if you want to do a time entry on behalf of other resource, select that resource in the Bookable Resource lookup. If you do not select the Bookable Resource and leave it blank the Bookable Resource is by default the logged in user.

Save and Close the time entry.

In order to validate, ask the user for whom the time entry is done and it should be visible in the time entry screen of his.

This way we achieve the Delegate functionality in PSA V3 by compromising the delegate validation functionality.

 

This blog reflects my personal findings and based solely on my experience of using PSA for last 3 years. For those who are looking for a platform that can track and manage the entire procedures of sales and project managements, I would highly recommend them to try Microsoft dynamics 365 for project service automation.

 

 

PSA Tip: Deactivate the project rather than marking it complete

I often check my projects that I manage in a day. There is this enormous no of active project that I see in the list that concerns me. This takes me to the thought to manage them.

One thought was to create a field that could be priority look up and based on the values create views. Well but, I am always of the opinion to not do customizations and use as many OOB (OUT OF THE BOX) stuff provided.

There are some projects for which we wait for months and the client seem to still keep on discussing the requirements within themselves. Then there are a few MSA support T&M based projects that are active, but, the client has very minimal work for us, etc. For all such projects we have an option called DEACTIVATE that can be utilised in PSA.

The beauty is that they first go out of the view.

The next is they can be reactivated again whenever needed.

By marking complete, there is no option to bring back the project to life (Active Stage) and we tend to lose all the contract information, billing rates team and all the important required information from the project.

How to Deactivate and Activate the project.

Step 1:

Open the Project as show below.

PSA Tip 0

Step 2: Click on the DEACTIVATE button as highlighted in Step 1. A Pop-up comes up as shown below asking for Confirm Deactivation:

PSA Tip 1

There are 2 options in the drop down as shown.

  1. Inactive – Sets project to read only: This option will only temporarily deactivate the project and do not delete any allocations done on the project.

 

  1. Closed-Sets project to read only and cancels future bookings: This option will mark the project closed permanently with no chances of revival. This will also remove all the future allocations from the system for that project for all the team members.

 

Now, for us we shall select the first option and click on Deactivate button in the pop-up.

This marks the project as Inactive with the following changes that are shown in the screen shot below:

  1. There is an ACTIVATE button that comes up on the screen.
  2. All the Phases in the business process flow are locked.
  3. The project becomes Read-only and the status of the project changes to Inactive.

PSA Tip 2

This blog reflects my personal findings and based solely on my experience of using PSA for last 5 years. For those who are looking for a platform that can track and manage the entire procedures of sales and project managements, I would highly recommend them to try Microsoft dynamics 365 for project service automation.

This helps in keeping all the ONLY ACTIVE projects in the view and the ones that needs our action and attention.

According to my opinion, implementation of Microsoft dynamics 365 for project service automation is one of the best things that we did in CloudFronts Technologies. We have gained a lot with this implementation because we save time and money due to easy access resources and ability to manage them.

 

Setting the WorkHourTemplate in the right way to the resource in PSA

Business Use Case: I was trying to explore the Extend Booking functionality in PSA and saw that the users were getting allocated for the entire 24 hours a day. I immediately figured out that the issue was that the work hour template was not set properly. That doesn’t mean I didn’t have a new work hour template created and assigned to all the resources, but, the only thing missing in that was that, I didn’t set the work hour of the resources to 8 hours.

To check the Work Hours of a resource you can Navigate to Project Service –> Resources –> Select a Resource.

Click on the button Show work Hours as highlighted in the Screenshot below.

A Pop-up opens. The below screen shot shows that the Work hours are not defined for the resource as of now.

Hence the resource will be allocated for 24 hours if they are selected for a project unless there working hours are defined.

Image1 :

WHT1

Next wrong I did: I selected the resource in the Default Work Hour Template and then created the Work Hours for that resource (8 hours a day and Mon-Fri working).

Image 2:

WHT2

Assigned this work hours to all the resources from the below Navigation.

Project Service –> Resources

Select all resources and click on Set Calendar button from the Ribbon Control.

Image 3:

WHT3

Assuming that the new work hours will be set for all the resources selected. I then tried to allocate via extend booking and saw that the resource was still not respecting the new Work Hours set.

Upon further research I tried the following that worked out to be the solution and that is how the work hour template of the resources should be defined.

I created a new work hours template. In order to do that please navigate to Project Services as shown below in the screenshot.

Image 4:

WHT4

Resource selected in this should have the proper work hours defined. To set the work hours refer to the image 2.

Select all the resources and assign the newly created Work hour template as shown in image 3.

Now while creating the project select this new Work Hour Template created and this will respect the new work hours.

You will not be able to change the work hour template for the old projects as the field is locked and you are not allowed to change it amidst the project.

I hope this blog post helps you to now create the Work Hour Template in the proper way and assign it correctly to the resources to be respected in the projects.

 

This blog reflects my personal findings and based solely on my experience of using PSA for last 5 years. For those who are looking for a platform that can track and manage the entire procedures of sales and project managements, I would highly recommend them to try Microsoft dynamics 365 for project service automation.

According to my opinion, implementation of Microsoft dynamics 365 for project service automation is one of the best things that we did in CloudFronts Technologies. We have gained a lot with this implementation because we save time and money due to easy access resources and ability to manage them.

Extend booking functionality and an alternate to resource booking in PSA V3

Extend booking functionality and an alternate to resource booking in PSA V3

 

I came across the functionality of Extend Bookings when I was moving ahead to allocate some hours to the resources on the project in PSA V3.

This beautiful way makes the allocation so easy and just in a few clicks. This is only feasible when the Schedule is filled with some resources and not any generic resources.

Below is how to use the Extend Booking Functionality:

After the  contract is created and confirmed, being a project manager I prefer creating the project plan.

For the same I got the Project Service –> Projects–> Open the project –> Schedule tab.

EB1

Once this is done, we traverse to the Team tab to see that the Resources Selected are already added as the Team Member. You can change the role the resource from there.

EB2

Next when we see in the Resource Assignments view. We see a beautiful view of the hours when the resources will be probably needed to allocate.

This doesn’t mean that the resources are hard booked.

EB3

Next is the Resource Reconciliation view where we perform the Extend Booking functionality.

EB4

As the legends read, yellow is Booking Shortage, meaning that the booking is not yet done.

Once we make the booking via the Schedule Board or via Extend Booking functionality, the colour switches to Blue, which means that the booking is done.

Let’s pick up a resource to do the booking. In our case I will make the booking for my resource.

In the above screen shot, we see the Resource Reconciliation in weeks view.

For Kuldeep Gupta, 50 hours of task was spread across a duration of 50 days while preparing the schedule.

Hence, it spreads 1 hours each day in the week for 50 days.

An important point to note here is that, Resource Reconciliation view splits the hours based on Front Load mechanism and uses the Work Hour Template on the project to decide the working hours a day and working hours in the calendar year.

In our case, it is 8 hours working a day.

I will now try to make the booking for Kuldeep Gupta for the week of 23rd Dec and 30th Dec.

For doing so select the 2 weeks as shown in the screen shot below:

EB5

As soon as we select these 2 weeks, Extend Booking button gets activated. Click on the Extend Booking Button, that opens up a pop up.

EB6

If you observe the pop up gives the information of Booking Extension, that the booking needed to be done and Current bookings, which are hours for which the resource is already having the bookings in the system.

We click on OK then to confirm the bookings.

Below is what we observe.

EB7

Post this we move back to Team Tab to check if the booking is done or not.

EB8

We observe that now we have 10 hours of Hard booking for Kuldeep Gupta in place.

I tried even further to validate these booking on the schedule board and to my surprise my thought was validated with the sight of the booking.

Below is the screenshot of the booking.

EB9

Above blog is merely my personal opinion and findings about the product.