Set Breadcrumbs
Zuletzt geändert: 23.05.2026 10:43

Übersicht

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 PathList ist die vollständige neue Merkmal-Zuordnung des Datensatzes. Fehlende Pfade werden eingefügt (INSERT), nicht mehr enthaltene werden entfernt (DELETE). Eine leere PathList entfernt 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 @()

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.