Equipment (Installatie)
De Equipment-entiteit is de kern-asset entiteit in Ultimo. Hierin worden alle fysieke objecten vastgelegd die onderhouden moeten worden, van installaties en instrumenten tot fleet-voertuigen en configuratie-items. Equipment vormt het hart van het asset management en is gekoppeld aan vrijwel alle andere processen.
Entiteitsnaam: Equipment
Databasetabel: Equipment
Primaire sleutel: EQMID (nvarchar 14)
Contextsbewerken
| Value | Naam | Beschrijving |
|---|---|---|
| 0 | EquipmentContext.None | Installatie |
| 1 | EquipmentContext.Installation | Installatie |
| 2 | EquipmentContext.Inventory | Inventaris |
| 4 | EquipmentContext.Building | Gebouw |
| 8 | EquipmentContext.Fleet | Fleet |
| 16 | EquipmentContext.MeterTS | Meter TD |
| 32 | EquipmentContext.ConfigurationItem | Configuratie-item |
| 64 | EquipmentContext.Software | Software |
| 128 | EquipmentContext.Network | Netwerk |
| 256 | EquipmentContext.Telephony | Telefonie |
| 512 | EquipmentContext.Instrument | Instrument |
| 1024 | EquipmentContext.Resource | Middel |
| 2048 | EquipmentContext.VirtualMeter | Virtuele energiemeter |
| 32768 | EquipmentContext.BuildingPart | Bouwdeel |
| 65536 | EquipmentContext.Element | Element |
| 131072 | EquipmentContext.EnergyMeter | Energiemeter |
| 262144 | EquipmentContext.MeterMT | Meter MT |
| 524288 | EquipmentContext.MeterInfra | Meter Infra |
| 1048576 | EquipmentContext.MeterFleet | Meter Fleet |
| 2097152 | EquipmentContext.MeterBuilding | Meter Gebouw |
Statussenbewerken
| Value | Naam | Beschrijving |
|---|---|---|
| -1 | EquipmentStatus.Trash | Trash |
| 0 | EquipmentStatus.None | None |
| 1 | EquipmentStatus.Created | Op te voeren |
| 2 | EquipmentStatus.Active | Operationeel |
| 4 | EquipmentStatus.Borrowed | Uitgeleend |
| 8 | EquipmentStatus.Missing | Vermist |
| 16 | EquipmentStatus.ToDelete | Af te voeren |
| 32 | EquipmentStatus.ToMove | Te verplaatsen |
| 64 | EquipmentStatus.Scrapped | Afgevoerd |
| 256 | EquipmentStatus.ExchangeUsable | Inzetbaar |
| 512 | EquipmentStatus.ExchangeOperational | Operationeel |
| 1024 | EquipmentStatus.ExchangeDefect | Defect |
Belangrijkste propertiesbewerken
| Property | Type | Kolom | Nullable | Omschrijving |
|---|---|---|---|---|
| Id | UltimoString(14) | EQMID | Nee | Uniek ID van het equipment |
| Description | UltimoString(200) | EQMDESCR | Ja | Omschrijving |
| Code | UltimoString(12) | EQMCODE | Ja | Code |
| SerialNumber | UltimoString(40) | EQMSERIALNR | Ja | Serienummer |
| TypeNumber | UltimoString(40) | EQMTYPENR | Ja | Typenummer |
| Model | UltimoString(50) | EQMMODEL | Ja | Model |
| Status | Status | EQMRECSTATUS | Nee | Recordstatus (default: 1) |
| Context | Context | EQMCONTEXT | Nee | Context (default: 1) |
| InstallDate | Date? | EQMINSTDATE | Ja | Installatiedatum |
| OutOfService | Date? | EQMOUTOFSERVICEDATE | Ja | Uit bedrijf datum |
| PurchasePrice | CompanyMoney | EQMPURCHPRICE | Nee | Aanschafprijs |
| ReplacementCost | CompanyMoney | EQMREPLCOST | Nee | Vervangingswaarde |
| ManufactureYear | Int32 | EQMMANUFYEAR | Nee | Bouwjaar |
| Location | UltimoString(26) | EQMLOCATION | Ja | Locatieomschrijving |
| GeocodeX | Decimal | EQMGEOCODEX | Nee | GPS X-coordinaat |
| GeocodeY | Decimal | EQMGEOCODEY | Nee | GPS Y-coordinaat |
| CostCurrentYear | CompanyMoney | EQMMAINTYEAR | Nee | Kosten huidig jaar (readonly) |
| CostLastYear | CompanyMoney | EQMCOSTLY | Nee | Kosten vorig jaar (readonly) |
| TotalCost | CompanyMoney | EQMMAINTTOTAL | Nee | Totale kosten (readonly) |
| CriticalityScore | Decimal | EQMSCORECRITICAL | Nee | Criticaliteitsscore |
| RiskScore | Decimal | EQMRISKSCORE | Nee | Risicoscore |
| IndividualPM | Boolean | EQMNOGROUPPM | Nee | Individueel PO (default: 1) |
| Reservable | Boolean | EQMRESERVABLE | Nee | Reserveerbaar |
| ExchangePart | Boolean | EQMEXCHANGEPART | Nee | Wisselstuk |
| WarrantDate | Date? | EQMWARRENTDATE | Ja | Garantiedatum |
| ImageFile | UltimoString | EQMIMAGEFILE | Ja | Afbeelding |
| NFCSerialNumber | UltimoString(40) | EQMNFCSERIALNUMBER | Ja | NFC serienummer |
| IPAddress | UltimoString(22) | EQMIPADDRESS | Ja | IP-adres |
Functionaliteit & property-gedragbewerken
Veel Equipment-properties worden niet alleen handmatig ingevuld maar door workflows gevuld, gekopieerd of afgekeurd. Onderstaande paragrafen beschrijven het gedrag van de belangrijkste velden; gebruik lookup_property_usage("Equipment", "<property>") voor de volledige, actuele lijst workflows per property en lookup_workflow("<naam>") voor de XML.
Status(levenscyclus: BuildIn → Operationeel → BuildOut/Move) — De recordstatus loopt langs vaste lifecycle-workflows in plaats van vrije statuswijziging.Equipment_BuildOutzet status op Afgevoerd (of een wisselstuk-status) en filtert daartoe opStatusenProcessFunction;Equipment_Moveschrijft een nieuweSpaceen past de status aan bij verplaatsing. Inbouwen gaat viaEquipment_ActionField1700_BuildIn, uitbouwen als uitwisselstuk viaEquipment_ActionField1700_BuildOutExchangePart. In totaal schrijven 16 workflows deStatus-property en lezen er 28 — een wijziging is daardoor zelden een enkelvoudige actie maar een getriggerde keten. Consultanttip: controleer altijd de lifecycle-workflow voordat jeStatusprogrammatisch overschrijft; sommige transitions vereisen ook eenProgressStatus-reset.EquipmentType+ overerving van features en reservedelen — Bij aanmaak viaEquipmentType_CreateEquipmentwordenEquipmentType,IndividualPM,MaintenanceClassificationenDescriptiondirect vanuit het type gezet. Daarna kopieertEquipment_CopyFeaturesAndSparePartsFromEquipmentTypede feature-definities en reservedelen-sjablonen van het type naar het individuele equipment. Wijzigt een consultant later het onderhoudsconcept, dan wordtEquipment_SetEquipmentTypeFieldsFromChangeMntcClassificationaangeroepen om type-velden opnieuw te synchroniseren. Zeven workflows schrijvenEquipmentType; zorg bij een bulk-import dat het type vóór de features aanwezig is, anders mislukt de kopieeractie.IndividualPMenMaintenanceClassification(onderhoudsconcept) —IndividualPMstuurt of het equipment zijn eigen PO-planning krijgt of meeloopt in een groeps-PO.Equipment_ChangeIndividualPMschrijftIndividualPM, herberekentNextPmMaintenanceDateen pastIsBulkaan.Equipment_ChangeMaintenanceClassificationen zijn variantEquipment_ChangeMaintenanceClassification_IndividualPMIsFalseschrijvenMaintenanceClassificationen sturen viaEquipment_RemovePmWorkOrders/Equipment_AddPmWorkOrdersFromPeriodicActivitiesde PO-modelkoppeling bij.NextPmMaintenanceDatewordt bijgehouden door vier workflows (o.a.PmWorkOrder_DeletePeriodicActivity) en gelezen door drie — een wijziging in het onderhoudsconcept raakt dus direct de eerstvolgende onderhoudsdatum.Kostendragers:
CostCenter,Department,Site,ProcessFunction— Deze vier velden worden elk door een dedicated workflow bijgehouden:Equipment_ChangeCostCenter,Equipment_ChangeDepartment,Equipment_ChangeSite. Jobs en inkoopregels lezen de kostendragers rechtstreeks van het equipment (o.a.PmWorkOrder_CreateJobs_ProcessCreatedJob_SetCostCarriers,PurchaseLine_CopyDataFromEquipmentProcessFunction) zodat kosten automatisch op de juiste dragers landen.ProcessFunctionwordt daarnaast doorEquipment_UpdateExchangePartLocationAndRegisterMutationgeschreven bij een exchange-part mutatie.Space(ruimte/locatie) — Zeven workflows schrijvenSpace: naastEquipment_MoveookEquipment_ChangeSpace,EquipmentMoveLine_PreCreated(bij aanmaak van een verplaatsingsregel) en de mobiele flowsMobile_Equipment_ClearSpaceenMobile_Space_AddEquipment.REST_Equipment_UpdateTrackAndTraceLocationschrijftSpacevia de REST API vanuit track-and-trace systemen. Jobs nemen de ruimte over viaJob_SetBuildingAndSpaceFromEquipment.Wisselstukken (
ExchangePart) — locatie en mutatie — AlsExchangePart = truegeldt een aparte levenscyclus met eigen statuswaarden (Inzetbaar/Operationeel/Defect).Equipment_UpdateExchangePartLocationAndRegisterMutationschrijftProcessFunctionbij een locatiewissel en registreert de mutatie;Equipment_ChangeLocationExchangePartverwerkt een handmatige locatiewijziging.ExchangePartzelf wordt door geen enkele workflow geschreven (het is een configuratieveld) maar wél door tien workflows gelezen en drie gefilterd — onder meerEquipment_BuildOut, dat het gedrag splitst op basis van dit veld.
Het volledige, gegenereerde overzicht van álle Equipment-properties met hun schrijvende/lezende/filterende workflows staat in reference/properties/Equipment.
Relaties met andere entiteitenbewerken
| Property | Verwijst naar | Omschrijving |
|---|---|---|
| PartOfEquipment | equipment | Bovenliggend equipment (hierarchie) |
| TopOfEquipmentId | equipment | Top van de hierarchie |
| Parts | List[Equipment] | Onderliggende equipment |
| ProcessFunction | ProcessFunction | Procesfunctie |
| LocationRef | location | Locatie-referentie |
| Site | Site | Vestiging |
| Department | Department | Afdeling |
| CostCenter | CostCenter | Kostenplaats |
| EquipmentType | EquipmentType | Equipmenttype |
| Vendor | Vendor (supplier) | Leverancier |
| Manufacturer | Vendor (supplier) | Fabrikant |
| ServiceVendor | Vendor (supplier) | Service-leverancier |
| ServiceContract | ServiceContract | Servicecontract |
| MaintenanceClassification | maintenance-classification | Onderhoudsconcept |
| Employee (Owner) | employee | Eigenaar |
| Building | Building | Gebouw |
| BuildingFloor | BuildingFloor | Verdieping |
| BuildingPart | BuildingPart | Bouwdeel |
| Space | Space | Ruimte |
| Article | article | Artikel |
| Batch | Batch | Partij |
| Decomposition | Decomposition | Decompositie |
| RiskClass | RiskClass | Risicoklasse |
| Criticality | RiskClass | Criticaliteit |
| Warehouse | Warehouse | Magazijn |
| PmWorkOrders | List<PmWorkOrder> | PO-modellen |
| PmJobs | List[PmJob] | PO-taken |
| SpareParts | List[EquipmentSparePart] | Reservedelen |
| EquipmentMeasurementPoints | List[EquipmentMeasurementPoint] | Meetpunten |
| EquipmentServiceContracts | List[EquipmentServiceContract] | Servicecontract-koppelingen |
| InspectionLines | List[InspectionLine] | Inspectielijnen |
Tips voor consultantsbewerken
- Hierarchie: Equipment kan hiermee in een boomstructuur worden opgebouwd via
PartOfEquipment. GebruikTopOfEquipmentIdom snel de root te vinden. - Contexts: De context bepaalt welk scherm en welke processen beschikbaar zijn. Installatie (1) is de standaard voor TD-assets, Fleet (8) voor voertuigen, Instrument (512) voor meetinstrumenten.
- Meetpunten: Via
EquipmentMeasurementPointskunnen meterstanden en meetwaarden worden bijgehouden die preventief onderhoud triggeren. - Wisselstukken: Met
ExchangePart = truewordt het equipment behandeld als wisselstuk met een eigen levenscyclus (Inzetbaar/Operationeel/Defect). - Kosten:
CostCurrentYear,CostLastYearenTotalCostworden automatisch berekend op basis van geboekte uren, materialen en inkoop. - Extra-velden: Er zijn diverse Extra-velden (Extra1 t/m Extra9) en Tech-velden (Tech1 t/m Tech10) beschikbaar voor klantspecifieke gegevens.
- NFC/Barcode: Via
NFCSerialNumberen barcode-functionaliteit kan equipment worden gescand in de mobiele app. - Depreciation: Afschrijving kan worden geconfigureerd via
DepreciationActivated,DepreciationLifeen gerelateerde velden.
Database Detailsbewerken
De tabel dba.Equipment bevat 218 kolommen. Hieronder de belangrijkste technische details die niet direct zichtbaar zijn in de Properties-tabel.
Computed columns (berekende velden)bewerken
| Kolom | Formule | Toelichting |
|---|---|---|
EqmFileExtension |
'.html' |
Vast bestandstype voor rich-text velden |
EQMTEXT1_FT, EQMTEXT2_FT, EQMTEXT3_FT |
HTML-wrapping van tekstvelden | Full-text search representatie van de drie tekstvelden |
Let op: Equipment heeft geen functionele computed columns -- de berekende velden zijn puur technisch (full-text indexering). Kosten worden bijgehouden via triggers.
Kolommen gezet door triggersbewerken
De volgende kolommen worden automatisch bijgewerkt door database-triggers en mogen niet handmatig worden aangepast:
| Kolom | Type | Toelichting |
|---|---|---|
EqmCostLY |
decimal(21,5) | Kosten vorig jaar -- bijgewerkt via Cost-triggers |
EqmMaintTotal |
decimal(21,5) | Totale onderhoudskosten -- opgeteld uit Cost-tabel |
EqmMaintYear |
decimal(21,5) | Onderhoudskosten huidig jaar |
EqmReplCost |
decimal(21,5) | Vervangingswaarde (kan ook handmatig) |
EqmObjImpPmTasksToProcess |
int | Aantal nog te verwerken PO-taken uit onderhoudsconcept |
EqmPartOfEqmId |
nvarchar(24) | Bovenliggend equipment (gezet bij hierarchie-wijziging) |
EqmTopOfEqmId |
nvarchar(24) | Top van de hierarchie (automatisch bepaald) |
EqmBldId |
nvarchar(11) | Gebouw-ID (overgenomen uit relaties) |
EqmSitId |
nvarchar(8) | Vestiging (overgenomen van bovenliggend equipment/procesfunctie) |
EqmDepId |
nvarchar(11) | Afdeling (idem) |
EqmCcrId |
nvarchar(9) | Kostenplaats (idem) |
EqmPrfId |
nvarchar(50) | Procesfunctie (idem) |
EqmResoId |
nvarchar(11) | Reserveerbaar object-ID |
EqmNen2767P4Compliant |
smallint | NEN2767 P4 compliance (automatisch bepaald) |
EqmPrsId |
nvarchar(11) | Persoon/eigenaar (trigger-bijgewerkt) |
Belangrijke defaultsbewerken
| Kolom | Default | Toelichting |
|---|---|---|
EqmContext |
1 (Installatie) |
Standaard context |
EqmRecStatus |
0 (None) |
Standaard status |
EqmNoGroupPm |
1 (true) |
Individueel PO standaard aan |
EqmNen2767P4Compliant |
1 (true) |
NEN2767 P4 standaard compliant |
EqmReservable |
0 (false) |
Niet reserveerbaar standaard |
EqmState |
0 |
Beginstatus meterstand |
EqmRegisterObjectDowntime |
0 (false) |
Downtime-registratie standaard uit |
EqmRecCreateDate |
sysdatetimeoffset() |
Aanmaakdatum automatisch gevuld |
Triggers en externe triggersbewerken
Equipment heeft 3 eigen triggers (INSERT, UPDATE, INSTEAD OF DELETE) en wordt beinvloed door 17 externe triggers:
- Cost-triggers: Wijzigingen in de Cost-tabel updaten
EqmCostLY,EqmMaintTotal,EqmMaintYear - EqmSparePart-triggers: Wijzigingen in reservedelen updaten het equipment
- EqmTypeHierarchy-triggers: Wijzigingen in de type-hierarchie worden doorgecopieerd
- ObjectImportedPmTask-triggers: Bij import van PO-taken wordt
EqmObjImpPmTasksToProcessbijgewerkt - ReservableObject-triggers: Synchronisatie met reserveerbare objecten
- Company-triggers: Wijzigingen in bedrijfsinstellingen worden doorgevoerd
- UmmGlobals-triggers: Wijzigingen in globale instellingen
Consultanttip: Het INSTEAD OF DELETE-trigger op Equipment betekent dat equipment niet direct kan worden verwijderd. In plaats daarvan wordt een soft-delete uitgevoerd (status Trash).
Brondatabewerken
Let op: De wiki-samenvatting hierboven toont een curated subset van properties en praktische consultant-tips. Voor ground truth (exacte kolomnamen, alle properties, defaults, triggers) gebruik de onderstaande tools.
- Entity-definitie —
lookup_entity("Equipment")· reference/entities/Equipment Alle properties, contexts en statussen. Bron:Entities.xml. - DB-schema —
lookup_table_schema("Equipment")· reference/tables/Equipment Alle DB-kolommen, triggers, computed columns en defaults. Bron:database-schema.json. - Gerelateerde workflows —
find_workflows("", entity="Equipment")Alle Before/After Save events en andere workflow-ActionFields voor Equipment. Bron:workflows.xml. - Property-gebruik —
lookup_property_usage("Equipment", "Status")· reference/properties/Equipment Welke workflows een specifieke Equipment-property lezen/schrijven/filteren (bijv. 16 schrijvers en 28 lezers voorStatus). Bron:workflows.xml. - Workflow-XML van een vuller —
lookup_workflow("Equipment_BuildOut")De volledige logica achter de BuildOut-lifecycle (status-schrijven, exchange-part splitsing, ProcessFunction-filter). Bron:workflows.xml.
Zie ookbewerken
- job - Werkorders gekoppeld aan equipment
- pm-workorder - Preventief onderhoudsmodellen
- article - Reservedelen
- supplier - Leveranciers
- contract - Servicecontracten
- maintenance-classification - Onderhoudsconcepten
- location - Locaties