Business Calendar: Difference between revisions

From QPR ProcessAnalyzer Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 2: Line 2:


== Set Business Calendar ==
== Set Business Calendar ==
Business calendar can be defined for each model as follows: Open the models list, hover a model and click '''Business calendar'''. The ''Weekly Business Time'' tabs allows to define the weekly schedule where each row is a period within a day. The ''Holidays'' tab allows to define days, when there is no business time, i.e. exceptions to the weekly schedule. Note that the weekly schedule periods must not overlap each other. If there is a need for a period that spans to multiple days, define them as separate rows where the previous ends  
Business calendar can be defined for each model as follows: Open the models list, hover a model and click '''Business calendar'''. The ''Weekly Business Time'' tabs allows to define the weekly schedule where each row is a period within a day. The ''Holidays'' tab allows to define days, when there is no business time, i.e. exceptions to the weekly schedule. Note that the weekly schedule periods must not overlap each other. If there is a need for a period that spans to multiple days, define them as separate rows where the previous ends at 00:00 (end of the day) and the next starts at 00:00.


== Business Calendar Object in Expression Language ==
== Business Calendar Object in Expression Language ==

Revision as of 00:10, 26 January 2021

The business calendar defines a weekly calendar for working/office/factory/etc. time, which is used in the duration calculations to determine durations where only the working time have been taken into account (instead of 24 hour per days). Each model can have a business calendar, and also new business calendars can be defined when writing custom expressions. In dimensions and measures related to durations, you can choose whether durations are calculated 24 hour per days or using the business calendar of the model.

Set Business Calendar

Business calendar can be defined for each model as follows: Open the models list, hover a model and click Business calendar. The Weekly Business Time tabs allows to define the weekly schedule where each row is a period within a day. The Holidays tab allows to define days, when there is no business time, i.e. exceptions to the weekly schedule. Note that the weekly schedule periods must not overlap each other. If there is a need for a period that spans to multiple days, define them as separate rows where the previous ends at 00:00 (end of the day) and the next starts at 00:00.

Business Calendar Object in Expression Language

In the expression language, a business calendar is created with the BusinessCalendar function using the following calendar definition:

BusinessCalendar(#{
  "WeeklyWorkingHours": [
    #{ "WeekDay": 1, "StartHour": 8, "EndHour": 16 },
    #{ "WeekDay": 2, "StartHour": 8, "EndHour": 11 },
    #{ "WeekDay": 2, "StartHour": 12, "EndHour": 17 },
    #{ "WeekDay": 3, "StartHour": 8, "EndHour": 16 },
    #{ "WeekDay": 4, "StartHour": 8, "EndHour": 16 },
    #{ "WeekDay": 5, "StartHour": 8, "EndHour": 15 }
  ],
  "ExceptionDays": [ "2020-12-06", "2020-12-24", "2020-12-25", "2020-12-26", "2021-01-01", "2021-01-06" ]
})

This example defines the following weekly schedule: Monday 8-16, Tuesday 8-11 and 12-17, Wednesday 8-16, Thursday 8-16 and Friday 8-15. There is no working time in Saturday and Sunday, as they are not defined in the example calendar.

The structure in the business calendar initialization has the following properties:

  • Name: Optional name for the calendar. Name is usually not needed when initializing the calendar in expression. When multiple calendars are defined for a model, the calendars are identified by name.
  • WeeklyWorkingHours: Defines the weekly working calendar. The items in the array are individual working periods. One working period can span only within the same day. There can be several working periods in the same day. The WeekDay is defined as a number between 0 (Sunday) and 6 (Saturday). The StartHour and EndHour needs to be between 0 and 24. If no weekly schedule is defined, 24h/days calendar is assumed.
  • ExceptionDays: List of dates, when there is exceptionally no working time (e.g. holidays). Exception days are defined as a string array where each day is defined using format yyyy-MM-dd. Defining exception days is not mandatory.

Duration between Timestamps

Durations based on the business calendar are calculated by using the TimeDiff function that is available in the Business Calendar object:

let calendar = BusinessCalendar(#{
  "WeeklyWorkingHours": [
    #{ "WeekDay": 1, "StartHour": 8, "EndHour": 16 },
    #{ "WeekDay": 2, "StartHour": 8, "EndHour": 11 },
    #{ "WeekDay": 2, "StartHour": 12, "EndHour": 17 }
  ],
  "ExceptionDays": [ "2020-12-06", "2020-12-24", "2020-12-25", "2020-12-26", "2021-01-01", "2021-01-06" ]
})
calendar.timeDiff(DateTime(2020, 12, 1), DateTime(2021, 1, 1));

Duration Calculation in Process Mining Objects

Process mining objects have the following properties and functions available for duration calculation:

Object type 24/7 durations Business calendar durations
Case
  • Duration property
  • DurationBetweenEvents function
  • Duration(businessCalendar) function
  • DurationBetweenEvents function (5. parameter)
Flow
  • AverageDuration property
  • MedianDuration property
  • DurationStandardDeviation property
  • AverageDuration(BusinessCalendar) function
  • MedianDuration(BusinessCalendar) function
  • DurationStandardDeviation(BusinessCalendar) function
FlowOccurrence
  • Duration property
  • Duration(BusinessCalendar) function