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:

The following outlines how upcoming due dates are determined.

The routine works with the following date fields:

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.

  • 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 .

    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