Einführung #
EulandaXtools ist ein umfangreiches PowerShell-Modul für die EULANDA-Warenwirtschaft. Es stellt über 400 Funktionen bereit, um datenbankgestützte Abläufe zu automatisieren: Belege anlegen und exportieren, elektronische Rechnungen erzeugen (Peppol, ZUGFeRD, XRechnung), Shopify synchronisieren, EDIFACT verarbeiten, Newsletter versenden und vieles mehr.
Das Modul läuft unter Windows PowerShell 5.1 und PowerShell 7+ und wird typischerweise in einem der drei folgenden Szenarien eingesetzt.
Ansatz 1: Standalone-Skripte #
Der einfachste Weg. Ein PowerShell-Skript öffnet eine Verbindung zur
EULANDA-Datenbank über eine UDL-Datei und ruft Funktionen auf. Für den
Verbindungs-Aufbau gibt es den Helfer Get-ConnByUdl.
Import-Module EulandaXtools
$udl = 'C:\Eulanda\mandant.udl'
$conn = Get-ConnByUdl -Udl $udl
try {
$adr = Get-AddressData -Conn $conn -AddressId 1
$adr.ADRESSE[0].ANSCHRIFT
}
finally {
$conn.Close()
}
Gut geeignet für einmalige Auswertungen, Imports und Nacht-Jobs per Windows Task Scheduler.
Ansatz 2: Connection-Reuse in einer Pipeline #
Für Skripte, die viele Einzelabfragen hintereinander ausführen, öffnet
man die Verbindung einmal und reicht sie per -Conn an alle Folge-Cmdlets
durch. Im Beispiel werden drei offene Rechnungen exportiert und anschliessend
versendet – alle Calls teilen sich dieselbe Verbindung.
Import-Module EulandaXtools
$conn = Get-ConnByUdl -Udl 'C:\Eulanda\mandant.udl'
try {
foreach ($no in 20214925, 20214926, 20214927) {
Export-InvoiceXml -Conn $conn -InvoiceNo $no -OutputXml ".\$no.xml"
Send-InvoiceByEmail -Conn $conn -InvoiceNo $no -To 'kunde@example.com'
}
}
finally {
$conn.Close()
}
Connection-Reuse lohnt sich früh. Die meisten EulandaXtools-Funktionen mit Datenbankzugriff akzeptieren wahlweise-Conn,-Udloder-ConnStr(einige nur-Conn). Jeder vermiedene Verbindungsaufbau spart auf VPN leicht 100–200 ms – bei einer Pipeline mit 30 Aufrufen ist das schnell eine halbe Minute.
Ansatz 3: Plugin im ErpXe-Umfeld #
EulandaXtools wird auch als Basis-Bibliothek für EULANDA-Plugins verwendet (z.B. Xfacture für elektronische Rechnungen, DATEV-Export, Shopify-Sync). Ab ErpXe 2026.4 kommt ein neues Plugin-Framework dazu, das direkt PowerShell-Plugins hostet und vollautomatisch installiert. Details und Abläufe sind im Kapitel Plugins im ErpXe-Umfeld beschrieben.
Voraussetzungen #
- Windows (Cross-Platform ist kein Ziel – das Modul ruft COM-Objekte auf).
- PowerShell 5.1 oder 7+.
- Microsoft SQL Server mit einer EULANDA-Datenbank.
- UDL-Datei, Connection-String oder
ADODB.Connection-Instanz.
Installation #
EulandaXtools wird nicht über die PowerShell Gallery verteilt, sondern
aus dem hauseigenen Repository auf files.eulanda.eu.
Kein PSGallery-Install. Installation und Updates laufen bei allen
EULANDA-Modulen ausschließlich über das firmeneigene HTTPS-Repository
https://files.eulanda.eu/eulandaxtools/.Struktur im Repository:
version.txtim Wurzelverzeichnis – enthält die aktuelle offizielle Version- Pro Release ein Unterordner (z.B.
1.0.64/) mitEulandaXtools.zip– das Modul-Artefaktversion.txt– die Version dieses Ordners (als Kontrolle)
Mini-Bootstrap-Skript #
Für die Erstinstallation reicht dieses Skript – es liest die aktuelle
Version aus version.txt, lädt das ZIP und entpackt es in den
PS 5.1-Benutzer-Modulpfad.
PowerShell 5.1 ist das Ziel. Windows PowerShell 5.1 ist bei EULANDA-Installationen der Default. PowerShell 7+ läuft ebenfalls, ist aber weniger intensiv getestet – wer zu 7+ wechselt, sollte zumindest die eigenen Skripte vorher einmal durchlaufen lassen.
# Erstinstallation von EulandaXtools (neueste offizielle Version)
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$base = 'https://files.eulanda.eu/eulandaxtools'
$version = (Invoke-WebRequest "$base/version.txt" -UseBasicParsing).Content.Trim()
$zipUrl = "$base/$version/EulandaXtools.zip"
# PS 5.1 Benutzer-Modulpfad (respektiert auch OneDrive-Redirection)
$docs = [Environment]::GetFolderPath('MyDocuments')
$target = Join-Path $docs "WindowsPowerShell\Modules\EulandaXtools\$version"
if (Test-Path $target) {
Write-Host "EulandaXtools $version ist bereits installiert."
return
}
$tmpZip = Join-Path $env:TEMP "EulandaXtools-$version.zip"
Invoke-WebRequest $zipUrl -OutFile $tmpZip -UseBasicParsing
New-Item -Path $target -ItemType Directory -Force | Out-Null
Expand-Archive -Path $tmpZip -DestinationPath $target -Force
Remove-Item $tmpZip
Import-Module EulandaXtools -Force
Write-Host "EulandaXtools $version installiert nach $target"
Nach der Erstinstallation. Im Modul selbst stehen die CmdletsInvoke-XSetupundGet-LatestModuleVersionzur Verfügung, um eigene Skripte oder Plugins auf einem Zielrechner immer auf den neuesten Stand innerhalb definierter Min/Max-Grenzen zu bringen – ohne das Bootstrap-Skript nochmal manuell anfassen zu müssen.
Eine Gesamt-Übersicht über alle Funktionen mit Kurzbeschreibung findet sich in der Module-Übersicht. Die Gruppierung dort (Adresse, Artikel, Rechnung, Shopify, Registry, DMS …) hilft beim schnellen Auffinden des passenden Cmdlets.