Time Booking Using ConSol CM

General Introduction to Time Booking Using ConSol CM

In ConSol CM, working hours can be booked to tickets. There are two booking modes:

Manual Time Bookings

In ConSol CM, an engineer can book working hours to a ticket. Those working hours can then be reported.

With manual time booking, working hours are always booked on projects which have to be assigned to one or more queues. For example, if your company plans to perform a migration from Windows 8 to Windows 10 clients and all the working hours should be registered for this migration project, the ConSol CM administrator has to create a migration project and assign it to all queues where tasks for this project might be performed. Then engineers can book their times on the project and can see their own reports for the project. Additionally, a report over all time bookings, of all engineers, may be implemented using the DWH (Data Warehouse, see section Data Warehouse (DWH) Management).

Configuration of Manual Time Booking Using the Admin Tool

In order to enable engineers to book working hours on projects the ConSol CM administrator has to perform two steps using the Admin Tool:

  1. Create the projects on the navigation item Projects (navigation group Global Configuration), see section Projects.
  2. Assign one or more projects to the desired queues within the Queues.

In the following example, three projects are created. Engineers in the HelpDesk_1st_Level queue should be able to book working hours on two of them. Thus, the two projects have to be assigned to the HelpDesk_1st_Level queue.

You reach the following screen by selecting the navigation group Global Configuration, navigation item Projects.

Figure 426: ConSol CM Admin Tool - Global Configuration, Projects: Management of projects

Figure 427: ConSol CM Admin Tool - Global Configuration, Queues: Assigning projects to a queue

Manual Time Booking from a User's Point of View (Web Client)

Please see the ConSol CM User Manual for a detailed explanation of the time booking feature. Here, only a brief overview is provided.

The user (engineer) can book working hours on a ticket using two different modes:

Using the Time booking Section in a Ticket to Book Working Hours Directly on This Ticket

Figure 428: ConSol CM Web Client - Time booking in a ticket

Manual Time Bookings on the Engineer Profile Page

Using the Time booking section on the engineer profile page to book working hours on a ticket. Only tickets where the engineer has performed certain activities and tickets owned by the engineer can be selected. A project also has to be selected from the list.

Figure 429: ConSol CM Web Client - Time booking on the engineer profile

Engineers can see a list of their time bookings on the engineer profile page. An example is shown in the following figure.

Figure 430: ConSol CM Web Client - Time booking report on the engineer profile

As an engineer, you can select whether you would like to see the bookings for the current day, week, or month. In the Day view, the projects are indicated, in the Week and Month view, only the sum of the booked times per day/week is indicated.

Automatic Time Bookings

Introduction to Automatic Time Booking

ConSol CM can be configured in a way that working hours are tracked and booked on tickets automatically. These bookings always refer to tickets and cannot be linked to projects.

The following times are registered:

Time booking is suspended when a ticket is transferred to the workspace and resumed when the ticket is brought back to the active work.

No times are booked on the ticket when ...

Times are always booked with minute-precision and are always rounded up to the next full minute.

Configuration of Automatic Time Booking

In order to enable this functionality in your ConSol CM system, set the system property cmweb-server-adapter, automatic.booking.enabled to true.

Figure 431: ConSol CM Admin Tool - Set system property to switch on automatic time booking

Automatic Time Bookings from a User's Point of View (Web Client)

The engineer does not have to do anything in particular to work with automatic time booking. When he enters a comment in a ticket or creates a ticket, the time is booked on this ticket automatically and can be seen in the time booking report on the engineer profile page. An example is shown in the following figure.

Figure 432: ConSol CM Web Client - Automatically booked time in time booking report on engineer profile page

DWH Reports

If your company would like to be able to report at a more detailed level, the DWH provides a good basis. Reports can be developed that use the DWH data and provide, e.g., the times booked on a certain project by all engineers.

Page Customization for Time Booking

If the time booking feature is not required, you can turn off the feature by using the Page Customization, see section Page Customization for details.

The following two parameters are relevant in this context:

Using Time Booking Data in Scripts

Starting with ConSol CM version 6.11, the CM API contains a method to retrieve the time intervals booked on a ticket. Use the following method of the object workflowApi.

Set<TimeBooking> getBookings(Ticket pTicket)

You can use this method in Admin Tool scripts and in workflow scripts. Please note that in Admin Tool scripts, the workflow context might not be available!

The following example shows a script which can be called from a workflow activity. You might want to write the code directly into the script or place it in an Admin Tool script which is called from the workflow. For details about this principle, please refer to the ConSol CM Process Designer Manual.

Example of a Time Booking Script

The script: 

import com.consol.cmas.common.model.ticket.Ticket

import com.consol.cmas.common.model.time.TimeBooking

 

log.info 'Running script printTimeBookingsToTicket ...'

 

def ticket = workflowApi.ticket

def bookings = workflowApi.getBookings(ticket)

def eng

def per

def per_date

def per_time

def text = 'Booking info: \n'

 

if (bookings.size() > 0){

log.info 'Time bookings found in ticket ' + ticket.name

bookings.each() { bk ->

eng = bk.engineer.name

per = bk.timePeriod

per_date = per.bookingDate

per_time = per.bookedTime /1000 / 60 / 60

def text1 = 'Engineer: ' + eng + ', Date: ' + per_date + ', booked time: ' + per_time + 'hours'

text += text1 + '\n'

}

workflowApi.addTicketText(text, 'Time Booking report for this ticket', false)

} else {

workflowApi.addValidationError('INFO', 'No booking on this ticket.')

}

 

return

Code example 85: Admin Tool script, called from a workflow: all time intervals booked on the ticket are printed into the ticket history as comment

The output in the respective ticket: