Zugriff-per-PowerShell
Zuletzt geändert: 01.07.2026 09:58

Zugriff per PowerShell #

Diese Seite richtet sich an Entwickler, die eigene Skripte oder Plugins schreiben. Für die tägliche Arbeit mit EULANDA wird sie nicht benötigt.

Idee #

Das Modul EulandaXtools enthält eine Gruppe von DMS-Funktionen, die für einen Datensatz genau denselben Zielordner berechnen, den auch die Dokumentenverwaltung selbst verwendet. Die Berechnung stützt sich auf dieselbe Konfiguration in der SQL-Registry. Ein Skript muss also weder Pfade fest verdrahten noch die Ordnerlogik nachbauen. Ändert sich der Stammordner oder die Zuordnung, ziehen die Skripte automatisch mit.

Damit lässt sich aus PowerShell sauber auf die Dateien eines Datensatzes zugreifen, zum Beispiel um eine erzeugte PDF in den Rechnungsordner zu legen, Scans einem Kunden zuzuordnen oder den Dokumentenbestand auszuwerten.

Die vollständige Referenz aller Funktionen steht im Entwicklerhandbuch unter EulandaXtools. Wie ein PowerShell-Plugin grundsätzlich aufgebaut ist, beschreibt der Abschnitt Plugin-Entwicklung.

Eine Funktion je Datensatz-Art #

Für jede unterstützte Datensatz-Art gibt es eine eigene Funktion. Sie liefert den vollständigen Ordnerpfad zurück, im Mehrplatzbetrieb als UNC-Pfad.

DatensatzFunktion
Adresse (Kunde)Get-DmsFolderAddress
AngebotGet-DmsFolderQuote
AuftragGet-DmsFolderSalesOrder
LieferscheinGet-DmsFolderDeliveryNote
RechnungGet-DmsFolderInvoice
KontaktGet-DmsFolderContact
SEPA-MandatGet-DmsFolderSepaMandate
ArtikelGet-DmsFolderArticle
IdentnummerGet-DmsFolderArticleIdent
ServiceartikelGet-DmsFolderServiceArticle
LieferantGet-DmsFolderSupplier
BestellungGet-DmsFolderPurchaseOrder

Den Datensatz übergeben Sie über seine interne ID (-AddressId, -OrderId und so weiter). Bei Belegen wird zusätzlich die Belegnummer akzeptiert (-InvoiceNo, -OrderNo …). Sind beide angegeben, gewinnt die ID.

Gemeinsame Parameter aller Funktionen:

  • -Conn / -Udl / -ConnStr – die SQL-Verbindung, wahlweise als offene ADODB-Verbindung, als UDL-Datei oder als Connection-String. Eine offene Verbindung kann durch die ganze Skriptkette gereicht werden.
  • -CreateFolder – legt den Ordner an, falls er noch nicht existiert, inklusive der fest vorgegebenen Unterordner. Ohne diesen Schalter wird nur der Pfad berechnet.

Hilfsfunktionen #

FunktionZweck
Test-EulandaDmsPluginPrüft, ob das DMS-Plugin installiert und ein Stammordner gesetzt ist. Liefert $true oder $false und wirft nicht.
Get-EulandaDmsBaseFolderLiefert den Stammordner. Platzhalter der Form %env.NAME% werden über Expand-EulandaEnvString aufgelöst, mit -Raw bleibt der Rohwert erhalten.
Rename-EulandaDmsFolderBenennt den Ordner um, wenn sich der Namensgeber geändert hat (z. B. Matchcode oder Artikelnummer). Die Unterstruktur wandert dabei mit.

Beispiel #

# Verbindung öffnen (hier über eine UDL-Datei)
$conn = New-Object -ComObject ADODB.Connection
$conn.Open('File Name=C:\Eulanda.udl')

# Zuerst prüfen, ob das DMS-Plugin überhaupt eingerichtet ist
if (-not (Test-EulandaDmsPlugin -Conn $conn)) {
    throw 'DMS-Plugin ist nicht eingerichtet.'
}

# Zielordner der Rechnung 20260301 ermitteln und bei Bedarf anlegen
$folder = Get-DmsFolderInvoice -InvoiceNo 20260301 -Conn $conn -CreateFolder

# Eine erzeugte PDF dort ablegen
Copy-Item -Path 'C:\temp\Rechnung.pdf' -Destination $folder

# Vorhandene Dokumente auflisten
Get-ChildItem -Path $folder

Sobald der Pfad feststeht, arbeiten Sie mit den üblichen PowerShell-Mitteln weiter (Get-ChildItem, Copy-Item, Move-Item). Die DMS-Funktionen liefern nur den korrekten Ort, alles Weitere ist normale Dateiarbeit.

Die Funktionen setzen das Modul EulandaXtools und eine erreichbare EULANDA-Datenbank voraus. Im Mehrplatzbetrieb muss der ausführende Rechner zusätzlich Zugriff auf die Netzwerkfreigabe des Stammordners haben, sonst schlägt das Anlegen oder Kopieren fehl. Details zur Ablage in der Registry stehen im Technischen Anhang.