---
id: object/codeunit/457
type: object
title: Codeunit 457 "Environment Information"
summary: Codeunit 457 "Environment Information" in System Application (System.Environment). 16 public procedures. Present since at least BC23, still in BC30, changed in BC24, BC26, BC28, BC30.
tier: official
language: en
tags:
  - codeunit
  - system application
versions:
  introduced: null
  last_changed: "30"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 23b9aa0d9bcde8dad451bfab52f40dc68323eeba4937f8f09b5bd04b72859af6
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/System%20Application/App/Environment%20Information/src/EnvironmentInformation.Codeunit.al
    title: src/System Application/App/Environment Information/src/EnvironmentInformation.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/11741
    - change/bcapps/9814
    - change/bcapps/9716
object_type: codeunit
object_id: 457
name: Environment Information
namespace: System.Environment
app: System Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "26"
  - "28"
  - "30"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 16
  events: 0
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 2
  called_by: 254
  implements: 0
---

# Codeunit 457 "Environment Information"

> Codeunit 457 "Environment Information" in System Application (System.Environment). 16 public procedures. Present since at least BC23, still in BC30, changed in BC24, BC26, BC28, BC30.

System Application · System.Environment · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/System%20Application/App/Environment%20Information/src/EnvironmentInformation.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Access | Public |
| SingleInstance | true |

## Procedures

- `IsProduction(): Boolean`: Checks if environment type of tenant is Production.
- `GetEnvironmentName(): Text`: Gets the name of the environment.
- `IsSandbox(): Boolean`: Checks if environment type of tenant is Sandbox.
- `IsSaaS(): Boolean`: Checks if the deployment type is SaaS (Software as a Service).
- `IsOnPrem(): Boolean`: Checks the deployment type is OnPremises.
- `IsFinancials(): Boolean`: Checks the application family is Financials.
- `IsSaaSInfrastructure(): Boolean`: Checks if the deployment infrastucture is SaaS (Software as a Service). Note: This function will return false in a Docker container.
- `IsPreview(): Boolean`: Checks if the ring is preview.
- `IsEarlyPreview(): Boolean`: Checks if the ring is early preview.
- `ShowEarlyPreviewNotification()`: Shows a notification if the ring is early preview.
- `GetApplicationFamily(): Text`: Gets the application family.
- `VersionInstalled(AppID: Guid): Integer`: Gets the version which a given app was installed in.
- `CanStartSession(): Boolean`: Checks if a new session can be started via the Session.StartSession call.
- `EnableM365Collaboration()`: Sets M365 Collaboration to enabled in the tenant admin center
- `GetLinkedPowerPlatformEnvironmentId(): Text`: Gets the linked Power Platform environment id.
- `GetEnvironmentSetting(SettingName: Text): Text`: Gets the value of the specified environment setting. This is only callable from Microsoft published apps.

## 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 3702 "Environment Information Impl."](../codeunit/3702.md) (15 calls: `CanStartSession → CanStartSession`, `EnableM365Collaboration → EnableM365Collaboration`, `GetApplicationFamily → GetApplicationFamily`, …)
- [Codeunit 3706 "Env. Inf. Notification Impl."](../codeunit/3706.md) (1 call: `ShowEarlyPreviewNotification → ShowEarlyPreviewNotification`)

## Called by

- [Codeunit 7201 "CDS Integration Impl."](../codeunit/7201.md) (12 calls: `ConfigureVirtualTables → GetEnvironmentName`, `EnableAADApp → IsSaaSInfrastructure`, `GetBusinessEventsSupported → IsSaaSInfrastructure`, …)
- [Codeunit 9994 "API Data Upgrade"](../codeunit/9994.md) (10 calls: `UpgradeItemPostingGroups → IsSaaS`, `UpgradePurchaseOrderShortcutDimension → IsSaaS`, `UpgradePurchInvoiceShortcutDimension → IsSaaS`, …)
- [Codeunit 9510 "Document Service Management"](../codeunit/9510.md) (8 calls: `GetAccessToken → IsSaaSInfrastructure`, `GetClientId → IsSaaSInfrastructure`, `GetClientSecret → IsSaaSInfrastructure`, …)
- [Codeunit 104000 "Upgrade - BaseApp"](../codeunit/104000.md) (5 calls: `UpdateAllJobsResourcePrices → IsSaaS`, `UpdatePriceListLineStatus → IsSaaS`, `UpgradeCreditTransferIBAN → IsSaaS`, …)
- [Codeunit 1309 "O365 Getting Started Mgt."](../codeunit/1309.md) (5 calls: `CheckOrLaunchWizard → IsSandbox`, `GetPageToStart → IsSaaS`, `GetPageToStart → IsSandbox`, …)
- [Codeunit 1430 "Role Center Notification Mgt."](../codeunit/1430.md) (5 calls: `AreNotificationsSupported → IsSaaS`, `AreNotificationsSupported → IsSandbox`, `AreSandboxNotificationsSupported → IsSaaS`, …)
- [Codeunit 4700 "VAT Group Communication"](../codeunit/4700.md) (5 calls: `GetBearerToken → IsSaaSInfrastructure`, `GetBearerTokenFromCache → IsSaaSInfrastructure`, `GetFirstPartyAppCertificate → IsSaaSInfrastructure`, …)
- [Codeunit 6941 "EA Http Client"](../codeunit/6941.md) (5 calls: `AddAuthHeaders → IsSaaS`, `BuildErpConfigJson → GetEnvironmentName`, `BuildErpConfigJson → IsSaaS`, …)
- [Codeunit 104030 "Upgrade Plan Permissions"](../codeunit/104030.md) (4 calls: `InsertPermission → IsSaaS`, `SetAutomateAccessControl → IsSaaS`, `SetAutomateActionPermissions → IsSaaS`, …)
- [Codeunit 1432 "Satisfaction Survey Impl."](../codeunit/1432.md) (4 calls: `GetApplicationUriSegment → IsFinancials`, `IsSupported → IsFinancials`, `IsSupported → IsSaaS`, …)
- [Codeunit 1686 "Email Logging OAuth Client"](../codeunit/1686.md) (4 calls: `GetApplicationType → IsSaaSInfrastructure`, `GetClientId → IsSaaSInfrastructure`, `GetClientSecret → IsSaaSInfrastructure`, …)
- [Codeunit 6710 "ODataUtility"](../codeunit/6710.md) (4 calls: `CreateMetadataWebRequest → IsSaaS`, `GenerateExcelTemplateWorkBook → GetEnvironmentName`, `GenerateExcelTemplateWorkBook → IsSaaS`, …)
- [Page 6991 "Expense Agent Setup Wizard"](../page/6991.md) (4 calls: `GetExpenseDashboardUrl → IsOnPrem`, `GetExpenseDashboardUrl → IsSaaSInfrastructure`, `RegisterErpConfiguration → IsSaaSInfrastructure`, …)
- [Codeunit 1410 "Doc. Exch. Service Mgt."](../codeunit/1410.md) (3 calls: `GetMissingClientIdOrSecretErr → IsSaaSInfrastructure`, `GetPredefinedClientId → IsSaaSInfrastructure`, `GetPredefinedClientSecret → IsSaaSInfrastructure`)
- [Codeunit 1489 "Edit in Excel Workbook Impl."](../codeunit/1489.md) (3 calls: `GetHostName → IsSaaS`, `InitializeDataEntityExportInfo → GetEnvironmentName`, `InitializeDataEntityExportInfo → IsSaaS`)
- [Codeunit 153 "User Permissions Impl."](../codeunit/153.md) (3 calls: `CheckSuperPermissionsBeforeDeleteAccessControl → IsSaaS`, `CheckSuperPermissionsBeforeDeleteUser → IsSaaS`, `CheckSuperPermissionsBeforeRenameAccessControl → IsSaaS`)
- [Codeunit 1814 "Assisted Setup Subscribers"](../codeunit/1814.md) (3 calls: `Initialize → IsSaaS`, `Initialize → IsSaaSInfrastructure`, `OnRegisterVideo → IsSaaS`)
- [Codeunit 2518 "AppSrc Product Deps. Provider"](../codeunit/2518.md) (3 calls: `GetApplicationFamily → GetApplicationFamily`, `IsSaas → IsSaaS`, `IsSaas → IsSaaSInfrastructure`)
- [Codeunit 3305 "Payables Agent Upgrade"](../codeunit/3305.md) (3 calls: `AddBillingTypeToCapability → IsSaaSInfrastructure`, `AlwaysUpdateAgentInformationOnUpgrade → IsSaaSInfrastructure`, `RegisterTrial → IsSaaSInfrastructure`)
- [Codeunit 418 "User Management"](../codeunit/418.md) (3 calls: `OnBeforeModifyUserValidateWindowsSecurityIdOnSaaS → IsSaaSInfrastructure`, `SetLicenseTypeOnValidateApplicationID → IsSaaS`, `ValidateLicenseTypeOnSaaS → IsSaaS`)
- [Codeunit 4507 "Email - OAuth Client"](../codeunit/4507.md) (3 calls: `CheckIfThirdParty → IsSaaSInfrastructure`, `Initialize → IsSaaSInfrastructure`, `TryGetAccessTokenInternal → IsSaaSInfrastructure`)
- [Codeunit 5585 "Digital Voucher Feature"](../codeunit/5585.md) (3 calls: `EnforceDigitalVoucherFunctionality → GetApplicationFamily`, `EnforceDigitalVoucherFunctionality → IsSaaSInfrastructure`, `EnforceDigitalVoucherFunctionality → IsSandbox`)
- [Codeunit 8611 "Config. Package Management"](../codeunit/8611.md) (3 calls: `ShowRapidStartNotification → IsSaaS`, `ShowWarningOnApplyingBigConfPackage → IsSaaS`, `ShowWarningOnImportingBigConfPackage → IsSaaS`)
- [Codeunit 9175 "User Settings Impl."](../codeunit/9175.md) (3 calls: `CheckPermissionsInternal → IsOnPrem`, `CheckPermissionsInternal → IsSaaSInfrastructure`, `HideExternalUsers → IsSaaS`)
- [Page 9037 "Accountant Activities"](../page/9037.md) (3 calls: `OnAfterGetCurrRecord → IsSaaS`, `OnInit → IsSaaS`, `OnOpenPage → IsSaaS`)
- [Codeunit 1545 "Workflow Webhook Notification"](../codeunit/1545.md) (2 calls: `PrepareWebhookPayload → GetEnvironmentName`, `PrepareWebhookPayload → IsSaaS`)
- [Codeunit 20105 "AMC Banking Mgt."](../codeunit/20105.md) (2 calls: `GetLicenseNumber → IsSaaS`, `IsSolutionSandbox → IsSandbox`)
- [Codeunit 40030 "Table and Field Move Mappings"](../codeunit/40030.md) (2 calls: `AddLocalizationAuditCodesMappings → GetApplicationFamily`, `AddLocalizationNoSeriesMappings → GetApplicationFamily`)
- [Codeunit 40035 "OnPrem Migration Handler"](../codeunit/40035.md) (2 calls: `CanHandle → IsSaaSInfrastructure`, `HandleOnFinishAdlMigration → IsSaaS`)
- [Codeunit 4353 "Agent Designer Environment"](../codeunit/4353.md) (2 calls: `IsSupportedEnvironment → IsSaaS`, `IsSupportedEnvironment → IsSandbox`)
- [Codeunit 4509 "Email - Outlook API Helper"](../codeunit/4509.md) (2 calls: `GetClientIDAndSecret → IsSaaSInfrastructure`, `SetupAzureAppRegistration → IsSaaSInfrastructure`)
- [Codeunit 4589 "SOA Upgrade"](../codeunit/4589.md) (2 calls: `AddBillingTypeToCapability → IsSaaSInfrastructure`, `AlwaysUpdateAgentInstructionsOnUpgrade → IsSaaSInfrastructure`)
- [Codeunit 50 "SaaS Log In Management"](../codeunit/50.md) (2 calls: `ShouldShowTermsAndConditions → IsSaaS`, `ShouldShowTermsAndConditions → IsSandbox`)
- [Codeunit 6400 "Flow Service Management"](../codeunit/6400.md) (2 calls: `GetEnvironmentId → GetLinkedPowerPlatformEnvironmentId`, `ParseResponseTextForEnvironments → GetLinkedPowerPlatformEnvironmentId`)
- [Codeunit 7203 "CDS Environment"](../codeunit/7203.md) (2 calls: `GetCDSEnvironmentCount → GetLinkedPowerPlatformEnvironmentId`, `SetLinkedDataverseEnvironmentUrl → GetLinkedPowerPlatformEnvironmentId`)
- [Codeunit 7499 "Item From Picture"](../codeunit/7499.md) (2 calls: `PromptOnHttpCallsIfSandbox → IsSandbox`, `RunWizard → IsOnPrem`)
- [Codeunit 7774 "Copilot Capability Impl"](../codeunit/7774.md) (2 calls: `IsProductionEnvironment → IsProduction`, `IsTenantAllowedToUseAOAI → IsSaaSInfrastructure`)
- [Codeunit 8351 "MCP Config Implementation"](../codeunit/8351.md) (2 calls: `GenerateConnectionString → GetEnvironmentName`, `GenerateConnectionString → IsSaaS`)
- [Codeunit 9002 "Permission Manager"](../codeunit/9002.md) (2 calls: `AllowUpdateUserAccessForSaaS → IsSaaS`, `ResetUsersToIntelligentCloudPermissions → IsSaaS`)
- [Codeunit 9178 "Application Area Mgmt."](../codeunit/9178.md) (2 calls: `IsAdvancedExperienceEnabled → IsSandbox`, `IsValidExperienceTierSelected → IsOnPrem`)
- [Codeunit 9192 "Company Creation Demo Data"](../codeunit/9192.md) (2 calls: `GetCountryContosoAppId → GetApplicationFamily`, `TryInstallApp → IsSaaS`)
- [Codeunit 9844 "User Selection Impl."](../codeunit/9844.md) (2 calls: `HideExternalAndSystemUsers → IsSaaS`, `HideOnlyExternalUsers → IsSaaS`)
- [Page 4511 "SMTP Account Wizard"](../page/4511.md) (2 calls: `OnOpenPage → IsOnPrem`, `SetProperties → IsSaaSInfrastructure`)
- [Page 4512 "SMTP Account"](../page/4512.md) (2 calls: `SetProperties → IsOnPrem`, `SetProperties → IsSaaSInfrastructure`)
- [Page 9807 "User Card"](../page/9807.md) (2 calls: `OnAfterGetRecord → IsSaaS`, `OnOpenPage → IsSaaS`)
- [Page 9990 "Code Coverage"](../page/9990.md) (2 calls: `IsCodeCoverageEnabled → IsSaaS`, `IsCodeCoverageEnabled → IsSandbox`)
- [Table 135 "Acc. Sched. KPI Web Srv. Setup"](../table/135.md) (2 calls: `DeleteWebService → IsSaaS`, `PublishWebService → IsSaaS`)
- [Codeunit 102 "Import Consolidation from API"](../codeunit/102.md) (1 call: `GetToken → IsSaaS`)
- [Codeunit 1070 "MS - PayPal Standard Mgt."](../codeunit/1070.md) (1 call: `ValidateChangeTargetURL → IsSaaS`)
- [Codeunit 1140 "OAuth 2.0 Mgt."](../codeunit/1140.md) (1 call: `CheckEncryption → IsSaaS`)
- and 204 more: data/code/graph/29/calls.json

## Recent changes

- 2026-09-30 [#11741 [MCP] Add company and environment descriptions](../../changes/bcapps/11741.md) (main, BC30, feature)
- 2026-07-29 [#9814 Revert "Expose AppService location and EUDB membership on Environment Information for internal consumption (#9716)"](../../changes/bcapps/9814.md) (main, BC30, other)
- 2026-07-28 [#9716 Expose AppService location and EUDB membership on Environment Information for internal consumption](../../changes/bcapps/9716.md) (main, BC30, feature)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24, BC26, BC28, BC30

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## 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: "Environment Information")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
