Spring til indholdet

Hold en beregnet kolonne opdateret med dagens dato

Today kan ikke bruges i en beregnet kolonne. Et dagligt flow, der skriver dagens dato ind i formlen, får alle elementer regnet om uden at røre ét eneste af dem.

Opdateret Power AutomateSharePoint Online 2 min. læsning

En beregnet kolonne, der skal regne med dagens dato — dage til forfald, alder på en sag — er noget af det, flest bliver irriteret over i SharePoint. Today kan ikke bruges i formlen, og selv dengang tricket med en kolonne ved navn Today virkede, blev værdien kun regnet ud, når elementet blev gemt. Den stod stille resten af tiden.

Men en beregnet kolonne regnes om for hele listen, hver gang formlen ændres. Det er nok at ændre kolonnen, ikke elementerne. Så et flow, der én gang i døgnet skriver dagens dato ind i formlen som en fast dato, holder kolonnen opdateret.

Fremgangsmåde#

Flowet starter med en Recurrence, der kører én gang om dagen, og har én handling: Send an HTTP request to SharePoint. Handlingen hører til SharePoint-connectoren og kræver ikke Premium.

I eksemplet står kolonnen CalcToday på listen Tasks og viser antal dage til DueDate.

Metode:  POST
URI:     _api/web/lists/getbytitle('Tasks')/fields/getbytitle('CalcToday')

Headers:

NavnVærdi
Content-Typeapplication/json;odata=verbose
Acceptapplication/json;odata=verbose
X-HTTP-MethodMERGE

Body, hvor dagens dato sættes ind med udtryk:

{
  '__metadata': { 'type': 'SP.FieldCalculated' },
  'Formula': '=[DueDate]-DATE(@{formatDateTime(utcNow(),'yyyy')},@{formatDateTime(utcNow(),'MM')},@{formatDateTime(utcNow(),'dd')})'
}

Kører flowet den 24. september 2026, bliver formlen =[DueDate]-DATE(2026,09,24), og SharePoint regner alle elementer om.

Det der driller#

  • Formlen skal stadig være gyldig. Den afprøves i brugerfladen først, med en fast dato i stedet for udtrykkene. Resten af body og opbygningen af et beregnet felt står i Kolonner på en SharePoint-liste med REST.
  • utcNow() er UTC. Kører flowet lige efter midnat dansk tid, er datoen i UTC stadig i går. Brug convertFromUtc(utcNow(),'Romance Standard Time') i stedet, eller lad flowet køre om morgenen.
  • Resultattypen følger kolonnen. MERGE ændrer kun formlen. Et resultat i dage er et tal, så kolonnen skal returnere Tal.
  • Store lister. Omregningen sker for hele listen på én gang. På lister over grænsen på 5.000 elementer er den ikke efterprøvet.

Alle noter