Changes

MROMaintenancePlans

58,427 bytes added, 16 June
The actual maintenance work is not executed by the maintenance plan itself. The maintenance plan creates work packages. These generated work packages are then used by users to execute and complete the maintenance work.
In MRO, <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">MaintenancePlan</codespan> is the abstract base class for maintenance planning. It provides the common foundation for maintenance plans, but it is not intended to be used directly.
The fully implemented maintenance plan types in standard MRO are:
* <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">CyclicMaintenancePlan</codespan>* <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RoundMaintenancePlan</codespan>
Custom maintenance plan types can be implemented by deriving from the abstract <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">MaintenancePlan</codespan> base class. However, the standard MRO maintenance planning feature is based on cyclic maintenance plans and round maintenance plans.
<div style="border-left: 4px solid #36c; background-color: #f8f9fa; padding: 10px 12px; margin: 12px 0;">
'''Important:''' <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">CyclicMaintenancePlan</codespan> and <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RoundMaintenancePlan</codespan> support recurrence-based scheduling. This includes planned execution dates, automatic work package generation, calendar-based scheduling, completion-based scheduling, automatic recalculation of scheduling dates, and generation based on due dates.
</div>
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RoundMaintenancePlan</codespan> additionally supports maintenance rounds. A round maintenance plan creates one main work package for the round. It can also create additional work packages from child maintenance plans linked via <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SYSREL_ROUND_RELATION</codespan>. These additional work packages are assigned to the main round work package.
== Basic Concept ==
! Description
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">MaintenancePlan</codespan>
| Defines the rules for creating generated work packages.
|-
<div style="border-left: 4px solid #36c; background-color: #f8f9fa; padding: 10px 12px; margin: 12px 0;">
'''Rule:''' Only work packages with <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">ISTEMPLATE</codespan> set can be used as template work packages.
</div>
# The plan is configured with a monthly recurrence, an assigned asset, a template work package, and a replication configuration.
# When the plan becomes due, the system uses a replication job to create a new work package from the configured template work package.
# The generated work package is linked back to the maintenance plan via <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_MAINTENANCE_PLAN</codespan>.
This link allows the maintenance plan to react when the generated work package is planned or completed.
=== Purpose ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">MaintenancePlan</codespan> is the abstract base class for maintenance planning in MRO.
It provides the common properties and logic required by maintenance plan implementations.
Because <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">MaintenancePlan</codespan> is abstract, users do not create or use this base class directly in the standard MRO feature. Instead, the concrete maintenance plan types are used:
* <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">CyclicMaintenancePlan</codespan>* <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RoundMaintenancePlan</codespan>
Developers can derive from the abstract base class if a project requires a custom maintenance plan type. In that case, the custom implementation must provide the missing plan-specific behavior.
! Notes
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_ASSET</codespan>
| Links the maintenance plan to the asset that requires maintenance.
| Required for a valid cyclic maintenance plan.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_WP_TMPL</codespan>
| Links the maintenance plan to the template work package.
| The linked work package must have <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">ISTEMPLATE</codespan> set.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_REPLICATION_CONFIG</codespan>
| Links the maintenance plan to the replication configuration.
| Required for work package generation.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>
| Defines the planned execution date of the next maintenance activity.
| Used as <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLANNED_START</codespan> on generated work packages.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LEAD_DAYS</codespan>| Defines how many days before <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> the system may create the work package.
| Does not define the recurrence interval.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan>
| Defines the earliest date on which the maintenance plan may create a work package.
| Calculated by the system.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLAN_STATUS</codespan>
| Defines whether the maintenance plan is active or inactive.
| Only active plans are considered for automatic generation.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">AUTO_CREATE</codespan>
| Defines whether the system is allowed to automatically create work packages.
| If disabled, the plan does not automatically create work packages.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LAST_DATE</codespan>
| Stores the most recent completion date of a generated work package linked to the maintenance plan.
| Especially relevant for completion-based scheduling.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PRIORITY</codespan>
| Numeric value that can be used to sort maintenance plans.
| For round maintenance plans, see also <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLAN_SELECTION_RULE</codespan>.
|}
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_ASSET</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_ASSET</codespan> is the link to the asset that requires maintenance.
This can be, for example:
* equipment
* a functional location
* another customized maintainable object deriving from <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">Asset</codespan>
The generated work package is linked to the same asset.
<div style="border-left: 4px solid #d33f0ad4e; background-color: #fff5f5fff8e5; padding: 10px 12px; margin: 12px 0;">'''ValidationRequirement:''' A cyclic maintenance plan requires <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_ASSET</codespan> to be assigned in order to be valid.
</div>
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_WP_TMPL</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_WP_TMPL</codespan> is the link to the template work package.
The template work package defines what the generated work package should look like.
When the maintenance plan creates a work package, the system copies the work package referenced by <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_WP_TMPL</codespan>.
The linked work package must be a template work package. This means its <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">ISTEMPLATE</codespan> property must be set.
<div style="border-left: 4px solid #d33f0ad4e; background-color: #fff5f5fff8e5; padding: 10px 12px; margin: 12px 0;">'''ValidationRequirement:''' If <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_WP_TMPL</codespan> is not must be configured, before the maintenance plan cannot can create a work package.
</div>
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_REPLICATION_CONFIG</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_REPLICATION_CONFIG</codespan> is the link to the replication configuration.
The replication configuration defines how the template work package is copied into a generated work package.
* what the target meta class of the generated work package should be
<div style="border-left: 4px solid #d33f0ad4e; background-color: #fff5f5fff8e5; padding: 10px 12px; margin: 12px 0;">'''ValidationRequirement:''' If <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_REPLICATION_CONFIG</codespan> is not must be configured, before the maintenance plan cannot can create a work package.
</div>
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> defines the planned execution date of the next maintenance activity.
It answers the question: '''When should the next maintenance work be performed?'''
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> is not necessarily the date on which the work package is created.
{| class="wikitable"
! Example
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>
| 15 March
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LEAD_DAYS</codespan>
| 3
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan>
| 12 March
|}
In this example, the system may create the work package on 12 March, but the generated work package is planned for 15 March.
When a work package is generated, the generated work package receives the maintenance plan’s <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> as its <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLANNED_START</codespan>.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LEAD_DAYS</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LEAD_DAYS</codespan> defines how many days before <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> the system may create the work package.
This is used to create work packages before the actual planned execution date.
! Example
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>
| 15 March
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LEAD_DAYS</codespan>
| 3
|-
| Resulting <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan>
| 12 March
|}
<div style="border-left: 4px solid #36c; background-color: #f8f9fa; padding: 10px 12px; margin: 12px 0;">
'''Note:''' <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LEAD_DAYS</codespan> does not define the recurrence interval. It only defines how early the work package may be generated before the planned execution date.
</div>
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan> is calculated by the system.
It defines the earliest date on which the maintenance plan may create a work package.
! Example
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>
| 15 March
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LEAD_DAYS</codespan>
| 3
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan>
| 12 March
|}
The maintenance planning orchestrator searches for active plans where <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan> has been reached.
A plan can be considered for automatic work package generation when:
</pre>
If <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan> has not yet been reached, no work package is created.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLAN_STATUS</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLAN_STATUS</codespan> defines whether the maintenance plan is active or inactive.
Only active plans are considered for automatic work package generation. Inactive plans are ignored by the maintenance planning process.
Typical values are:
* <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">Inactive</codespan>* <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">Active</codespan>
This allows users to temporarily disable a maintenance plan without deleting it.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">AUTO_CREATE</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">AUTO_CREATE</codespan> defines whether the system is allowed to automatically create work packages from the maintenance plan.
If <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">AUTO_CREATE</codespan> is enabled, the maintenance planning orchestrator can create work packages once the plan is due.
If <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">AUTO_CREATE</codespan> is disabled, the plan does not automatically create work packages.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LAST_DATE</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LAST_DATE</codespan> stores the date when the most recent generated work package linked to the maintenance plan was completed.
This property is especially important for completion-based scheduling.
| 20 March
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan>
| Completion-Based
|-
|}
The system updates <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LAST_DATE</codespan> when a generated work package is completed.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PRIORITY</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PRIORITY</codespan> is a numeric value that can be used to sort maintenance plans.
For round maintenance plans, there is also a property called <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLAN_SELECTION_RULE</codespan>.
<div style="border-left: 4px solid #f0ad4e; background-color: #fff8e5; padding: 10px 12px; margin: 12px 0;">
'''Open point:''' The exact effect of <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLAN_SELECTION_RULE</codespan> should only be documented after the implementation behavior has been verified.
</div>
! Purpose
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_MAINTENANCE_PLAN</codespan>
| Generated work package
| Links the generated work package back to the maintenance plan that triggered its creation.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_WP_TMPL</codespan>
| Generated work package
| Stores the template work package that was used to create the generated work package.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_ASSET</codespan>
| Generated work package
| Stores the asset for which the work package was created.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLANNED_START</codespan>
| Generated work package
| Stores the planned start date of the generated work package.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">ORGA_STATUS</codespan>
| Generated work package
| Used to determine whether a generated work package is finished.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">TASK_OWNER</codespan>
| Additional round work package
| Assigns additional generated work packages to the main round work package.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">ORDERID</codespan>
| Additional round work package
| Can be copied from <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SYSREL_ROUND_RELATION</codespan> to structure or order round work packages.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">GROUPID</codespan>
| Additional round work package
| Can be copied from <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SYSREL_ROUND_RELATION</codespan> to group round work packages.
|}
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_MAINTENANCE_PLAN</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_MAINTENANCE_PLAN</codespan> is set on generated work packages.
It stores the maintenance plan that triggered the creation of the work package.
This is important because the maintenance plan itself does not directly store a list of generated work packages. Instead, generated work packages reference their source maintenance plan via <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_MAINTENANCE_PLAN</codespan>.
This link allows the system to find work packages created from a maintenance plan and to update the maintenance plan when a generated work package is planned or completed.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_WP_TMPL</codespan> ===
On a generated work package, <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_WP_TMPL</codespan> stores the template work package that was used to create the generated work package.
This allows users and the system to see which template was used as the source.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_ASSET</codespan> ===
On a generated work package, <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_ASSET</codespan> stores the asset for which the work package was created.
This is usually copied or assigned based on the maintenance plan’s <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_ASSET</codespan>.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLANNED_START</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLANNED_START</codespan> stores the planned start date of the generated work package.
When a maintenance plan generates a work package, the system sets:
</pre>
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">ORGA_STATUS</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">ORGA_STATUS</codespan> is used to determine whether a generated work package is finished.
A work package is considered finished when:
</pre>
<div style="border-left: 4px solid #d33f0ad4e; background-color: #fff5f5fff8e5; padding: 10px 12px; margin: 12px 0;">
'''Generation rule:''' A maintenance plan does not create another work package while it still has an open generated work package.
</div>
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">TASK_OWNER</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">TASK_OWNER</codespan> is used in round maintenance scenarios.
When a round maintenance plan creates a main work package and additional work packages from linked child plans, the additional work packages are assigned to the main round work package via <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">TASK_OWNER</codespan>.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">ORDERID</codespan> and <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">GROUPID</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">ORDERID</codespan> and <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">GROUPID</codespan> can be copied from the <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SYSREL_ROUND_RELATION</codespan> relation to generated work packages in a round maintenance scenario.
They can be used to order or group the additional work packages that belong to the generated round work package.
=== Purpose ===
A <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">CyclicMaintenancePlan</codespan> is used for recurring maintenance work on an asset.
It is the standard maintenance plan type for maintenance activities that repeat according to a defined recurrence pattern.
* perform annual maintenance on a functional location
A cyclic maintenance plan uses <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan> to define the recurrence. It also uses <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan> to define how future dates are calculated.
<div style="border-left: 4px solid #36c; background-color: #f8f9fa; padding: 10px 12px; margin: 12px 0;">
'''Key concept:''' <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan> defines whether the plan follows fixed calendar dates or whether the next date depends on the actual completion date of the previous generated work package.
</div>
! Notes
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan>
| Defines the recurrence pattern.
| Must be valid and parseable.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_START_DATE</codespan>
| Defines when the recurrence pattern starts.
| Used as the start point for recurrence calculation.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_UNTIL_DATE</codespan>
| Optional end date for the recurrence.
| No further occurrences are generated after this date.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_COUNT</codespan>
| Limits how many work packages can be created from the plan.
| Further occurrences stop once the count is reached.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan>| Defines how <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> is calculated.
| Supports Calendar-Based and Completion-Based scheduling.
|}
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan> defines the recurrence pattern of a cyclic maintenance plan.
It describes how often the maintenance should occur.
</pre>
The system uses <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan> to calculate future planned execution dates.
<div style="border-left: 4px solid #d33; background-color: #fff5f5; padding: 10px 12px; margin: 12px 0;">
'''ValidationProblem:''' If <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan> is invalid and cannot be parsed, the cyclic maintenance plan is not valid and cannot create work packages.
</div>
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_START_DATE</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_START_DATE</codespan> defines when the recurrence pattern starts.
The recurrence rule is calculated from this date forward.
! Value
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_START_DATE</codespan>
| 01 January
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan>
| Monthly on the 15th
|}
The system uses these values to determine valid planned execution dates.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_UNTIL_DATE</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_UNTIL_DATE</codespan> is an optional end date for the recurrence.
If this date is configured, no further occurrences are generated after this date.
This can be used for maintenance plans that should only run until a certain date.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_COUNT</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_COUNT</codespan> limits how many work packages can be created from the plan.
Example:
! Value
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_COUNT</codespan>
| 10
|}
When the number of related generated work packages reaches <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_COUNT</codespan>, the system no longer calculates new occurrences for the plan.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan> defines how <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> is calculated for a cyclic maintenance plan.
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan> is only relevant for concrete maintenance plan types that use recurrence logic, such as <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">CyclicMaintenancePlan</codespan> and <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RoundMaintenancePlan</codespan>.
The supported scheduling modes are:
|-
| Calendar-Based
| Future dates follow the recurrence pattern defined by <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan>.
|-
| Completion-Based
Calendar-based scheduling is used when maintenance should follow fixed calendar occurrences.
The next planned execution date is calculated according to <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan> and the calendar recurrence.
This means that delays in completing a work package do not automatically shift the whole future schedule.
=== How Calendar-Based Scheduling Works ===
In calendar-based scheduling, the system calculates <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> based on the recurrence rule and the relevant dates of existing generated work packages.
The system determines the highest relevant planned or finished date of generated work packages linked to the maintenance plan. Then it uses the recurrence rule to calculate the next valid occurrence after that date.
|-
| Plan type
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">CyclicMaintenancePlan</codespan>
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_ASSET</codespan>
| Pump 1
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_WP_TMPL</codespan>
| Pump Inspection Template
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_REPLICATION_CONFIG</codespan>
| Pump Inspection Replication
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan>
| Calendar-Based
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan>
| Monthly on the 15th
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_START_DATE</codespan>
| 01 January
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>
| 15 March
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LEAD_DAYS</codespan>
| 3
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLAN_STATUS</codespan>
| Active
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">AUTO_CREATE</codespan>
| Enabled
|}
! Value
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLANNED_START</codespan>
| 15 March
|}
=== How Completion-Based Scheduling Works ===
In completion-based scheduling, the system recalculates <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> after a generated work package is completed.
The completion date becomes the basis for the next occurrence.
|-
| Plan type
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">CyclicMaintenancePlan</codespan>
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_ASSET</codespan>
| Machine 1
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_WP_TMPL</codespan>
| Machine Service Template
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_REPLICATION_CONFIG</codespan>
| Machine Service Replication
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan>
| Completion-Based
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan>
| Every 30 days
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_START_DATE</codespan>
| 01 March
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>
| 15 March
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LEAD_DAYS</codespan>
| 3
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLAN_STATUS</codespan>
| Active
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">AUTO_CREATE</codespan>
| Enabled
|}
! Value
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLANNED_START</codespan>
| 15 March
|}
! Example
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>
| around 19 April
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LEAD_DAYS</codespan>
| 3
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan>
| around 16 April
|}
== Calendar-Based vs Completion-Based Scheduling ==
The difference is the date that is used as the basis for calculating <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>.
{| class="wikitable" style="width: 100%;"
! Completion-Based
|-
| Basis for <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>| Recurrence defined by <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan>
| Actual completion date of the previous generated work package
|-
Characteristics:
* The plan follows the <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan> calendar pattern.
* Future dates are not automatically shifted just because a work package was completed late.
* <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> can be recalculated after planning updates.
* It is useful for fixed maintenance windows and legally or organizationally fixed inspection dates.
* The plan waits for completion.
* The completion date is used as the basis for <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>.
* If the work is completed late, the future schedule moves.
* It is useful for service intervals that depend on the actual last maintenance.
=== Purpose ===
A <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RoundMaintenancePlan</codespan> is used for recurring maintenance rounds.
It is a specialized type of cyclic maintenance plan. This means that it also uses <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan> and <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan>.
In addition to the cyclic scheduling logic, a round maintenance plan includes child maintenance plans linked via <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SYSREL_ROUND_RELATION</codespan>.
When the round maintenance plan is due, the system creates the main work package for the round. Then it creates additional work packages from the child maintenance plans linked via <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SYSREL_ROUND_RELATION</codespan>.
<div style="border-left: 4px solid #f0ad4e; background-color: #fff8e5; padding: 10px 12px; margin: 12px 0;">
'''Important for child plans:''' For the child plans, the system does not care whether they are due, active, auto-created, or whether they have a valid <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan>. The round maintenance plan uses the child plans as configuration for the additional work packages that should be created as part of the round.
</div>
! Notes
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SYSREL_ROUND_RELATION</codespan>
| Links the round maintenance plan to its child maintenance plans.
| Child plans define additional work packages created as part of the round.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLAN_SELECTION_RULE</codespan>| Exists on <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RoundMaintenancePlan</codespan>.
| Runtime behavior must be verified before documenting further effects.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">ORDERID</codespan>
| Can exist on the relation between the round plan and a child plan.
| Can be copied to generated work packages.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">GROUPID</codespan>
| Can exist on the relation between the round plan and a child plan.
| Can be copied to generated work packages.
|}
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SYSREL_ROUND_RELATION</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SYSREL_ROUND_RELATION</codespan> links the round maintenance plan to its child maintenance plans.
The linked child plans define which additional work packages should be generated when the round maintenance plan is due.
When the round plan generates work packages, the system creates:
* one main work package from the round plan’s own <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_WP_TMPL</codespan>* one additional work package for each child maintenance plan linked via <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SYSREL_ROUND_RELATION</codespan>
The child maintenance plans do not need to be due themselves for the round maintenance plan to use them during round generation.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLAN_SELECTION_RULE</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLAN_SELECTION_RULE</codespan> exists on <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RoundMaintenancePlan</codespan>.
<div style="border-left: 4px solid #f0ad4e; background-color: #fff8e5; padding: 10px 12px; margin: 12px 0;">
'''Open point:''' The exact runtime effect of <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLAN_SELECTION_RULE</codespan> should be documented after the implementation behavior has been verified. Until that behavior is confirmed, the wiki should not claim that <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLAN_SELECTION_RULE</codespan> filters child plans by due date, asset, or priority.
</div>
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">ORDERID</codespan> and <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">GROUPID</codespan> ===
The relation between the round maintenance plan and a linked child maintenance plan can contain <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">ORDERID</codespan> and <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">GROUPID</codespan>.
When the system creates an additional work package from a linked child maintenance plan, these values can be copied to the generated work package.
! System behavior
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan>| Calculated from <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> and <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LEAD_DAYS</codespan>.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>| Calculated or recalculated for <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">CyclicMaintenancePlan</codespan> and <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RoundMaintenancePlan</codespan>.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LAST_DATE</codespan>
| Updated when a generated work package is completed.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLANNED_START</codespan>| Set on generated work packages from the maintenance plan’s <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>.
|-
| Links on generated work packages
|}
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan> is calculated by the system from <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> and <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LEAD_DAYS</codespan>.
<pre>
This value is recalculated when:
* <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> changes* <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LEAD_DAYS</codespan> changes* <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> is recalculated after planning or completion* recurrence settings cause a new <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> to be calculated
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> ===
For <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">CyclicMaintenancePlan</codespan> and <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RoundMaintenancePlan</codespan>, <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> can be calculated or recalculated by the system.
The calculation depends on:
* <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan>* <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_START_DATE</codespan>* <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_UNTIL_DATE</codespan>* <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_COUNT</codespan>* <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan>
* related generated work packages
* planning events
* completion events
For calendar-based scheduling, <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> is calculated from the recurrence pattern and the highest relevant planned or finished date of related generated work packages.
For completion-based scheduling, <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> is calculated from the completion date of the previous generated work package.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LAST_DATE</codespan> ===
<codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LAST_DATE</codespan> is updated by the system when a generated work package is completed.
It stores the latest completion date of a generated work package related to the maintenance plan.
This value is especially relevant for completion-based scheduling.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLANNED_START</codespan> on Generated Work Packages ===
When the system generates a work package from a maintenance plan, it sets the generated work package’s <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLANNED_START</codespan> to the maintenance plan’s <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>.
Example:
The generated work package is linked to:
* the source maintenance plan via <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_MAINTENANCE_PLAN</codespan>* the template work package via <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_WP_TMPL</codespan>* the assigned asset via <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_ASSET</codespan>
For round maintenance plans, additional generated work packages from linked child maintenance plans are assigned to the main round work package via <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">TASK_OWNER</codespan>.
== Properties and Events That Trigger Recalculation ==
! Recalculation behavior
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> changed| Recalculates <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan>.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LEAD_DAYS</codespan> changed| Recalculates <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan>.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan> changed| Recalculates <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> based on the new recurrence rule and selected <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan>.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_START_DATE</codespan> changed| Recalculates the schedule and may change <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_UNTIL_DATE</codespan> changed
| Checks whether future occurrences are still available.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_COUNT</codespan> changed
| Checks whether the maximum number of generated work packages has already been reached.
|-
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan> changed| Recalculates <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> according to the selected scheduling mode.
|-
| Generated work package <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLANNED_START</codespan> changed
| Notifies the linked maintenance plan and may trigger date recalculation.
|-
| Generated work package completed
| Updates <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LAST_DATE</codespan> and recalculates <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> according to <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan>.
|}
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> Changed ===
When <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> changes, the system recalculates <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan>.
<pre>
</pre>
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LEAD_DAYS</codespan> Changed ===
When <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LEAD_DAYS</codespan> changes, the system recalculates <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan>.
<pre>
</pre>
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan> Changed ===
When <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan> changes, the recurrence pattern changes.
The system recalculates <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> based on the new recurrence rule and the selected <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan>.
After <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> is recalculated, <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan> is recalculated as well.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_START_DATE</codespan> Changed ===
When <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_START_DATE</codespan> changes, the start point of the recurrence changes.
The system recalculates the schedule. This can change <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>.
If <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> changes, <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan> is recalculated as well.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_UNTIL_DATE</codespan> Changed ===
When <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_UNTIL_DATE</codespan> changes, the end boundary of the recurrence changes.
The system checks whether future occurrences are still available.
If no further occurrence is possible because of <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_UNTIL_DATE</codespan>, the system cannot calculate a new <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_COUNT</codespan> Changed ===
When <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_COUNT</codespan> changes, the system checks whether the maximum number of generated work packages has already been reached.
If the number of related generated work packages is greater than or equal to <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE_COUNT</codespan>, the system does not calculate further occurrences.
=== <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan> Changed ===
When <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan> changes, the logic for calculating future dates changes.
Changing to Calendar-Based means that the plan follows the calendar recurrence.
Changing to Completion-Based means that the plan calculates <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> from the completion of the previous generated work package.
Because this changes the calculation logic, the system recalculates <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> according to the selected <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan>.
If <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> changes, <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan> is recalculated as well.
=== Generated Work Package <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLANNED_START</codespan> Changed ===
When <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLANNED_START</codespan> of a generated work package is set or changed, the work package notifies the linked maintenance plan.
For calendar-based cyclic maintenance plans, this can trigger recalculation of <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>. The system uses the planning information to continue the calendar-based recurrence.
For completion-based cyclic maintenance plans, a <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLANNED_START</codespan> change does not drive the recurrence in the same way. <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> is mainly calculated after the work package is completed.
=== Generated Work Package Completed ===
</pre>
The system updates <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LAST_DATE</codespan>. Then the system recalculates <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> according to <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SCHEDULING_MODE</codespan>.
For calendar-based scheduling:
* the system continues according to the calendar recurrence
* <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> is calculated from the recurrence pattern and relevant planned or finished dates
For completion-based scheduling:
* the completion date becomes the basis for the next occurrence
* <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> is calculated from the completion date
After <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan> is updated, <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan> is recalculated.
== Work Package Generation Logic ==
| Plan validity
| The plan must be valid.
| For cyclic maintenance plans, this requires a valid <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan>, assigned <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_ASSET</codespan>, and available <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>.
|-
| Plan status
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLAN_STATUS == Active</codespan>
| Inactive plans are ignored.
|-
| Automatic generation
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">AUTO_CREATE</codespan> must be enabled.
| If disabled, the plan does not automatically create work packages.
|-
| Template work package
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_WP_TMPL</codespan> must be set.
| The linked work package must be a template work package.
|-
| Replication configuration
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_REPLICATION_CONFIG</codespan> must be set.
| Required to copy the template work package.
|-
| Earliest generation date
| <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE <= current date</codespan>
| The plan may only generate once the earliest generation date has been reached.
|-
| Open work packages
| No open generated work package may exist for the plan.
| There must be no generated work package linked via <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">LK_MAINTENANCE_PLAN</codespan> where <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">ORGA_STATUS != 100</codespan>.
|}
<div style="border-left: 4px solid #d33f0ad4e; background-color: #fff5f5fff8e5; padding: 10px 12px; margin: 12px 0;">'''ImportantGeneration rule:''' The open work package check prevents the system from creating multiple open work packages for the same maintenance plan.
</div>
A round maintenance plan creates a main work package for the round.
After the main work package has been created, the system processes the maintenance plans linked via <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SYSREL_ROUND_RELATION</codespan>.
For each linked child maintenance plan, the system creates an additional work package.
These additional generated work packages are assigned to the main round work package via <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">TASK_OWNER</codespan>.
For child plans used in a round, the system does not care whether the child plan:
* has <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PLAN_STATUS == Active</codespan>* has <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">AUTO_CREATE == true</codespan>* has a valid <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">RRULE</codespan>* has a valid <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">NEXT_DATE</codespan>* is due based on its own <codespan style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">EARLIEST_GENERATION_DATE</codespan>
<div style="border-left: 4px solid #36c; background-color: #f8f9fa; padding: 10px 12px; margin: 12px 0;">
420
edits