WorkOrder (Werkorder / Project / Stop)
De WorkOrder-entiteit wordt gebruikt voor het bundelen van jobs in projecten, deelprojecten en stops. Een WorkOrder fungeert als container met budgetbewaking en voortgangsregistratie. Let op: in Ultimo-terminologie is "WorkOrder" niet hetzelfde als een job/werkorder in de dagelijkse betekenis.
Entiteitsnaam: WorkOrder
Databasetabel: WorkOrder
Primaire sleutel: WOID (nvarchar 9)
Contextsbewerken
| Value | Naam | Beschrijving |
|---|---|---|
| 0 | WorkOrderContext.None | Standaard |
| 1 | WorkOrderContext.Standard | Standaard |
| 2 | WorkOrderContext.Change | Wijziging |
| 4 | WorkOrderContext.Subproject | Deelproject |
| 8 | WorkOrderContext.Stop | Stop |
Statussenbewerken
| Value | Naam | Beschrijving |
|---|---|---|
| -1 | WorkOrderStatus.Trash | Trash |
| 0 | WorkOrderStatus.None | None |
| 1 | WorkOrderStatus.Created | Open |
| 2 | WorkOrderStatus.Approved | Goedgekeurd |
| 4 | WorkOrderStatus.Active | Actief |
| 16 | WorkOrderStatus.Finished | Gereed |
| 32 | WorkOrderStatus.Closed | Gesloten |
| 8192 | WorkOrderStatus.Postponed | Uitgesteld |
Belangrijkste propertiesbewerken
| Property | Type | Kolom | Nullable | Omschrijving |
|---|---|---|---|---|
| Id | UltimoString(9) | WOID | Nee | WorkOrder-ID |
| Description | UltimoString(200) | WODESCR | Ja | Omschrijving |
| BudgetOriginal | CompanyMoney | WOBUDGETORG | Nee | Oorspronkelijk budget |
| BudgetMutation | CompanyMoney | WOBUDGETMUTATION | Nee | Budgetmutaties (readonly) |
| BudgetTotal | CompanyMoney | WOBUDGETTOTAL | Nee | Totaal budget (readonly/computed) |
| CostTotal | CompanyMoney | WOCOSTTOTAL | Nee | Totale kosten (readonly/computed) |
| CalculationTotal | CompanyMoney | WOCALCTOTAL | Nee | Totaal berekend (readonly/computed) |
| PercentageComplete | Decimal | WOPERCCOMPLETE | Nee | Voortgangspercentage |
| Duration | Decimal | WODURATION | Nee | Doorlooptijd |
| Hours | Decimal | WOHOURS | Nee | Gerealiseerde uren (readonly) |
| HoursCalculated | Decimal | WOHOURSCALC | Nee | Berekende uren (readonly) |
| ScheduledStartDate | DateTime? | WOSCHSTARTDATE | Ja | Geplande startdatum |
| TargetDate | DateTime? | WOTARGETDATE | Ja | Streefdatum |
| AutoClose | Boolean | WOAUTOCLOSE | Nee | Auto-sluiten als alle jobs klaar zijn |
| SortOrder | Int32 | WOSORTORDER | Nee | Sorteervolgorde |
| Text | UltimoString | WOTEXT | Ja | Tekst |
| ToSpendForecast | CompanyMoney | WOTOSPENDFORECAST | Nee | Prognose nog te besteden |
Relaties met andere entiteitenbewerken
| Property | Verwijst naar | Omschrijving |
|---|---|---|
| Project | project | Bovenliggend project |
| Equipment | equipment | Gekoppeld equipment |
| Employee | employee | Verantwoordelijke medewerker |
| ProjectManagerEmployee | employee | Projectmanager |
| PmWorkOrder | PmWorkOrder | PO-model |
| Priority | Priority | Prioriteit |
| WorkOrderType | WorkOrderType | Werkordertype |
| ProcessFunction | ProcessFunction | Procesfunctie |
| Vendor | Vendor (supplier) | Leverancier |
| CostCenter | CostCenter | Kostenplaats |
| Department | Department | Afdeling |
| Site | Site | Vestiging |
| SkillCategory | SkillCategory | Vakgroep |
| Jobs | List<Job> | Gekoppelde jobs |
| Building | Building | Gebouw |
Tips voor consultantsbewerken
- Stops: Context
Stop(8) wordt gebruikt voor plant-stops/shutdowns waarbij meerdere jobs worden gebundeld. - Deelprojecten: Context
Deelproject(4) is een WorkOrder die onder een project valt. - Budgetbewaking: Het budget wordt bewaakt via
BudgetOriginal+BudgetMutation=BudgetTotal. Kosten worden automatisch opgerold vanuit onderliggende jobs. - Auto-sluiten: Met
AutoClose = truewordt de WorkOrder automatisch gesloten als alle onderliggende jobs zijn afgerond. - Kosten: Alle kostensoorten (uren, materialen, inkoop, extern) worden vanuit de jobs geaggregeerd naar de WorkOrder.
- Prognose: Via
ToSpendForecastkan een inschatting worden gegeven van de nog te verwachten kosten.
Database Detailsbewerken
De tabel dba.WorkOrder bevat 113 kolommen.
Computed columns (berekende velden)bewerken
| Kolom | Formule (vereenvoudigd) | Toelichting |
|---|---|---|
WoBudgetTotal |
WoBudgetOrg + WoBudgetMutation |
Totaal budget -- oorspronkelijk budget plus mutaties |
WoCalcTotal |
WoMatCalc + WoExtCalc + WoTlsCalc + WoResCalc + WoPurchaseRequestCalc + WoPurchCalc |
Totaal berekend -- som van alle begrote kostencomponenten |
WoCostTotal |
WoMatCost + WoExtCost + WoTlsCost + WoLabCost + WoPurchCost + WoMemorandumCost |
Totale werkelijke kosten |
WoInvTotal |
WoEqmInv + WoMatInv + WoExtInv + WoTlsInv + WoLabInv + WoPurchInv + WoIoTermInv |
Totaal gefactureerd |
Consultanttip: De vier computed totaalkolommen geven een compleet financieel overzicht: budget vs. begroot vs. werkelijk vs. gefactureerd. Gebruik deze voor budgetbewaking en financiele rapportages.
Kolommen gezet door triggers (selectie van 29 trigger-kolommen)bewerken
Kostengerelateerde kolommen (alle decimal(21,5), geaggregeerd vanuit onderliggende Jobs):
| Kolom | Toelichting |
|---|---|
WoMatCalc / WoMatCost / WoMatInv |
Materiaalkosten: berekend / werkelijk / gefactureerd |
WoExtCalc / WoExtCost / WoExtInv |
Externe kosten |
WoTlsCalc / WoTlsCost / WoTlsInv |
Gereedschapskosten |
WoResCalc |
Resourcekosten (berekend) |
WoLabCost / WoLabInv |
Arbeidskosten / gefactureerd |
WoPurchaseRequestCalc / WoPurchCalc / WoPurchCost / WoPurchInv / WoPurchCommit |
Inkoopkosten (divers) |
WoMemorandumCost |
Pro-memorie kosten |
WoEqmInv / WoIoTermInv / WoIOFixedPriceCost / WoIoTermCost |
Facturatie- en uitbestedingskosten |
WoBudgetMutation |
Budgetmutaties (uit WorkOrderBudgetSuppl) |
Overige trigger-kolommen:
| Kolom | Type | Toelichting |
|---|---|---|
WoHours / WoHoursCalc / WoHoursInv |
decimal(21,2) | Uren: gerealiseerd / berekend / gefactureerd |
WoHoursToPlan |
decimal(21,2) | Nog te plannen uren |
WoTotalHoursPlanned |
decimal(21,2) | Totaal geplande uren |
WoPercComplete |
decimal(21,2) | Voortgangspercentage |
Belangrijke defaultsbewerken
| Kolom | Default | Toelichting |
|---|---|---|
WoContext |
1 (Standaard) |
Standaard context |
WoRecStatus |
0 (None) |
Standaard status |
WoAutoClose |
0 (false) |
Niet automatisch sluiten |
WoBudgetOrg |
0 |
Geen initieel budget |
WoBudgetMutation |
0 |
Geen mutaties |
WoReportState |
0 |
Rapportagestatus initieel |
WoRecCreateDate |
sysdatetimeoffset() |
Aanmaakdatum automatisch |
Triggers en externe triggersbewerken
WorkOrder heeft 3 eigen triggers (UPDATE, DELETE-summary, INSERT/UPDATE-summary) en wordt beinvloed door 5 externe triggers:
- Job-triggers: Bij INSERT/UPDATE/DELETE van jobs worden alle kosten- en urenkolommen opnieuw geaggregeerd
- WorkOrderBudgetSuppl-triggers: Budgetsuppleties updaten WoBudgetMutation
Consultanttip: De WorkOrder-tabel aggregeert alle kosten vanuit onderliggende Jobs. Dit betekent dat de financiele kolommen op WorkOrder altijd actueel zijn, maar ook dat elke Job-mutatie een UPDATE op de WorkOrder triggert. Bij grote aantallen jobs onder een WorkOrder kan dit performance-impact hebben.
Zie ookbewerken
- project - Projecten (bovenliggend niveau)
- job - Werkorders binnen de WorkOrder
- pm-workorder - PO-modellen die WorkOrders gebruiken
- equipment - Assets