New-EulandaClient #
ÜBERSICHT #
Erstellt eine EULANDA-Session zur Verbindung mit einem EULANDA-Client und Zugriff auf dessen Daten.
SYNTAX #
New-EulandaClient [[-ClientName] <string>] [<CommonParameters>]
BESCHREIBUNG #
Die Funktion New-EulandaClient erzeugt ein Objekt der Klasse EulandaSession. Dieses Objekt bietet eine COM-basierte Integration in die EULANDA Warenwirtschaft und stellt zahlreiche Methoden bereit, um Unternehmensdaten, Rechnungen und spezielle Einstellungen (XFacture) komfortabel abzurufen und weiterzuverarbeiten. Hierzu muss EULANDA.exe sich einmalig als COM-Server registriert haben. Weiters hierzu in den Hinweisen.
Die erzeugte Session bietet #
- Direkte ADO-Datenbankverbindung mit Zugriff auf die EULANDA-Datenbank
- Automatische Verwaltung von Unternehmensdaten (Firmendaten, Adressen, Banken, Steuern etc.)
- Methoden zur Erzeugung und Export von Rechnungen im Format PDF/A-3 nach ISO 19005-3.
- Unterstützung zur Erstellung von ZUGFeRD-/XRechnung-konformen Dokumenten
- Dynamisches Abrufen und Anpassen von XFacture-Einstellungen mit automatischer Variablenersetzung
METHODEN #
[void] SetAddressId([int] $NewAddressId) Setzt die
AddressId, also die interne ID eines Adressdatensatzes aus der EULANDA-Datenbank. Diese ID entspricht der Adresse, die im EULANDA-Client aktuell am Monitor angezeigt wird, also dem Datensatz, den der Benutzer gerade vor sich hat. Beim Setzen der ID wird der interne Cache des Objekts geleert. Dieser Cache enthält Werte aus der SQL-Registry, etwaXfacture-Einstellungen oder andere adressspezifische Konfigurationswerte. Durch das Zurücksetzen wird sichergestellt, dass bei einem Adresswechsel alle relevanten Daten neu geladen werden.[string] GetItem([string] $Category, [string] $Key) Gibt einen Wert aus der SQL-Registry zurück, einer adressbezogenen Konfigurationsstruktur in der EULANDA-Datenbank. Mögliche Kategorien sind:
»
CompanyMaster: Grunddaten aus dem Firmenstamm wie z.B. Firmenname, USt-ID, Land usw.»
XfactureSettings: Plugin-spezifische Einstellungen für den E-Rechnungsversand Die SQL-Registry ist ein tabellenbasiertes System, das einfache Schlüssel/Wert-Paare pro Kategorie und Adresse speichert. Zugriffe sind vergleichsweise langsam, daher werden die abgefragten Werte beim ersten Zugriff zwischengespeichert (Cache), um die Performance zu verbessern.[void] SetInvoiceNo([nullable[int]] $NewInvoiceNo)Setzt die interne RechnungsnummerInvoiceNoim Objekt. Diese ID bezieht sich auf einen Rechnungskopf aus der EULANDA-Datenbank. Standardmäßig wird sie anhand der aktuell am Monitor angezeigten Adresse initialisiert. Mit dieser Methode kann die ID manuell überschrieben werden, unabhängig von der Anzeige am Monitor. Intern wird dann mit der neuen ID weitergearbeitet, um später eine PDF der betreffenden Rechnung zu erzeugen. Die Monitoranzeige bleibt dabei unverändert.[int] GetInvoiceNo()Gibt die aktuell im Objekt gesetzte RechnungsnummerInvoiceNozurück. Diese Nummer identifiziert einen Rechnungskopf in der EULANDA-Datenbank und wurde zuvor entweder automatisch anhand der am Monitor angezeigten Adresse oder manuell überSetInvoiceNo()gesetzt. Der Wert wird intern verwendet, z.B. zur PDF-Erzeugung oder zur Abfrage von Rechnungsdetails.[void] SetInvoiceId([nullable[int]] $NewInvoiceId)Setzt die interneInvoiceId, also die eindeutige ID eines Rechnungskopfs in der EULANDA-Datenbank. Standardmäßig wird dieser Wert automatisch anhand der Adresse am Monitor bestimmt. Über diese Methode kann die ID manuell gesetzt oder auf$nullzurückgesetzt werden. Die Anzeige am Monitor bleibt dabei unberührt. Intern dient die ID z.B. zur Erzeugung eines Rechnungs-PDFs oder zur Abfrage von kopfbezogenen Rechnungswerten.[int] GetInvoiceId()Gibt die aktuell im Objekt gesetzte Rechnungs-ID (InvoiceId) zurück. Diese ID identifiziert einen Rechnungskopf in der EULANDA-Datenbank. Sie wurde zuvor entweder automatisch über die Adresse am Monitor oder manuell perSetInvoiceId()gesetzt. Der Rückgabewert kann0sein, wenn noch keine gültige Rechnungs-ID definiert wurde.[void] ReplaceXfactureSettingVars()Ersetzt vordefinierte Platzhaltervariablen in den Feldern derXfactureSettings. Betroffen sind die Einträge"Body","Subject","FileFolder"und"FileMask". Platzhalter wie$$invoiceNumber$$,$$Client$$,YYYYusw. werden durch aktuelle Werte ersetzt, also z.B. durch Rechnungsnummer, Mandantenname oder aktuelles Datum. Falls dieXfactureSettingsbeim Aufruf noch leer sind, werden sie automatisch geladen. Bei Ladefehlern erfolgt ein Abbruch mit Fehlermeldung.[string] ExportInvoicePdf([string] $PdfFile = $null, [nullable[int]] $InvoiceNo = $null, [nullable[int]] $InvoiceId = $null)Erstellt ein PDF-Dokument zur aktuellen Rechnung im Format PDF/A-3, der technischen Basis für ZUGFeRD bzw. Factur-X. Die Rechnung wird anhand der übergebenenInvoiceNooderInvoiceIdgeladen. Wird keine ID angegeben, so wird die objektinterneInvoiceIDverwendet. Der Pfad zur Zieldatei kann über$PdfFileangegeben werden. Wird dieser weggelassen, erzeugt die Methode einen temporären Pfad und gibt diesen zurück. Das erzeugte PDF kann direkt zur weiteren Verarbeitung (z. B. XML-Einbettung) verwendet werden. WirdExportInvoice()ohne Parameter aufgerufen, wird das aktuell gesetzte Rechnungsobjekt als PDF/A-3 exportiert. Dies entspricht einem Aufruf mit allen Parametern auf$nullgesetzt.[int] GetCurrentInvoiceId()Ermittelt die Rechnungs-IDIdder aktuell am Monitor geöffneten Rechnung. Dafür wird ein COM-DatasetEulanda.Rechnungim sogenannten Blättermodus verwendet. Ist keine Rechnung aktiv oder das Dataset ungültig, wird$nullzurückgegeben. Ebenso bei Fehlern beim Zugriff auf das EULANDA-Client-Objekt oder das COM-Interface. Die Methode dient dazu, interaktiv geöffnete Rechnungen in Skripten weiterzuverarbeiten, ohne dass vorher eine ID gesetzt werden muss.[int] GetCurrentInvoiceNo()Gibt die RechnungsnummerKopfNummerder aktuell am Monitor geöffneten Rechnung zurück. Die Methode verwendet das COM-DatasetEulanda.Rechnungim Blättermodus und greift auf das FeldKopfNummerzu. Ist keine Rechnung aktiv oder das Dataset ungültig, wird0zurückgegeben. Auch bei fehlendemClient-Objekt oder internen Fehlern wird0geliefert und ein Fehlerprotokoll ausgegeben. Diese Methode ist hilfreich, wenn man mit der am Bildschirm angezeigten Rechnung weiterarbeiten möchte, ohne vorher manuell eine ID oder Nummer setzen zu müssen.[int] GetCurrentInvoiceAddressId()Gibt dieAdresseIdder aktuell am Monitor angezeigten Adresse zurück. Xfacture-Einstellwerte die in der Adresse vorgenommen wurden, haben Vorrang vor den allgemeinen Konfigurationswerten. Diese spezifischen Einstellungen werden in EULANDA in den Kontakten zur Adresse gespeichert, der KOntakt hat den Namenxfacture. Falls dort ein Wert für eine bestimmte Konfiguration gesetzt ist, hat dieser Vorrang vor gleichnamigen Einträgen in der SQL-Registry. So kann z.B. ein Kunde explizit die Ausgabe als ZUGFeRD erhalten, während ein anderer eine XRechnung bevorzugt.[void] Dispose()Gibt alle Ressourcen des Objekts frei. Dazu gehören die COM-Objekte fürConnection,ClientundApp, sowie die ADO-Datenbankverbindung, falls sie noch geöffnet ist. Die Methode kann gefahrlos mehrfach aufgerufen werden, prüft intern auf bereits freigegebene Ressourcen. Diese Methode sollte am Ende jeder Verarbeitung aufgerufen werden, um COM-Leaks zu vermeiden und die Verbindung zur EULANDA-Datenbank sauber zu beenden.
PARAMETER #
-ClientName #
Type: string
Der Name des zu verbindenden EULANDA-Clients. Dieser entspricht dem Alias aus dem EULANDA Client-Manager (z.B. “PluginsLokal”).
AUSGABEN #
EulandaSession
Ein Session-Objekt zur Interaktion mit einem EULANDA-Client.
BEISPIELE #
# Verbindung zu einem EULANDA-Client namens "PluginsLokal" herstellen
$eulanda = New-EulandaClient -ClientName "PluginsLokal"
# Abrufen der aktuell geöffneten Rechnungsnummer im EULANDA-Client
$InvoiceNo = $eulanda.GetCurrentInvoiceNo()
# Exportieren der aktuellen Rechnung als PDF
$pdfFile = $eulanda.ExportInvoicePdf()
# Firmendaten aus EULANDA abrufen (z.B. Firmenname und Steuer-ID)
$CompanyData = $eulanda.GetCompanyData()
Write-Host "Firma: $($CompanyData.Firma), USt-IdNr.: $($CompanyData.UstId)"
# XFacture-Einstellungen laden und Platzhalter dynamisch ersetzen
$eulanda.ReplaceXfactureSettingVars()
$xfacture = $eulanda.XfactureSettings
HINWEISE #
- Benötigt registriertes EULANDA COM-Objekte dazu einmalig mit
EULANDA.exe /REGSERVERaufrufen. - Das erzeugte Objekt übernimmt die Verwaltung der COM-Verbindungen und sollte am Ende über
.Dispose()freigegeben werden.