Lagerverwaltungssystem (LVS) / Warehouse Management System (WMS)

Untertitel: Von der Lagerverwaltung LVS zum Warehouse Management System WMS

Ca 2006 haben wir mit unserer Lagerverwaltung AE WWS Lite begonnen. Gedacht als Lagerverwaltungssoftware, um Artikel zu verwalten. Im Laufe der Zeit hat sich nune in umfassendes Warehouse Management System entwickelt.

Zur damaligen Zeit war Warehouse Management System nur der englische Begriff für Lagerverwaltungssystem. Doch seit 2015 wird aufgrund der VDI-Richtlinie 3601 (für alle Fans des ausführlichen Nachlesens, bestellst Du hier: https://www.beuth.de/de/technische-regel/vdi-3601/234798097 ) unterschieden in Lagerverwaltungssystem (LVS) und Warehouse Management System (WMS).

„Lagerverwaltungssystem (LVS) / Warehouse Management System (WMS)“ weiterlesen

Sicherheit in der Lagerverwaltung

DSGVO / GoBD und viele andere mehr. Der Computerbenutzer von heute muss viele Vorschriften zum Datenschutz einhalten und sich mit Fragestellungen beschäftigen wie z.B:

  • Müssen Lagerdaten besonders geschützt werden
  • Was ist mit Buchungsdaten und persönlichen Informationen der Mitarbeiter
  • Dürfen Zeiten erfasst werden, wenn ja: müssen diese geschützt werden?

„Sicherheit in der Lagerverwaltung“ weiterlesen

LOW Budget Scanner mit Speicherfunktion

Dieser kleine Barcode Scanner ist eine witzige und überaus praktische Idee:

Scanner für Barcodes mit Tastatur und Display und einfacher vorkonfigurierter Software zum Speichern und Übertragen der Barcodes. Kann vollkommen mobil Barcodes erfassen und diese speichern. Bei Anschluss an PC werden Daten direkt via USB übertragen und in die Anwendung übernommen. Der Preis: bei Amazon bereits für unter 100 Euro erhältlich!

Datenformat:

Einfaches ASCII Text, je Barcode eine Zeile, optional mit Menge, getrennt durch TAB.

Damit man die Daten schnell und einfach mit unserer Lagerverwaltung AE WWS Lite verarbeiten kann:

Ab Version 2.03 verfügt AE WWS Lite Modul EXTERNE DATEN zwei neue Schnittstellen:

  • Import und Verarbeitung von ASCII TXT Dateien im o.a. Format
  • Direkter USB Datenempfang aus dem PDA in die Anwendung

So lassen sich die Offline Datenerfassung Barcodes mobil im Lager mit der PC Artikelverwaltung bequem und einfach kombinieren!

AE WWS Lite: Warehouse Management System

 

AE WWS Lite 2.03

Die neue Version 2.03.000 wurde gelauncht!

Mit dem Jahreswechsel 2019/20 bieten wir eine neue Version unserer beliebten Lagerverwaltung / Artikelverwaltung AE WWS Lite. Release-Nummer Version 2.03.000.

Externe Daten mit neuen Importfunktionen

Erste Änderungen: Die Funktion EXTERNE DATEN wurde überarbeitet. Schlankere, einfache Texte für mehr Benutzerfreundlichkeit. Dazu: Immer mehr Smartphones, einfache PDA Geräte und Co senden gespeicherte Artikelnummern als CSV oder Textdatei. Artikelnummer und Menge einfach durch TAB oder Semikolon getrennt.

Externe Daten verfügt nun über ein Import-Tool, um diese Daten problemlos importieren und verarbeiten zu können.

Einfache Scanner PDA

Neue, einfache LOW Budget Scanner PDA Geräte können nicht nur Barcodes scannen, sondern speichern diese auch gleich. Die Daten werden später via USB Kabel oder Wireless an den PC übergeben.

Diese LOW Budget Scanner mit Display und Tastatur können nicht nur Barcodes scannen, sondern auch speichern. Der Vorteil daher: sie können auch mobil direkt im Lager verwendet und die Daten später an einen PC übertragen werden. Preise bei Amazon rund 100 Euro bzw. darunter. Sie verbinden damit die Vorteile eines günstigen Scanners in Verbindung mit hochwertigen Handheld Computern. Nachteil wie wir finden: meistens englische, manchmal komplizierte Benutzerführung.

Doch bei dem nahezu unschlagbaren Preis – wer mobil sein will, aber nicht hohe 3-stellige Summen für mobile Datenerfassung ausgeben möchte, findet hier eine mögliche, äusserst pragmatische Lösung.

Externe Daten verfügt ab Version 2.03. über die entsprechende Importschnittstellen, um Daten und Dateien aus diesen Systemen direkt zu übernehmen und und zu verarbeiten.

Weitere Features ….

Noch nicht implementiert aber vorgesehen: Ausdruck von Buchungsbelegen direkt nach der Buchung. Somit erhält der Benutzer sofort Warenscheine in Form von Einlagerungsschein oder Ausgabeschein. Unterstützt werden hierbei kleine professionelle Bondrucker, wie z.B der EPSON TM-T88V.

Download der akt. Version wie immer im Download Center

AE WWS Lite Download Center

 

Schnellbuchen in der Lagerwirtschaft – mehr Praxis im Alltag

Mit dem Modul SCHNELLBUCHEN bietet AE SYSTEME eine neue Art der Erfassung innerhalb der Lagerverwaltung AE WWS Lite. Anstatt zuerst einen Artikel auszuwählen und anschließend die gewünschte Aktion festzulegen, wird der Vorgang umgedreht: Zuerst Aktion selektieren, dann viele Artikel hintereinander erfassen. Diese Methode ist gerade bei vielen Artikelpositionen enorm zeitsparend für den Benutzer und daher besonders hilfreich, wenn ganze Listen oder Serien von Artikeln hintereinander erfasst oder bearbeitet werden müssen. Darüber hinaus bildet sie die betriebliche Praxis realer ab: Man gibt einem Mitarbeiter eine Palette verbunden mit der Bitte, diese Palette auszupacken. Es wird also zuerst die Warenbewegungen ANLIEFERUNG / ZUGANG gedrückt, anschließend werden alle Artikel unter dieser Aktion erfasst.

Damit der Benutzer in dieser schnellen Artikel-Erfassung den Überblick behält, werden alle bereits eingegebenen Artikelpositionen sofort in einem Journal in Tabellenform angezeigt. Die Buchungen im Artikelstamm werden dabei sofort wirksam. Sofern die SQL Version gewählt wurde, sind Datensätze sofort in der SQL Datenbank aktualisiert, so dass anderen Benutzer bereits die neuen Werte zur Verfügung stehen. In gewohnter Form findet auch die Aufzeichnung aller Buchungen in der Historie statt und wird dabei noch automatisch um Datum / Zeitangabe sowie um Benutzerinformation (User) erweitert. Innerhalb der Buchungshistorie der Lagerwirtschaft lassen sich Buchungen auch nach Jahren noch jederzeit nachvollziehen und der Warenfluss transparent kontrollieren. Damit sich die per Schnellerfassung getätigten Buchungen von denen der standardmäßigen Artikelerfassung unterscheiden lassen, wird die Benutzerangabe automatisch um den Postfix QL (für Quicklist = Schnellbuchung) erweitert. Beispiel: Anstatt als User Mustermann wird in der Schnellbuchung Mustermann (QL) aufgezeichnet.

Schnellbuchen – alles auf einen Blick:

Die Eingabe von Artikelnummern und Mengen erfolgt in üblicher Art und Weise wahlweise über Tastatur oder Barcode. Wer möchte, kann innerhalb von Schnellbuchen noch eine Automenge definieren, bei der die Menge automatisch erzeugt und gespeichert wird.

Das Modul Schnellbuchen kann ebenfalls verwendet werden, neue Artikeldatensätze zu erzeugen: Unbekannte Artikelnummer einscannen, Artikeltext und Lagerort eingeben und es wird ein neuer Artikel im Stamm angelegt und mit der vorgegebenen Bestandsmenge gespeichert. Auf diese Weise lassen sich sehr schnell viele Artikel hintereinander neu im Stamm anlegen. Sofern weitere Artikelinformationen gewünscht sind, können sie später in der Lagerwirtschaft unter DETAILS nachgetragen werden.

Schnellbuchung ist als Zusatzmodul für die Artikel- und Lagerverwaltung AE WWS Lite verfügbar. AE WWS Lite ist ein umfangreiches, aber äußerst leicht bedienbares Programmpaket zur Lagerwirtschaft. Es lassen sich Artikel und Produkte verwalten, Wareneingänge und -Bewegungen erfassen und speichern. Die Software ist optimiert für Windows Systeme und ist dabei für kleine Arbeitsgruppen oder als Einzelplatzversion auf XML Datenbasis oder für größere Unternehmen und No-Limit Multiusereinsatz für SQL Datenbankserver erhältlich. Sie lässt sich problemlos jederzeit testen und ausprobieren, eine kostenlose Version für bis zu 49 Artikel stehen auf der Webseite des Herstellers zum Gratis Download zur Verfügung.

Schnellbuchen – empfohlen für Tablett PC:

Artikel- u. Lagerverwaltung AE WWS Lite im Internet
https://www.terminal-systems.de/wp/home-2/lager1/lagerverwaltung-aktuell/

Besonderheiten im Modul Schnellbuchen:
https://www.terminal-systems.de/wp/home-2/lager1/lagerverwaltung-aktuell/schnellbuchen/

Pressetext dieser Information. [PDF]
https://www.terminal-systems.de/docs/20191202-presse-schnellbuchen.pdf

10A Sicherungsautomat Schraubsicherung -Warnung

Das heutige Bild entstammt unserer Technik / Qualitätssicherung und enthält eine Warnung. Zu sehen ist eine 10A Schraubsicherung / Sicherungsautomat, die wir uns vor nicht allzu langer Zeit online beschafft haben und wie er noch in älteren Sicherungsanlagen oftmals zum Einsatz kommt.

Vorsicht! Das Ding war lebensgefährlich: 

Wurde die kleine Taste betätigt, um den Stromkreis zu unterbrechen, sprang  zwar der schwarze Knopf heraus – aber der Stromkreis war nicht unterbrochen!

Kurzum: Eine damit abgesicherte Leitung stand weiterhin unter Spannung, obwohl die Sicherung optisch ausgeschaltet war!

Das Ding trug ein CE Zeichen, aber keinen VDE Aufdruck. Lt Aufschrift scheinbar chinesischer Bauart. Die im Bild zu sehende mechanische Beschädigung haben wir später selbst verursacht: nachdem wir merkten, dass mit dem Automaten etwas nicht stimmte, haben wir ihn geöffnet, um die Fehlfunktion zu begutachten. Dabei haben wir ihn natürlich sichtbar beschädigt – damit er niemals wieder irgendwo verwendet werden kann. Unsere kleine selbst angebrachte Aufschrift DEFEKT mit schwarzem Edding reicht uns bei so etwas nicht.

Diesen doch eher dramatischen Zustand – AUS Schalter gedrückt, optisch ausgeschaltet aber weiterhin spannungsführend war selbst für unsere Techniker niemals beobachtetes Neuland! Das hätte im schlimmsten Fall schwere Unfälle mit Personenschaden verursachen können. Denn machen wir uns nichts vor: die meisten Menschen drücken den schwarzen Knopf und gehen dann davon aus, dass sie die Sicherung ausgeschaltet haben!

Daher unbedingt grundlegende Regel beachten: Am besten eine Sicherung IMMER komplett herausschrauben UND vor Arbeiten am Stromnetz unbedingt die Spannungsfreiheit aller Teile feststellen. Nehmt bitte nicht mehr den veralteten Phasenprüfer für 1,50 Euro – sondern einen modernen Duspol. Nur  so seit ihr auf der sicheren Seite!

Zum Beispiel also so was:

https://www.netzvergleiche.de/spannungspruefer

Widerstandsmessungen mit dem Ohmmeter haben die Fehlfunktion bei diesem Automaten übrigens bestätigt: egal wie der Schalter ist – die Sicherung hatte immer um die 0 Ohm. Also Durchgang. Ob die Sicherung überhaupt bei Erreichen des Auslösestromes von 10A funktioniert hätte, haben wir nicht getestet, sondern das Ding nach Zerstörung final dem Müll übergeben!

Selbstverständlich können wir nicht beurteilen, ob auch andere Sicherungsautomaten des Herstellers von diesem Defekt betroffen sind. Wir gehen von einem einmaligen Vorgang aus. Dennoch werden wir zukünftig alle Sicherungsautomaten vor dem Verbauen immer und generell mit Widerstandsmessgerät oder Duspol auf Funktion der Schalteinheit / korrektes Trennen per Schalter prüfen. Derartige lebensgefährliche Ausreißer wollen wir weder verbauen noch sonstwie in unseren Lebensbild sehen.

Wir verwenden dafür übrigens einen Duspol von Fa. BENNING

Infos hier.

 

 

Für Programmers: Firebird und Microsoft SQL Server nutzen

Das ist jetzt eine Betrachtung für C# und DOT NET Anwendungsprogrammierer! Der eine oder andere hat es ja schon ausführlich diskutiert: im Rahmen unserer Produktpflege werden wir die Lagerverwaltung AE WWS Lite (Link hier) zukünftig mit zwei SQL Clients versehewn:

  • Für Microsoft SQL Server (incl der kostenfreien Microsoft SQL Server Express Versionen)
  • als auch für Firebird SQL Server. LINK_HIER.

Technisch gesehen benötigt die Software daher zwei SQL Clients: für Microsoft SQL Server und die Firebird DOT NET Bibliothek, beide jeweils als DLL Datei im Programmverzeichnis.

Im ersten Workaround gehen wir davon aus, dass die Software jeweils nur für einen der Clients compiliert wird. Natürlich wäre es problemlos möglich, beide Clients zum gleichen Zeitpunkt zu integrieren – jedoch würde hierbei das Anwendungsprogramm u.E. nach unnötig aufgebläht werden, so dass wir erst mal mit der Trennung auf Compilerebene arbeiten.

De facto sind bereits heute alle SQL Aktivitäten in einer eigenen SQL Klasse ausgelagert. Das hat den Vorteil dass für die Umstellung nur eine Datei angepasst werden muss.

Datei: SQL Class


Preprocessor Compiler Definition

Am Anfang: Preprocessor Defintion für den Compiler. Via Copy und Paste wird hier  direkt vor dem Compilieren wahlweise Firebird oder MSSQL eingetragen. Im Beispiel aktuell wird der Code auf Firebird compiliert:

// Firebird OR MSSQL
#define Firebird

Weil uns Fragen erreichten:

Exkurs: Was macht der Preprocessor im Compiler

Mit dem Preprocessor kann man den Compiler beim Übersetzen der Anwendung dazu bringen, gewisse Teile des Codes zu ignorieren oder zu verwenden. Erreicht wird dieses in der Regel durch

#if (AUSDRUCK)

#elif (AUSDRUCK)

#endif

Formulierungen. Wenn der Compiler findet dass AUSDRUCK wahr (TRUE) ist, wird der eingeschlossene Code compiliert. Ansonsten ignoriert. Dieses Verhalten ist besonders dann von Bedeutung, wenn man seinen Code für bestimmte Bedingungen übersetzen will, z.B. nur für eine bestimmte Sprache oder wie in diesem Fall nur für einen bestimmten SQL Client – und trotzdem in allen Fällen mit dem gleichen Sourcecode in einem Projekt arbeiten möchte.

Und natürlich kann man den Preprocessor auch durch jederzeit eine if Bedingung im Code ersetzen. Dann werden alle Optionen compiliert und man eröffnet dem Anwender die Möglichkeit, beide Teile zu verwenden. (Hier muss man dann natürlich eine Anwendungssteuerung für den Benutzer programmieren, dass dieser mittels Auswahlfeld zur Laufzeit bestimmen kann, welchen Teil er haben möchte. Der Nachteil dieser Kombination: Da immer alles compiliert wurde, wird das Programm hierdurch größer, Insofern sind

#if (DEUTSCH)

hier nur der deutsche Teil

#endif

und 

if (DEUTSCH == TRUE) { deutscher Teil; }

im Prinzip gleichwertig. Allerdings kann man den #if / #endif Teil dazu verwenden dass der Compiler den Inhalt ignoriert = das Programm kürzer macht. Hier gilt es also zu überlegen, ob dem Anwender alle Bedingungen gleichermaßen zur Verfügung stehen müssen, oder ob man mittels Preprocessor Compilerschalter bestimmten Code einfach ausblendet.

 


SQL DLLs einbinden, für Firebird SQL oder Microsoft SQL

Die Einbindung der verschiedenen DLL für die SQL Clients. Es wird nur derjenige SQL Client eingebunden, der im Compiler aktiviert wurde.

#if (MSSQL)
using System.Data.SqlClient;
#endif

#if (Firebird)
using FirebirdSql.Data.FirebirdClient;
#endif

SQL Datensatz schreiben

Beispiel der Routine die einen Datensatz an den SQL Server schreibt – mit Unterstützung SQL Client Microsoft SQL Server und Firebird:

// Nur aktivieren wenn SQL aktiv!

if (Form1.OpenMode != (int)OpenModeValue.SQL) { return;}

// Das SQL Kommando. In diesem Fall haben wir den Namen der SQL Tabelle als Parameter in Form1 definiert. Schöner, aber für unser Beispiel etwas unübersichtlicher, ist es natürlich den Tabellennamen beim Aufruf der Sub zu übergeben.

string cmdstring = "INSERT INTO " + Form1.SQLTable_Data + " (Idx, ArtNr, ArtText, MaterialGroup) " + "VALUES (@Idx, @ArtNr, @ArtText, @MaterialGroup )";

// Die Befehlsfolge für Microsoft SQL

#if (MSSQL)
SqlConnection connection = new SqlConnection(Form1.SQLConnectionstringNeu);
connection.Open();
SqlCommand command = new SqlCommand(cmdstring, connection);
#endif

// Die Befehlsfolge für Firebird SQL

#if (Firebird)
FirebirdSql.Data.FirebirdClient.FbConnection connection = new FirebirdSql.Data.FirebirdClient.FbConnection(Form1.SQLConnectionstringNeu);
connection.Open();
FirebirdSql.Data.FirebirdClient.FbCommand command = new FirebirdSql.Data.FirebirdClient.FbCommand(cmdstring, connection);
#endif

// Und hier die Befehle für beide SQL Clients: Daten füllen und schreiben. Da die Befehle identisch sind, ist eine Trennung nicht mehr notwendig. Wer mag, kann diese Befehle noch in ein „try … catch (exception)“ kapseln und sich so vor ungewollten Ausnahmen schützen.

command.Parameters.AddWithValue("@Idx", myAdv["Idx"]);
command.Parameters.AddWithValue("@ArtNr", myAdv["ArtNr"]);
command.Parameters.AddWithValue("@ArtText", myAdv["ArtText"]);
command.Parameters.AddWithValue("@MaterialGroup", myAdv["MaterialGroup"]);

command.ExecuteNonQuery();

// Auf gar keinen Fall Close vergessen!!! Dateien oder Datenbanken nach Verwendung NICHT zu schließen ist ein Kapitalverbrechen für jeden Programmierer und sollte in Fleisch und Blut übergehen.

connection.Close()

SQL Datensätze lesen

Ähnlich aufgebaut wenn alle Datensätze aus einer Tabelle gelesen werden sollen. Auf die erläuternden Kommentare verzichten wir hier und zeigen gleich die ganze Routine:

public bool SQLReadTable(string mySQLTable, DataTable myDT1)
{
//=======================================================
//Ganze Tabelle lesen. Firebird und MSSQL
//Return: TRUE wenn alles OK, FALSE im Fehlerfall
//=======================================================

//Die Datatable wird vor dem Lesen geloescht
myDT1.Clear();

#if (MSSQL)
SqlDataAdapter locAdapter = new SqlDataAdapter("Select * from " + mySQLTable, Form1.SQLConnectionstringNeu);
#endif
#if (Firebird)
FirebirdSql.Data.FirebirdClient.FbDataAdapter locAdapter = new FirebirdSql.Data.FirebirdClient.FbDataAdapter("Select * from " + mySQLTable, Form1.SQLConnectionstringNeu);
#endif

try
{
locAdapter.Fill(myDT1);
}
catch (Exception ex)
{
//Sollte es zu einer Ausnahme gekommen sein, greifen wir die hier ab!
MessageBox.Show("#1610101100 ERROR.\n\n" + ex.Message, "SQL ERROR: sqlreadtable", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return false;
}

return true;

} //end sub