Project
De Project-entiteit beheert projecten in Ultimo. Een project groepeert WorkOrders en jobs en biedt budgetbewaking, voortgangsregistratie en kostenanalyse op een hoger aggregatieniveau. Projecten worden ook gebruikt voor verhuizingen en plant-stops.
Entiteitsnaam: Project
Databasetabel: Project
Primaire sleutel: PRJID (nvarchar 6)
Contextsbewerken
| Value | Naam | Beschrijving |
|---|---|---|
| 0 | ProjectContext.None | Standaard |
| 1 | ProjectContext.Standard | Standaard |
| 2 | ProjectContext.Move | Verhuizing |
| 4 | ProjectContext.Stop | Stop |
Statussenbewerken
| Value | Naam | Beschrijving |
|---|---|---|
| -1 | ProjectStatus.Trash | Trash |
| 0 | ProjectStatus.None | None |
| 1 | ProjectStatus.Created | In voorbereiding |
| 2 | ProjectStatus.Approved | Goedgekeurd |
| 4 | ProjectStatus.Active | In uitvoering |
| 16 | ProjectStatus.Finished | Gereed |
| 32 | ProjectStatus.Closed | Gesloten |
| 8192 | ProjectStatus.Postponed | Uitgesteld |
Belangrijkste propertiesbewerken
| Property | Type | Kolom | Nullable | Omschrijving |
|---|---|---|---|---|
| Id | UltimoString(6) | PRJID | Nee | Project-ID |
| Description | UltimoString(200) | PRJDESCR | Ja | Omschrijving |
| BudgetOriginal | CompanyMoney | PRJBUDGETORG | Nee | Oorspronkelijk budget (readonly) |
| BudgetMutation | CompanyMoney | PRJBUDGETMUTATION | Nee | Budgetmutaties (readonly) |
| BudgetTotal | CompanyMoney | PRJBUDGETTOTAL | Nee | Totaal budget (readonly/computed) |
| CostTotal | CompanyMoney | PRJCOSTTOTAL | Nee | Totale kosten (readonly/computed) |
| CalculationTotal | CompanyMoney | PRJCALCTOTAL | Nee | Totaal berekend (readonly/computed) |
| PercentageComplete | Decimal | PRJPERCCOMPLETE | Nee | Voortgangspercentage |
| PercentageCompleteCalculationMethod | Boolean | PRJPERCCOMPLETECALCMETHOD | Nee | Berekeningswijze voortgang |
| ScheduledStartDate | DateTime? | PRJSCHSTARTDATE | Ja | Geplande startdatum |
| ScheduledFinishDate | DateTime? | PRJSCHFINISHDATE | Ja | Geplande einddatum |
| ActualStartDate | DateTime? | PRJACTSTARTDATE | Ja | Werkelijke startdatum |
| ActualFinishDate | DateTime? | PRJACTFINISHDATE | Ja | Werkelijke einddatum |
| ActualDuration | Decimal | PRJACTDURATION | Nee | Werkelijke doorlooptijd |
| Hours | Decimal | PRJHOURS | Nee | Gerealiseerde uren (readonly) |
| HoursCalculated | Decimal | PRJHOURSCALC | Nee | Berekende uren (readonly) |
| Priority | Priority | PRJPRIID | Ja | Prioriteit (default: M) |
| ToSpendForecast | CompanyMoney | PRJTOSPENDFORECAST | Nee | Prognose nog te besteden (readonly) |
| DefinitionText | UltimoString | PRJDEFINITIONTEXT | Ja | Definitietekst |
| CommentText | UltimoString | PRJCOMMENTTEXT | Ja | Opmerkingtekst |
Relaties met andere entiteitenbewerken
| Property | Verwijst naar | Omschrijving |
|---|---|---|
| Manager | employee | Projectmanager |
| Equipment | equipment | Gekoppeld equipment |
| CostCenter | CostCenter | Kostenplaats |
| Change | Change | Wijziging (ITIL) |
| WorkOrders | List<WorkOrder> | Deelprojecten/werkorders |
| Jobs | List<Job> | Direct gekoppelde jobs |
| PurchaseLines | List[PurchaseLine] | Inkoopregels |
| PurchaseRequestLines | List[PurchaseRequestLine] | Bestelaanvraagregels |
Tips voor consultantsbewerken
- Hierarchie: Project -> WorkOrder -> Job. Het project is het hoogste aggregatieniveau.
- Stops: Context
Stop(4) wordt gebruikt voor plant-stops/shutdowns. Dit werkt samen met stop-gerelateerde WorkOrders en PO-modellen. - Verhuizingen: Context
Verhuizing(2) wordt gebruikt voor het managen van kantoorverhuizingen. - Budgetbewaking: Budget wordt opgebouwd vanuit de WorkOrders. Het project toont het geaggregeerde totaal.
- Voortgang:
PercentageCompletekan automatisch worden berekend op basis van onderliggende jobs of handmatig worden ingevuld, afhankelijk vanPercentageCompleteCalculationMethod. - Kosten-aggregatie: Alle kostensoorten worden automatisch opgerold vanuit jobs via WorkOrders naar het project.
Database Detailsbewerken
De tabel dba.Project bevat 84 kolommen.
Computed columns (berekende velden)bewerken
| Kolom | Formule (vereenvoudigd) | Toelichting |
|---|---|---|
PrjBudgetTotal |
PrjBudgetOrg + PrjBudgetMutation |
Totaal budget -- oorspronkelijk budget plus mutaties |
PrjCalcTotal |
PrjMatCalc + PrjExtCalc + PrjTlsCalc + PrjResCalc + PrjPurchaseRequestCalc + PrjPurchCalc |
Totaal berekend -- som van alle begrote kostencomponenten |
PrjCostTotal |
PrjMatCost + PrjExtCost + PrjTlsCost + PrjLabCost + PrjPurchCost + PrjMemorandumCost |
Totale werkelijke kosten |
PrjInvTotal |
PrjEqmInv + PrjMatInv + PrjExtInv + PrjTlsInv + PrjLabInv + PrjPurchInv + PrjIoTermInv |
Totaal gefactureerd |
Consultanttip: De vier computed totaalkolommen zijn identiek van structuur als bij WorkOrder. Dit maakt het mogelijk om dezelfde rapportagelogica te hergebruiken op project- en werkorderniveau.
Kolommen gezet door triggers (selectie van 31 trigger-kolommen)bewerken
Kostengerelateerde kolommen (alle decimal(21,5), geaggregeerd vanuit onderliggende WorkOrders):
| Kolom | Toelichting |
|---|---|
PrjMatCalc / PrjMatCost / PrjMatInv |
Materiaalkosten: berekend / werkelijk / gefactureerd |
PrjExtCalc / PrjExtCost / PrjExtInv |
Externe kosten |
PrjTlsCalc / PrjTlsCost / PrjTlsInv |
Gereedschapskosten |
PrjResCalc |
Resourcekosten (berekend) |
PrjLabCost / PrjLabInv |
Arbeidskosten / gefactureerd |
PrjPurchaseRequestCalc / PrjPurchCalc / PrjPurchCost / PrjPurchInv / PrjPurchCommit |
Inkoopkosten |
PrjMemorandumCost |
Pro-memorie kosten |
PrjEqmInv / PrjIoTermInv / PrjIOFixedPriceCost / PrjIoTermCost |
Facturatie- en uitbestedingskosten |
PrjBudgetOrg / PrjBudgetMutation |
Budget: oorspronkelijk en mutaties |
PrjToSpendForeCast |
Prognose nog te besteden |
Urengerelateerde trigger-kolommen:
| Kolom | Type | Toelichting |
|---|---|---|
PrjHours / PrjHoursCalc / PrjHoursInv |
decimal(21,2) | Uren: gerealiseerd / berekend / gefactureerd |
PrjHoursToPlan |
decimal(21,2) | Nog te plannen uren |
PrjTotalHoursPlanned |
decimal(21,2) | Totaal geplande uren |
PrjPercComplete |
decimal(21,2) | Voortgangspercentage |
Belangrijke defaultsbewerken
| Kolom | Default | Toelichting |
|---|---|---|
PrjContext |
1 (Standaard) |
Standaard context |
PrjRecStatus |
0 (None) |
Standaard status |
PrjBudgetOrg |
0 |
Geen initieel budget |
PrjPercCompleteCalcMethod |
0 |
Standaard berekeningswijze voortgang |
PrjSearchPOJobs |
2 |
Zoek PO-jobs (standaard: 2) |
PrjRecCreateDate |
sysdatetimeoffset() |
Aanmaakdatum automatisch |
Triggers en externe triggersbewerken
Project heeft 1 eigen trigger (UPDATE) en wordt beinvloed door 5 externe triggers: - WorkOrder-triggers: Bij INSERT/UPDATE/DELETE van WorkOrders worden alle kosten- en urenkolommen opnieuw geaggregeerd op projectniveau - Cost-triggers: Kostenboekingen propageren naar het project
Consultanttip: De aggregatieketen is: Job -> WorkOrder -> Project. Elke kostenmutatie op een Job triggert updates op de WorkOrder, die vervolgens updates op het Project triggert. Dit cascading-effect is belangrijk om te begrijpen bij performance-analyses. Het project heeft dezelfde kostenstructuur als WorkOrder, wat rapportage-consistentie waarborgt.
Zie ookbewerken
- work-order - Deelprojecten/werkorders binnen het project
- job - Werkorders
- equipment - Assets
- employee - Projectmanager