src/Query/Get-XrmTotalRecordCount.ps1
<# .SYNOPSIS Returns total number of rows in given entity / table. .DESCRIPTION Returns data on the total number of records for specific entities. (RetrieveTotalRecordCount) .PARAMETER XrmClient Xrm connector initialized to target instance. Use latest one by default. (CrmServiceClient) .PARAMETER LogicalNames The logical names of the entities to include in the query. #> function Get-XrmTotalRecordCount { [CmdletBinding()] param ( [Parameter(Mandatory = $false, ValueFromPipeline)] [Microsoft.Xrm.Tooling.Connector.CrmServiceClient] $XrmClient = $Global:XrmClient, [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [String[]] $LogicalNames ) begin { $StopWatch = [System.Diagnostics.Stopwatch]::StartNew(); Trace-XrmFunction -Name $MyInvocation.MyCommand.Name -Stage Start -Parameters ($MyInvocation.MyCommand.Parameters); } process { $retrieveTotalRecordCountRequest = New-XrmRequest -Name "RetrieveTotalRecordCount"; $retrieveTotalRecordCountRequest | Add-XrmRequestParameter -Name "EntityNames" -Value $LogicalNames | Out-Null; $response = $XrmClient | Invoke-XrmRequest -Request $retrieveTotalRecordCountRequest; $response.Results["EntityRecordCountCollection"]; } end { $StopWatch.Stop(); Trace-XrmFunction -Name $MyInvocation.MyCommand.Name -Stage Stop -StopWatch $StopWatch; } } Export-ModuleMember -Function Get-XrmTotalRecordCount -Alias *; Register-ArgumentCompleter -CommandName Get-XrmTotalRecordCount -ParameterName "LogicalNames" -ScriptBlock { param($CommandName, $ParameterName, $WordToComplete, $CommandAst, $FakeBoundParameters) $validLogicalNames = Get-XrmEntitiesLogicalName; return $validLogicalNames | Where-Object { $_ -like "$wordToComplete*" }; } |