Functions/Remove-DqEntity.ps1
Function Remove-DqEntity { <# .SYNOPSIS Deze functie verwijdert een enkele entiteit uit een DQ Monitor Webservice. .DESCRIPTION De Remove-DqEntity functie geeft de mogelijkheid om een enkele entiteit te verwijderen uit een DQ Monitor Webservice. Voordat deze functie gebruikt wordt, zorg ervoor dat de Context is gezet via functie Set-DqContext. .PARAMETER Name De unieke naam van het entiteit zoals deze bekend is bij de DQ Monitor Webservice. .PARAMETER Force Optioneel: Indien opgegeven zal het entiteit worden verwijderd zonder eerst een bevestiging te vragen. .REMARS Let op: Indien er nog controles aan een entiteit hangen is het niet mogelijk het entiteit te verwijderen. Zorg er eerst voor dat het entiteit niet meer wordt gebruikt. .INPUTS Geen. .OUTPUTS Geen. .EXAMPLE PS> Remove-DqEntity -Name "Contract" Weet u zeker dat entiteit 'Contract' met Id 84 verwijderd moet worden uit DQ Monitor? Dit kan niet ongedaan gemaakt worden: Keuze (jn): .EXAMPLE PS> Remove-DqEntity -Name "Contract" -Force Entiteit is verwijderd. .LINK Set-DqContext #> [CmdletBinding(DefaultParameterSetName="ByEntityName")] Param( [Parameter(Mandatory=$True, ParameterSetName="ByEntityName", position=1)] [ValidateNotNullOrEmpty()] [String] $Name, [Parameter(Mandatory=$False, ParameterSetName="ByEntityName", position=2)] [Switch] $Force, [Parameter(Mandatory=$True, ParameterSetName="ByEntityObject", position=1)] [ValidateNotNull()] [PsCustomObject] $EntityObject ) If ($PSCmdlet.ParameterSetName.Equals("ByEntityName")) { $EntityObjects = Get-DqEntities -CustomOnly | Where-Object { $_.Name -eq $Name } If (-not($EntityObjects)) { Write-Host "Entiteit '$($Name)' kon niet worden gevonden." -ForegroundColor Red Return $False; } $EntityObject = $EntityObjects | Select -First 1 } If (-not($EntityObject.IsCustom)) { Write-Host "Entiteit '$($EntityObject.Name)' is geen eigen gemaakte entiteit. Verwijderen wordt niet ondersteund." -ForegroundColor Red Return; } # Check if there are checks that depend on this entity [Array] $Checks = Get-DqChecks | Where-Object { $_.Entity -eq $EntityObject.Name } If ($Checks.Count -gt 0) { Write-Host "Entiteit '$($EntityObject.Name)' is nog gekoppeld aan $($Checks.Count) controle(s). Verwijderen wordt niet ondersteund." -ForegroundColor Red Return; } If (-Not($Force.IsPresent) -or -not($Force)) { Write-Host "Weet u zeker dat entiteit " -NoNewline Write-Host "'$($EntityObject.Name)'" -NoNewline -ForegroundColor White -BackgroundColor DarkRed Write-Host " met Id " -NoNewline Write-Host "$($EntityObject.Id)" -NoNewline -ForegroundColor White -BackgroundColor DarkRed Write-Host " verwijderd moet worden uit DQ Monitor? Dit kan niet ongedaan gemaakt worden:" $Keuze = "" Do { $Keuze = Read-Host "Keuze (jn)" } While ($Keuze.Trim() -notmatch '^[jJnN]$') If ($Keuze.ToLowerInvariant().Equals("n")) { Write-Host "Handeling afgebroken." Return; } } Write-Verbose "Verwijderen van entiteit '$($EntityObject.Name)' met Id $($EntityObject.Id)..." Remove-Entity -EntityId $EntityObject.Id -ErrorAction Stop | Out-Null Write-Host "Entiteit is verwijderd." } |