diklabu_cwaProcess.psm1
##### DIKLABU_CWAPROCESS.PSM1 ##### Dieses Modul enthält Funktionen, die für die Daten für die cwa Process benötigt werden ##### CWA Process ist das Flowmanagement-Tool für die Schule ##### <# .Synopsis Erzeugt eine Liste als csv, die eine Zuordnung der Klassen und ihrer Lehrkräfte enthält .DESCRIPTION Liest alle Lehrkräfte aus BBS-Planung ein und ermittelt die Klassen, die sie unterrichten. Dazu wird eine Abfrage an Webuntis gestellt und die beiden Datenquellen zusammengeführt. Das Ergebnis wird in einer csv-Datei gespeichert. .PARAMETER BPBackupRootDir Pfad zum Backup-Verzeichnis von BBS-Planung, z.B. "C:\Users\Public\Documents\BBS-Planung\Backup" .PARAMETER WUlocationClassTeachers Parameterdatei für alle Nextcloud VWN Dienste .PARAMETER WUclassesTeachersDelimiter Trennzeichen für die Klassen der Lehrkräfte in Webuntis .EXAMPLE get-NCparameters .EXAMPLE get-NCparameters -file c:\Temp\keys #> function new-cwapClassesTeachers{ [CmdletBinding()] Param ( [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true, Position=0)] [String]$BPBackupRootDir, [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true, Position=1)] [String]$WUlocationClassTeachers, [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true, Position=2)] [String]$WUclassesTeachersDelimiter, [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true, Position=3)] [String]$pathCWAteachersClasses, [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true, Position=4)] [String]$allgCsvDelimiter ) Begin{ $bpTeachers = get-BpTeachers -useDB $false -bpBackupRootDir $BPBackupRootDir # get credentials for Untis $WUcreds = get-LoginCreds -userKey "WUuser" -passKey "WUpass" -passFileKey "WUpassFile" $hashClassesTeachers=get-untisClassTeacherTeams -checkHashlistClassesTeachers $true -WUlocationClassTeachers $WUlocationClassTeachers -WUclassesTeachersDelimiter $WUclassesTeachersDelimiter -WUcreds $WUcreds # zu $bpteachers eine Spalte mit dem Namen der Klassen hinzufügen $bpTeachers | ForEach-Object { $kurz = $_.Kürzel $ou="" foreach($item in $hashClassesTeachers.GetEnumerator()){ # Lehrkräfte der aktuellen Klasse ermitteln $classTeachers = @() $classTeachers = ($item.value).split($WUclassesTeachersDelimiter) if ($classTeachers -contains $kurz) { if ( $ou -ne "" ) { $ou+=$WUclassesTeachersDelimiter + $($item.key) } else { $ou+="$($item.key)" } } } $_ | Add-Member -MemberType NoteProperty -Name "Klassen" -Value $ou } $bpTeachers|Export-Csv -Path $pathCWAteachersClasses -NoTypeInformation -Delimiter $allgCsvDelimiter } } |