src/Workflows/Get-XrmConnectionReferences.ps1
|
<# .SYNOPSIS Retrieve connection references. .DESCRIPTION Get connection reference rows (connectionreference), optionally filtered by logical name or connector. .PARAMETER XrmClient Xrm connector initialized to target instance. Use latest one by default. (Dataverse ServiceClient) .PARAMETER LogicalName Connection reference logical name (connectionreferencelogicalname). (Default: all) .PARAMETER ConnectorId Connector, as a full id ("/providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps") or its last segment ("shared_commondataserviceforapps"). (Default: all) .PARAMETER Columns Columns to return. (Default: connectionreferencelogicalname, connectionreferencedisplayname, connectorid, connectionid, statecode) .OUTPUTS PSCustomObject[]. Connection reference rows (XrmObject). .EXAMPLE $references = Get-XrmConnectionReferences -XrmClient $xrmClient -ConnectorId "shared_commondataserviceforapps"; $unbound = $references | Where-Object { -not $_.connectionid }; .LINK https://github.com/AymericM78/PowerDataOps/blob/main/documentation/commands/Get-XrmConnectionReferences.md #> function Get-XrmConnectionReferences { [CmdletBinding()] [OutputType([PSCustomObject[]])] param ( [Parameter(Mandatory = $false, ValueFromPipeline)] [Microsoft.PowerPlatform.Dataverse.Client.ServiceClient] $XrmClient = $Global:XrmClient, [Parameter(Mandatory = $false)] [ValidateNotNullOrEmpty()] [String] $LogicalName, [Parameter(Mandatory = $false)] [ValidateNotNullOrEmpty()] [String] $ConnectorId, [Parameter(Mandatory = $false)] [ValidateNotNullOrEmpty()] [String[]] $Columns = @("connectionreferencelogicalname", "connectionreferencedisplayname", "connectorid", "connectionid", "statecode") ) begin { $StopWatch = [System.Diagnostics.Stopwatch]::StartNew(); Trace-XrmFunction -Name $MyInvocation.MyCommand.Name -Stage Start -Parameters ($MyInvocation.MyCommand.Parameters); } process { $query = New-XrmQueryExpression -LogicalName "connectionreference" -Columns $Columns; if ($PSBoundParameters.ContainsKey('LogicalName')) { $query = $query | Add-XrmQueryCondition -Field "connectionreferencelogicalname" -Condition Equal -Values $LogicalName; } if ($PSBoundParameters.ContainsKey('ConnectorId')) { $connectorSegment = $ConnectorId.Split("/")[-1]; $query = $query | Add-XrmQueryCondition -Field "connectorid" -Condition EndsWith -Values "/$connectorSegment"; } $XrmClient | Get-XrmMultipleRecords -Query $query; } end { $StopWatch.Stop(); Trace-XrmFunction -Name $MyInvocation.MyCommand.Name -Stage Stop -StopWatch $StopWatch; } } Export-ModuleMember -Function Get-XrmConnectionReferences -Alias *; |