95 lines
3.3 KiB
PowerShell
95 lines
3.3 KiB
PowerShell
<#
|
|
.SYNOPSIS
|
|
A short one-line action-based description, e.g. 'Tests if a function is valid'
|
|
.DESCRIPTION
|
|
A longer description of the function, its purpose, common use cases, etc.
|
|
.NOTES
|
|
state values
|
|
-5 New
|
|
-4 Access
|
|
-2 Scheduled
|
|
-1 Implement
|
|
0 Review
|
|
3 Close
|
|
Close code
|
|
Close notes
|
|
|
|
|
|
.LINK
|
|
Specify a URI to a help page, this will show when Get-Help -Online is used.
|
|
.EXAMPLE
|
|
Test-MyTestFunction -Verbose
|
|
Explanation of the function or its result. You can include multiple examples with additional .EXAMPLE lines
|
|
#>
|
|
|
|
function Complete-ITDServiceNowChangeRequest {
|
|
[CmdletBinding()]
|
|
param (
|
|
[Parameter(Mandatory = $true)]
|
|
[string]
|
|
$Number,
|
|
|
|
[string]
|
|
$CloseCode,
|
|
|
|
[string]
|
|
$CloseNotes
|
|
)
|
|
|
|
begin {
|
|
|
|
}
|
|
|
|
process {
|
|
try {
|
|
Write-Verbose -Message ($Number + " If state is Assess, do nothing")
|
|
$CHG = Get-ITDServiceNowRecord -ItemType 'Change Request' -Number $Number
|
|
If ($CHG.State.display_value -eq "Assess") {
|
|
Write-Error -Message ($Number + " is currently in Assess state. Unable to continue until the CHG is Approved.")
|
|
}
|
|
Else {
|
|
Write-Verbose -Message ($Number + " If state is New and Type is Standard, set to Schedule")
|
|
$CHG = Get-ITDServiceNowRecord -ItemType 'Change Request' -Number $Number
|
|
If ($CHG.State.display_value -eq "New" -and $CHG.type.display_value -eq 'Standard') {
|
|
Update-ITDServiceNowRecord -ItemType 'Change Request' -Number $Number -Values @{
|
|
state = 'Scheduled'
|
|
} | Out-Null
|
|
}
|
|
|
|
Write-Verbose -Message ($Number + " If state is Schedule, set to Implement")
|
|
$CHG = Get-ITDServiceNowRecord -ItemType 'Change Request' -Number $Number
|
|
If ($CHG.State.display_value -eq "Scheduled") {
|
|
Update-ITDServiceNowRecord -ItemType 'Change Request' -Number $Number -Values @{
|
|
state = 'Implement'
|
|
} | Out-Null
|
|
}
|
|
|
|
Write-Verbose -Message ($Number + " If state is Implement, set to Review")
|
|
$CHG = Get-ITDServiceNowRecord -ItemType 'Change Request' -Number $Number
|
|
If ($CHG.State.display_value -eq "Implement") {
|
|
Update-ITDServiceNowRecord -ItemType 'Change Request' -Number $Number -Values @{
|
|
state = 'Review';
|
|
} | Out-Null
|
|
}
|
|
|
|
Write-Verbose -Message ($Number + " If state is Review, set to Close")
|
|
$CHG = Get-ITDServiceNowRecord -ItemType 'Change Request' -Number $Number
|
|
If ($CHG.State.display_value -eq "Review") {
|
|
Update-ITDServiceNowRecord -ItemType 'Change Request' -Number $Number -Values @{
|
|
state = 'Closed';
|
|
close_code = $CloseCode;
|
|
close_notes = $CloseNotes;
|
|
} | Out-Null
|
|
}#>
|
|
}
|
|
}
|
|
catch {
|
|
Write-Error -Message $error[0]
|
|
|
|
}
|
|
}
|
|
|
|
end {
|
|
|
|
}
|
|
} |