<# .SYNOPSIS Диагностика: печатает строки маршрута одной заявки из списка «— согласование» (StepOrder, статус, фаза, кем переназначено, кто создал/менял) и историю версий строк исполнения — чтобы понять, откуда в маршруте взялся участник и кто перевёл его в «На исполнении». Только чтение, ничего не меняет. .EXAMPLE ./Inspect-Route.ps1 -SiteUrl "https://tnsukz.sharepoint.com/sites/requests" ` -ClientId "7459c965-5ed4-4673-8140-0ab8faf9db64" -Tenant "tnsukz.onmicrosoft.com" ` -Thumbprint "224B64C8E0CAB1E09AF373E92B3AF4AC33C1233C" ` -ListTitle "Прием на работу 1 — согласование" -RequestId 68 #> param( [Parameter(Mandatory = $true)][string]$SiteUrl, [Parameter(Mandatory = $true)][string]$ClientId, [Parameter(Mandatory = $true)][string]$Tenant, [Parameter(Mandatory = $true)][string]$Thumbprint, [Parameter(Mandatory = $true)][string]$ListTitle, [Parameter(Mandatory = $true)][int]$RequestId ) $ErrorActionPreference = 'Stop' Connect-PnPOnline -Url $SiteUrl -ClientId $ClientId -Tenant $Tenant -Thumbprint $Thumbprint $query = "$RequestId" + "" $items = Get-PnPListItem -List $ListTitle -Query $query function UserText($value) { if ($null -eq $value) { return '' } return $value.Email } Write-Host "`nМаршрут заявки #$RequestId («$ListTitle»):`n" -ForegroundColor Cyan $items | ForEach-Object { [pscustomobject]@{ Id = $_.Id StepOrder = $_['StepOrder'] Phase = $_['Phase'] Status = $_['ApprovalStatus'] Approver = UserText $_['TansuSiteApprover'] DelegatedBy = UserText $_['DelegatedBy'] Reassign = $_['AllowReassignToOtherApprovers'] Created = $_['Created'] CreatedBy = UserText $_['Author'] Modified = $_['Modified'] ModifiedBy = UserText $_['Editor'] } } | Format-Table -AutoSize # История версий — только строки исполнения: там видно, кто и когда менял статус. $items | Where-Object { $_['Phase'] -eq 'Исполнение' } | ForEach-Object { Write-Host "`nВерсии строки Id=$($_.Id) ($(UserText $_['TansuSiteApprover'])):" -ForegroundColor Yellow Get-PnPProperty -ClientObject $_ -Property Versions | Out-Null $_.Versions | ForEach-Object { Get-PnPProperty -ClientObject $_ -Property CreatedBy | Out-Null [pscustomobject]@{ Version = $_.VersionLabel Created = $_.Created By = $_.CreatedBy.Email Status = $_['ApprovalStatus'] StepOrder = $_['StepOrder'] } } | Format-Table -AutoSize } Disconnect-PnPOnline