Neu Neuen Artikel per SQL anlegen

martinorth

Aktives Mitglied
19. Juni 2014
32
2
Hallo liebe JTL Mitstreiter,

ich habe eine einfache Version eines Datenterminals (MDE) für den Wareneingang programmiert. Den Wareneingang zu buchen funktioniert auch gut. Jetzt kommt es vor, dass ich neue Artikel bei meinem Lieferanten bestelle, die noch nicht in der Wawi angelegt sind. Wenn meine Mitarbeiter dann versuchen zu diesem Artikel den Wareneingang zu buchen, haben sie ein Problem. Besagter Artikel existiert nicht. Jetzt soll im MDE automatisch ein minimales Formular zum Anlegen des neuen Artikels erscheinen. In dem Formular soll die zuvor gescannte EAN angezeigt und der Benutzer kann einen Namen, die Hersteller Artikelnummer, die gelieferte Anzahl und einen Lieferanten wählen. Dann soll der Benutzer das Formular abschicken können damit der neue Artikel in der Wawi angeleg wird. Die so angelegten Artikel erscheinen in einer speziellen Kategorie und können von mir dann nachträglich bearbeitet und ergänzt werden (Preise, Beschreibung usw.).

Die Lieferanten für das Eingabeformular kommen aus der Tabelle tlieferant. Die minimalen Artikelinfos schreibe ich mit cLagerAktiv='Y' in tArtikel, die Kategoriezuordnung in tkategorieartikel, den Artikelnamen in tArtikelBeschreibung und in tliefartikel die Lieferantenzuordnung.
Danach erfolgt dann die Wareneingangsbuchung über spWarenlagerEingangSchreiben und einem Update von tWarenLagerPlatzArtikel. Habe ich noch etwas wichtiges vergessen?

Viele Grüße

Martin
 

SebiW

Sehr aktives Mitglied
2. September 2015
3.112
1.628
Hi Martin, auch wenn ich den Ansatz verstehe halte ich ihn dennoch für nicht optimal. Du legst Dich an dieser Stelle auf eine Datenstruktur fest und musst die im Zweifel bei jedem größeren Wawi Update prüfen und anpassen.

Gleichzeitig steht Dir mit der Ameise ein Tool zur Verfügung, dass immer alle benötigten Tabellenzuweisungen etc mitbringt und Deinen Funktionsumfang problemlos abdeckt.

Ich würde anders vorgehen: Lass Deine Maske in ne csv schreiben und die von der Ameise im Anschluss automatisiert importieren. So umgehst Du alle potentiellen Probleme mit Datenbankänderungen etc.
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.873
562
Ich würde auch unbedingt dazu raten beim Andocken an ein externes Programm immer Schnittstellen (oder z.b. wie hier die Ameise) zu benutzen.
Niemals direkt in die Datenstruktur des externen Programms schreiben.
 

martinorth

Aktives Mitglied
19. Juni 2014
32
2
Klar habt ihr da recht. Idealerweise würde ich die WAWI über eine API ansprechen. Die Ameise ist ja fast eine API. Es gibt ja auch eine API, allerdings läuft diese nur auf meinem lokalen Windows Laptop. Warum keine Restfull API in PHP zum Betrieb auf externen Servern als Zusatzprodukt?
 
  • Gefällt mir
Reaktionen: arich001

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.873
562
Es gibt ja auch eine API, allerdings läuft diese nur auf meinem lokalen Windows Laptop.
Du kannst diese API aber doch natürlich auch auf einem Server benutzen. Natürlich weiß ich aber auch nicht genau, was du machen willst bzw. was du in dem Zusammenhang mit dem "externen Server" meinst.


Warum keine Restfull API in PHP zum Betrieb auf externen Servern als Zusatzprodukt?
Falls du auf die Nutzung mit PHP beschränkt bist, kannst du ja mal ausprobieren, ob du mit SWIG einen PHP-Wrapper für die DLL erstellen kannst.

Eine andere Möglichkeit wäre, die Funktionen der DLL direkt mit der COM Klasse von PHP zu benutzen. Das setzt aber voraus, dass du PHP auf Windows ausführst (aber davon gehe ich mal aus, wenn du ja mit JTL und der WAWI zu Gange bist...). Das geht dann recht eifach: Du müsstest die DLL nur registrieren und dann in PHP ein COM Objekt erstellen.

Evtl. kannst du auch die Library NetPHP nutzen.
Ich habe die noch nie genutzt, aber damit soll man mit PHP auch .Net Binarys ohne COM aufrufen können.
 

John

Sehr aktives Mitglied
3. März 2012
4.215
1.088
Berlin
Ich mache so etwas auch nur über die Ameise. Wenig bis kein Wartungsaufwand...
 

Ähnliche Themen