From 5f2d981131f4049610deeb6000f1081b9b1099e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olav=20S=C3=B8rlie?= Date: Wed, 4 Feb 2026 15:12:25 +0100 Subject: [PATCH 1/5] Added docs for arithmetic expressions --- .../reference/logic/expressions/_index.en.md | 84 +++++++++++++++---- .../reference/logic/expressions/_index.nb.md | 84 +++++++++++++++---- 2 files changed, 140 insertions(+), 28 deletions(-) diff --git a/content/altinn-studio/v8/reference/logic/expressions/_index.en.md b/content/altinn-studio/v8/reference/logic/expressions/_index.en.md index aac4977790..ae9b72c97f 100644 --- a/content/altinn-studio/v8/reference/logic/expressions/_index.en.md +++ b/content/altinn-studio/v8/reference/logic/expressions/_index.en.md @@ -296,20 +296,25 @@ These functions are available for use in expressions: ### Strings and numbers | Function Name | Parameters | Return Value | Frontend | Backend | -| ----------------------------------------- | ------------------------------------------------------------------- | ------------------ | -------- | ------- | -| [`lowerCase`](#func-lowerCase-upperCase) | [String](#strings) | [String](#strings) | ✅ | ✅ | -| [`upperCase`](#func-lowerCase-upperCase) | [String](#strings) | [String](#strings) | ✅ | ✅ | -| [`lowerCaseFirst`](#func-lcFirst-ucFirst) | [String](#strings) | [String](#strings) | ✅ | ✅ | -| [`upperCaseFirst`](#func-lcFirst-ucFirst) | [String](#strings) | [String](#strings) | ✅ | ✅ | -| [`stringLength`](#func-stringLength) | [String](#strings) | [Number](#numbers) | ✅ | ✅ | -| [`stringIndexOf`](#func-stringIndexOf) | [String](#strings), [String](#strings) | [Number](#numbers) | ✅ | ✅ | -| [`stringSlice`](#func-stringSlice) | [String](#strings), [Number](#numbers), optional [Number](#numbers) | [String](#strings) | ✅ | ✅ | -| [`stringReplace`](#func-stringReplace) | [String](#strings), [String](#strings), [String](#strings) | [String](#strings) | ✅ | ✅ | -| [`text`](#func-text) | [String](#strings) | [String](#strings) | ✅ | ❌ | -| [`language`](#func-language) | None | [String](#strings) | ✅ | ❌ | -| [`displayValue`](#func-displayValue) | [String](#strings) | [String](#strings) | ✅ | ❌ | -| [`round`](#func-round) | [Number](#numbers), optional [Number](#numbers) | [String](#strings) | ✅ | ✅ | -| [`formatDate`](#func-formatDate) | [Date/time](#dates), optional [String](#strings) | [String](#strings) | ✅ | ✅ | +|-------------------------------------------|---------------------------------------------------------------------| ------------------ |----------|---------| +| [`lowerCase`](#func-lowerCase-upperCase) | [String](#strings) | [String](#strings) | ✅ | ✅ | +| [`upperCase`](#func-lowerCase-upperCase) | [String](#strings) | [String](#strings) | ✅ | ✅ | +| [`lowerCaseFirst`](#func-lcFirst-ucFirst) | [String](#strings) | [String](#strings) | ✅ | ✅ | +| [`upperCaseFirst`](#func-lcFirst-ucFirst) | [String](#strings) | [String](#strings) | ✅ | ✅ | +| [`stringLength`](#func-stringLength) | [String](#strings) | [Number](#numbers) | ✅ | ✅ | +| [`stringIndexOf`](#func-stringIndexOf) | [String](#strings), [String](#strings) | [Number](#numbers) | ✅ | ✅ | +| [`stringSlice`](#func-stringSlice) | [String](#strings), [Number](#numbers), optional [Number](#numbers) | [String](#strings) | ✅ | ✅ | +| [`stringReplace`](#func-stringReplace) | [String](#strings), [String](#strings), [String](#strings) | [String](#strings) | ✅ | ✅ | +| [`text`](#func-text) | [String](#strings) | [String](#strings) | ✅ | ❌ | +| [`language`](#func-language) | None | [String](#strings) | ✅ | ❌ | +| [`displayValue`](#func-displayValue) | [String](#strings) | [String](#strings) | ✅ | ❌ | +| [`round`](#func-round) | [Number](#numbers), optional [Number](#numbers) | [String](#strings) | ✅ | ✅ | +| [`formatDate`](#func-formatDate) | [Date/time](#dates), optional [String](#strings) | [String](#strings) | ✅ | ✅ | +| [`plus`](#func-plus) | [Number](#numbers), none or multiple [numbers](#numbers) | [Number](#numbers) | ✅ | ✅ | +| [`minus`](#func-minus) | [Number](#numbers), none or multiple [numbers](#numbers) | [Number](#numbers) | ✅ | ✅ | +| [`multiply`](#func-multiply) | [Number](#numbers), one or multiple [numbers](#numbers) | [Number](#numbers) | ✅ | ✅ | +| [`divide`](#func-divide) | [Number](#numbers), one or multiple [numbers](#numbers) | [Number](#numbers) | ✅ | ✅ | +| [`average`](#func-average) | [Number](#numbers), one or multiple [numbers](#numbers) | [Number](#numbers) | ✅ | ✅ | ### Lookup, components and data @@ -1078,6 +1083,57 @@ The expression above retrieves the text of the option (if used in filtering opti returns an error message. {{% /expandlarge %}} +{{% expandlarge id="func-plus" header="plus" %}} +The `plus` function expects at least one number, either decimal or integer. + +Example: +```json +["plus", 22, 9.2] +``` +Results in the number value `31.2` +{{% /expandlarge %}} + +{{% expandlarge id="func-minus" header="minus" %}} +The `minus` function expects at least one number, either decimal or integer. + +Example: +```json +["minus", 22, 9.2] +``` +Results in the number value `12.8` +{{% /expandlarge %}} + +{{% expandlarge id="func-multiply" header="multiply" %}} +The `multiply` function expects at least two numbers, either decimals or integers. + +Example: +```json +["multiply", 22, 10] +``` +Results in the number value `220` +{{% /expandlarge %}} + +{{% expandlarge id="func-divide" header="divide" %}} +The `divide` function expects at least two numbers, either decimals or integers. + +Example: +```json +["divide", 22, 10] +``` +Results in the number value `2.2` +{{% /expandlarge %}} + +{{% expandlarge id="func-average" header="average" %}} +The `average` function expects at least two numbers, either decimals or integers. + +Example: +```json +["average", 22, 10] +``` +Results in the number value `16` +{{% /expandlarge %}} + + ## Data Types Expressions in the functions expect that the arguments sent in have a specific type. If an argument sent in has a diff --git a/content/altinn-studio/v8/reference/logic/expressions/_index.nb.md b/content/altinn-studio/v8/reference/logic/expressions/_index.nb.md index 0e2aa8e419..80020b22f3 100644 --- a/content/altinn-studio/v8/reference/logic/expressions/_index.nb.md +++ b/content/altinn-studio/v8/reference/logic/expressions/_index.nb.md @@ -291,20 +291,25 @@ Disse funksjonene er tilgjengelige for bruk i uttrykk: ### Strenger og tall | Funksjonsnavn | Parametre | Returverdi | Frontend | Backend | -| ----------------------------------------- | ------------------------------------------------------------- | ------------------- | -------- | ------- | -| [`lowerCase`](#func-lowerCase-upperCase) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | -| [`upperCase`](#func-lowerCase-upperCase) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | -| [`lowerCaseFirst`](#func-lcFirst-ucFirst) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | -| [`upperCaseFirst`](#func-lcFirst-ucFirst) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | -| [`stringLength`](#func-stringLength) | [Streng](#strenger) | [Tall](#tall) | ✅ | ✅ | -| [`stringIndexOf`](#func-stringIndexOf) | [Streng](#strenger), [Streng](#strenger) | [Tall](#tall) | ✅ | ✅ | -| [`stringSlice`](#func-stringSlice) | [Streng](#strenger), [Tall](#tall), valgfritt [Tall](#tall) | [Streng](#strenger) | ✅ | ✅ | -| [`stringReplace`](#func-stringReplace) | [Streng](#strenger), [Streng](#strenger), [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | -| [`text`](#func-text) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ❌ | -| [`language`](#func-language) | Ingenting | [Streng](#strenger) | ✅ | ❌ | -| [`displayValue`](#func-displayValue) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ❌ | -| [`round`](#func-round) | [Tall](#tall), valgfritt [Tall](#tall) | [Streng](#strenger) | ✅ | ✅ | -| [`formatDate`](#func-formatDate) | [Dato/tid](#datoer), valgfri [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | +|-------------------------------------------|---------------------------------------------------------------|---------------------|----------| ------- | +| [`lowerCase`](#func-lowerCase-upperCase) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | +| [`upperCase`](#func-lowerCase-upperCase) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | +| [`lowerCaseFirst`](#func-lcFirst-ucFirst) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | +| [`upperCaseFirst`](#func-lcFirst-ucFirst) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | +| [`stringLength`](#func-stringLength) | [Streng](#strenger) | [Tall](#tall) | ✅ | ✅ | +| [`stringIndexOf`](#func-stringIndexOf) | [Streng](#strenger), [Streng](#strenger) | [Tall](#tall) | ✅ | ✅ | +| [`stringSlice`](#func-stringSlice) | [Streng](#strenger), [Tall](#tall), valgfritt [Tall](#tall) | [Streng](#strenger) | ✅ | ✅ | +| [`stringReplace`](#func-stringReplace) | [Streng](#strenger), [Streng](#strenger), [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | +| [`text`](#func-text) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ❌ | +| [`language`](#func-language) | Ingenting | [Streng](#strenger) | ✅ | ❌ | +| [`displayValue`](#func-displayValue) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ❌ | +| [`round`](#func-round) | [Tall](#tall), valgfritt [Tall](#tall) | [Streng](#strenger) | ✅ | ✅ | +| [`formatDate`](#func-formatDate) | [Dato/tid](#datoer), valgfri [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | +| [`plus`](#func-plus) | [Tall](#tall), et eller flere valgfrie [Tall]($tall) | [Tall](#tall) | ✅ | ✅ | +| [`minus`](#func-minus) | [Tall](#tall), et eller flere valgfrie [Tall]($tall) | [Tall](#tall) | ✅ | ✅ | +| [`multiply`](#func-multiply) | [Tall](#tall), et eller flere [Tall]($tall) | [Tall](#tall) | ✅ | ✅ | +| [`divide`](#func-divide) | [Tall](#tall), et eller flere [Tall]($tall) | [Tall](#tall) | ✅ | ✅ | +| [`average`](#func-average) | [Tall](#tall), et eller flere [Tall]($tall) | [Tall](#tall) | ✅ | ✅ | ### Oppslag, komponenter og data @@ -1076,6 +1081,57 @@ Uttrykket over henter ut teksten til svaralternativet (om brukt i filtrering av gir dette uttrykket en feilmelding. {{% /expandlarge %}} +{{% expandlarge id="func-plus" header="plus" %}} +Funksjonen `plus` forventer minst to tall, enten desimaltall eller heltall. + +Eksempel: +```json +["plus", 22, 9.2] +``` +Resulterer i tallverdien `31.2`. +{{% /expandlarge %}} + +{{% expandlarge id="func-minus" header="minus" %}} +Funksjonen `minus` forventer minst to tall, enten desimaltall eller heltall. + +Eksempel: +```json +["minus", 22, 9.2] +``` +Resulterer i tallverdien `12.8`. +{{% /expandlarge %}} + +{{% expandlarge id="func-multiply" header="multiply" %}} +Funksjonen `multiply` forventer minst to tall, enten desimaltall eller heltall. + +Eksempel: +```json +["multiply", 22, 10] +``` +Resulterer i tallverdien `220`. +{{% /expandlarge %}} + +{{% expandlarge id="func-divide" header="divide" %}} +Funksjonen `divide` forventer minst to tall, enten desimaltall eller heltall. + +Eksempel: +```json +["divide", 22, 10] +``` +Resulterer i tallverdien `2.2`. +{{% /expandlarge %}} + + +{{% expandlarge id="func-average" header="average" %}} +Funksjonen `average` forventer minst to tall, enten desimaltall eller heltall. + +Eksempel: +```json +["average", 22, 10] +``` +Resulterer i tallverdien `16`. +{{% /expandlarge %}} + ## Datatyper Funksjoner i uttrykkene har en forventning om at argumentene som blir sendt inn har en spefikk type. Dersom et argument From 1fb5d7ab84ff79eb43d9685c4d611b237342c35d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olav=20S=C3=B8rlie?= Date: Wed, 4 Feb 2026 15:38:49 +0100 Subject: [PATCH 2/5] fixed mismatch between english and norwegian and dollar sign mistake --- .../v8/reference/logic/expressions/_index.nb.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/content/altinn-studio/v8/reference/logic/expressions/_index.nb.md b/content/altinn-studio/v8/reference/logic/expressions/_index.nb.md index 80020b22f3..16d0ca5182 100644 --- a/content/altinn-studio/v8/reference/logic/expressions/_index.nb.md +++ b/content/altinn-studio/v8/reference/logic/expressions/_index.nb.md @@ -305,11 +305,11 @@ Disse funksjonene er tilgjengelige for bruk i uttrykk: | [`displayValue`](#func-displayValue) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ❌ | | [`round`](#func-round) | [Tall](#tall), valgfritt [Tall](#tall) | [Streng](#strenger) | ✅ | ✅ | | [`formatDate`](#func-formatDate) | [Dato/tid](#datoer), valgfri [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | -| [`plus`](#func-plus) | [Tall](#tall), et eller flere valgfrie [Tall]($tall) | [Tall](#tall) | ✅ | ✅ | -| [`minus`](#func-minus) | [Tall](#tall), et eller flere valgfrie [Tall]($tall) | [Tall](#tall) | ✅ | ✅ | -| [`multiply`](#func-multiply) | [Tall](#tall), et eller flere [Tall]($tall) | [Tall](#tall) | ✅ | ✅ | -| [`divide`](#func-divide) | [Tall](#tall), et eller flere [Tall]($tall) | [Tall](#tall) | ✅ | ✅ | -| [`average`](#func-average) | [Tall](#tall), et eller flere [Tall]($tall) | [Tall](#tall) | ✅ | ✅ | +| [`plus`](#func-plus) | [Tall](#tall), et eller flere valgfrie [Tall](#tall) | [Tall](#tall) | ✅ | ✅ | +| [`minus`](#func-minus) | [Tall](#tall), et eller flere valgfrie [Tall](#tall) | [Tall](#tall) | ✅ | ✅ | +| [`multiply`](#func-multiply) | [Tall](#tall), et eller flere [Tall](#tall) | [Tall](#tall) | ✅ | ✅ | +| [`divide`](#func-divide) | [Tall](#tall), et eller flere [Tall](#tall) | [Tall](#tall) | ✅ | ✅ | +| [`average`](#func-average) | [Tall](#tall), et eller flere [Tall](#tall) | [Tall](#tall) | ✅ | ✅ | ### Oppslag, komponenter og data @@ -1082,7 +1082,7 @@ gir dette uttrykket en feilmelding. {{% /expandlarge %}} {{% expandlarge id="func-plus" header="plus" %}} -Funksjonen `plus` forventer minst to tall, enten desimaltall eller heltall. +Funksjonen `plus` forventer minst et tall, enten desimaltall eller heltall. Eksempel: ```json @@ -1092,7 +1092,7 @@ Resulterer i tallverdien `31.2`. {{% /expandlarge %}} {{% expandlarge id="func-minus" header="minus" %}} -Funksjonen `minus` forventer minst to tall, enten desimaltall eller heltall. +Funksjonen `minus` forventer minst et tall, enten desimaltall eller heltall. Eksempel: ```json From a3451a197795f7f3b5aba1a2239b9d85fa433941 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olav=20S=C3=B8rlie?= Date: Tue, 10 Feb 2026 12:22:15 +0100 Subject: [PATCH 3/5] Changed docs after change in implementation details --- .../reference/logic/expressions/_index.en.md | 56 ++++++++----------- .../reference/logic/expressions/_index.nb.md | 56 ++++++++----------- 2 files changed, 44 insertions(+), 68 deletions(-) diff --git a/content/altinn-studio/v8/reference/logic/expressions/_index.en.md b/content/altinn-studio/v8/reference/logic/expressions/_index.en.md index ae9b72c97f..58539e19be 100644 --- a/content/altinn-studio/v8/reference/logic/expressions/_index.en.md +++ b/content/altinn-studio/v8/reference/logic/expressions/_index.en.md @@ -295,26 +295,25 @@ These functions are available for use in expressions: ### Strings and numbers -| Function Name | Parameters | Return Value | Frontend | Backend | -|-------------------------------------------|---------------------------------------------------------------------| ------------------ |----------|---------| -| [`lowerCase`](#func-lowerCase-upperCase) | [String](#strings) | [String](#strings) | ✅ | ✅ | -| [`upperCase`](#func-lowerCase-upperCase) | [String](#strings) | [String](#strings) | ✅ | ✅ | -| [`lowerCaseFirst`](#func-lcFirst-ucFirst) | [String](#strings) | [String](#strings) | ✅ | ✅ | -| [`upperCaseFirst`](#func-lcFirst-ucFirst) | [String](#strings) | [String](#strings) | ✅ | ✅ | -| [`stringLength`](#func-stringLength) | [String](#strings) | [Number](#numbers) | ✅ | ✅ | -| [`stringIndexOf`](#func-stringIndexOf) | [String](#strings), [String](#strings) | [Number](#numbers) | ✅ | ✅ | +| Function Name | Parameters | Return Value | Frontend | Backend | +|-------------------------------------------|--------------------------------------------------------------------| ------------------ |----------|---------| +| [`lowerCase`](#func-lowerCase-upperCase) | [String](#strings) | [String](#strings) | ✅ | ✅ | +| [`upperCase`](#func-lowerCase-upperCase) | [String](#strings) | [String](#strings) | ✅ | ✅ | +| [`lowerCaseFirst`](#func-lcFirst-ucFirst) | [String](#strings) | [String](#strings) | ✅ | ✅ | +| [`upperCaseFirst`](#func-lcFirst-ucFirst) | [String](#strings) | [String](#strings) | ✅ | ✅ | +| [`stringLength`](#func-stringLength) | [String](#strings) | [Number](#numbers) | ✅ | ✅ | +| [`stringIndexOf`](#func-stringIndexOf) | [String](#strings), [String](#strings) | [Number](#numbers) | ✅ | ✅ | | [`stringSlice`](#func-stringSlice) | [String](#strings), [Number](#numbers), optional [Number](#numbers) | [String](#strings) | ✅ | ✅ | -| [`stringReplace`](#func-stringReplace) | [String](#strings), [String](#strings), [String](#strings) | [String](#strings) | ✅ | ✅ | -| [`text`](#func-text) | [String](#strings) | [String](#strings) | ✅ | ❌ | -| [`language`](#func-language) | None | [String](#strings) | ✅ | ❌ | -| [`displayValue`](#func-displayValue) | [String](#strings) | [String](#strings) | ✅ | ❌ | -| [`round`](#func-round) | [Number](#numbers), optional [Number](#numbers) | [String](#strings) | ✅ | ✅ | -| [`formatDate`](#func-formatDate) | [Date/time](#dates), optional [String](#strings) | [String](#strings) | ✅ | ✅ | -| [`plus`](#func-plus) | [Number](#numbers), none or multiple [numbers](#numbers) | [Number](#numbers) | ✅ | ✅ | -| [`minus`](#func-minus) | [Number](#numbers), none or multiple [numbers](#numbers) | [Number](#numbers) | ✅ | ✅ | -| [`multiply`](#func-multiply) | [Number](#numbers), one or multiple [numbers](#numbers) | [Number](#numbers) | ✅ | ✅ | -| [`divide`](#func-divide) | [Number](#numbers), one or multiple [numbers](#numbers) | [Number](#numbers) | ✅ | ✅ | -| [`average`](#func-average) | [Number](#numbers), one or multiple [numbers](#numbers) | [Number](#numbers) | ✅ | ✅ | +| [`stringReplace`](#func-stringReplace) | [String](#strings), [String](#strings), [String](#strings) | [String](#strings) | ✅ | ✅ | +| [`text`](#func-text) | [String](#strings) | [String](#strings) | ✅ | ❌ | +| [`language`](#func-language) | None | [String](#strings) | ✅ | ❌ | +| [`displayValue`](#func-displayValue) | [String](#strings) | [String](#strings) | ✅ | ❌ | +| [`round`](#func-round) | [Number](#numbers), optional [Number](#numbers) | [String](#strings) | ✅ | ✅ | +| [`formatDate`](#func-formatDate) | [Date/time](#dates), optional [String](#strings) | [String](#strings) | ✅ | ✅ | +| [`plus`](#func-plus) | [Number](#numbers), [numbers](#numbers) | [Number](#numbers) | ✅ | ✅ | +| [`minus`](#func-minus) | [Number](#numbers), [numbers](#numbers) | [Number](#numbers) | ✅ | ✅ | +| [`multiply`](#func-multiply) | [Number](#numbers), [numbers](#numbers) | [Number](#numbers) | ✅ | ✅ | +| [`divide`](#func-divide) | [Number](#numbers), [numbers](#numbers) | [Number](#numbers) | ✅ | ✅ | ### Lookup, components and data @@ -1084,7 +1083,7 @@ returns an error message. {{% /expandlarge %}} {{% expandlarge id="func-plus" header="plus" %}} -The `plus` function expects at least one number, either decimal or integer. +The `plus` function expects two numbers, either decimal or integer. Example: ```json @@ -1094,7 +1093,7 @@ Results in the number value `31.2` {{% /expandlarge %}} {{% expandlarge id="func-minus" header="minus" %}} -The `minus` function expects at least one number, either decimal or integer. +The `minus` function expects two numbers, either decimal or integer. Example: ```json @@ -1104,7 +1103,7 @@ Results in the number value `12.8` {{% /expandlarge %}} {{% expandlarge id="func-multiply" header="multiply" %}} -The `multiply` function expects at least two numbers, either decimals or integers. +The `multiply` function expects two numbers, either decimals or integers. Example: ```json @@ -1114,7 +1113,7 @@ Results in the number value `220` {{% /expandlarge %}} {{% expandlarge id="func-divide" header="divide" %}} -The `divide` function expects at least two numbers, either decimals or integers. +The `divide` function expects two numbers, either decimals or integers. Example: ```json @@ -1123,17 +1122,6 @@ Example: Results in the number value `2.2` {{% /expandlarge %}} -{{% expandlarge id="func-average" header="average" %}} -The `average` function expects at least two numbers, either decimals or integers. - -Example: -```json -["average", 22, 10] -``` -Results in the number value `16` -{{% /expandlarge %}} - - ## Data Types Expressions in the functions expect that the arguments sent in have a specific type. If an argument sent in has a diff --git a/content/altinn-studio/v8/reference/logic/expressions/_index.nb.md b/content/altinn-studio/v8/reference/logic/expressions/_index.nb.md index 16d0ca5182..e7b48a3c3b 100644 --- a/content/altinn-studio/v8/reference/logic/expressions/_index.nb.md +++ b/content/altinn-studio/v8/reference/logic/expressions/_index.nb.md @@ -290,26 +290,25 @@ Disse funksjonene er tilgjengelige for bruk i uttrykk: ### Strenger og tall -| Funksjonsnavn | Parametre | Returverdi | Frontend | Backend | -|-------------------------------------------|---------------------------------------------------------------|---------------------|----------| ------- | -| [`lowerCase`](#func-lowerCase-upperCase) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | -| [`upperCase`](#func-lowerCase-upperCase) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | -| [`lowerCaseFirst`](#func-lcFirst-ucFirst) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | -| [`upperCaseFirst`](#func-lcFirst-ucFirst) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | -| [`stringLength`](#func-stringLength) | [Streng](#strenger) | [Tall](#tall) | ✅ | ✅ | -| [`stringIndexOf`](#func-stringIndexOf) | [Streng](#strenger), [Streng](#strenger) | [Tall](#tall) | ✅ | ✅ | -| [`stringSlice`](#func-stringSlice) | [Streng](#strenger), [Tall](#tall), valgfritt [Tall](#tall) | [Streng](#strenger) | ✅ | ✅ | +| Funksjonsnavn | Parametre | Returverdi | Frontend | Backend | +|-------------------------------------------|-----------------------------------------------------------|---------------------|----------| ------- | +| [`lowerCase`](#func-lowerCase-upperCase) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | +| [`upperCase`](#func-lowerCase-upperCase) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | +| [`lowerCaseFirst`](#func-lcFirst-ucFirst) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | +| [`upperCaseFirst`](#func-lcFirst-ucFirst) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | +| [`stringLength`](#func-stringLength) | [Streng](#strenger) | [Tall](#tall) | ✅ | ✅ | +| [`stringIndexOf`](#func-stringIndexOf) | [Streng](#strenger), [Streng](#strenger) | [Tall](#tall) | ✅ | ✅ | +| [`stringSlice`](#func-stringSlice) | [Streng](#strenger), [Tall](#tall), valgfritt [Tall](#tall) | [Streng](#strenger) | ✅ | ✅ | | [`stringReplace`](#func-stringReplace) | [Streng](#strenger), [Streng](#strenger), [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | -| [`text`](#func-text) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ❌ | -| [`language`](#func-language) | Ingenting | [Streng](#strenger) | ✅ | ❌ | -| [`displayValue`](#func-displayValue) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ❌ | -| [`round`](#func-round) | [Tall](#tall), valgfritt [Tall](#tall) | [Streng](#strenger) | ✅ | ✅ | -| [`formatDate`](#func-formatDate) | [Dato/tid](#datoer), valgfri [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | -| [`plus`](#func-plus) | [Tall](#tall), et eller flere valgfrie [Tall](#tall) | [Tall](#tall) | ✅ | ✅ | -| [`minus`](#func-minus) | [Tall](#tall), et eller flere valgfrie [Tall](#tall) | [Tall](#tall) | ✅ | ✅ | -| [`multiply`](#func-multiply) | [Tall](#tall), et eller flere [Tall](#tall) | [Tall](#tall) | ✅ | ✅ | -| [`divide`](#func-divide) | [Tall](#tall), et eller flere [Tall](#tall) | [Tall](#tall) | ✅ | ✅ | -| [`average`](#func-average) | [Tall](#tall), et eller flere [Tall](#tall) | [Tall](#tall) | ✅ | ✅ | +| [`text`](#func-text) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ❌ | +| [`language`](#func-language) | Ingenting | [Streng](#strenger) | ✅ | ❌ | +| [`displayValue`](#func-displayValue) | [Streng](#strenger) | [Streng](#strenger) | ✅ | ❌ | +| [`round`](#func-round) | [Tall](#tall), valgfritt [Tall](#tall) | [Streng](#strenger) | ✅ | ✅ | +| [`formatDate`](#func-formatDate) | [Dato/tid](#datoer), valgfri [Streng](#strenger) | [Streng](#strenger) | ✅ | ✅ | +| [`plus`](#func-plus) | [Tall](#tall), [Tall](#tall) | [Tall](#tall) | ✅ | ✅ | +| [`minus`](#func-minus) | [Tall](#tall), [Tall](#tall) | [Tall](#tall) | ✅ | ✅ | +| [`multiply`](#func-multiply) | [Tall](#tall), [Tall](#tall) | [Tall](#tall) | ✅ | ✅ | +| [`divide`](#func-divide) | [Tall](#tall), [Tall](#tall) | [Tall](#tall) | ✅ | ✅ | ### Oppslag, komponenter og data @@ -1082,7 +1081,7 @@ gir dette uttrykket en feilmelding. {{% /expandlarge %}} {{% expandlarge id="func-plus" header="plus" %}} -Funksjonen `plus` forventer minst et tall, enten desimaltall eller heltall. +Funksjonen `plus` forventer to tall, enten desimaltall eller heltall. Eksempel: ```json @@ -1092,7 +1091,7 @@ Resulterer i tallverdien `31.2`. {{% /expandlarge %}} {{% expandlarge id="func-minus" header="minus" %}} -Funksjonen `minus` forventer minst et tall, enten desimaltall eller heltall. +Funksjonen `minus` forventer to tall, enten desimaltall eller heltall. Eksempel: ```json @@ -1102,7 +1101,7 @@ Resulterer i tallverdien `12.8`. {{% /expandlarge %}} {{% expandlarge id="func-multiply" header="multiply" %}} -Funksjonen `multiply` forventer minst to tall, enten desimaltall eller heltall. +Funksjonen `multiply` forventer to tall, enten desimaltall eller heltall. Eksempel: ```json @@ -1112,7 +1111,7 @@ Resulterer i tallverdien `220`. {{% /expandlarge %}} {{% expandlarge id="func-divide" header="divide" %}} -Funksjonen `divide` forventer minst to tall, enten desimaltall eller heltall. +Funksjonen `divide` forventer to tall, enten desimaltall eller heltall. Eksempel: ```json @@ -1121,17 +1120,6 @@ Eksempel: Resulterer i tallverdien `2.2`. {{% /expandlarge %}} - -{{% expandlarge id="func-average" header="average" %}} -Funksjonen `average` forventer minst to tall, enten desimaltall eller heltall. - -Eksempel: -```json -["average", 22, 10] -``` -Resulterer i tallverdien `16`. -{{% /expandlarge %}} - ## Datatyper Funksjoner i uttrykkene har en forventning om at argumentene som blir sendt inn har en spefikk type. Dersom et argument From 78ca5b087c31002b410a67ffbbff834e3d1e0006 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olav=20S=C3=B8rlie?= Date: Tue, 10 Feb 2026 12:49:15 +0100 Subject: [PATCH 4/5] Fix --- .../reference/logic/expressions/_index.en.md | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/content/altinn-studio/v8/reference/logic/expressions/_index.en.md b/content/altinn-studio/v8/reference/logic/expressions/_index.en.md index 58539e19be..30ae5e9eec 100644 --- a/content/altinn-studio/v8/reference/logic/expressions/_index.en.md +++ b/content/altinn-studio/v8/reference/logic/expressions/_index.en.md @@ -295,25 +295,25 @@ These functions are available for use in expressions: ### Strings and numbers -| Function Name | Parameters | Return Value | Frontend | Backend | -|-------------------------------------------|--------------------------------------------------------------------| ------------------ |----------|---------| -| [`lowerCase`](#func-lowerCase-upperCase) | [String](#strings) | [String](#strings) | ✅ | ✅ | -| [`upperCase`](#func-lowerCase-upperCase) | [String](#strings) | [String](#strings) | ✅ | ✅ | -| [`lowerCaseFirst`](#func-lcFirst-ucFirst) | [String](#strings) | [String](#strings) | ✅ | ✅ | -| [`upperCaseFirst`](#func-lcFirst-ucFirst) | [String](#strings) | [String](#strings) | ✅ | ✅ | -| [`stringLength`](#func-stringLength) | [String](#strings) | [Number](#numbers) | ✅ | ✅ | -| [`stringIndexOf`](#func-stringIndexOf) | [String](#strings), [String](#strings) | [Number](#numbers) | ✅ | ✅ | +| Function Name | Parameters | Return Value | Frontend | Backend | +|-------------------------------------------|-----------------------------------------------------------------| ------------------ |----------|---------| +| [`lowerCase`](#func-lowerCase-upperCase) | [String](#strings) | [String](#strings) | ✅ | ✅ | +| [`upperCase`](#func-lowerCase-upperCase) | [String](#strings) | [String](#strings) | ✅ | ✅ | +| [`lowerCaseFirst`](#func-lcFirst-ucFirst) | [String](#strings) | [String](#strings) | ✅ | ✅ | +| [`upperCaseFirst`](#func-lcFirst-ucFirst) | [String](#strings) | [String](#strings) | ✅ | ✅ | +| [`stringLength`](#func-stringLength) | [String](#strings) | [Number](#numbers) | ✅ | ✅ | +| [`stringIndexOf`](#func-stringIndexOf) | [String](#strings), [String](#strings) | [Number](#numbers) | ✅ | ✅ | | [`stringSlice`](#func-stringSlice) | [String](#strings), [Number](#numbers), optional [Number](#numbers) | [String](#strings) | ✅ | ✅ | -| [`stringReplace`](#func-stringReplace) | [String](#strings), [String](#strings), [String](#strings) | [String](#strings) | ✅ | ✅ | -| [`text`](#func-text) | [String](#strings) | [String](#strings) | ✅ | ❌ | -| [`language`](#func-language) | None | [String](#strings) | ✅ | ❌ | -| [`displayValue`](#func-displayValue) | [String](#strings) | [String](#strings) | ✅ | ❌ | -| [`round`](#func-round) | [Number](#numbers), optional [Number](#numbers) | [String](#strings) | ✅ | ✅ | -| [`formatDate`](#func-formatDate) | [Date/time](#dates), optional [String](#strings) | [String](#strings) | ✅ | ✅ | -| [`plus`](#func-plus) | [Number](#numbers), [numbers](#numbers) | [Number](#numbers) | ✅ | ✅ | -| [`minus`](#func-minus) | [Number](#numbers), [numbers](#numbers) | [Number](#numbers) | ✅ | ✅ | -| [`multiply`](#func-multiply) | [Number](#numbers), [numbers](#numbers) | [Number](#numbers) | ✅ | ✅ | -| [`divide`](#func-divide) | [Number](#numbers), [numbers](#numbers) | [Number](#numbers) | ✅ | ✅ | +| [`stringReplace`](#func-stringReplace) | [String](#strings), [String](#strings), [String](#strings) | [String](#strings) | ✅ | ✅ | +| [`text`](#func-text) | [String](#strings) | [String](#strings) | ✅ | ❌ | +| [`language`](#func-language) | None | [String](#strings) | ✅ | ❌ | +| [`displayValue`](#func-displayValue) | [String](#strings) | [String](#strings) | ✅ | ❌ | +| [`round`](#func-round) | [Number](#numbers), optional [Number](#numbers) | [String](#strings) | ✅ | ✅ | +| [`formatDate`](#func-formatDate) | [Date/time](#dates), optional [String](#strings) | [String](#strings) | ✅ | ✅ | +| [`plus`](#func-plus) | [Number](#numbers), [Number](#numbers) | [Number](#numbers) | ✅ | ✅ | +| [`minus`](#func-minus) | [Number](#numbers), [Number](#numbers) | [Number](#numbers) | ✅ | ✅ | +| [`multiply`](#func-multiply) | [Number](#numbers), [Number](#numbers) | [Number](#numbers) | ✅ | ✅ | +| [`divide`](#func-divide) | [Number](#numbers), [Number](#numbers) | [Number](#numbers) | ✅ | ✅ | ### Lookup, components and data From 06df5247b54c975353e473ed3323142670c250d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olav=20S=C3=B8rlie?= Date: Mon, 9 Mar 2026 14:21:38 +0100 Subject: [PATCH 5/5] Added documentation for argument null cases --- .../v8/reference/logic/expressions/_index.en.md | 12 ++++++++---- .../v8/reference/logic/expressions/_index.nb.md | 4 ++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/content/altinn-studio/v8/reference/logic/expressions/_index.en.md b/content/altinn-studio/v8/reference/logic/expressions/_index.en.md index 30ae5e9eec..c097fc52d6 100644 --- a/content/altinn-studio/v8/reference/logic/expressions/_index.en.md +++ b/content/altinn-studio/v8/reference/logic/expressions/_index.en.md @@ -1089,7 +1089,8 @@ Example: ```json ["plus", 22, 9.2] ``` -Results in the number value `31.2` +Results in the number value `31.2`. +If null is passed to the function, the function will return `null`. {{% /expandlarge %}} {{% expandlarge id="func-minus" header="minus" %}} @@ -1099,7 +1100,8 @@ Example: ```json ["minus", 22, 9.2] ``` -Results in the number value `12.8` +Results in the number value `12.8`. +If null is passed to the function, the function will return `null`. {{% /expandlarge %}} {{% expandlarge id="func-multiply" header="multiply" %}} @@ -1109,7 +1111,8 @@ Example: ```json ["multiply", 22, 10] ``` -Results in the number value `220` +Results in the number value `220`. +If null is passed to the function, the function will return `null`. {{% /expandlarge %}} {{% expandlarge id="func-divide" header="divide" %}} @@ -1119,7 +1122,8 @@ Example: ```json ["divide", 22, 10] ``` -Results in the number value `2.2` +Results in the number value `2.2`. +If null is passed to the function, the function will return `null`. {{% /expandlarge %}} ## Data Types diff --git a/content/altinn-studio/v8/reference/logic/expressions/_index.nb.md b/content/altinn-studio/v8/reference/logic/expressions/_index.nb.md index e7b48a3c3b..e4b05fe94a 100644 --- a/content/altinn-studio/v8/reference/logic/expressions/_index.nb.md +++ b/content/altinn-studio/v8/reference/logic/expressions/_index.nb.md @@ -1088,6 +1088,7 @@ Eksempel: ["plus", 22, 9.2] ``` Resulterer i tallverdien `31.2`. +Dersom null sendes inn som argument, vil funksjonen returnere `null`. {{% /expandlarge %}} {{% expandlarge id="func-minus" header="minus" %}} @@ -1098,6 +1099,7 @@ Eksempel: ["minus", 22, 9.2] ``` Resulterer i tallverdien `12.8`. +Dersom null sendes inn som argument, vil funksjonen returnere `null`. {{% /expandlarge %}} {{% expandlarge id="func-multiply" header="multiply" %}} @@ -1108,6 +1110,7 @@ Eksempel: ["multiply", 22, 10] ``` Resulterer i tallverdien `220`. +Dersom null sendes inn som argument, vil funksjonen returnere `null`. {{% /expandlarge %}} {{% expandlarge id="func-divide" header="divide" %}} @@ -1118,6 +1121,7 @@ Eksempel: ["divide", 22, 10] ``` Resulterer i tallverdien `2.2`. +Dersom null sendes inn som argument, vil funksjonen returnere `null`. {{% /expandlarge %}} ## Datatyper