Einführung
Zuletzt geändert: 19.04.2026 04:42

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, -Udl oder -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.txt im Wurzelverzeichnis – enthält die aktuelle offizielle Version
  • Pro Release ein Unterordner (z.B. 1.0.64/) mit
    • EulandaXtools.zip – das Modul-Artefakt
    • version.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 Cmdlets Invoke-XSetup und Get-LatestModuleVersion zur 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.