Difference between revisions of "MRO Material Management"
| Line 53: | Line 53: | ||
'''Core idea:''' <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">MaterialMaster</span> defines what the material is. <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">Material</span> represents the material in the MRO stock or material context. <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">Reservation</span> links a material to a task and reserves a planned quantity for maintenance execution. | '''Core idea:''' <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">MaterialMaster</span> defines what the material is. <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">Material</span> represents the material in the MRO stock or material context. <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">Reservation</span> links a material to a task and reserves a planned quantity for maintenance execution. | ||
</div> | </div> | ||
| + | |||
| + | == Object overview == | ||
| + | |||
| + | {| class="wikitable" | ||
| + | ! Object | ||
| + | ! Class name | ||
| + | ! Base / inheritance | ||
| + | ! Main relations | ||
| + | |- | ||
| + | | Material | ||
| + | | <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">UBIK.MRO.Material</span> | ||
| + | | Inherits from <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">GoodsMovement</span> | ||
| + | | <span style="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_MATERIAL_MASTER</span>, <span style="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_STORAGE_LOCATION</span> | ||
| + | |- | ||
| + | | Material Master | ||
| + | | <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">UBIK.MRO.MaterialMaster</span> | ||
| + | | Master data class | ||
| + | | Referenced by <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">Material</span> via <span style="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_MATERIAL_MASTER</span> | ||
| + | |- | ||
| + | | Reservation | ||
| + | | <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">UBIK.MRO.Reservation</span> | ||
| + | | Inherits from <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">GoodsMovement</span> | ||
| + | | <span style="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_TASK</span>, <span style="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_MATERIAL</span> | ||
| + | |- | ||
| + | | Goods Movement | ||
| + | | <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">UBIK.MRO.GoodsMovement</span> | ||
| + | | Base class | ||
| + | | Provides <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">QUANTITY</span> to derived objects | ||
| + | |- | ||
| + | | Storage Location | ||
| + | | <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">UBIK.MRO.StorageLocation</span> | ||
| + | | Functional location specialization | ||
| + | | Referenced by <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">Material</span> via <span style="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_STORAGE_LOCATION</span> | ||
| + | |} | ||
| + | |||
| + | == GoodsMovement == | ||
| + | |||
| + | === Purpose === | ||
| + | |||
| + | <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">GoodsMovement</span> is the base class for material-related quantity-bearing objects. | ||
| + | |||
| + | It defines the common quantity concept used by both: | ||
| + | |||
| + | * <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">Material</span> | ||
| + | * <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">Reservation</span> | ||
| + | |||
| + | === Important properties === | ||
| + | |||
| + | {| class="wikitable" | ||
| + | ! Property | ||
| + | ! Type | ||
| + | ! Meaning | ||
| + | |- | ||
| + | | <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">QUANTITY</span> | ||
| + | | double | ||
| + | | Quantity value for the goods movement. For <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">Material</span>, this is the material quantity. For <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">Reservation</span>, this is the actual reservation quantity and has reservation-specific validation. | ||
| + | |} | ||
| + | |||
| + | == MaterialMaster == | ||
| + | |||
| + | === Purpose === | ||
| + | |||
| + | <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">MaterialMaster</span> represents the material master or catalogue entry. | ||
| + | |||
| + | It stores item-level master data that can be referenced by material instances in MRO. | ||
| + | |||
| + | A material master describes the material independently from a concrete reservation or task. | ||
| + | |||
| + | === Important properties === | ||
| + | |||
| + | {| class="wikitable" | ||
| + | ! Property | ||
| + | ! Type | ||
| + | ! Meaning | ||
| + | |- | ||
| + | | <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">ITEM_NUMBER</span> | ||
| + | | string | ||
| + | | Item number or material number of the material master. | ||
| + | |- | ||
| + | | <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PACKAGING_UNIT</span> | ||
| + | | string | ||
| + | | Packaging unit of the material. | ||
| + | |- | ||
| + | | <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">PACKAGING_SIZE</span> | ||
| + | | double | ||
| + | | Packaging size. | ||
| + | |- | ||
| + | | <span style="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</span> | ||
| + | | bool | ||
| + | | Defines whether the material master is active. | ||
| + | |- | ||
| + | | <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">UNIT_OF_MEASURE</span> | ||
| + | | string | ||
| + | | Unit of measure used for the material. | ||
| + | |- | ||
| + | | <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">MATERIAL_TYPE</span> | ||
| + | | int | ||
| + | | Underlying integer value for the material type. | ||
| + | |- | ||
| + | | <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">MaterialType</span> | ||
| + | | enum | ||
| + | | Typed accessor for <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">MATERIAL_TYPE</span>. | ||
| + | |- | ||
| + | | <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">MANUFACTURER_COMPANY_NAME</span> | ||
| + | | string | ||
| + | | Manufacturer company name. | ||
| + | |- | ||
| + | | <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">MANUFACTURER_PRODUCT_TAG</span> | ||
| + | | string | ||
| + | | Manufacturer product tag or product identifier. | ||
| + | |} | ||
| + | |||
| + | === Material type === | ||
| + | |||
| + | The typed material type accessor is <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">MaterialType</span>. | ||
| + | |||
| + | Known values are: | ||
| + | |||
| + | * <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">SpareParts</span> | ||
| + | * <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">Consumables</span> | ||
| + | * <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">Tools</span> | ||
| + | |||
| + | <div style="border-left: 4px solid #f0ad4e; background-color: #fff8e5; padding: 10px 12px; margin: 12px 0;"> | ||
| + | '''Open point:''' No explicit SAP or ERP synchronization behavior was found in the inspected classes. <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">ITEM_NUMBER</span> may correspond to an external material number, but the exact SAP/ERP mapping is unclear from the available code information. | ||
| + | </div> | ||
| + | |||
| + | == Material == | ||
| + | |||
| + | === Purpose === | ||
| + | |||
| + | <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">Material</span> represents a material instance or stock entry in MRO. | ||
| + | |||
| + | It inherits from <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">GoodsMovement</span> and therefore uses the inherited <span style="font-family: Consolas, 'Courier New', monospace; color: #202122; background-color: #f8f9fa; border: 1px solid #c8ccd1; border-radius: 3px; padding: 1px 4px; white-space: nowrap;">QUANTITY</span> property as its material quantity. | ||
| + | |||
| + | A material links to: | ||
| + | |||
| + | * a material master via <span style="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_MATERIAL_MASTER</span> | ||
| + | * a storage location via <span style="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_STORAGE_LOCATION</span> | ||
| + | |||
| + | It also exposes calculated reservation and availability logic. | ||
| + | |||
{{UnderConstructionEnd}} | {{UnderConstructionEnd}} | ||
Revision as of 14:23, 17 June 2026
Contents
MRO Material Management
Summary: The MRO material management features provide the foundation for handling materials, material master data, reservations, storage locations, and goods movements in MRO workflows. The central objects are Material, MaterialMaster, Reservation, GoodsMovement, and StorageLocation. Materials are linked to master data and storage locations. Reservations link materials to tasks and define planned or actual quantities for maintenance work.
MRO material management is used to support maintenance work with the required spare parts, consumables, tools, or other material items.
In a maintenance workflow, users may need to know:
- which material is required for a task
- which material master data belongs to a material
- where the material is stored
- how much material is available
- how much material is already reserved
- which reservations exist for a task
- whether a reservation is planned, confirmed, issued, cancelled, or expired
The material management implementation separates the general material catalogue from the actual material quantity and reservation handling.
Basic concept
The material management implementation is built around the following main objects:
| Object | Type | Purpose |
|---|---|---|
| MaterialMaster | Master data | Defines the catalogue entry for a material, including item number, unit, packaging, manufacturer data, and material type. |
| Material | Quantity-bearing MRO object | Represents a material instance or stock entry in MRO. It links to a material master and a storage location and exposes quantity, reserved quantity, and available quantity logic. |
| Reservation | Workflow / transaction object | Represents a material reservation for a task. It links a material to a task and stores planned and actual quantities. |
| GoodsMovement | Base class | Provides the common QUANTITY property used by both materials and reservations. |
| StorageLocation | Storage master / location object | Represents a physical storage location and stores storage-related information such as storage type, dimensions, access type, and occupancy status. |
Core idea: MaterialMaster defines what the material is. Material represents the material in the MRO stock or material context. Reservation links a material to a task and reserves a planned quantity for maintenance execution.
Object overview
| Object | Class name | Base / inheritance | Main relations |
|---|---|---|---|
| Material | UBIK.MRO.Material | Inherits from GoodsMovement | LK_MATERIAL_MASTER, LK_STORAGE_LOCATION |
| Material Master | UBIK.MRO.MaterialMaster | Master data class | Referenced by Material via LK_MATERIAL_MASTER |
| Reservation | UBIK.MRO.Reservation | Inherits from GoodsMovement | LK_TASK, LK_MATERIAL |
| Goods Movement | UBIK.MRO.GoodsMovement | Base class | Provides QUANTITY to derived objects |
| Storage Location | UBIK.MRO.StorageLocation | Functional location specialization | Referenced by Material via LK_STORAGE_LOCATION |
GoodsMovement
Purpose
GoodsMovement is the base class for material-related quantity-bearing objects.
It defines the common quantity concept used by both:
- Material
- Reservation
Important properties
| Property | Type | Meaning |
|---|---|---|
| QUANTITY | double | Quantity value for the goods movement. For Material, this is the material quantity. For Reservation, this is the actual reservation quantity and has reservation-specific validation. |
MaterialMaster
Purpose
MaterialMaster represents the material master or catalogue entry.
It stores item-level master data that can be referenced by material instances in MRO.
A material master describes the material independently from a concrete reservation or task.
Important properties
| Property | Type | Meaning |
|---|---|---|
| ITEM_NUMBER | string | Item number or material number of the material master. |
| PACKAGING_UNIT | string | Packaging unit of the material. |
| PACKAGING_SIZE | double | Packaging size. |
| ACTIVE | bool | Defines whether the material master is active. |
| UNIT_OF_MEASURE | string | Unit of measure used for the material. |
| MATERIAL_TYPE | int | Underlying integer value for the material type. |
| MaterialType | enum | Typed accessor for MATERIAL_TYPE. |
| MANUFACTURER_COMPANY_NAME | string | Manufacturer company name. |
| MANUFACTURER_PRODUCT_TAG | string | Manufacturer product tag or product identifier. |
Material type
The typed material type accessor is MaterialType.
Known values are:
- SpareParts
- Consumables
- Tools
Open point: No explicit SAP or ERP synchronization behavior was found in the inspected classes. ITEM_NUMBER may correspond to an external material number, but the exact SAP/ERP mapping is unclear from the available code information.
Material
Purpose
Material represents a material instance or stock entry in MRO.
It inherits from GoodsMovement and therefore uses the inherited QUANTITY property as its material quantity.
A material links to:
- a material master via LK_MATERIAL_MASTER
- a storage location via LK_STORAGE_LOCATION
It also exposes calculated reservation and availability logic.
