Übersicht
Die Lagerbestandsimport-Funktionalität ermöglicht den automatisierten Import von Lagerbeständen aus CSV-Dateien in das Taskcenter/ERP-System. Alle konkreten Lagerbestandsimport-Schnittstellen leiten von der gemeinsamen Basisklasse StockImportBaseInterface ab und überschreiben lieferantenspezifische Einstellungen (z. B. Spaltenpositionen in der CSV-Datei).
Architektur
StockImportBaseInterface (Basisklasse)
│
├── Definiert Standard-Konfiguration (virtuelle Properties)
├── Stellt Autostart-Logik bereit (Datei-Download, Import, Fehlerbehandlung)
└── Wird von firmenspezifischen Klassen abgeleitet
Firmenspezifische Klasse (z. B. XyzStockImportInterface)
│
├── Überschreibt Spalten-Indizes (EAN, Artikelnummer, Menge, ...)
├── Überschreibt Title/Key/StockInterfaceName
└── Überschreibt HasLicense()
Funktionsweise
Ablauf des Imports
-
Konfiguration laden (LoadInterfaceSettings): Lädt die gespeicherten und lieferantenspezifischen Standardeinstellungen
-
Autostart (Autostart):
• Command-Line-Parameter werden ausgewertet und überschreiben ggf. gespeicherte Einstellungen
• Datei wird per FTP heruntergeladen oder aus einem lokalen Verzeichnis ausgewählt
• Optional: Prüfung auf fehlende Artikel (CheckMissingItems)
• Import der Lagerbestände in die Datenbank
• Protokollierung von Erfolg/Fehler
Datenquelle
Lagerbestände werden aus CSV-Dateien eingelesen, die entweder:
• von einem FTP-Server heruntergeladen werden, oder
• aus einem lokalen Importverzeichnis ausgewählt werden
Konfigurierbare Eigenschaften der Basisklasse
Allgemeine Schnittstellen-Eigenschaften
|
Property |
Beschreibung |
|---|---|
|
Title |
Anzeigename der Schnittstelle |
|
Key |
Eindeutiger Schlüssel der Schnittstelle |
|
StockInterfaceName |
Interner Name zur Zuordnung der Lagerimport-Konfiguration |
|
HasLicense |
Prüft, ob die Lizenz für diese Schnittstelle vorhanden ist |
|
CanLockInterface |
Gibt an, ob die Schnittstelle gesperrt werden kann (Standard: false) |
|
SupportsAutostart |
Gibt an, ob die Schnittstelle automatisiert gestartet werden kann (Standard: true) |
CSV-Spaltenzuordnung
|
Property |
Beschreibung |
|---|---|
|
EANIndex |
Spaltenindex des EAN-Codes |
|
ItemNumberIndex |
Spaltenindex der Artikelnummer |
|
ManufacturerNumberIndex |
Spaltenindex der Herstellerartikelnummer |
|
ManufacturerNameIndex |
Spaltenindex des Herstellernamens |
|
QuantityIndex |
Spaltenindex des Lagerbestands |
|
Quantity2Index |
Spaltenindex eines zweiten Lagerbestands (z. B. reservierte Menge) |
|
ColumnsCount |
Erwartete Gesamtanzahl der Spalten in der CSV-Datei |
|
HeaderRows |
Anzahl der zu überspringenden Kopfzeilen (Standard: 1) |
Artikelsuche
|
Property |
Beschreibung |
|---|---|
|
SearchItemNumber |
Artikel wird über die Artikelnummer gesucht |
|
SearchEAN |
Artikel wird über den EAN-Code gesucht |
|
SearchManufacturerNumber |
Artikel wird über die Herstellerartikelnummer gesucht |
Formatierung & Sonderbehandlung
|
Property |
Beschreibung |
|---|---|
|
NumberFormatInfo |
Zahlenformat für die Interpretation von Mengenangaben (z. B. Dezimaltrennzeichen) |
|
TrimBeginAndEnd |
Zeichen, die am Anfang/Ende von Werten entfernt werden |
|
SplitStocks |
Gibt an, ob ein Feld mehrere Lagerorte/Bestände enthält, die aufgeteilt werden müssen |
|
SplitSign |
Trennzeichen für SplitStocks (Standard: ;) |
Mengen-Multiplikation
Einige Lieferanten liefern Bestände in Verpackungseinheiten (z. B. Kartons), die in Stückzahlen umgerechnet werden müssen:
|
Property |
Beschreibung |
|---|---|
|
MultiplicationColumnIndex |
Spaltenindex, der den Multiplikationsfaktor enthält |
|
MultiplicationValue |
Fester Wert, mit dem multipliziert wird (falls kein Spaltenbezug) |
|
MultiplicationMinQuantity / MultiplicationMaxQuantity |
Mengenbereich, für den die Multiplikation gilt |
|
MultiplicationFactorFixed |
Gibt an, ob ein fixer Multiplikationsfaktor verwendet wird |
|
MultiplicationFactor |
Der feste Multiplikationsfaktor |
Sonstiges
|
Property |
Beschreibung |
|---|---|
|
LogImport |
Aktiviert eine detaillierte Protokollierung des Imports |
Unterstützte Kommandozeilenparameter
Die Basisklasse unterstützt folgende Parameter für den Autostart-Betrieb (überschreiben die gespeicherten Einstellungen):
|
Parameter |
Beschreibung |
|---|---|
|
/StockNumber |
Lagernummer, in die der Bestand importiert wird |
|
/TransferOpenOrders |
Offene Bestellmengen werden mit übernommen |
|
/FtpUrl |
FTP-Server-URL zum Download der Datei |
|
/FtpUser |
FTP-Benutzername |
|
/FtpPassword |
FTP-Passwort |
|
/FtpPort |
FTP-Port |
|
/FtpProtocol |
FTP-Protokoll (z. B. FTP, SFTP) |
|
/FtpFilename |
Dateiname auf dem FTP-Server |
|
/Folder |
Lokales Verzeichnis für die Bestandsdateien |
|
/MoveOnlySelectedFile |
Nur die ausgewählte Datei wird ins Backup verschoben |
|
/CheckMissingItems |
Prüft, ob Artikel aus der CSV im System fehlen |
|
/EAN_Index |
Spaltenindex des EAN im CSV |
|
/Manufacturer_Index |
Spaltenindex der Herstellerartikelnummer |
|
/Itemnumber_Index |
Spaltenindex der Artikelnummer |
|
/Quantity_Index |
Spaltenindex des Lagerbestands |
|
/Quantity2_Index |
Spaltenindex des zweiten Lagerbestands |
|
/ColumnsCount |
Anzahl der Spalten in der CSV-Datei |
|
/No_Stock_Clearing |
Artikel, die nicht in der Datei enthalten sind, werden nicht auf Bestand 0 gesetzt |
|
/No_Stock_Delete |
Deaktiviert das Löschen von Bestandseinträgen |
Fehlende Artikel prüfen
Über den Parameter /CheckMissingItems kann geprüft werden, ob Artikel aus der Importdatei im System nicht gefunden werden können:
-
Es wird eine CSV-Datei MissingItems_<Key>.csv im Verzeichnis MissingItems erstellt
-
Die Datei enthält EAN, Herstellerartikelnummer, Artikelnummer und die jeweiligen Mengen der nicht gefundenen Artikel
-
Optional wird die Datei automatisch per E-Mail versendet (siehe unten)
E-Mail-Benachrichtigung
Über die Methode SendMail können Benachrichtigungen (z. B. bei fehlenden Artikeln) versendet werden. Voraussetzung sind folgende Einstellungen:
|
Einstellung |
Beschreibung |
|---|---|
|
EmailSenderEmail |
Absenderadresse |
|
EmailReceiverEmail |
Empfängeradresse |
|
EmailHost |
SMTP-Server |
|
EmailPort |
SMTP-Port |
|
EmailUsername / EmailPassword |
Zugangsdaten (optional, sonst Standardanmeldeinformationen) |
|
EmailUseSSL |
Verschlüsselte Verbindung verwenden |
Liste der vorhandenen Lagerbestandsimporte
-
Achilles
-
Alcar
-
Autec
-
Barracuda
-
BBS
-
Bohnenkamp
-
Borbet
-
Breyton
-
Bridgestone
-
Brock
-
CMS
-
Continental
-
CWG
-
Denzel
-
Diewe
-
Falken
-
Fondmetal
-
Fosab
-
Goodyear
-
Hankook
-
Heuver
-
Interpneu
-
Kumho
-
MBDesign
-
Michelin
-
MW
-
Nokian
-
OZ
-
Pirelli
-
PrimeTire
-
PrimeTireHankook
-
Proline
-
Remus
-
Rhenag
-
Semperit
-
Seng
-
Steffny
-
SuperiorInustries
-
Tomason
-
Toyo
-
TyrolPneu
-
Vredestein
-
Yokohama
Erstellung einer neuen Lagerbestandsimport-Schnittstelle
Um einen neuen Import zu erstellen, muss lediglich eine neue Klasse erstellt werden, die von StockImportBaseInterface erbt:
public class BeispielStockImportInterface : StockImportBaseInterface
{
public override string Title { get { return "Lagerstandsimport Beispiel"; } }
public override string Key { get { return "StockImport-Beispiel"; } }
public override string StockInterfaceName { get { return "Beispiel"; } }
public override bool HasLicense(LC.Globals.DTO.InstalledProgramModules modules)
{
return modules.Interfaces.StockImportBeispiel;
}
public override int EANIndex { get { return 2; } }
public override int QuantityIndex { get { return 13; } }
public override int ColumnsCount { get { return 13; } }
public override bool SearchEAN { get { return true; } }
}
Support
Bei Fragen zur Konfiguration oder Einrichtung eines neuen Lagerbestandsimports wenden Sie sich bitte an Ihren Systemadministrator oder das Entwicklungsteam.
Zusatzinformation zum Import:
Bei Lagerbestandsimporten (z.B. Goodyear) gibt es einen GRUNDLAGEN_WERTE Eintrag mit Namen "GoodyearQuantitiyIndex" mit Wert = X. Der Wert X gibt an in welcher Spalte in der Excel der Bestand übergeben wird (erste Spalte hat Index 0).
Sollte beim Import also keine Menge übergeben werden kann hier geprüft werden was in den GRUNDLAGEN_WERTE eingetragen ist und ob dies mit der Importdatei übereinstimmt.
Sollte dies plötzlich auftreten ist nicht auszuschließen dass die Importdateien nun anders aufgebaut sind.