diff --git a/d365bap.tools/d365bap.tools.psd1 b/d365bap.tools/d365bap.tools.psd1
index aeb86c8..ae9f86b 100644
--- a/d365bap.tools/d365bap.tools.psd1
+++ b/d365bap.tools/d365bap.tools.psd1
@@ -45,12 +45,16 @@
'Compare-BapEnvironmentD365App'
, 'Compare-BapEnvironmentUser'
+ , 'Confirm-BapEnvironmentIntegration'
+
, 'Get-BapEnvironment'
, 'Get-BapEnvironmentApplicationUser'
, 'Get-BapEnvironmentD365App'
, 'Get-BapEnvironmentUser'
+
+ , 'Get-BapEnvironmentVirtualEntity'
, 'Invoke-BapEnvironmentInstallD365App'
)
diff --git a/d365bap.tools/functions/Confirm-BapEnvironmentIntegration.ps1 b/d365bap.tools/functions/Confirm-BapEnvironmentIntegration.ps1
new file mode 100644
index 0000000..bed50e0
--- /dev/null
+++ b/d365bap.tools/functions/Confirm-BapEnvironmentIntegration.ps1
@@ -0,0 +1,88 @@
+
+<#
+ .SYNOPSIS
+ Test the integration status
+
+ .DESCRIPTION
+ Invokes the validation of the PowerPlatform integration, from the Dataverse perspective
+
+ If it returns an output, the Dataverse is fully connected to the D365FO environment
+
+ .PARAMETER EnvironmentId
+ The id of the environment that you want to work against
+
+ .PARAMETER AsExcelOutput
+ Instruct the cmdlet to output all details directly to an Excel file
+
+ This makes it easier to deep dive into all the details returned from the API, and makes it possible for the user to persist the current state
+
+ .EXAMPLE
+ PS C:\> Confirm-BapEnvironmentIntegration -EnvironmentId eec2c11a-a4c7-4e1d-b8ed-f62acc9c74c6
+
+ This will invoke the validation from the Dataverse environment.
+ It will only output details if the environment is fully connected and working.
+
+ Sample output:
+ LinkedAppLcsEnvId LinkedAppLcsEnvUri IsUnifiedDatabase TenantId
+ ----------------- ------------------ ----------------- --------
+ 0e52661c-0225-4621-b1b4-804712cf6d9a https://new-test.sandbox.operations.eu.dynamics.c… False 8ccb796b-37b…
+
+ .EXAMPLE
+ PS C:\> Confirm-BapEnvironmentIntegration -EnvironmentId eec2c11a-a4c7-4e1d-b8ed-f62acc9c74c6 -AsExcelOutput
+
+ This will invoke the validation from the Dataverse environment.
+ It will only output details if the environment is fully connected and working.
+ Will output all details into an Excel file, that will auto open on your machine.
+
+ The excel file will be empty if the integration isn't working.
+
+ .NOTES
+ Author: Mötz Jensen (@Splaxi)
+#>
+function Confirm-BapEnvironmentIntegration {
+ [CmdletBinding()]
+ param (
+ [parameter (mandatory = $true)]
+ [string] $EnvironmentId,
+
+ [switch] $AsExcelOutput
+ )
+
+ begin {
+ # Make sure all *BapEnvironment* cmdlets will validate that the environment exists prior running anything.
+ $envObj = Get-BapEnvironment -EnvironmentId $EnvironmentId | Select-Object -First 1
+
+ if ($null -eq $envObj) {
+ $messageString = "The supplied EnvironmentId: $EnvironmentId didn't return any matching environment details. Please verify that the EnvironmentId is correct - try running the Get-BapEnvironment cmdlet."
+ Write-PSFMessage -Level Host -Message $messageString
+ Stop-PSFFunction -Message "Stopping because environment was NOT found based on the id." -Exception $([System.Exception]::new($($messageString -replace '<[^>]+>', '')))
+ }
+
+ if (Test-PSFFunctionInterrupt) { return }
+
+ $baseUri = $envObj.LinkedMetaPpacEnvUri
+ $tokenWebApi = Get-AzAccessToken -ResourceUrl $baseUri
+ $headersWebApi = @{
+ "Authorization" = "Bearer $($tokenWebApi.Token)"
+ }
+ }
+
+ process {
+ $resValidate = Invoke-RestMethod -Method Get -Uri $($baseUri + '/api/data/v9.2/RetrieveFinanceAndOperationsIntegrationDetails') -Headers $headersWebApi
+
+ $temp = $resValidate | Select-PSFObject -TypeName "D365Bap.Tools.Environment.Integration" -ExcludeProperty "@odata.context" -Property "Id as LinkedAppLcsEnvId",
+ "Url as LinkedAppLcsEnvUri",
+ *
+
+ if ($AsExcelOutput) {
+ $temp | Export-Excel
+ return
+ }
+
+ $temp
+ }
+
+ end {
+
+ }
+}
\ No newline at end of file
diff --git a/d365bap.tools/xml/d365bap.tools.Format.ps1xml b/d365bap.tools/xml/d365bap.tools.Format.ps1xml
index 4e79f9b..3e2630f 100644
--- a/d365bap.tools/xml/d365bap.tools.Format.ps1xml
+++ b/d365bap.tools/xml/d365bap.tools.Format.ps1xml
@@ -309,5 +309,45 @@
+
+ D365Bap.Tools.Environment.Integration
+
+ D365Bap.Tools.Environment.Integration
+
+
+
+
+ 36
+
+
+ 50
+
+
+ 17
+
+
+ 36
+
+
+
+
+
+
+ LinkedAppLcsEnvId
+
+
+ LinkedAppLcsEnvUri
+
+
+ IsUnifiedDatabase
+
+
+ TenantId
+
+
+
+
+
+
\ No newline at end of file