changed: Soll-/IST-Profile
This commit is contained in:
parent
582e36b05c
commit
afc61308c7
2 changed files with 16 additions and 1 deletions
13
CLAUDE.md
13
CLAUDE.md
|
|
@ -103,6 +103,19 @@ per institute (down from 10 h; do not regress this).
|
||||||
- **Out vs Neu list Add targets:** adding a line to the wrong collection
|
- **Out vs Neu list Add targets:** adding a line to the wrong collection
|
||||||
duplicated every FS creation row. The Neu list is derived now, but the same
|
duplicated every FS creation row. The Neu list is derived now, but the same
|
||||||
copy-paste class applies to the four remaining lists.
|
copy-paste class applies to the four remaining lists.
|
||||||
|
- **Verify ALL FOUR outputs after any Work-file change — not just one.** A sorted
|
||||||
|
multiset compare of a single output (e.g. Ist-MitarbeiterProfile) can be
|
||||||
|
byte-identical while a sibling (Soll-Profile) silently diverges. Seen: the
|
||||||
|
AppAccess `ProfilName` flipped from `"Anwendungszugriff <name>"` to the AD
|
||||||
|
description because a source-column read changed `$item.'Beschreibung'` (a
|
||||||
|
column that does NOT exist in `*_Anwendungen.csv` → always `$null` → empty →
|
||||||
|
fell through to the intended default) to `$item.'Beschreibung (256 Zeichen)'`
|
||||||
|
(the real, populated column). Ist / GruppenAnlegen / Gruppenverwaltung matched
|
||||||
|
exactly; only Soll-Profile differed — cols 3+6 of the 638 AppAccess rows.
|
||||||
|
Corollary: **a read of an absent column is load-bearing "always-empty"
|
||||||
|
behavior.** Do not "fix" a phantom column name to the real one without checking
|
||||||
|
the downstream `if (-not $x)` default it feeds; set the value to `""` explicitly
|
||||||
|
instead so a future rename can't resurrect the bug.
|
||||||
- **Prefix filter (Anwenderrollen):** `R125GUX*`/`<SPKID>GUX*` objects fall
|
- **Prefix filter (Anwenderrollen):** `R125GUX*`/`<SPKID>GUX*` objects fall
|
||||||
THROUGH (original cascade had an empty first branch). The explicit
|
THROUGH (original cascade had an empty first branch). The explicit
|
||||||
`StartsWith` check preserves this regardless of the prefix CSV content.
|
`StartsWith` check preserves this regardless of the prefix CSV content.
|
||||||
|
|
|
||||||
|
|
@ -979,7 +979,9 @@ function ProcessADObjects
|
||||||
$nummer_array[$MyKey[1]] = $item.'Nr.'
|
$nummer_array[$MyKey[1]] = $item.'Nr.'
|
||||||
$verantwortlicher_array[$MyKey[1]] = $Verantwortlicher
|
$verantwortlicher_array[$MyKey[1]] = $Verantwortlicher
|
||||||
$kz_array[$MyKey[1]] = $item.'AWK'
|
$kz_array[$MyKey[1]] = $item.'AWK'
|
||||||
$beschreibung_array[$MyKey[1]] = $item.'Beschreibung (256 Zeichen)'
|
# ProfilName must stay "Anwendungszugriff <name>": keep the description empty so the
|
||||||
|
# else branch below does not override it with the AD description column.
|
||||||
|
$beschreibung_array[$MyKey[1]] = ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue