![]() |
Lagerverwaltung
Ich muss ein Lagerverwaltungssystem programmieren. Die ganze Thematik ist recht komplex, und ich stoss immer wieder auf neue Probleme, gerade was die Berechnung des Bestands betrifft. Artikel, die im Lager rumliegen und verkauft werden sollen, sind nämlich oftmals unterteilt in Unterartikel, und diese können auch wiederum unterteilt sein. Jetzt kann man sich leicht vorstellen, dass es x Fälle gibt, wie sich der Lagerbestand ändern kann, und ich will diese natürlich auch alle abdecken.
Doch bevor ich hier diese ganzen Probleme vorstellen möchte, frage ich einfach mal so in die Runde, ob es zu diesem Thema eine gescheite Standardliteraturgibt, oder ob Leute von Euch schon mal sowas programmiert haben, und mich vielleicht auf Besonderheiten und Stolperfallen aufmerksam machen können. |
Re: Lagerverwaltung
Hi Jelly,
also ich bin bei uns in der Firma für die Entwicklung der Lagersoftware zuständig. Bei uns (Bekleidungsindustrie) läuft das zwar n bissl anders, also ohne Unterartikel, aber vielleicht ein paar Tipps: Lass Dir soviel wie möglich von der Datenbank erledigen. Kommt nun drauf an, welche Ihr einsetzt, wir wurschtln z.Z. mit Interbase 7.5 rum. Du könntest dir zum Beispiel für die Buchungsvorgänge StoredProcedures schreiben, die dann die Arbeit erledigen. Und per Trigger kannst du auf die Änderung einer Bestandsmenge (z.B. eines Unterartikels) reagieren, und somit die Bestände der (heißt es Überartikel? :gruebel: ) korrigieren. Hab vor kurzem auf ner ![]() ![]() Vielleicht hilfts ja. Ciao Marco |
Re: Lagerverwaltung
hmmm, also mit literatur zum thema lagerwirtschaft kann ich nicht dienen aber ich würde mal in die nächste UNI-/ FH Bibliothek gehen und nachfragen, die leute dort kennen sich idr. sehr gut mit solchen sachen aus. Und/ Oder einfach mal schauen was die da haben und ob was hilft.
Zum Thema IT Bücher kann ich dir helfen, musst halt sagen was du da brauchst. mfg |
Re: Lagerverwaltung
@MarcoWorm: Danke für die Links. Aber mit diesem AvERP kann ich irgendwie nicht viel anfangen.
Soviel wie möglich von der DB erledigen zu lassen ist klar, nur weiss ich noch nicht genau wie ich die DB aufbauen soll. Mir schwebt jetzt mal folgendes vor. Artikel können wohl beliebig unterteilt werden. In den Auftrag (und auch später in die Rechnung) erscheint NUR der Artikel der verkauft wurde. Das kann ein Artikel aus oberstem Knoten sein, kann aber auch ein Mittelstück sein. Im Inventar werden NUR die Endartikel gezählt. Ganze Artikelgruppen tauchen dort nicht auf, sonst wirds zu knifflig Ist diese Vorgehensweise im Prinzip so OK. |
Re: Lagerverwaltung
Hier ein paar Stichworte: Artikelstamm, Artikelgruppen, Stücklisten, Unterstücklisten, Preisstaffeln, Rabattstaffeln, Lagerorte, Inventur, Handvorrat, Bewertungspreise, Bewertungsfaktoren, Preisfaktoren, Mengeneinheiten, Lagerbewegungsprotokoll, virtuelle Lager (Schrott, Reklamation), Zwischenlager (Produktion, Reparatur), Lieferanten (Hauptlieferanten, Zusatzlieferanten). Dann gibt es in der Produktion noch Rohteile, Halbzeuge und Fertigartikel je nach Produktionsstufe.
Da kommt einiges auf dich zu. Lagerbewegungen zur Fertigung von Halbzeugen bzw. Fertigartikeln, Lagerbewegungen zur Veredelung von Rohteilen, Halbzeugen (Lackierung, Galvanisierung, Zuschnitt, Konfektionierung), Lagerbewegungen durch Anlieferungen, durch Verkauf. Bei uns wurde es so gelöst, daß über ein Lagerbewegungsprotokoll jedes Mal der Bestand neu berechnet wird (Bestand der letzten Inventur + Summe der Zugänge - Summe der Abgänge). Ist zwar etwas langsamer, aber die Fehleranfälligkeit ist geringer. Grüße Mikhal |
Re: Lagerverwaltung
Zitat:
Zitat:
Wie handhabt Ihr Bestellungen bei Euren Zuliefern. Berücksichtigt Ihr Bestandsmindestmengen? |
Re: Lagerverwaltung
Im Artikelstamm werden natürlich solche Werte wie Mindestbestand und Höchstbestand festgelegt.
Die Disposition überlassen wir einem Fremdprogramm, das einmal am Tag die entsprechenden Daten via csv-Import zur Verfügung gestellt bekommt. Hier werden dann solche Dinge wie Mindestbestellmengen, Höchstbestellmengen, Hauptlieferant etc. berechnet und die Disponenten erhalten bei Arbeitsbeginn eine Liste der dringend zu bestellenden Artikel, der periodisch zu bestellenden Artikel etc. zur Verfügung gestellt. Der Disponent muß dann lediglich überprüfen, ob die Artikel tatsächlich und beim vorgeschlagenen Lieferanten bestellt werden soll. Das Programm heißt add*ONE, stammt von der Firma Inform ![]() Grüße Mikhal |
Re: Lagerverwaltung
Zitat:
Ich dachte zuerst, daß es nur um die reine Lagerhaltung gehen soll. Jetzt sieht es mir eher aus, als wolltest du ne "komplette" Warenwirtschaft schreiben. Das wird alleine ne Weile dauern. Wir sind gerade dabei einige Teile von unserer umzustellen und arbeiten jetzt schon zu fünft ne gaaaanze Weile... Nichtsdestotrotz, viel Erfolg bei deinem Unterfangen :thumb: |
Re: Lagerverwaltung
Zitat:
Ja, im Grunde wirds ein komplettes Warenwirtschaftssystem werden. Unter anderem. Das Ganze Programm ist zu einem grossen Teil auf meinem Mist gewachsen. Und da soll jetzt auch noch ein WWS dazu. Das ist auch der Grund, warum ich nicht auf eine fertige Lösung zurückgreifen kann, da es in das bestehende System integriert werden muss. Ich hab mir AvERP mal runtergeladen. Werd mir mal morgen die DB Struktur ankucken. Dümmer wird man bestimmt nicht davon. |
Re: Lagerverwaltung
Hi Jelly,
endlich mal was womit ich mich zumindest in einem Teilbereich auskenne. Da ich bei uns für Lager und Logistik zuständig bin. Ich könnte Dir also den einen oder anderen Tip aus der Praxis geben. Zitat:
Zitat:
Das ist eine sehr sehr sehr komplexes Thema, aber wenn Du magst gebe ich Dir gerne Tips oder Denkanstöße. Ati |
Re: Lagerverwaltung
Zitat:
|
Re: Lagerverwaltung
Wir unterscheiden unter disponiblen und nicht-disponiblen Lagerorten. Nicht-diponible Lagerorte sind etwa das Wareneingangslager, das Warenausgangslager, das Lieferanten-Reklamationslager, das Kunden-Reklamationslager, das Schrottlager. Letztlich sind diese Nicht-disponiblen Lager virtuelle Lager um Artikel vernünftig zu buchen.
Als disponible Lagerorte gelten bei uns das Halbzeuglager, das Fertigteillager, das Versandlager, das Transitlager. Hier stehen also die Artikel, die tatsächlich verwendet/verkauft werden können. Im Lagerbewegungsprotokoll werden alle Lagerbewegungen in allen Lagern eingetragen, für die Berechnung des tatsächlich verfügbaren Lagerbestands werden aber nur die Bewegungen in den disponiblen Lagern herangezogen. Grüße Mikhal |
Re: Lagerverwaltung
Ich denke mal wir können uns jetzt hier stundenlang über das eine oder andere Verfahren unterhalten. Wichtig ist was Jelly will oder haben muß.
|
Re: Lagerverwaltung
Zitat:
Das mit den Unterartikeln würde ich so regeln das du im Artikelstamm einfach eine weitere Spalte mit der Artikelnr. des übergeordneten Artikel einbaust. Kann ein Unterartikel in verschiedenen übergeordneten Artikeln verwendet werden, braust du noch eine Verbindungstabelle. Oder das wäre vielleicht sowieso besser für die spätere Verarbeitung. Generell mit einer Verbindungtabelle zu arbeiten. z.B.: Artikelnr LfdNr Unterartikel Gruß |
Re: Lagerverwaltung
Zitat:
Zitat:
|
Re: Lagerverwaltung
Moin zusammen,
Tja also mit den beliebig vielen Unterartikeln kommt man um eine Art Baumstruktur nicht umhin. Wahrscheinlich hängst Du an jeden Artikel eine Detailtabelle mit Referenzkeys auf Unterartikel an. Die Routine für die Anzahl vorhandenen agglomerierter Artikel wird dann wahrscheinlich eine Stored-Procedure zum Einsatz kommen. Viele Grüße // Martin PS: Würde das strikt Top-Down aufsetzen. Keine Verweise von Unterartikel auf Überartikel, nur umgekehrt in der Detailtabelle. Das ganze muß auch noch einigermaßen verwaltbar sein. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz