The MRO plugin provides a set of {{UBIK}} objects which allow to represent for representing and document documenting maintenance, repair and operations work on the mobile client. An respective implementation of this set of The MRO features is are available on in the supported Mobile and {{UBIK WinX}}clients. This page is the main documentation for the MRO object model and its task types. Common client behaviour, such as status indicators, locking, and the general evaluation of sequential and grouped tasks, is documented in [[MRO Objects (Client)]]. {| class="wikitable"|-! Page !! Scope|-| '''MRO (Plugin)''' || MRO concepts, task types, task-specific behaviour, and relevant technical properties|-| [[MRO Objects (Client)]] || Common client presentation, status indicators, locking, and behaviour shared by multiple MRO objects|}
== Basic Features ==
Objects classified as MRO objects in general generally provide a technical and organisational status as well as the an overall work progress based on the their underlying data branch.
=== Technical Status ===
For detailed information, see [[MRO Objects (Client)#Technical Status|Technical Status]].
=== Organisational Status ===
For detailed information, see [[MRO Objects (Client)#Organisational Status|Organisational Status]].
=== Work Progress ===
For detailed information, see [[MRO Objects (Client)#Work Progress|Work Progress]]
For detailed information, see [[MRO Objects (Client)#Work Progress|Work Progress]].
== MRO Objects ==
A set of specific objects can be used to provide the required structure for MRO:uses Task Owners, Work Packages, Tasks, and Procedure Workpackages to represent maintenance workflows.
=== Task Owner ===
A [[MROCLS_MRO_TASKOWNER|Task Owner]] is an object having a substructure of jobs to be done. It can have a tree of other task owners or work packages underneath that will update the status of the task owner. This status consists of technical, organisational and progress information. With a task owner a user can get an overview of all the work to be done in the underlying job structure.
=== Work Package===A [[MROCLS_MRO_WORKPACKAGEMROCLS_MRO_TASKOWNER|Work PackageTask Owner]] is a collection an object with an underlying structure of objects to collect and summarize other task owning objects, workpackages, or tasks. A simple workpackage has a certain amount of tasks that have work to be finished in order to confirm the workpackage as doneperformed. More complex workpackages It can also own contain other underlying workpackages that have to be confirmedTask Owners or Work Packages. Confirming a workpackage itself requires a progress of 100% of all related tasksTheir technical status, organisational status, as well as 100% confirmed sub and work packagesprogress are accumulated and reported to the Task Owner.
=== Task Work Package ===A [[MROCLS_MRO_TASK|Task]] is an object reporting a certain progress to the owning workpackage. There are several specialized types of task objects. All kinds of tasks have a property called '''VALUE''' in common. It is very important, that this property is able to be validated. Therefore, a MetaAttribute (providing a validation timestamp by default) has to be attached on the used MetaProperty.
{{Attention|The MetaProperty ''VALUE'' has to use A [[AttributesMROCLS_MRO_WORKPACKAGE|Work Package]] in order to be validated. Otherwisecollects and summarizes Task Owners, other Work Packages, or Tasks. A Work Package can be confirmed when all associated Tasks have reached the calculation of work required progress will not be possibleand all subordinate Work Packages have been confirmed.}}
==== Measurement Task ====A For Work Package presentation and confirmation in the clients, see [[MROCLS_MRO_MEASUREMENT_TASKMRO Objects (Client)#Work Package|Measurement TaskWork Package]] inherits from [[MROCLS_MRO_TASK|Task]] and documents a measured value (e.g. read from a pressure gauge). Once a value has been entered, the task is finished. Alternatively, the task can also be closed by the option ''Not Applicable'' to document the situation of not being able to fullfill the measurement (e.g. the pressure gauge is broken).
==== Progress Task ====[[MROCLS_MRO_PROGRESS_TASK| Progress Task]] inherits from [[MROCLS_MRO_MEASUREMENT_TASK|Task]] and reports a certain progress while fullfilling a task. The progress will influence the overall progress of the owning workpackage. If the task cannot be fullfilled, it can also be finished with the option ''Not Applicable''.
==== Check Task ====[[MROCLS_MRO_CHECK_TASK|Check Task]] inherits from A [[MROCLS_MRO_TASK|Task]] and is finished by reporting ''Done'' or ''Not Applicable''reports work progress to its owning Work Package. This is intended for a simple To-Do The available task that is either done types provide different input, validation, or notautomatic workflow behaviour.
==== Inspection Task ====MRO task values must be validated for work progress to be calculated. A [[MROCLS_MRO_INSPECTION_TASK|Inspection Task]] inherits from [[MROCLS_MRO_TASK|Task]] and is finished, when MetaAttribute providing a validation timestamp must therefore be attached to the user reports with a positive or negative answer or ''Not Applicable'' (e.g. reporting a yes/no answer for existing equipment)relevant MetaProperty.
== MRO Implemented Objects =={{Attention|A set of specific objects extending functionalities of existing MRO elementstask value property has to use [[Attributes]] so that its value can be validated.<br />Otherwise, work progress cannot be calculated.}}For Task ObjectsAll user-editable MRO task types can be set to ''Not Applicable''. In the clients, Value properties are assigned a completed user-editable task can be reset by default and implement necessary classificationsselecting ''Not Applicable'' twice. General client behaviour is documented in [[MRO Objects (Client)#Task|Task]].
=== Procedure Workpackage ===
A [[MROCLS_PROCEDURE|Procedure Workpackage]] is a specialized type of [[MROCLS_MRO_WORKPACKAGE|Work Package]] designed to model complex workflows. It consists of sequential tasks that can include branching logic, modular structures, and references to linked data. Procedure Workpackages allow the execution of structured processes that may adapt dynamically depending on conditions. They support both online and offline execution, with certain steps (e.g. data exchange) triggered once connectivity is available.
=== Switch Start Task ===A [[MROCLS_SWITCH_START_TASK|Switch Start Task]] is a type of sequential task used within a Procedure Workpackage to define branching logic. It evaluates a predefined (boolean) condition, which can be checked by the client, to determine which branch (true or false) of the workflow will be followed. Each branch represents a different execution path composed of its own set of tasks. A Switch Start Task always requires a corresponding [[MROCLS_SWITCH_END_TASK|Switch End Task]], where all branches converge and the unified procedure continues.Technical object name: '''PROCEDURE_WORKPACKAGE'''
A [[MROCLS_PROCEDURE|Procedure Workpackage]] is a specialized Work Package for structured workflows. Its structure is defined in JSON using a workflow editor and can contain Tasks as well as subordinate Procedure Workpackages. Depending on its state, the corresponding objects are created or updated. Procedure Workpackages can use sequential execution, grouped Tasks, branching, calculations, and references to linked data. Their workflows support online and offline use. Steps that require data exchange wait until connectivity is available. '''Properties''' {| class="wikitable" width="70%"|-! Name !! Data type !! Description|-| PROCEDURE_STATUS || {{Integer}} || Current state: Draft = Switch End 10, ReadyToUse = 20, Published = 30, Open = 40, Executing = 50, Completed = 60, Approved = 70, Rejected = 80|-| JSON || {{String}} || JSON representation of the Procedure Workpackage|-| ISTEMPLATE || {{Boolean}} || Indicates whether the Procedure Workpackage is a template|} == MRO Task Types == The following task types are available in MRO. The technical object names are included to make the task types discoverable through the wiki search. {| class="wikitable sortable"A |-! Task type !! Technical object name !! Purpose|-| [[MROCLS_SWITCH_END_TASK#Blinding Task|Switch End Blinding Task]] marks || BLINDING_TASK || Documents a blinding or deblinding operation|-| [[#Calculation Task|Calculation Task]] || CALCULATION_TASK || Evaluates an expression and writes its result to a target property|-| [[#Check Task|Check Task]] || CHECK_TASK || Confirms a Boolean task using a checkbox|-| [[#Commissioning Task|Commissioning Task]] || COMMISSIONING_TASK || Represents a task in an MRO commissioning workflow|-| [[#Inspection Task|Inspection Task]] || INSPECTION_TASK || Records a Boolean inspection result with configurable labels|-| [[#Interface Task|Interface Task]] || INTERFACE_TASK || Waits for completion information from another software system|-| [[#Joint Task|Joint Task]] || JOINT_TASK || Documents the end state of a branching structure initiated by joint location|-| [[#Numeric Task|Numeric Task]] || NUMERIC_TASK || Records a numeric value and evaluates it against a configured range|-| [[MROCLS_SWITCH_TASK#Pick List Task|Switch Pick List Task]]. It is || PICKLIST_TASK || Selects one integer value from an instance-specific Active List|-| [[#Picture Task|Picture Task]] || PICTURE_TASK || Requires at least one child document containing a sequential task that connects valid file|-| [[#Progress Task|Progress Task]] || PROGRESS_TASK || Reports progress between 0% and 100%|-| [[#Signature Task|Signature Task]] || SIGNATURE_TASK || Captures a handwritten signature|-| [[#Supervisor Check Task|Supervisor Check Task]] || SUPERVISOR_CHECK_TASK || Applies the four-eyes principle to a Check Task|-| [[#Switch End Task|Switch End Task]] || SWITCH_END_TASK || Rejoins the different branches back into of a single Procedure workflow path. Each |-| [[#Switch End Start Task is directly |Switch Start Task]] || SWITCH_START_TASK || Selects a Procedure branch by evaluating a Boolean expression|-| [[#Text Task|Text Task]] || TEXT_TASK || Records free-form text|} === Blinding Task === Technical object name: '''BLINDING_TASK''' A Blinding Task documents either a blinding or deblinding operation at a linked blinding location. The configured operation type determines the state that must be reported to its respective Switch complete the task. '''Relevant properties''' {| class="wikitable" width="70%"|-! Name !! Description|-| BLINDING_TYPE || Configured operation type: Blinding or DeBlinding|-| LK_BLINDING_LOCATION || Link to the associated blinding location|-| LK_PREVIOUS_TASK || Link to the preceding Blinding Task |-| LOCKED || Prevents the task from being edited|-| VALUE || Reported blinding state|} The task is complete only when '''VALUE''' matches the configured '''BLINDING_TYPE'''. === Calculation Task === Technical object name: '''CALCULATION_TASK''' A [[MROCLS_CALCULATION_TASK|Calculation Task]] automatically evaluates a predefined expression on the client and ensures thatwrites the result to a configured property on its owner. No user input is required. '''Properties''' {| class="wikitable" width="70%"|-! Name !! Data type !! Description|-| EXPRESSION || {{String}} || Expression evaluated by the client|-| VALUE || {{Integer}} || Evaluation state: Undefined = 0, regardless of which branch was takenPending = 10, Finished = 20, Error = 30|-| TARGET_PROPERTY_NAME || {{String}} || Name of the overall procedure continues in target property on the owner|-| TARGET_PROPERTY_TYPE || {{Integer}} || Target type: Undefined = 0, Boolean = 1, Integer = 3, Double = 4|} The task is automatically finished after successful evaluation. The clients display an indicator for a consistent successful evaluation or an evaluation error. A Pending state does not receive an additional indicator. See also [[#Procedure Task Variants and controlled mannerWorkflow Execution|Procedure Task Variants and Workflow Execution]].
=== Check Task ===
A [[MRO_Implemented_Objects|Check Task]] allows the user to check the task as completed or Not Applicable.
=== Numeric Task ===Technical object name: '''CHECK_TASK''' A [[MRO_Implemented_ObjectsMROCLS_MRO_CHECK_TASK|Numeric Check Task]] allows the user to input is a numeric value (double). It includes simple Boolean task represented by a defined checkbox. Clicking the checkbox sets its value range, and if the entered value falls outside this range, completes the task . It can alternatively be completed using ''Not Applicable''. '''Properties''' {| class="wikitable" width="70%"|-! Name !! Data type !! Description|-| VALUE || {{Boolean}} || Task value and completion|} <gallery widths=497px heights=69px>File:Check Task finished UWP.png|Check Task (WinX)File:Check Task android.jpg|Not Applicable Check Task (Mobile)</gallery> === Commissioning Task === Technical object name: '''COMMISSIONING_TASK''' A Commissioning Task is visually marked as problematica specialized task type used in MRO commissioning workflows. '''Relevant property''' {| class="wikitable" width="70%"|-! Name !! Data type !! Description|-| NOTAPPLICABLE || {{Boolean}} || Not Applicable state|}
=== Inspection Task ===
An [[MRO_Implemented_Objects|Inspection Task]] presents the user with two customizable buttons representing different inspection outcomes, along with a Not Applicable option. The labels of the buttons can be defined during the procedure creation.
=== Text Task ===A [[MRO_Implemented_Objects|Text Task]] provides a text input field for the user to enter free-form information. This task is useful for capturing qualitative data or comments during the procedure.Technical object name: '''INSPECTION_TASK'''
An [[MROCLS_MRO_INSPECTION_TASK|Inspection Task]] captures a Boolean inspection result. The client presents a positive and a negative option as well as ''Not Applicable''. Selecting an option completes the task. The labels for the positive and negative outcomes can be configured. Selecting the negative outcome displays the configured false label. '''Properties''' {| class="wikitable" width="70%"|-! Name !! Data type !! Description|-| VALUE || {{Boolean}} || Selected inspection result|-| LABEL_TRUE || {{String}} || Label for the positive outcome|-| LABEL_FALSE || {{String}} || Label for the negative outcome|} <gallery widths= Picture 497px heights=69px>File:Finished Inspection Task UWP.png|Finished Inspection Task (WinX)File:Inspection task android.jpg|Finished Inspection Task (Mobile)</gallery> ===Interface Task === Technical object name: '''INTERFACE_TASK''' An Interface Task waits for another software system to provide its completion value. The task is complete when its Boolean '''VALUE''' becomes true. If the client is offline, the task waits until connectivity and synchronization are available again. '''Properties''' {| class="wikitable" width="70%"|-! Name !! Data type !! Description|-| VALUE || {{Boolean}} || Task completion supplied by the external software system|} === Joint Task === Technical object name: '''JOINT_TASK''' A Joint Task documents the state of a linked joint location. The user selects one of the available Joint States. '''Relevant properties''' {| class="wikitable" width="70%"|-! Name !! Description|-| LK_JOINT_LOCATION || Link to the associated joint location|-| VALUE || Selected Joint State|} The available states are: * Closed* Disconnected* Open* Planned* Reconnected* Torqued* Undefined* Verified The Joint Task is complete when its state is '''Planned''' or '''Closed'''. === Numeric Task === Technical object name: '''NUMERIC_TASK''' A [[MRO_Implemented_ObjectsMROCLS_MRO_NUMERIC_TASK|Picture Numeric Task]] enables the user to take and attach one records a Double value, for example a value read from a temperature sensor. Entering a value or more photosselecting ''Not Applicable'' completes the task. It includes The value is compared against a button to initiate configured acceptable range that cannot be edited on the camera client. A value outside the range produces visual feedback and another sets the technical status to confirm indicate an issue. An invalid configured range, such as a minimum greater than the maximum, also produces an issue when a value is entered. A value unit can be configured for an individual task. The confirmation button remains disabled until at least one picture has been successfully capturedWhen present, it overrides the standard unit configured on the [[MetaProperty#Unit_Item|MetaProperty]]. '''Properties''' {| class="wikitable" width="70%"|-! Name !! Data type !! Description|-| VALUE || {{Double}} || Recorded numeric value|-| VALUE_UNIT || {{String}} || Instance-specific value unit|}
=== Pick List Task ===
Technical object name: PICKLIST_TASK<br />
A [[MRO_Implemented_Objects|Pick List Task]] allows the user to select one value from a list of available items. It looks and behaves similarly to a standard Integer Task with a Selective List, but its selectable values are provided by an [[UBIK_Active_Lists|Active List]] defined on instance level. No classification is needed on the server side.<br />Technical object name: '''PICKLIST_TASK'''
The A [[MROCLS_PICK_LIST_TASK|Pick List Task]] allows the user to select one value from an [[UBIK Active Lists|Active List]] configured on the task is considered finished as soon as a list item has been selectedinstance. AlternativelyIt behaves similarly to a standard Integer Task with a Selective List, but the task can be completed selectable values are supplied by selecting Not Applicable, if this option is available in the workflowActive List rather than being defined globally.
[[Category:Module|MRO (Plugin)]]Every list item has an Integer value. Selecting an item or selecting ''Not Applicable'' completes the task.
=== Supervisor Task ===A [[MRO_Implemented_Objects|Supervisor Task]] includes a button for NFC reading. If a supervisor successfully authenticates, it enables confirmation buttons, input fields, or other interactive elements.'''Properties'''
{| class="wikitable" width== Interface Task ==="70%"An [[MRO_Implemented_Objects|Interface Task]] performs a REST API request automatically when it becomes active. It does not include any visible buttons or user interaction. Once -! Name !! Data type !! Description|-| VALUE || {{Integer}} || Value of the server responds, the task is automatically confirmed based on the response.selected Active List item|}
=== Calculation Picture Task ===A [[MROCLS_CALCULATION_TASK|Calculation Task]] is used to evaluate a predefined expression and apply its result to a predefined property on its owner. It supports logical or numerical expressions. The result type is defined explicitly to ensure correct handling and validation by the client.
Technical object name: '''PICTURE_TASK''' A [[CategoryMROCLS_PICTURE_TASK|Picture Task]] is a Boolean task that can only be finished when it has at least one child document containing a valid file. Multiple child documents can be attached. Although pictures are the most common files, the child document can contain another file type. The clients display a file or photo button next to the task checkbox. The task cannot be completed through the checkbox until the file requirement is satisfied. Selecting ''Not Applicable'' is always possible and bypasses the child-document requirement. When the user attempts to finish the task while online, the client may first synchronize the task's child objects and download the files of its child documents. During synchronization, the checkbox is replaced by a wait indicator. * If no child document or no local file is available, the task remains unfinished and the user is informed.* If at least one child document with a valid local file is available, the task is finished and the file or photo button is disabled. Child-count information can be configured but is not required. WinX can display the child documents in an expander. This is not shown by default on Mobile due to the available screen size, but it can be customized using [[Object_hierarchy_in_XAML:Module_NextLevel,_ParentLevel,_LinkedLevel#Show_NextLevel_Children.2FDocuments|MRO (Plugin)Show NextLevel Children/Documents]]. '''Properties''' {| class="wikitable" width="70%"|-! Name !! Data type !! Description|-| VALUE || {{Boolean}} || Task completion|} === Progress Task === Technical object name: '''PROGRESS_TASK''' A [[MROCLS_MRO_PROGRESS_TASK|Progress Task]] reports progress between 0% and 100%. The reported value contributes to the progress of the owning Work Package. Values below 100% represent partial progress; the task is finished only when the reported progress reaches 100%. It can alternatively be completed using ''Not Applicable''. '''Properties''' {| class="wikitable" width="70%"|-! Name !! Data type !! Description|-| VALUE || {{Double}} || Currently reported progress|-| PREVIOUS_VALUE || {{Double}} || Previously reported progress|} An [[MRO_PROGRESS_TASK_EDITOR|alternative editor]] is available for Progress Tasks. <gallery widths=497px heights=69px>File:Progress Task UWP.png|Progress Task with reported progress (WinX)File:Progress Task Android.jpg|Progress Task with current and previous progress (Mobile)</gallery>
=== Signature Task ===
Signature Task prompts the user to provide a written signature to confirm task completion. The task is marked complete once the signature is submitted.
Technical object name: '''SIGNATURE_TASK'''
A Signature Task is completed by capturing a handwritten signature. Selecting the signature editor opens an in-app dialog in which the user can sign. Confirming the signature saves it and automatically completes the task.
When signing while online, the server resolves and displays the signee and generates the validation timestamp. When signing offline, the signee is resolved and displayed once the client is online again. If the complete signee or validation timestamp cannot be displayed in the editor field, selecting the field opens a popup with the complete information.
'''Properties'''
{| class="wikitable" width="70%"
|-
! Name !! Data type !! Description
|-
| VALUE || {{Signature}} || Captured signature
|}
=== Supervisor Check Task ===
Technical object name: '''SUPERVISOR_CHECK_TASK'''
A Supervisor Check Task applies the four-eyes principle to a Boolean Check Task on one device. The worker hands the device to a supervisor. The supervisor scans an NFC tag and enters the supervisor PIN. After successful authentication, the checkbox is enabled and must still be selected to finish the task.
Selecting ''Not Applicable'' does not require supervisor authentication.
Successful supervisor authentication removes only the supervisor-related lock. The task can remain locked for another reason, such as sequential dependencies or user rights. If an incorrect PIN is entered three times, authentication is cancelled and the NFC tag has to be scanned again. A setting controls [[RFID tags#Choose which information to use from a tag|which tag information is used]].
'''Properties'''
{| class="wikitable" width="70%"
|-
! Name !! Data type !! Description
|-
| VALUE || {{Boolean}} || Check Task completion
|-
| SUPERVISOR || {{Guid}} || Authenticated supervisor
|-
| PERMISSION || {{String}} || Required supervisor permission
|}
<gallery widths=300px heights=300px>
File:UI_Xamarin_Supervisor_Task_Before_Verification.jpg|Supervisor Check Task before verification
File:UI_Xamarin_Supervisor_Task_Enter_PIN.jpg|Supervisor PIN entry
File:UI_Xamarin_Supervisor_Task_After_Verification.jpg|Supervisor Check Task after verification
</gallery>
=== Switch End Task ===
Technical object name: '''SWITCH_END_TASK'''
A [[MROCLS_SWITCH_END_TASK|Switch End Task]] marks the point at which the two branches created by a Switch Start Task merge again. It is linked to exactly one corresponding Switch Start Task. It is not shown to the user and completes automatically after the selected branch has finished, allowing the common Procedure workflow to continue.
'''Properties'''
{| class="wikitable" width="70%"
|-
! Name !! Data type !! Description
|-
| VALUE || {{Boolean}} || Task completion
|-
| LK_SWITCH_START_TASK || {{Guid}} || Link to the corresponding Switch Start Task
|}
See also [[#Procedure Task Variants and Workflow Execution|Procedure Task Variants and Workflow Execution]].
=== Switch Start Task ===
Technical object name: '''SWITCH_START_TASK'''
A [[MROCLS_SWITCH_START_TASK|Switch Start Task]] is a sequential workflow-control task used in a Procedure Workpackage. It automatically evaluates a Boolean expression on the client and selects either the true or false branch. Each branch represents a different path of Tasks and must lead to a corresponding Switch End Task.
'''Properties'''
{| class="wikitable" width="70%"
|-
! Name !! Data type !! Description
|-
| EXPRESSION || {{String}} || Expression evaluated by the client
|-
| VALUE || {{Integer}} || Evaluation state: Undefined = 0, Pending = 10, Finished = 20, Error = 30
|-
| BRANCH_TRUE || {{Guid}} || Link to the Task or Task Owner that starts the true branch
|-
| BRANCH_FALSE || {{Guid}} || Link to the Task or Task Owner that starts the false branch
|-
| DISPLAYSTRING_TRUE || {{String}} || Display string for a true result
|-
| DISPLAYSTRING_FALSE || {{String}} || Display string for a false result
|-
| EVALUATION_RESULT || {{Boolean}} || Result of the evaluated expression
|}
After evaluation, only the selected branch is executed. The other branch remains hidden and its Procedure Tasks are set to ''Not Applicable''.
See also [[#Procedure Task Variants and Workflow Execution|Procedure Task Variants and Workflow Execution]].
=== Text Task ===
Technical object name: '''TEXT_TASK'''
A Text Task allows the user to enter free-form text. Entering a value or selecting ''Not Applicable'' completes the task.
'''Properties'''
{| class="wikitable" width="70%"
|-
! Name !! Data type !! Description
|-
| VALUE || {{String}} || Entered text
|}
== Supervisor Base Type ==
Technical object name: '''SUPERVISOR_TASK'''
Supervisor Task is a base type that provides supervisor authentication behaviour. It is not used as a standalone user task. The concrete task type using this behaviour is [[#Supervisor Check Task|Supervisor Check Task]].
== Procedure Task Variants and Workflow Execution ==
Procedure variants are specialized versions of task types for use within Procedure Workpackages. They retain the behaviour of their corresponding task type and additionally implement the [[MROCLS_SEQUENTIALTASK|Sequential Task]] and [[MROCLS_GROUPEDTASK|Grouped Task]] classifications.
Procedure variants are available for:
* Calculation Task
* Check Task
* Inspection Task
* Interface Task
* Numeric Task
* Pick List Task
* Picture Task
* Signature Task
* Supervisor Check Task
* Text Task
Switch Start Tasks, Switch End Tasks, and Calculation Tasks provide automatic workflow-control behaviour in a Procedure Workpackage.
For automatic Calculation and Switch Start Tasks, the clients display an evaluation indicator:
* '''Finished:''' The Task was automatically evaluated successfully.
* '''Error:''' The Task was evaluated but resulted in an error.
* '''Pending:''' The Task has not yet been evaluated. No additional indicator is displayed for this state.
When a predecessor Switch Start Task has not yet finished, its follow-up Procedure Tasks are hidden because the relevant branch is not yet known. After evaluation, the selected branch becomes visible. The other branch remains hidden, is not executed, and its Procedure Tasks are set to ''Not Applicable''.
For example, several predecessor Numeric Tasks can record temperatures from different parts of an equipment. A subsequent Calculation Task can calculate their average. A Switch Start Task can then select a branch based on whether the average exceeds a configured temperature. One branch can contain a Task for activating a cooling mechanism, while the other branch can lead directly to the Switch End Task or contain further Switch Tasks.
Procedure Tasks are intended to execute automatically when their predecessors are finished. However, the completion of the predecessor has to be triggered by a user. If a predecessor becomes finished only because of a server update, the follow-up Procedure workflow is not triggered. This prevents a workflow from executing in the name of users who did not initiate or observe the completion.
The general online and offline evaluation rules for sequential and grouped Tasks are documented in [[MRO Objects (Client)#Sequential Task|Sequential Task]] and [[MRO Objects (Client)#Grouped Task|Grouped Task]].
== Supporting File Documents ==
=== Procedure JSON File Document ===
Technical object name: '''FILEDOCUMENT_MRO_JSON'''
This File Document stores the JSON definition of a Procedure Workpackage.
{| class="wikitable" width="70%"
|-
! Name !! Data type !! Description
|-
| LK_PROCEDURE_WORKPACKAGE || {{Guid}} || Link to the associated Procedure Workpackage
|}
=== Picture Task File Document ===
Technical object name: '''FILEDOCUMENT_MRO_PICTURE_TASK'''
This is a dedicated File Document linked to a Picture Task. A Picture Task can also use another child-document type, provided that the child document contains a valid file.
{| class="wikitable" width="70%"
|-
! Name !! Data type !! Description
|-
| LK_PICTURE_TASK || {{Guid}} || Link to the associated Picture Task
|}
== See also ==
* [[MROCLS_MRO_TASKOWNER#Task Owner]] MRO Objects (ClassificationClient)]]* [[MROCLS_MRO_WORKPACKAGE#Work PackageMROCLS_MRO_TASKOWNER]] (Classification)* [[MROCLS_MRO_TASK#TaskMROCLS_MRO_WORKPACKAGE]] (Classification)* [[MROCLS_MRO_MEASUREMENT_TASK#Measurement TaskMROCLS_MRO_TASK]] (Classification)* [[MROCLS_MRO_PROGRESS_TASK# Progress Task]] (Classification)* [[MROCLS_MRO_CHECK_TASK#Check Task]] (Classification)* [[MROCLS_MRO_INSPECTION_TASK#Inspection Task]] (Classification)
* [[MROCLS_SEQUENTIALTASK]] (Classification)
* [[MROCLS_GROUPEDTASK]] (Classification)
* [[MROCLS_PROJECT]] (Classification)* [[MROCLS_PROJECTINFORMATION]] (Classification)* [[MRO_Objects_(Client)]]* [[MRO_Implemented_Objects]]* [[MROCLS_PROCEDURE#Procedure Workpackage]] (Classification)* [[MROCLS_SWITCH_START_TASK#Switch Start Task]] (Classification)* [[MROCLS_SWITCH_END_TASK#Switch End Task]] (Classification)* [[MROCLS_CALCULATION_TASK#Calculation Task]] (Classification)
* [[MROCLS_PICK_LIST_TASK]] (Classification)
* [[MROCLS_PICTURE_TASK]] (Classification)
[[Category:Module|MRO (Plugin)]]