Private/Case.ps1
|
# Work item outcomes midPoint understands when a case is completed (REST: POST cases/<oid>/workItems/<id>/complete). # For manual provisioning cases 'approve' means the operator did the change, 'reject' that it failed. $script:midPointOutcomeUri = @{ Success = 'http://midpoint.evolveum.com/xml/ns/public/model/approval/outcome#approve' Failure = 'http://midpoint.evolveum.com/xml/ns/public/model/approval/outcome#reject' } function Get-midPointOpenWorkItem { # Work items of a raw case that are not closed yet. [CmdletBinding()] param([Parameter(Mandatory)] [object] $Case) @(Get-midPointProperty $Case 'workItem') | Where-Object { $null -ne $_ -and $null -eq (Get-midPointProperty $_ 'closeTimestamp') } } function ConvertTo-midPointCaseObject { [CmdletBinding()] param([Parameter(Mandatory, ValueFromPipeline)] [object] $InputObject) process { $objectRef = Get-midPointProperty $InputObject 'objectRef' $targetRef = Get-midPointProperty $InputObject 'targetRef' $workItems = @(Get-midPointProperty $InputObject 'workItem' | Where-Object { $null -ne $_ } | ForEach-Object { [pscustomobject]@{ Id = Get-midPointContainerId $_ Name = ConvertFrom-midPointPolyString (Get-midPointProperty $_ 'name') Assignee = @(Get-midPointProperty $_ 'assigneeRef' | ForEach-Object { $n = ConvertFrom-midPointPolyString (Get-midPointProperty $_ 'targetName') if ($n) { $n } else { [string](Get-midPointProperty $_ 'oid') } } | Where-Object { $_ }) IsOpen = $null -eq (Get-midPointProperty $_ 'closeTimestamp') Outcome = ConvertFrom-midPointQName (Get-midPointProperty (Get-midPointProperty $_ 'output') 'outcome') } }) [pscustomobject]@{ PSTypeName = 'midPointTools.Case' Oid = [string](Get-midPointProperty $InputObject 'oid') Name = ConvertFrom-midPointPolyString (Get-midPointProperty $InputObject 'name') State = Get-midPointProperty $InputObject 'state' Outcome = ConvertFrom-midPointQName (Get-midPointProperty $InputObject 'outcome') Object = ConvertFrom-midPointPolyString (Get-midPointProperty $objectRef 'targetName') ObjectOid = [string](Get-midPointProperty $objectRef 'oid') Target = ConvertFrom-midPointPolyString (Get-midPointProperty $targetRef 'targetName') TargetOid = [string](Get-midPointProperty $targetRef 'oid') OpenWorkItems = @($workItems | Where-Object IsOpen).Count WorkItem = $workItems CloseTimestamp = ConvertFrom-midPointDateTime (Get-midPointProperty $InputObject 'closeTimestamp') Raw = $InputObject } } } |