Codeunit 3060 "Uri"
System Application · System.Utilities
Across versions
- BC23-27present
- BC283 procedures added
- BC29unchanged
- BC301 procedures added
Neighbourhood 31 connected objects and pages
System Application · System.Utilities · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Access | Public |
Procedures
Init(UriString: Text): Initializes a new instance of the Uri class with the specified URI.GetAbsoluteUri(): Text: Gets the absolute URI.GetScheme(): Text: Gets the scheme name for the URI.GetHost(): Text: Gets the host name of the URI.GetAuthority(): Text: Gets the authority of the URI.GetPort(): Integer: Gets the port number of the URI.GetAbsolutePath(): Text: Gets the absolute path of the URI.GetQuery(): Text: Gets any query information included in the specified URI.GetFragment(): Text: Gets the escaped URI fragment.GetSegments(var Segments: List of [Text]): Gets a list containing the path segments that make up the specified URI.EscapeDataString(TextToEscape: Text): Text: Converts a string to its escaped representation.UnescapeDataString(TextToUnescape: Text): Text: Converts a string to its unescaped representation.IsValidUri(UriString: Text): Checks if the provded string is a valid URI.IsWellFormedUriString(UriString: Text; UriKind: Enum UriKind): Boolean: Indicates whether the string is well-formed by attempting to construct a URI with the string and ensures that the string does not require further escaping.IsBaseOf(var UriToTest: Codeunit Uri): Boolean: Determines whether the current Uri instance is a base of the specified Uri instance.ValidateIntegrationURL(FieldValueURL: Text; HardcodedIntegrationURL: Text): Text+ BC28: Validates integration URI host from setup table field is the same as the hardcoded integration URI host, returns the hardcoded integration URI if validation fails.AreURIsHaveSameHost(UriString1: Text; UriString2: Text): Boolean+ BC28: Verifies whether two URIs have the same host (e.g., both subdomain.example.com\test1 and subdomain.example.com\test2 have the same host subdomain.example.com).IsValidURIPattern(UriString: Text; Pattern: Text): Boolean+ BC28: Verifies whether the URI is in a valid pattern.GetUri(var OutUri: DotNet Uri): Gets the underlying .Net Uri variable.SetUri(NewUri: DotNet Uri): Sets the underlying .Net Uri variable.
Calls
From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an Object::"Name" argument. Interface dispatch and calls through events are not counted, so the list is not complete.
- Codeunit 3960 “Regex” (1 call:
IsValidURIPattern → IsMatch)
Called by
- Codeunit 560 “CrossIntercompany Connector” (8 calls:
GetHostFromUrl → GetHost,GetHostFromUrl → Init,GetHostFromUrl → IsValidUri, …) - Codeunit 9121 “SharePoint Graph Uri Builder” (4 calls:
AddOptionalParametersToEndpoint → GetAbsoluteUri,AddOptionalParametersToEndpoint → Init,EscapeDataString → EscapeDataString, …) - Codeunit 3062 “Uri Builder Impl.” (3 calls:
CreateNewQueryString → EscapeDataString,EncodeParameterKey → EscapeDataString,GetUri → SetUri) - Codeunit 7247 “MDM Http Source Transport” (3 calls:
TryInitUri → Init,ValidateSourceHost → GetHost,ValidateSourceHost → GetScheme) - Codeunit 9064 “Stor. Serv. Auth. Shared Key” (3 calls:
GetCanonicalizedResource → GetSegments,GetCanonicalizedResource → Init,GetCanonicalizedResource → UnescapeDataString) - Codeunit 9110 “SharePoint Uri Builder” (3 calls:
EscapeDataString → EscapeDataString,GetHost → GetHost,GetHost → Init) - Codeunit 9510 “Document Service Management” (3 calls:
GetResourceUrl → GetHost,GetResourceUrl → Init,MakeChildrenPathUrl → EscapeDataString) - Table extension 4701 “VAT Report Setup Extension” (3 calls:
IsAllowedGroupRepresentativeAPIURL → AreURIsHaveSameHost,IsAllowedGroupRepresentativeAPIURL → GetScheme,IsAllowedGroupRepresentativeAPIURL → Init) - Codeunit 7802 “Azure Functions OAuth2” (2 calls:
Authenticate → GetAbsoluteUri,Authenticate → GetHost) - Codeunit 7803 “Azure Functions Impl” (2 calls:
Send → GetAbsoluteUri,Send → GetHost) - Codeunit 7807 “Azure Functions OAuth2 Cert” (2 calls:
Authenticate → GetAbsoluteUri,Authenticate → GetHost) - Codeunit 9061 “Stor. Serv. Auth. SAS” (2 calls:
Authorize → GetAbsoluteUri,CreateSasUrlString → EscapeDataString) - Codeunit 9170 “Conf./Personalization Mgt.” (2 calls:
GetProfileConfigurationUrlForWeb → GetAbsoluteUri,GetProfileUrlParameterForEvaluationCompany → EscapeDataString) - Page 4410 “SOA Multi Items Availability” (2 calls:
DecodeAvailabilityFilterValue → UnescapeDataString,EncodeAvailabilityFilterValue → EscapeDataString) - Codeunit 2023 “Image Analysis Wrapper V3.2” (1 call:
BuildUri → GetAbsoluteUri) - Codeunit 2515 “AppSource Product Manager” (1 call:
ConstructProductListUri → GetAbsoluteUri) - Codeunit 4359 “Custom Agent Profile Mgt” (1 call:
GetProfileConfigurationUrlForWeb → GetAbsoluteUri) - Codeunit 7106 “O365 Bidirectional Sync” (1 call:
IsApprovedGraphRequestUri → ValidateIntegrationURL) - Codeunit 7801 “Azure Functions Code Auth” (1 call:
Authenticate → GetAbsoluteUri) - Codeunit 8333 “VS Code Integration Impl.” (1 call:
GetAbsoluteUri → GetAbsoluteUri) - Codeunit 8351 “MCP Config Implementation” (1 call:
IsTIEEnvironment → AreURIsHaveSameHost) - Codeunit 8955 “AFS Format Helper” (1 call:
AppendToUri → GetAbsoluteUri) - Codeunit 9042 “ABS Operation Payload” (1 call:
SetBlobName → EscapeDataString) - Codeunit 9044 “ABS Format Helper” (1 call:
AppendToUri → EscapeDataString) - Codeunit 9088 “Stor. Serv. Auth. Ready SAS” (1 call:
Authorize → GetAbsoluteUri) - Codeunit 9120 “SharePoint Graph Client Impl.” (1 call:
InitializeCommon → IsValidURIPattern) - Codeunit 9123 “SharePoint Graph Req. Helper” (1 call:
IsAllowedUploadUrl → IsValidURIPattern) - Codeunit 9352 “Graph Uri Builder” (1 call:
GetUri → GetAbsoluteUri) - Page 4509 “Email - Outlook API Setup” (1 call:
ValidateUri → IsValidUri) - Table 7121 “Contact Sync User” (1 call:
ValidateApprovedGraphDeltaUrl → ValidateIntegrationURL)
Recent changes
- 2026-09-22 #11171 [Security][Hardening] Validate integration URLs stored in setup tables (main, BC30, fix)
Ask your agent
Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: bcatlas_resolve_node(object_type: "codeunit", object_name: "Uri"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.