---
title: "Codeunit 10 Type Helper"
author: "Jonas Paprotka"
url: https://jonas-paprotka.de/ref/codeunit/10-type-helper/
type: codeunit
id: 10
name: "Type Helper"
app: "Base Application"
namespace: System.Reflection
versions: "17-28"
build: 28.5.54151.54365
source: "https://jonas-paprotka.de/ref/codeunit/10-type-helper/source/29/"
checked: 2026-09-20
subject: "Microsoft Dynamics 365 Business Central"
license: "Content © 2026 Jonas Paprotka. Quote freely with attribution and a link."
---

# Codeunit 10 Type Helper

Jonas Paprotka, https://jonas-paprotka.de/ref/codeunit/10-type-helper/

| | |
| --- | --- |
| App | Base Application |
| Namespace | System.Reflection |
| Versions | 17-28 |
| Source file | System/Utilities/TypeHelper.Codeunit.al |

## Procedures

| Name | Parameters | Returns | Access | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- | --- |
| Evaluate | (var Variant, Text, Text, Text) | Boolean | public | 17-28 | - | - |
| GetLocalizedMonthToInt | (Text) | Integer | public | 17-28 | - | - |
| CompareDateTime | (DateTime, DateTime) | Integer | public | 17-28 | - | - |
| FormatDate | (Date, Integer) | Text | public | 17-28 | - | - |
| FormatDateWithCurrentCulture | (Date) | Text | public | 17-28 | - | - |
| GetHMSFromTime | (var Integer, var Integer, var Integer, Time) | - | public | 17-28 | - | - |
| IsLeapYear | (Date) | Boolean | public | 17-28 | - | - |
| LanguageIDToCultureName | (Integer) | Text | public | 17-28 | Pending 26.0 | Use codeunit 43 Language, procedure GetCultureName instead. |
| GetCultureName | () | Text | public | 17-28 | Pending 26.0 | Use codeunit 43 Language, procedure GetCurrentCultureName instead. |
| GetOptionNo | (Text, Text) | Integer | public | 17-28 | - | - |
| GetOptionNoFromTableField | (Text, Integer, Integer) | Integer | public | 17-28 | - | - |
| GetNumberOfOptions | (Text) | Integer | public | 17-28 | - | - |
| OptionsAreEqual | (Text, Text) | Boolean | public | 17-28 | - | - |
| IsNumeric | (Text) | Boolean | public | 17-28 | - | - |
| GetField | (Integer, Integer, var Record Field) | Boolean | public | 17-28 | - | - |
| GetFieldLength | (Integer, Integer) | Integer | public | 17-28 | - | - |
| TestFieldIsNotObsolete | (Record Field) | - | public | 17-28 | - | - |
| IsPhoneNumber | (Text) | Boolean | public | 17-28 | - | - |
| GetUserTimezoneOffset | (var Duration) | Boolean | public | 17-28 | - | - |
| GetUserClientTypeOffset | (var Duration) | - | public | 17-28 | - | - |
| GetTimezoneOffset | (var Duration, Text) | - | public | 17-28 | - | - |
| EvaluateUnixTimestamp | (BigInteger) | DateTime | public | 17-28 | - | - |
| EvaluateUTCDateTime | (Text) | DateTime | public | 17-28 | - | - |
| FormatDateTime | (DateTime, Text, Text) | Text | public | 17-28 | - | - |
| FormatUtcDateTime | (DateTime, Text, Text) | Text | public | 17-28 | - | - |
| GetCurrUTCDateTime | () | DateTime | public | 17-28 | - | - |
| GetCurrUTCDateTimeAsText | () | Text | public | 17-28 | - | - |
| AddHoursToDateTime | (DateTime, Integer) | DateTime | public | 17-28 | - | - |
| FormatDecimal | (Decimal, Text, Text) | Text | public | 17-28 | - | - |
| UrlEncode | (var Text) | Text | public | 17-28 | - | - |
| UrlDecode | (var Text) | Text | public | 17-28 | - | - |
| HtmlEncode | (var Text) | Text | public | 17-28 | - | - |
| HtmlDecode | (var Text) | Text | public | 17-28 | - | - |
| UriEscapeDataString | (Text) | Text | public | 17-28 | - | - |
| UriGetAuthority | (Text) | Text | public | 17-28 | - | - |
| GetKeyAsString | (Variant, Integer) | Text | public | 17-28 | - | - |
| ReadAsTextWithSeparator | (InStream, Text) | Text | public | 17-28 | - | - |
| TryReadAsTextWithSeparator | (InStream, Text, var Text) | Boolean | public | 17-28 | - | - |
| CRLFSeparator | () | Text[2] | public | 17-28 | - | - |
| LFSeparator | () | Text[1] | public | 17-28 | - | - |
| SortRecordRef | (var RecordRef, Text, Boolean) | - | public | 17-28 | - | - |
| TextDistance | (Text, Text) | Integer | public | 17-28 | - | - |
| NewLine | () | Text | public | 17-28 | - | - |
| GetGuidAsString | (Guid) | Text[36] | public | 17-23 | Pending 17.0 | Format() now supports formatting GUIDs into different standards, see https://go.microsoft.com/fwlink/?linkid=2206175 |
| GetMaxNumberOfParametersInSQLQuery | () | Integer | public | 17-28 | - | - |
| BitwiseAnd | (Integer, Integer) | Integer | public | 17-28 | - | - |
| BitwiseOr | (Integer, Integer) | Integer | public | 17-28 | - | - |
| BitwiseXor | (Integer, Integer) | Integer | public | 17-28 | - | - |
| GetFormattedCurrentDateTimeInUserTimeZone | (Text) | Text | public | 17-28 | - | - |
| GetCurrentDateTimeInUserTimeZone | () | DateTime | public | 17-28 | - | - |
| ConvertDateTimeFromUTCToTimeZone | (DateTime, Text) | DateTime | public | 17-28 | - | - |
| IntToHex | (Integer) | Text | public | 17-28 | - | - |
| Maximum | (Decimal, Decimal) | Decimal | public | 17-28 | - | - |
| Minimum | (Decimal, Decimal) | Decimal | public | 17-28 | - | - |
| TransferFieldsWithValidate | (var Record Field Buffer, Variant, var RecordRef) | - | public | 17-28 | - | - |
| CalculateLog | (Decimal) | Decimal | public | 17-28 | - | - |
| GetAmountFormatLCYWithUserLocale | () | Text | public | 17-28 | - | - |
| GetAmountFormatWithUserLocale | (Text[10]) | Text | public | 17-28 | - | - |
| GetAmountFormat | (Integer, Text[10]) | Text | public | 17-28 | - | - |
| GetXMLAmountFormatWithTwoDecimalPlaces | () | Text | public | 17-28 | - | - |
| GetXMLDateFormat | () | Text | public | 17-28 | - | - |
| GetCurrUTCDateTimeISO8601 | () | Text | public | 19-28 | - | - |
| CopyRecVariantToRecRef | (Variant, var RecordRef) | - | public | 19-28 | - | - |
| IsDigit | (Char) | Boolean | public | 20-28 | - | - |
| IsUpper | (Char) | Boolean | public | 20-28 | - | - |
| TryReadAsTextWithSepAndFieldErrMsg | (InStream, Text, Text) | Text | public | 21-28 | - | - |
| FormatDate | (Date, Text, Text) | Text | public | 22-28 | - | - |
| GetDefaultAmountFormat | () | Text | internal | 22-28 | - | - |
| GetInputDateTimeInUserTimeZone | (DateTime) | DateTime | public | 24-28 | - | - |
| ConvertDateTimeFromInputTimeZoneToClientTimezone | (DateTime, Text) | DateTime | public | 24-28 | - | - |
| GetAmountFormatLCYWithUserLocale | (Integer) | Text | public | 25-28 | - | - |
| GetAmountFormatWithUserLocale | (Text[10], Integer) | Text | public | 25-28 | - | - |
| GetAmountFormat | (Integer, Text[10], Integer) | Text | public | 25-28 | - | - |
| GetAmountFormatDecimalPlaces | (Integer, Text[10], Integer) | Text | public | 25-28 | - | - |
| GetDefaultAmountFormat | (Integer) | Text | internal | 25-28 | - | - |
| UrlEncode | (var SecretText) | SecretText | public | 26-28 | - | - |
| UrlEncodeSecret | (var Text) | Text | public | 26-28 | Pending 27.0 | Use UrlEncode with secret text. |
| JavaScriptStringEncode | (Text) | Text | public | 26-28 | - | - |
| JavaScriptStringEncode | (Text, Boolean) | Text | public | 26-28 | - | - |
| IsLatinLetter | (Char) | Boolean | public | 26-28 | - | - |

## Events

| Kind | Name | Parameters | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- |
| Integration event | OnBeforeGetFieldLength | (var Record Field, var Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeGetField | (Integer, Integer, var Record Field, var Boolean, var Boolean) | 18-28 | - | - |

## Source

Symbols: Microsoft.BaseApplication.symbols.437dbf0e-84ff-417a-965d-ed2bb9650972, https://dynamicssmb2.pkgs.visualstudio.com/DynamicsBCPublicFeeds/_packaging/MSSymbols/nuget/v3/index.json, highest build per major on 2026-09-20.
AL source 29: https://github.com/microsoft/BCApps, MIT, releases/29.x at a66254c3b8b5bb1cea290dc8f9d097aec4381153.

Jonas Paprotka, 2026-09-20.
