# Warenwirtschaft in Java



## planktom (8. Mrz 2009)

Hi!
Wir bauen eine neue Warenwirtschaft für unsere Großküche. Meine bisherige Access-Lösung packt das ganze nicht mehr. Bei 500'-Datensätzen geht das Netz in die Knie. Jetzt muss was Neues her. Ein Versuch, die Programmierung nach Aussen zu vergeben scheiterte. Jetzt darf ich d'rüber und da stellt sich mir die Frage: Womit geht man das an?
Geeinigt hab' ich mich nun auf Java/MySQL - irgendwo muss man mal anfangen.
Das ganze muss eine saubere Client/Server-Lösung werden. Für mich bedeutet das, dass die Rechenarbeit auf dem SQL-Server erledigt wird und der Client entweder parametrisierte Prozeduren auf dem Server aufruft oder selbst den SQL_String zusammenbaut, diesen an den Server schickt und ein paar wenige Daten zurückbekommt.
Was für ein Umfeld benötige ich noch, um Java/Datenbanken/MySQL unter einen Hut zu kriegen.
Herzlichen Dank für jedweden Tipp!
Ciao
Tom


----------



## foobar (8. Mrz 2009)

Was willste denn für ne CLienttechnologie einsetzen Swing, SWT/JFace, Web?
Startet ihr mit einem neuen DB-Schema? 

Wenn ihr wirklich bei Null anfagnen wollt, solltet ihr auf jeden Fall einen ORM wie Hibernate einsetzen.


----------



## Sempah (8. Mrz 2009)

Vlt. helfen dir ein paar Stichworte wie:

- RMI (entfernter Methodenaufruf)
- OR Mapping (Hibernate etc.)


----------



## ARadauer (8. Mrz 2009)

wenn man rmi und hiberante einsetzt, sollte man sich auf jeden fall mal spring ansehen...
hast du schon einwenig erfahrung mit java gemacht?... so ein projekt sollte man nicht unterschätezn


----------



## slawaweis (8. Mrz 2009)

planktom hat gesagt.:


> Jetzt darf ich d'rüber und da stellt sich mir die Frage: Womit geht man das an?
> Geeinigt hab' ich mich nun auf Java/MySQL - irgendwo muss man mal anfangen.


wie sind die Kenntnisse von Java und Datenbanken? Weil so ein System aufzubauen *und zu pflegen* ist nicht trivial und es kosten vor allem viel Zeit. Bevor man was eigenes macht, würde ich empfehlen sich ein paar Online-Shop-Systeme ansehen, die man eventuell sich dann anpasst. Weiterhin sollte man sich mit ERP auseinandersetzen:

Enterprise Resource Planning ? Wikipedia

hier ist ein Post mit Links zu solchen und ähnlichen Systemen:

http://www.java-forum.org/plauderecke/78909-e-shop-system.html#post490668

Slawa


----------



## planktom (8. Mrz 2009)

Hi,
ihr wollt wohl, dass ich nochmals die Schulbank drücke
Ok:
RMI: Damit schaffe ich es, die Belastung des Netzwerks zu verringern und die Client-Server-Kommunikation unabhängiger von Bandbreitenschwankungen zu machen. Evtl. kann ich mir dann den zusätzlichen Aufwand der Programmierung des SQL-Servers sparen und alles in Java-Klassen (das erste Mal, dass ich dieses Wort benutze!) auslagern. Hört sich gut an.
ORM: Operational Reactivity Margin, ein Maß für die Überschussreaktivität von Kernreaktoren... war's wohl nicht,
ORM: Object-Relational Mapping, ein Konzept zum Abbilden von Objekten in relationale Datenbanken
Die Datenbankstruktur liegt fest und hat sich auch in der bisherigen Anwendung bewährt. Ich nimm die mal als gegeben hin.
Hibernate: Den Begriff krieg ich nicht wirklich gebacken!?
...


----------



## planktom (8. Mrz 2009)

@slawaweis
Meine Kenntnisse in Java tendieren nach Null, mit Datenbanken hab' ich geringe Probleme: Meine bisherigen Erfahrungen liegen in der Wartung von MS-SQL und dem Einsatz und Programmierung von PHP/MySQL bei der Website-Erstellung.
Deinen Vorschlag Vorhandenes anzupassen hab' ich schon durch. Sämtliche Versuche scheiterten stets an der Preisberechnung. In unserem Fall muss die auf FIFO basieren. Und da wagen sich meine bisher untersuchten Warenwirtschaften nicht vor. Wozu denn auch, steuerlich ist bisher auch nur LIFO bzw. eine Durchschnittsbewertung zulässig. Auch wenn' den Tatsachen widerspricht: In einem Verpflegungsbetrieb verbrauche ich stets die ältesten Artikel zuerst.
Und dann sollen auch noch rückwirkend Korrekturen möglich sein. Da tun sich die "Mitbewerber" auch sehr schwer.
Ciao
Tom


----------



## slawaweis (8. Mrz 2009)

planktom hat gesagt.:


> @slawaweis
> Meine Kenntnisse in Java tendieren nach Null, mit Datenbanken hab' ich geringe Probleme: Meine bisherigen Erfahrungen liegen in der Wartung von MS-SQL und dem Einsatz und Programmierung von PHP/MySQL bei der Website-Erstellung.


es dauert alleine 2 Jahre Java einigermaßen gut zu beherrschen und brauchbaren Code zu produzieren. Wenn da kein erfahrener Java-Entwickler im Team ist oder man für das Projekt 2-3 Jahre eingeplant hat, sehe ich schwarz. Dann lieber das ganze mit PHP machen.



planktom hat gesagt.:


> Deinen Vorschlag Vorhandenes anzupassen hab' ich schon durch. Sämtliche Versuche scheiterten stets an der Preisberechnung. In unserem Fall muss die auf FIFO basieren. Und da wagen sich meine bisher untersuchten Warenwirtschaften nicht vor. Wozu denn auch, steuerlich ist bisher auch nur LIFO bzw. eine Durchschnittsbewertung zulässig. Auch wenn' den Tatsachen widerspricht: In einem Verpflegungsbetrieb verbrauche ich stets die ältesten Artikel zuerst.


ich verstehe das Problem nicht. "Tatsachen widerspricht" ist irgendwie aus der Luft gegriffen. In sehr vielen Geschäftsbereichen versucht man die älteste Ware am schnellsten rauszubekommen, damit man nicht auf ihr sitzen bleibt. Die Ware verliert mit der Zeit ja auch an Wert, z.B. Autos, Elektronik oder Unterhaltung. Weiterhin ist FIFO nur eine Bedingung, die normalerweise jedes System unterstützt. Wenn nicht, dann müsste man im einfachsten Fall dafür die SQL-Abfrage modifizieren, im kompliziertesten die Anzeige für die Benutzer mitändern. Immer noch weniger Arbeit, als alles selber zu schreiben.



planktom hat gesagt.:


> Und dann sollen auch noch rückwirkend Korrekturen möglich sein. Da tun sich die "Mitbewerber" auch sehr schwer.


Also eine History anzulegen und zu pflegen ist keine schwarze Kunst, sind nur ein paar andere Datensätze. Von welchen "Mitbewerber" wir jetzt sprechen, weis ich jetzt nicht.

Slawa


----------



## planktom (8. Mrz 2009)

> Dann lieber das ganze mit PHP machen.


Damit krieg ich doch keine, wirklich anwenderfreundliche Oberfläche hin. Ich hatte den Eindruck, das ich hierzu immer noch JS/Ajax miteinbinden muss.


> Auch wenn' den Tatsachen widerspricht: In einem Verpflegungsbetrieb verbrauche ich stets die ältesten Artikel zuerst.


Hab' ich das wirklich geschrieben? Was ich sagen wollte ist, dass du, aufgrund der umgekehrten Maßgeblichkeit im HGB/EStG, letztendlich mit FIFO nicht bewerten darfst. Ändert sich erst, wenn du Abschlüsse auf internationaler Basis machst. Ein, im Handelsrecht vorgesehenes Wahlrecht, nach der tatsächlichen Verbrauchsfolge (FIFO) zu bewerten, nützt steuerrechtlich nichts.


> Von welchen "Mitbewerber" wir jetzt sprechen, weis ich jetzt nicht.


 Damit meinte ich die von mir bisher ins Auge gefassten Wawis für Gastronomie/Großküchen.
Ciao
Tom


----------



## Noctarius (8. Mrz 2009)

> Damit krieg ich doch keine, wirklich anwenderfreundliche Oberfläche hin. Ich hatte den Eindruck, das ich hierzu immer noch JS/Ajax miteinbinden muss.



Und das hat was mit Java zu tun?


----------



## planktom (8. Mrz 2009)

> > Damit krieg ich doch keine, wirklich anwenderfreundliche Oberfläche hin. Ich hatte den Eindruck, das ich hierzu immer noch JS/Ajax miteinbinden muss.
> 
> 
> Und das hat was mit Java zu tun?


Hat nichts mit Java zu tun. Das ist die Antwort auf deinen Vorschlag mti PHP zu arbeiten.
Ciao
Tom


----------



## Noctarius (8. Mrz 2009)

Ja eben und wieso sollte JS / AJAX nicht mit PHP funktionieren?


----------



## planktom (8. Mrz 2009)

Ich dachte, dass ich all diese Funktionalitäten mit Java erschlagen kann, ohne mich auch noch mit JS/AJAX auseinandersetzen zu müssen.


----------



## Noctarius (8. Mrz 2009)

Es gibt Frameworks wie z.B. GWT oder Echo die das für dich erledigen können und im Hintergrund selbst das JavaScript erzeugen. Alternativ kannst du eine Swing/SWT/AWT Anwendung ausliefern oder das Ganze als Browser-Applet liefern.

Ich persönlich bin mitlerweile eher auf dem Stand entweder echte Clientlösung (also eigener Client) oder eine Webanwendung auf einem fertigen Framework. Da gibt es mitlerweile echt gute, welche sich auch hervorrangend mit Hibernate und Spring integrieren lassen.


----------



## ice-breaker (8. Mrz 2009)

planktom hat gesagt.:


> Ich dachte, dass ich all diese Funktionalitäten mit Java erschlagen kann, ohne mich auch noch mit JS/AJAX auseinandersetzen zu müssen.



und du meinst es ist weniger Arbeit eine komplexe Sprache wie Java zu lernen statt nen paar kleine JavaScripte zu schreiben und den Großteil der Anwendung in einer Sprache zu Entwickeln, die du schon kannst und sich dafür anbietet ?


----------



## Noctarius (8. Mrz 2009)

paar kleine JavaScripte ist gut xD


----------



## ice-breaker (8. Mrz 2009)

Noctarius hat gesagt.:


> paar kleine JavaScripte ist gut xD



stimmt doch, der Großteil der Anwendung kann doch aus simplen Formularen bestehen, muss ja nicht alles auf RIA gemacht werden.


----------



## Noctarius (9. Mrz 2009)

Laut Ihm brauch man für eine ANSPRECHENDE Oberfläche JavaScript und Ajax und mitlerweile würde ich Ihm zu mindestens bei Anwendungen die permanant benutzt werden fast zustimmen.

Eine wirklich als flüßig laufende (für den Anwender) Webanwendung bekommst du ohne den Gebrauch von Hintergrundübertragung (muss ja nicht immer AJAX(ML) sein, JSON ist ehh schmaler) nicht mehr hin.

Für Jemanden der viel Daten eingibt und massig Werte in z.B. eine Rechnung einträgt ist das ewig Seite neuladen nicht zu verstehen geschweige denn zu ertragen. Nicht umsonst liefen solche Anwendungen früher auf extra Clientprogrammen


----------

