src/Client/Set-XrmRecordState.ps1
|
<# .SYNOPSIS Set the state and status of a record. .DESCRIPTION Update the statecode and statuscode of a Dataverse record using Update-XrmRecord. .PARAMETER XrmClient Xrm connector initialized to target instance. Use latest one by default. (Dataverse ServiceClient) .PARAMETER RecordReference Entity reference of the target record. .PARAMETER StateCode State code value to set (e.g., 0 = Active, 1 = Inactive). .PARAMETER StatusCode Status code value to set. Must be valid for the given state code. .EXAMPLE $xrmClient = New-XrmClient -ConnectionString $connectionString; $accountRef = New-XrmEntityReference -LogicalName "account" -Id $accountId; Set-XrmRecordState -XrmClient $xrmClient -RecordReference $accountRef -StateCode 1 -StatusCode 2; #> function Set-XrmRecordState { [CmdletBinding()] param ( [Parameter(Mandatory = $false, ValueFromPipeline)] [Microsoft.PowerPlatform.Dataverse.Client.ServiceClient] $XrmClient = $Global:XrmClient, [Parameter(Mandatory = $true)] [Microsoft.Xrm.Sdk.EntityReference] $RecordReference, [Parameter(Mandatory = $true)] [int] $StateCode, [Parameter(Mandatory = $true)] [int] $StatusCode ) begin { $StopWatch = [System.Diagnostics.Stopwatch]::StartNew(); Trace-XrmFunction -Name $MyInvocation.MyCommand.Name -Stage Start -Parameters ($MyInvocation.MyCommand.Parameters); } process { $record = New-XrmEntity -LogicalName $RecordReference.LogicalName -Id $RecordReference.Id; $record.Attributes["statecode"] = New-XrmOptionSetValue -Value $StateCode; $record.Attributes["statuscode"] = New-XrmOptionSetValue -Value $StatusCode; Update-XrmRecord -XrmClient $XrmClient -Record $record; $RecordReference; } end { $StopWatch.Stop(); Trace-XrmFunction -Name $MyInvocation.MyCommand.Name -Stage Stop -StopWatch $StopWatch; } } Export-ModuleMember -Function Set-XrmRecordState -Alias *; |