Private/Write-BoundaryGroups.ps1

function Write-BoundaryGroups {
    param (
        [string] $FileName,
        [string] $TableName,
        [string] $SiteCode,
        [int] $NumberOfDays,
        $LogFile,
        [string] $ServerName,
        $ContinueOnError = $true
    )
    Write-Log -Message "[function: write-cmboundarygroups]" -LogFile $logfile
    $query = "select distinct Name, GroupID, Description, Flags, DefaultSiteCode as SiteCode, CreatedOn, MemberCount as Boundaries, SiteSystemCount as SiteSystems FROM vSMS_BoundaryGroup order by Name"
    $bgs = @(Invoke-DbaQuery -SqlInstance $ServerName -Database $SQLDBName -Query $query -ErrorAction SilentlyContinue)
    if ($null -eq $bgs) { return }
    $Fields = @("Name","GroupID","Description","Flags","SiteCode","CreatedOn","Boundaries","SiteSystems")
    $bgDetails = New-CmDataTable -TableName $tableName -Fields $Fields
    foreach ($bg in $bgs) {
        $row = $bgDetails.NewRow()
        $row.Name = $bg.Name
        $row.GroupID = $bg.GroupID
        $row.Description = $bg.Description
        $row.Flags = $bg.Flags
        $row.SiteCode = $bg.SiteCode
        $row.CreatedOn = $bg.CreatedOn
        $row.Boundaries = $bg.Boundaries
        $row.SiteSystems = $bg.SiteSystems
        $bgDetails.Rows.Add($row)
    }
    , $bgDetails | Export-CliXml -Path ($filename)
}