src/Solutions/Publisher/Get-XrmPublisher.ps1
|
<# .SYNOPSIS Retrieve publisher record from Microsoft Dataverse. .DESCRIPTION Get a publisher by its unique name, or by its customization prefix, with expected columns. With Prefix, every publisher using that prefix is returned (the platform does not require prefixes to be unique). .PARAMETER XrmClient Xrm connector initialized to target instance. Use latest one by default. (Dataverse ServiceClient) .PARAMETER PublisherUniqueName Publisher unique name to retrieve. .PARAMETER Columns Specify expected columns to retrieve. (Default : id, uniquename, friendlyname, customizationprefix, customizationoptionvalueprefix, description) .PARAMETER Prefix Customization prefix (e.g. "contoso" for columns named contoso_*), instead of PublisherUniqueName. .OUTPUTS PSCustomObject. Publisher record (XrmObject). .EXAMPLE $publisher = Get-XrmPublisher -PublisherUniqueName "contoso"; .EXAMPLE $publisher = Get-XrmPublisher -PublisherUniqueName "contoso" -Columns "publisherid", "friendlyname"; .EXAMPLE $publisher = Get-XrmPublisher -XrmClient $xrmClient -Prefix "cts"; .LINK https://github.com/AymericM78/PowerDataOps/blob/main/documentation/commands/Get-XrmPublisher.md #> function Get-XrmPublisher { [CmdletBinding(DefaultParameterSetName = "UniqueName")] [OutputType([PSCustomObject])] param ( [Parameter(Mandatory = $false, ValueFromPipeline, Position = 0)] [Microsoft.PowerPlatform.Dataverse.Client.ServiceClient] $XrmClient = $Global:XrmClient, [Parameter(Mandatory = $true, ParameterSetName = "UniqueName", Position = 1)] [ValidateNotNullOrEmpty()] [String] $PublisherUniqueName, [Parameter(Mandatory = $false, Position = 2)] [ValidateNotNullOrEmpty()] [String[]] $Columns = @("publisherid", "uniquename", "friendlyname", "customizationprefix", "customizationoptionvalueprefix", "description"), [Parameter(Mandatory = $true, ParameterSetName = "Prefix")] [ValidateNotNullOrEmpty()] [String] $Prefix ) begin { $StopWatch = [System.Diagnostics.Stopwatch]::StartNew(); Trace-XrmFunction -Name $MyInvocation.MyCommand.Name -Stage Start -Parameters ($MyInvocation.MyCommand.Parameters); } process { if ($PSCmdlet.ParameterSetName -eq "Prefix") { $query = New-XrmQueryExpression -LogicalName "publisher" -Columns $Columns; $query = $query | Add-XrmQueryCondition -Field "customizationprefix" -Condition Equal -Values $Prefix; $XrmClient | Get-XrmMultipleRecords -Query $query; return; } $publisher = $XrmClient | Get-XrmRecord -LogicalName "publisher" -AttributeName "uniquename" -Value $PublisherUniqueName -Columns $Columns; $publisher; } end { $StopWatch.Stop(); Trace-XrmFunction -Name $MyInvocation.MyCommand.Name -Stage Stop -StopWatch $StopWatch; } } Export-ModuleMember -Function Get-XrmPublisher -Alias *; |