Archibus SaaS / Maintenance / Preventive Maintenance
Maintenance / Preventive Maintenance / Maintenance Manager

Understanding the PM Scheduling Routine

To determine the dates when the next PM procedure is due, run the Define PM Schedule Dates by PM Schedules task or the Generate PM Work Orders task . These tasks include an option that executes the program's scheduling routine, which does the following:

  • Prompts you for a date range for which to determine upcoming work. You can choose date ranges that are no more than 90 days in length.
  • Determines the upcoming schedule dates for the period you specify and generates a record for each date in the PM Schedule Dates table.
  • Updates the Calc. Date for Next PM field of the PM Schedules record with the next due date.
  • Completes the Date of Last PM field of the PM Schedules record with the value of the Date Work Completed field of the most recently completed work request generated for this schedule.

The following outlines how upcoming due dates are determined.

  • For fixed scheduling , dates for future PM are calculated by adding the specified interval to the Date for First PM field value until the program finds the dates that fall within the specified period.
  • For floating scheduling , dates for future PM are calculated by adding the specified interval to the Date of Last PM field value until the program finds the first date that falls within the specified period.
  • If you have completed the PM Schedules table's Manual Date for Next PM field, the program uses this date as the Calc. Date for Next PM field value. No schedule date will be generated for this PM schedule prior to the date specified in the Manual Date for Next PM field.
  • If the Interval Type field has a value of Manual, instead of calculating dates for executing future PM work, the program checks the dates entered for the particular schedule in the PM Schedule Dates table, ignoring the values entered in the Current Frequency and Freq. Interval fields.
  • If the Interval Type field is set to Meter and the schedule is assigned to an equipment item, the scheduling action sets the Calc. Date for Next PM value to the current date if the current equipment meter reading (as entered in the Equipment table) is greater than the PM schedule interval plus the maximum meter reading from any completed or closed work request for that PM schedule, and there are no uncompleted work requests for this PM schedule. Otherwise, the program calculates an interval of days by dividing the PM schedule interval by the Avg. Metered Usage/Day field value of the Equipment table (if this value is not zero). The program determines the next day to execute the work by adding the interval of days to the value for Date of Last PM (if floating scheduling). For fixed scheduling, the system add the interval days to the schedule's Date of First PM value.

The routine works with the following date fields:

  • pmsd.date_latest = pmsd.date_todo + pms.days_late
  • On the PM Planner's calendar, the PM Date Latest and the PM Date Earliest dates appear as brackets surrounding the PM Date rectangle . They are informational only, meaning you can still move a PM Date beyond these dates.

    If you set Due Date From? to be SLA, the scheduling routine uses the value of PM Date – Latest as the due date of the work request .

    Field Title Field Name Table Explanation
    Due Date From? due_date_from PM Schedules Determines whether the scheduling routine uses dates from the SLA  or the PM Schedule record.
    Date of Last PM date_last_completed PM Schedules

    The scheduling routine completes this field with the value of the Date Work Completed field of the most recently completed work request generated for this schedule.

    For floating scheduling, the routine uses this field to determine future PM dates.

    The system updates this value whenever PM work is planned, generated, completed, moved, or cancelled.

    Date for First PM date_first_todo PM Schedules For fixed scheduling, the scheduling routine determines future PM dates by working from this date.
    Calc. Date for Next PM PM Schedules

    The system updates this value whenever when you (or the system) generates a PM work order, generates PM Schedule dates, completes a PM work order, or modifies/cancels/deletes a PM Schedule Dates record.

    This value can represent either a planned PM Date or an open work order, and it may be a date in the past if it represents an open work order that is late or missed. It can be blank if there are no more work orders or planned dates after the last work order is completed (this will be common for Floating schedules).

    The system updates this value based on this logic:

    • look at earliest PMSD_date_todo where pmsd.date_completed is null.
    • If wo_id is not null, use this date. This represents an open work order.
    • Else if wo_id is null and date_todo >= today, then use this date. This represents a planned PM date.
    • else, get the next earliest PMSD_date that is not completed and repeat the check of the above conditions. If there are no more open work orders and no future planned dates, then set Calc. Date for Next PM to NUL
    Manual Date for Next PM PM Schedules If you complete this field, the scheduling routine completes Calc. Date for Next PM with this value and ignores the schedule definition.
    Days Late Boundary days_late PM Schedules

    When you generate PM Schedule Dates, contributes to the value of PM Date – Latest.

    Specifies the number of days after the scheduled date that the work can be executed without causing a problem.

    Days Early Boundary days_early PM Schedules

    When you generate PM Schedule Dates, contributes to the value of PM Date – Earliest.

    Specifies the number of days before the scheduled date that the work can be executed without causing a problem.

    PM Date - Latest date_latest PM Schedule Dates

    The scheduling routine calculates this based on the Days Late Boundary value. A NULL value means that the routine can move this job back until the next date for this PM Schedule.

    PM Date - Earliest date_earliest PM Schedule Dates

    The scheduling routine calculates this based on the Days Early Boundary value. A NULL value means that the routine can move this job back until the prior date for this PM Schedule.

    pmsd.date_earliest = pmsd.date_todo - pms.days_early

    On the PM Planner's calendar, the PM Date Latest and the PM Date Earliest dates appear as brackets surrounding the PM Date rectangle. They are informational only, meaning you can still move a PM Date beyond these dates.

    PM Date - Original date_orig_todo PM Schedule Dates The scheduling routine completes this field with the same values as PM Date (pmsd.date_todo). This "original" date serves as a means of preserving information about a PM Schedule date if a maintenance manager changes the PM Date.
    PM Date date_todo PM Schedule Dates The scheduling routine completes this field based on the schedule you defined. It copies this value to PM Date Original.
    PM Date Status vf_pmsd_status PM Schedule Dates

    The PM Date Status is a virtual field that the scheduling routine completes by examining fields in the PMSD record. The values are:

    • Work Order Generated -- wo_id IS NOT NULL and date_completed IS NULL and date_latest >= today
    • Work Order Completed -- date_completed IS NOT NULL and date_completed <= date_latest
    • Planned -- date_todo >= today AND wo_id IS NULL
    • Missed (Work Order Not Generated) -- wo_id IS NULL and date_latest < today
    • Missed (Work Order Not Completed) -- wo_id IS NOT NULL and date_completed IS NULL and date_latest < today
    • Deferred -- is_deferred = 1
    • Completed Late -- date_completed IS NOT NULL and date_completed > date_latest
    • Cancelled -- is_cancelled = 1