Ga naar hoofdinhoud
Versie: Versie 22

Veelgebruikte calculaties


Inleiding​

Dit artikel bevat kant-en-klare calculatievoorbeelden voor de meest voorkomende patronen in Fortes Change Cloud. Elk voorbeeld is op zichzelf staand en kan worden aangepast aan je eigen veldnamen en objecttypen.

Voor de volledige referentie van de calculatiesyntax en blokdocumentatie, zie Calculaties.


Statusindicator op basis van aantal​

Toon een groene of rode afbeelding op een portfolio-item, afhankelijk van of er gerelateerde logitems bestaan. Dit patroon wordt doorgaans gebruikt voor dashboards zoals "leerpunten ingevuld" of "plan-items geregistreerd".

Het statusveld gebruikt het type Afbeelding met de waarden Green;green,Red;red.

<calculations>
<!-- Green when at least one lesson-learned item exists under the ProjectReport -->
<calculation foldertypes="5003" break="true">
<depends>
<field>CustomY</field>
</depends>
<condition>
<cmp condition="greater">
<count>
<folderFilter foldertype="6051" relation="ProjectReport" />
</count>
<value>0</value>
</cmp>
</condition>
<value>green</value>
</calculation>
<!-- Red as fallback -->
<calculation foldertypes="5003">
<depends>
<field>CustomY</field>
</depends>
<value>red</value>
</calculation>
</calculations>

CustomY is een triggerveld op het niveau Leerpunt met calculatie-optie reference=ProjectReport. Wijzig foldertype="6051" in 5602 voor plan-items.


Onderliggende waarden optellen naar een hoger niveau​

Aggregeer een numeriek veld van plan-items (feature-niveau) naar een portfolio-item (epic-niveau).

Plan item: Custom14 (de waarde die wordt geaggregeerd):

Calculatie-optie: reference=ProjectReport

Portfolio-item (het geaggregeerde resultaat):

<calculation foldertypes="5003">
<sum>
<folderFilter foldertype="5602" relation="ProjectReport" />
<field>Custom14</field>
</sum>
</calculation>

Hetzelfde patroon geldt voor het optellen van velden op projectniveau naar een map of programma.


Plan-items optellen op projectniveau​

Aggregeer een veld van alle toegewezen plan-items naar projectniveau. Het filter IsAssigned sluit sjabloonrijen uit.

<calculation foldertypes="5000">
<sum>
<folderFilter foldertype="5602" parentsearchstructure="FirstChild=5601">
<IsAssigned filterValues="true" />
</folderFilter>
<field>CustomX</field>
</sum>
</calculation>

Calculatie-optie: 0


Een percentage berekenen​

Deel het ene veld door het andere en vermenigvuldig met 100.

<calculation>
<mul>
<div>
<field>CustomX</field>
<field>CustomY</field>
</div>
<value>100</value>
</mul>
</calculation>

Resultaat: (CustomX / CustomY) × 100


Absoluut verschil tussen twee velden​

Bereken het altijd-positieve verschil tussen twee velden, ongeacht welke van de twee groter is.

<calculation>
<abs>
<add>
<field minus="true">Custom153</field>
<field>Custom154</field>
</add>
</abs>
</calculation>

Voorbeeld: Custom153 = 100, Custom154 = 150 → resultaat is 50. Als de waarden worden omgedraaid, is het resultaat nog steeds 50.


Openstaande acties op een project tellen​

Een patroon met twee velden om logitems met een specifieke statuswaarde op projectniveau te tellen.

Actielog: CustomA (kopieert status, gebruikt als trigger):

<calculation>
<depends>
<field>Status</field>
<field>OrderNr</field>
</depends>
<folderfield>
<field>Status</field>
</folderfield>
</calculation>

Calculatie-optie: 1,reference=P2Project

Project: CustomB (telt openstaande acties):

<calculation foldertypes="!4901">
<depends>
<field>CustomA</field>
</depends>
<count>
<folderFilter foldertype="6041" parentsearchstructure="FirstChild=6040">
<P2Project operator="equals" filterValues="%pageid%" />
<Status operator="equals" filterValues="Open" />
</folderFilter>
</count>
</calculation>

Een veldwaarde kopiëren via objectreferentie​

Neem de waarde van een veld over van een gerefereerd object.

Custom1: objectreferentieveld dat verwijst naar een project.

Custom2: veld dat de waarde overneemt van het gerefereerde object:

<calculation>
<folderfield>
<field reference="Custom1">Custom105</field>
</folderfield>
</calculation>

Calculatie-optie: 1


Cross-object trigger met depends​

Wanneer een calculatie afhankelijk is van een veld op een ander objectniveau, gebruik je <depends> samen met een calculatie-optie om de trigger te koppelen.

Plan item: CustomA (kopieert einddatum, fungeert als trigger):

<calculation>
<folderfield>
<field>Enddate</field>
</folderfield>
</calculation>

Calculatie-optie: relation=ProductID[6061]

Logitem: CustomB (leest van het plan-item via de trigger):

<calculation>
<depends>
<field>ProductID</field>
</depends>
<folderfield>
<field reference="ProductID">CustomA</field>
</folderfield>
</calculation>

De datum vastleggen wanneer een specifiek veld verandert​

Sla de wijzigingsdatum op wanneer een bepaald veld verandert. Handig voor audit trails.

<calculation>
<depends>
<field>Custom121</field>
</depends>
<folderfield>
<field>ModificationDate</field>
</folderfield>
</calculation>

Risicoscore​

Vermenigvuldig risico-ernst met risicokans om een numerieke score te berekenen. Wordt rechtstreeks gebruikt op een risico-object.

<calculation>
<mul>
<field>RiskSeverity</field>
<field>RiskLikelihood</field>
</mul>
</calculation>

Dit veld wordt vaak gebruikt als invoer voor een voorwaardelijk statusveld (bijvoorbeeld groen als score < 9, rood als score ≥ 9).


Voorwaardelijke waarde op basis van een gerefereerd veld​

Geef een waarde terug op basis van de inhoud van een veld op een gerefereerd object.

<calculations>
<calculation foldertypes="5000" break="true">
<condition>
<cmp condition="after">
<field reference="Portfolio">Custom2</field>
<field>Enddate</field>
</cmp>
</condition>
<value>Yes</value>
</calculation>
<calculation foldertypes="5000">
<condition>
<cmp condition="before">
<field reference="Portfolio">Custom2</field>
<field>Enddate</field>
</cmp>
</condition>
<value>No</value>
</calculation>
</calculations>

Calculatie-optie op het projectveld: 1

Portfolioveld Custom2 vereist calculatie-optie: relation=Portfolio[5000]


Bouw een HTML-hyperlink met <concat> om een klikbare link te tonen in een grid of canvas. Vervang de URL door de URL van je eigen omgeving.

<calculation>
<concat separator="">
<value>&lt;a href="https://YOUR-ENVIRONMENT.fortes-online.com/online/Folder/Folder.jsp?FolderID=</value>
<field>FolderID</field>
<value>" target="_blank"&gt;&lt;b&gt;</value>
<field>Name</field>
<value>&lt;/b&gt;&lt;/a&gt;</value>
</concat>
</calculation>

Resultaat: een vetgedrukte klikbare link met de naam van het item, die in een nieuw tabblad wordt geopend.


Afhankelijkhedenlog​

Toon een logboek op een project dat afhankelijkheden tussen plan-items bijhoudt, inclusief bufferdagen en een statusindicator die rood wordt wanneer de opvolger start voordat de voorganger eindigt.

Dit patroon vereist een custom logobject en triggervelden op het niveau plan-item. De hieronder gebruikte interne namen zijn voorbeelden; kies namen die passen bij je configuratie. Het voorvoegsel C- wordt automatisch toegevoegd door FCC.

Stap 1: Triggervelden op het niveau Plan item​

Voeg twee customvelden toe aan het object Plan item. Deze velden fungeren als calculatietriggers, zodat wijzigingen in de datums van plan-items doorwerken in de afhankelijkhedenlog.

Interne naamWeergavenaamTypeCalculatie-optie
CustomXTrigger einddatumDatumrelation=CAfhankelijkheid_plan_item[1000003]
CustomYTrigger startdatumDatumrelation=CAfhankelijk_plan_item[1000003]

Vervang 1000003 door de daadwerkelijke ID van je custom logobject.

CustomX-calculatie:

<calculation foldertypes="5602">
<folderfield>
<field>Enddate</field>
</folderfield>
</calculation>

CustomY-calculatie:

<calculation foldertypes="5602">
<folderfield>
<field>Startdate</field>
</folderfield>
</calculation>

Stap 2: Velden op het custom logobject​

Voeg de volgende velden toe aan het custom logobject.


C-Afhankelijkheid_plan_item: objectreferentie naar het plan-item van de voorganger

Type: Objectreferentie (Plan item), Gebruik: Conditioneel

<conditions>
<dependencyconfig>
<options>
<dependingfield>C-Afhankelijkheid_project</dependingfield>
<foldertype>5602</foldertype>
<filterfield>P2Project</filterfield>
</options>
</dependencyconfig>
</conditions>

C-Afhankelijk_plan_item: objectreferentie naar het plan-item van de opvolger

Type: Objectreferentie (Plan item), Gebruik: Conditioneel

<conditions>
<dependencyconfig>
<options>
<dependingfield>P2Project</dependingfield>
<foldertype>5602</foldertype>
<filterfield>P2Project</filterfield>
</options>
</dependencyconfig>
</conditions>

C-Afhankelijkheid_project: objectreferentie naar het project

Type: Objectreferentie (Project). Geen calculatie nodig.


C-Afhankelijkheid_einddatum: einddatum van het plan-item van de voorganger

Type: Datum, Gebruik: Berekend

<calculation>
<depends>
<field>CustomX</field>
</depends>
<folderfield>
<field reference="C-Afhankelijkheid_plan_item">Enddate</field>
</folderfield>
</calculation>

C-Plan_item_startdatum: startdatum van het plan-item van de opvolger

Type: Datum, Gebruik: Berekend

<calculation>
<depends>
<field>CustomY</field>
</depends>
<folderfield>
<field reference="C-Afhankelijk_plan_item">Startdate</field>
</folderfield>
</calculation>

C-Bufferdagen: kalenderdagen tussen het einde van de voorganger en de start van de opvolger

Type: Getal, Gebruik: Berekend

Een positieve waarde betekent dat er speling is. Een negatieve waarde betekent dat de opvolger start voordat de voorganger is afgerond.

<calculation>
<depends>
<field>C-Afhankelijkheid_einddatum</field>
<field>C-Plan_item_startdatum</field>
</depends>
<nrdaysbetween>
<field reference="C-Afhankelijkheid_plan_item">Enddate</field>
<field reference="C-Afhankelijk_plan_item">Startdate</field>
</nrdaysbetween>
</calculation>

C-Afhankelijkheid_status: statusindicator

Type: Afbeelding (Green;green,Red;red), Gebruik: Berekend

<calculations>
<!-- Green when buffer >= 0: successor starts after predecessor ends -->
<calculation break="true">
<depends>
<field>C-Bufferdagen</field>
</depends>
<condition>
<cmp condition="smaller" value="0">
<field>C-Bufferdagen</field>
</cmp>
</condition>
<value>green</value>
</calculation>
<!-- Red when buffer is negative: overlap detected -->
<calculation>
<depends>
<field>C-Bufferdagen</field>
</depends>
<value>red</value>
</calculation>
</calculations>

Stap 3: De log toevoegen aan het projectmodel​

Voeg in het projectmodel een nieuw segment van het type Lijst toe op de overzichtspagina of een eigen lay-out. Selecteer het custom logobject en configureer de gewenste kolommen. De kolom Naam is verplicht en kan niet worden verwijderd.