Difference between revisions of "MRO Objects (Client)"
(→Inspection Task) |
(→Supervisor Task {{Version/XamarinSince|4.8}}) |
||
(57 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
− | MRO | + | [[File:UI_WinX_MRO_ChildList.png|thumb|alt=MRO Child List UI (WinX)|MRO UI (WinX)]] |
+ | [[File:Android_mro_ui.jpg|thumb|alt=MRO Child List UI (Android)|MRO UI (Android)]] | ||
+ | The WinX client UI displays MRO configured objects like any other root- or child-object enriched by some additional logic and features. | ||
− | == | + | == Basic User Interface == |
− | + | The representation of MRO features comprises some indicators and interactive controls. In the {{UBIK}} child list, the main object displays cumulated technical and organisational status as well as the overall work progress based on the underlying data branch. Objects classified as MRO objects in general provide indicators for the MRO status. This means the status is shown next to the main icon of a child-/details-/documents-page as well as next to the icons of the child list items: | |
− | === | + | === Technical Status === |
− | + | The technical status indicator is shown on all objects that represent a technical state or receive the technical status from subsequent objects in the underlying data branch. If e.g. a inventory object is reported as damaged, its parent objects will all display the exclamation mark symbol to indicate that a problem was reported in the child items. | |
− | ==== Task ==== | + | <gallery> |
− | A [[MROCLS_MRO_TASK | + | File:UI_WinX_MRO_TechnicalStatusIndicator.png|thumb|Technical Status Indicator (WinX) |
+ | File:Android_tech_status.PNG|thumb|Technical Status Indicator (Android) | ||
+ | </gallery> | ||
+ | |||
+ | === Organisational Status === | ||
+ | The organisational status indicator is shown on all objects that represent an organisational state or receive the organisational status from subsequent objects in the underlying data branch. This indicator shows the amount of confirmed work done in the data branch. It can as well display a work package to be already confirmed or show tasks that are already locked by their owning workpackage. | ||
+ | <gallery> | ||
+ | File:UI_WinX_MRO_OrganisationalStatusIndicator.png|Organisational Status Indicator (WinX) | ||
+ | File:UI_WinX_MRO_WPConfirmedIndicator.png|MRO Workpackage Confirmed (Flag) Indicator (WinX) | ||
+ | File:Android_orga_status.PNG|Organisational Status Indicator (Android) | ||
+ | File:Android_orga_status_finished.PNG|MRO Workpackage Confirmed Indicator (Android) | ||
+ | </gallery> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === Work Progress === | ||
+ | The work progress is shown on all objects that represent the current work progress or receive the work progress cumulated from subsequent objects in the underlying data branch. This indicator shows the amount of work done in the data branch. | ||
+ | |||
+ | <gallery> | ||
+ | File:UI_WinX_MRO_WorkProgressIndicator.png|thumb|MRO Work Progress Indicator (WinX) | ||
+ | File:Android_finished_overlay.PNG|thumb|MRO Work Progress Indicator (Android). The finished overlay is shown once the progress of a MRO object is 100% | ||
+ | </gallery> | ||
+ | |||
+ | {{Clear}} | ||
+ | |||
+ | == MRO Objects == | ||
+ | A set of specific objects can be used to provide the required structure for MRO: | ||
+ | |||
+ | === 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_WORKPACKAGE|Work Package]] is a collection of objects to collect and summarize other task owning objects, workpackages, or tasks. A simple workpackage has a certain amount of tasks that have to be finished in order to confirm the workpackage as done. More complex workpackages can also own other underlying workpackages that have to be confirmed. Confirming a workpackage itself requires a progress of 100% of all related tasks, as well as 100% confirmed sub work packages. | ||
+ | |||
+ | <gallery> | ||
+ | File:UI_WinX_MRO_WPConfirmButton.png|MRO Workpackage confirm button (WinX) | ||
+ | File:UI_WinX_MRO_WPRevokeConfirmButton.png|MRO Workpackage revoke confirmation button (WinX) | ||
+ | File:Android_finish_workpackage.PNG|MRO Workpackage confirm button (Android) | ||
+ | File:Android reopen workpackage.PNG|MRO Workpackage revoke confirmation button (Android) | ||
+ | </gallery> | ||
+ | |||
+ | === Task === | ||
+ | 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. | ||
+ | |||
+ | On both clients, a Task can be reverted by clicking twice on the Not Applicable button. | ||
+ | |||
+ | |||
+ | |||
+ | {{Attention|The MetaProperty ''VALUE'' has to use [[Attributes]] in order to be validated. Otherwise, the calculation of work progress will not be possible.}} | ||
==== Measurement Task ==== | ==== Measurement Task ==== | ||
− | A [[MROCLS_MRO_MEASUREMENT_TASK | + | |
+ | A [[MROCLS_MRO_MEASUREMENT_TASK|Measurement Task]] inherits from [[MROCLS_MRO_TASK|Task]] and documents a measured value (e.g. read from a pressure gauge). Therefore, clicking the value on the shown task opens an editor to enter the desired value. If no value was entered before, an empty line will be shown. 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). An additional small value indicator below the main value can report e.g. the previously entered value. The behaviour of this previous value indicator has to be specified separately in the customizing. | ||
+ | {{Clear}} | ||
+ | |||
+ | <gallery widths=497px heights=69px> | ||
+ | File:Measurment Task Empty UWP.png|Measurement Task without a reported value (WinX) | ||
+ | File:Measurment Task Not Empty UWP.png|Measurement Task with a reported value (WinX) | ||
+ | File:Measurment Task Empty Android.jpg|Measurement Task without a reported value (Android) | ||
+ | </gallery> | ||
+ | |||
+ | |||
+ | |||
==== Progress Task ==== | ==== Progress Task ==== | ||
− | [[MROCLS_MRO_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''. | ||
+ | |||
+ | There is also an [[MRO_PROGRESS_TASK_EDITOR|alternative editor]] available for progress tasks.{{Version/WinXSince|2.5.4}} | ||
+ | {{Clear}} | ||
+ | |||
+ | <gallery widths=497px heights=69px> | ||
+ | File:Progress Task UWP.png|Progress Task with a reported work progress (WinX) | ||
+ | File:Progress Task Android.jpg|Progress Task with a reported work progress and a previous progress(Android) | ||
+ | </gallery> | ||
+ | |||
+ | |||
+ | |||
==== Check Task ==== | ==== Check Task ==== | ||
− | A [[MROCLS_MRO_CHECK_TASK | + | |
+ | A [[MROCLS_MRO_CHECK_TASK|Check Task]] inherits from [[MROCLS_MRO_TASK|Task]] and is finished by reporting ''Done'' or ''Not Applicable''. This is intended for a simple To-Do task that is either done or not. | ||
+ | {{Clear}} | ||
+ | |||
+ | <gallery widths=497px heights=69px> | ||
+ | File:Check Task finished UWP.png|Unfinished MRO CheckTask (WinX) | ||
+ | File:Check Task android.jpg|Not Applicable MRO CheckTask (Android) | ||
+ | </gallery> | ||
+ | |||
+ | |||
+ | |||
==== Inspection Task ==== | ==== Inspection Task ==== | ||
− | [[MROCLS_MRO_INSPECTION_TASK | + | |
+ | [[MROCLS_MRO_INSPECTION_TASK|Inspection Task]] inherits from [[MROCLS_MRO_TASK|Task]] and is finished, when the user reports with a positive or negative answer or ''Not Applicable'' (e.g. reporting a yes/no answer for existing equipment). | ||
+ | {{Clear}} | ||
+ | |||
+ | <gallery widths=497px heights=69px> | ||
+ | File:Finished Inspection Task UWP.png|Finished MRO InspectionTask (WinX) | ||
+ | File:Inspection task android.jpg|Finished MRO InspectionTask (Android) | ||
+ | </gallery> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Sequential Task ==== | ||
+ | The [[MROCLS_SEQUENTIALTASK|sequential task classification]] allows you to pre-define a sequence in which tasks are to be resolved by users. This means that it is required for one or multiple tasks to be finished in order for other tasks to become "unlocked" and editable. A task can have any number of "predecessors". Predecessors are the tasks that are required to be finished first. | ||
+ | |||
+ | A task can have predecessors that live anywhere else in the object hierarchy. It is not necessary for a task and its predecessors to be part of the same work package, even though this is likely the most common use case. | ||
+ | |||
+ | The state of a sequential task is evaluated both offline and online to get the best possible user experience. The user will see dependent tasks update immediately if their successors were finished, if those tasks are currently visible in the UI. There is 1 case in which the server-side state will override the client-side (offline) evaluation, discussed below. | ||
+ | The state of each sequential task is evaluated the following way: | ||
+ | |||
+ | # If the server-side state says the task is open, we consider this as the truthful state and don't do any other evaluation. | ||
+ | # Check if the task has any predecessors. | ||
+ | # Try to load each predecessor task. | ||
+ | #* If loading of any predecessor fails (the object is not available offline), the task will be locked. | ||
+ | # If all predecessor tasks are finished, the task is open and can be edited. Otherwise, the task is locked. | ||
+ | |||
+ | The customizer setting up the task dependency relations needs to ensure that the dependencies are not cyclical. In this case, it would be impossible for any tasks in the "cycle" to be finished. | ||
+ | |||
+ | '''Example''' | ||
+ | |||
+ | As a demonstration of this feature, see [[Media:Sequential_tasks_winx.mp4|this video]]. The relations between tasks are defined as in [[Media:Task_relations.png|this image]], starting at A1 and A2, which are not dependent on any other tasks. The lines (from left to right) indicate dependencies. This means that B2 has tasks A1 and A2 as its predecessors, for example. | ||
+ | |||
+ | |||
+ | ==== Grouped Task {{Version/WinXSince|4.2}}{{Version/XamarinSince|4.2}} ==== | ||
+ | Sometimes, not all tasks have to be finished. More specifically, there might be a predefined condition where you only need to finish a certain number of tasks among a group of them. These are known in {{UBIK}} as [[MROCLS_GROUPEDTASK|grouped tasks]]. | ||
+ | |||
+ | The idea is, a group of tasks can be defined as siblings to each other and they also share the same server configured threshold. When the number of finished tasks among that group exceeds the threshold, the entire group is considered as no longer necessary. When reflected in the overall status of the task owner(s), these tasks would appear as if they are finished. | ||
+ | |||
+ | {{Hint|Technically speaking, the finished status is completely independent from the not necessary status on a task. A grouped task which is no longer necessary can be both finished or not yet finished. In other words, users don't have to finish a not necessary grouped task, but they still can.}} | ||
+ | |||
+ | {{Hint|The precise status calculation for grouped tasks and their task owners requires the knowledge of all siblings tasks. Imagine 2 out of 3 tasks must be finished but the client only knows 1 in total and the others are only available at the server at that time. This makes it impossible to draw conclusions whether the task(s) should be necessary or not. Under such circumstances, the local status calculation is done as if these are just regular tasks.}} | ||
+ | |||
+ | {{Hint|Like with the other MRO objects, the client always chooses the best available statuses for grouped tasks to present to the users. More specifically, it uses the statuses calculated by the server when the client is not offline and there are no uncommitted local changes on the involved objects. Otherwise, it uses the statuses calculated locally to the best of its knowledge.}} | ||
+ | |||
+ | A task can also be a grouped and a sequential one at the same time. In such a case, the grouped nature of the sibling tasks will affect the way the task sequence completes. | ||
+ | |||
+ | For example, task A1, A2 and A3 are 3 grouped sibling tasks and only 1 of them needs to be finished. At the same time, they are all predecessors of task B. Normally, all predecessors must be finished (and locked) before task B becomes the next one in the sequence and therefore unlocked. In this case, however, as soon as one of the predecessors is finished, all three become unnecessary (and locked) and task B unlocks as a result of that. | ||
+ | |||
+ | |||
+ | ==== Supervisor Task {{Version/XamarinSince|4.8}} ==== | ||
+ | As the name suggests, supervisor tasks are those that must be finished under supervision. When users want to finish a [[MROCLS_MRO_SUPERVISOR_TASK|supervisor task]], they must hand over their work devices to a supervisor. The latter checks the work status and scans an NFC tag if the work is approved. If the [[MROCLS_MRO_SUPERVISOR|supervisor]] has sufficient permissions for the task and the correct supervisor PIN is given, the task gets unlocked and the users can proceed to finish it. | ||
+ | |||
+ | <gallery widths=300px heights=300px> | ||
+ | File:UI_Xamarin_Supervisor_Task_Before_Verification.jpg|Supervisor Task Before Verification/Unlocking (Xamarin) | ||
+ | File:UI_Xamarin_Supervisor_Task_Enter_PIN.jpg|Supervisor Task Enter PIN (Xamarin) | ||
+ | File:UI_Xamarin_Supervisor_Task_After_Verification.jpg|Supervisor Task After Verification/Unlocking (Xamarin) | ||
+ | </gallery> | ||
+ | |||
+ | A thing to note is that while the need to verify a supervisor task can be seen as a type of locking, it's certainly not the only reason for a [[Locked_Objects|locked object]]. This means a supervisor task can remain locked (although for different reasons) even after a supervisor has successfully verified it. This can often be the case if you use it in combination with other features such as [[MRO_Objects_(Client)#Sequential_Task|sequential tasks]], [[User_Rights|user rights]]. | ||
+ | |||
+ | {{Hint|For security reasons, the verification process is cancelled if the supervisor enters the wrong PIN for three times. Scanning the tag again is required in that case.}} | ||
+ | |||
+ | [[Category:Android|MRO Objects (UBIK WinX)]] | ||
+ | [[Category:Client|MRO Objects (Client)]] | ||
+ | [[Category:Pages with broken file links|MRO Objects (Client)]] | ||
+ | [[Category:WinX|MRO Objects (UBIK WinX)]] | ||
+ | [[Category:Xamarin|MRO Objects (Client)]] | ||
+ | |||
+ | === MRO objects with project information (WinX only) {{Version/WinXSince|2.5.4}} === | ||
+ | [[File:UI_WinX_MRO_ProjectInfo.png|thumb|MRO Object with Project Info (WinX)]] | ||
+ | An MRO object (except tasks) might also bring along [[MROCLS_PROJECTINFORMATION|project information]]. In this case, the project information together with the MRO progress are displayed in a bar chart. The start & end dates of the MRO object are displayed on the progress bar. The length and the position of the progress bar, together with the current date mark indicate the timeline. | ||
+ | {{Clear}} | ||
+ | |||
+ | |||
+ | == Locking == | ||
+ | When an (MRO) object is locked, editing it becomes impossible. More details about [[Locked_Objects|locked objects]]. | ||
+ | |||
+ | |||
== See also == | == See also == | ||
− | * [[ | + | * [[MRO (Plugin)]] |
− | * [[ | + | * [[MROCLS_PROJECT]] |
− | * [[ | + | * [[MROCLS_PROJECTINFORMATION]] |
− | * [[MROCLS_MRO_MEASUREMENT_TASK | + | * [[MROCLS_SEQUENTIALTASK]] |
− | * [[MROCLS_MRO_PROGRESS_TASK | + | * [[MROCLS_GROUPEDTASK]] |
− | * [[ | + | * [[MROCLS_MRO_CHECK_TASK]] |
− | + | * [[MROCLS_MRO_INSPECTION_TASK]] | |
+ | * [[MROCLS_MRO_MEASUREMENT_TASK]] | ||
+ | * [[MROCLS_MRO_PROGRESS_TASK]] | ||
+ | * [[MROCLS_MRO_TASK]] | ||
+ | * [[MROCLS_MRO_TASKOWNER]] | ||
+ | * [[MROCLS_MRO_WORKPACKAGE]] | ||
+ | |||
+ | [[Category:Android|MRO Objects (UBIK WinX)]] | ||
+ | [[Category:Client|MRO Objects (Client)]] | ||
+ | [[Category:WinX|MRO Objects (UBIK WinX)]] | ||
+ | [[Category:Xamarin|MRO Objects (Client)]] |
Latest revision as of 12:37, 7 October 2024
The WinX client UI displays MRO configured objects like any other root- or child-object enriched by some additional logic and features.
Basic User Interface
The representation of MRO features comprises some indicators and interactive controls. In the UBIK® child list, the main object displays cumulated technical and organisational status as well as the overall work progress based on the underlying data branch. Objects classified as MRO objects in general provide indicators for the MRO status. This means the status is shown next to the main icon of a child-/details-/documents-page as well as next to the icons of the child list items:
Technical Status
The technical status indicator is shown on all objects that represent a technical state or receive the technical status from subsequent objects in the underlying data branch. If e.g. a inventory object is reported as damaged, its parent objects will all display the exclamation mark symbol to indicate that a problem was reported in the child items.
Organisational Status
The organisational status indicator is shown on all objects that represent an organisational state or receive the organisational status from subsequent objects in the underlying data branch. This indicator shows the amount of confirmed work done in the data branch. It can as well display a work package to be already confirmed or show tasks that are already locked by their owning workpackage.
Work Progress
The work progress is shown on all objects that represent the current work progress or receive the work progress cumulated from subsequent objects in the underlying data branch. This indicator shows the amount of work done in the data branch.
MRO Objects
A set of specific objects can be used to provide the required structure for MRO:
Task Owner
A 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 Work Package is a collection of objects to collect and summarize other task owning objects, workpackages, or tasks. A simple workpackage has a certain amount of tasks that have to be finished in order to confirm the workpackage as done. More complex workpackages can also own other underlying workpackages that have to be confirmed. Confirming a workpackage itself requires a progress of 100% of all related tasks, as well as 100% confirmed sub work packages.
Task
A 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.
On both clients, a Task can be reverted by clicking twice on the Not Applicable button.
The MetaProperty VALUE has to use Attributes in order to be validated. Otherwise, the calculation of work progress will not be possible. |
Measurement Task
A Measurement Task inherits from Task and documents a measured value (e.g. read from a pressure gauge). Therefore, clicking the value on the shown task opens an editor to enter the desired value. If no value was entered before, an empty line will be shown. 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). An additional small value indicator below the main value can report e.g. the previously entered value. The behaviour of this previous value indicator has to be specified separately in the customizing.
Progress Task
Progress Task inherits from 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.
There is also an alternative editor available for progress tasks.
Check Task
A Check Task inherits from Task and is finished by reporting Done or Not Applicable. This is intended for a simple To-Do task that is either done or not.
Inspection Task
Inspection Task inherits from Task and is finished, when the user reports with a positive or negative answer or Not Applicable (e.g. reporting a yes/no answer for existing equipment).
Sequential Task
The sequential task classification allows you to pre-define a sequence in which tasks are to be resolved by users. This means that it is required for one or multiple tasks to be finished in order for other tasks to become "unlocked" and editable. A task can have any number of "predecessors". Predecessors are the tasks that are required to be finished first.
A task can have predecessors that live anywhere else in the object hierarchy. It is not necessary for a task and its predecessors to be part of the same work package, even though this is likely the most common use case.
The state of a sequential task is evaluated both offline and online to get the best possible user experience. The user will see dependent tasks update immediately if their successors were finished, if those tasks are currently visible in the UI. There is 1 case in which the server-side state will override the client-side (offline) evaluation, discussed below. The state of each sequential task is evaluated the following way:
- If the server-side state says the task is open, we consider this as the truthful state and don't do any other evaluation.
- Check if the task has any predecessors.
- Try to load each predecessor task.
- If loading of any predecessor fails (the object is not available offline), the task will be locked.
- If all predecessor tasks are finished, the task is open and can be edited. Otherwise, the task is locked.
The customizer setting up the task dependency relations needs to ensure that the dependencies are not cyclical. In this case, it would be impossible for any tasks in the "cycle" to be finished.
Example
As a demonstration of this feature, see this video. The relations between tasks are defined as in this image, starting at A1 and A2, which are not dependent on any other tasks. The lines (from left to right) indicate dependencies. This means that B2 has tasks A1 and A2 as its predecessors, for example.
Grouped Task
Sometimes, not all tasks have to be finished. More specifically, there might be a predefined condition where you only need to finish a certain number of tasks among a group of them. These are known in UBIK® as grouped tasks.
The idea is, a group of tasks can be defined as siblings to each other and they also share the same server configured threshold. When the number of finished tasks among that group exceeds the threshold, the entire group is considered as no longer necessary. When reflected in the overall status of the task owner(s), these tasks would appear as if they are finished.
A task can also be a grouped and a sequential one at the same time. In such a case, the grouped nature of the sibling tasks will affect the way the task sequence completes.
For example, task A1, A2 and A3 are 3 grouped sibling tasks and only 1 of them needs to be finished. At the same time, they are all predecessors of task B. Normally, all predecessors must be finished (and locked) before task B becomes the next one in the sequence and therefore unlocked. In this case, however, as soon as one of the predecessors is finished, all three become unnecessary (and locked) and task B unlocks as a result of that.
Supervisor Task
As the name suggests, supervisor tasks are those that must be finished under supervision. When users want to finish a supervisor task, they must hand over their work devices to a supervisor. The latter checks the work status and scans an NFC tag if the work is approved. If the supervisor has sufficient permissions for the task and the correct supervisor PIN is given, the task gets unlocked and the users can proceed to finish it.
A thing to note is that while the need to verify a supervisor task can be seen as a type of locking, it's certainly not the only reason for a locked object. This means a supervisor task can remain locked (although for different reasons) even after a supervisor has successfully verified it. This can often be the case if you use it in combination with other features such as sequential tasks, user rights.
For security reasons, the verification process is cancelled if the supervisor enters the wrong PIN for three times. Scanning the tag again is required in that case. |
MRO objects with project information (WinX only)
An MRO object (except tasks) might also bring along project information. In this case, the project information together with the MRO progress are displayed in a bar chart. The start & end dates of the MRO object are displayed on the progress bar. The length and the position of the progress bar, together with the current date mark indicate the timeline.
Locking
When an (MRO) object is locked, editing it becomes impossible. More details about locked objects.