Set-Breadcrumbs #
ÜBERSICHT #
Setzt, ergänzt oder entfernt Merkmals-Pfade (Breadcrumbs) an einem Datensatz im EULANDA-Merkmalbaum.
SYNTAX #
Set-Breadcrumbs [-Conn] <__ComObject> [-TableName] <string> [-Id] <int> [-PathList] <string[]>
[[-Mode] <string>] [-IgnoreMissingPath]
BESCHREIBUNG #
Schreib-Gegenstück zu Get-Breadcrumbs / New-SqlWhereForBreadcrumb. Pflegt die M:N-Zuordnung zwischen einem Datensatz und Merkmalknoten über die Tabelle MerkmalElement.
Drei Betriebsarten über -Mode:
- Replace (Default): Soll-Synchronisation. Die übergebene
PathListist die vollständige neue Merkmal-Zuordnung des Datensatzes. Fehlende Pfade werden eingefügt (INSERT), nicht mehr enthaltene werden entfernt (DELETE). Eine leerePathListentfernt alle Merkmale. - Add: Nur idempotente INSERTs für noch fehlende Pfade. Bereits vorhandene Zuordnungen bleiben unverändert.
- Remove: Nur DELETEs der angegebenen Pfade. Nicht zugeordnete Pfade werden still ignoriert.
Die Funktion arbeitet ausschließlich innerhalb der Merkmale der angegebenen Tabelle (Merkmal.Tabelle = TableName) — Breadcrumbs aus anderen Tabellenbäumen werden nicht angefasst.
Pfade werden intern über Get-BreadcrumbId aufgelöst. Bei nicht existierenden Pfaden wirft die Funktion einen Fehler, es sei denn, -IgnoreMissingPath ist gesetzt (analog New-SqlWhereForBreadcrumb).
Alle Änderungen laufen in einer ADO-Transaktion. Bei Fehlern wird zurückgerollt.
PARAMETER #
-Conn #
Type: __ComObject
Offene ADODB-Verbindung zur EULANDA-Datenbank. Caller-owns-Connection, wird NICHT geschlossen.
-TableName #
Type: string
Tabellenname des Merkmalbaums (z.B. ‘Artikel’, ‘Adresse’, ‘Auftrag’).
-Id #
Type: int
Primärschlüssel des Datensatzes, dessen Breadcrumbs gesetzt werden (z.B. Artikel.ID).
-PathList #
Type: string[]
Liste von Breadcrumb-Pfaden im Format \Wurzel\Knoten\Blatt. Im Modus Replace ist das die vollständige Soll-Liste.
-Mode #
Type: string
Default: 'Replace'
Replace (Default) / Add / Remove. Siehe DESCRIPTION.
-IgnoreMissingPath #
Type: switch
Wenn gesetzt, werden Pfade, die Get-BreadcrumbId nicht auflösen kann (Rückgabe -1), still übersprungen. Sonst wirft die Funktion einen Fehler.
AUSGABEN #
[PSCustomObject] mit den Zählern der Operation:
Added (int) - Anzahl neu eingefügter Zuordnungen Removed (int) - Anzahl entfernter Zuordnungen Skipped (int) - Anzahl ignorierter, nicht auflösbarer Pfade
BEISPIELE #
# Komplett-Synchronisation: Artikel 42 soll genau diese beiden Pfade tragen
Set-Breadcrumbs -Conn $conn -TableName 'Artikel' -Id 42 `
-PathList @('\Shop\B2B','\KEYWORDS\Software')
# Nur hinzufügen, vorhandene Zuordnungen behalten
Set-Breadcrumbs -Conn $conn -TableName 'Artikel' -Id 42 `
-PathList @('\Shop\Online') -Mode Add
# Alle Merkmale des Datensatzes entfernen
Set-Breadcrumbs -Conn $conn -TableName 'Artikel' -Id 42 -PathList @()
VERWANDTE LINKS #
HINWEISE #
- Komplementärfunktionen:
Get-Breadcrumbs(lesen),Get-BreadcrumbId(Pfad → ID),Get-BreadcrumbPath(ID → Pfad),New-SqlWhereForBreadcrumb(Filter-WHERE). - Die Funktion schreibt direkt in
MerkmalElement. Andere Spalten (Info, StatusID, ExtraData) werden nicht angefasst — bestehende Werte bleiben bei reinen Add-Operationen unverändert.