Lieferscheine auf Datenbankebene erstellen

rhellmich

Neues Mitglied
Hallo liebes Forum,

dies ist mein erster Beitrag und ich hab direkt eine ziemlich komplizierte Frage.
Wenn in der Sage ein Lieferschein erstellt wird, welche Tabellen werden dann abgefragt und gefüllt?

Ich habe in Eigenregie mit JavaScript / NodeJS ein komplettes Produktions,- und Versandtool (mit SpeditionsAPIs) geschrieben, dass auf unsere Sage Datenbank zugreift und diese ausliest (läuft auf unserem eigenen Server und ist gesichert durch den Auth-Dienst Clerk). Die Produktionsmitarbeiter können die ABs (wir arbeiten leider nicht mit Fertigungsaufträgen) fertig melden und in Versandstücke packen! Darauf hin werden von mir angelegte Tabellen mit Daten gefüllt, die der Versand dann für die weitere Bearbeitung nutzt.

Jetzt zu meiner Frage. Zu aller Erst, das Ganze ist bisher nur in der Testphase und wird nicht produktiv eingesetzt.
Wenn ich daraus, auf Datenbankebene automatisiert einen Lieferschein generieren will, welche Tabellen sind alle notwendig? Hintergrund ist der, dass sich in jedem Packstück, dass mit einer NVE Nummer versehen ist, 40 Aufträge verstecken können.

Ich krieg den Lieferschein erzeugt und auch die Positionen mit den gemeldeten Stückzahlen unter Achtung der Gleichgewichtsstatistik der einzelnen Positionen in der SQL Datenbank angelegt.
Ich weiß, dass sich die aktuellen BelIDs der VK-Tabellen unter KHKTan verbergen.
Eine Neue ID wird über die gespeicherte Prozedur spSysTan mit den erforderlichen Parametern erstellt und zurückgegeben.
Anschließend lass ich mir die nächste frei Nummer der Nummernnomenklatur mit Kennzeichen VLL aus KHKNummernKreise generieren und lege den Lieferschein auf Basis der AB an.
Danach folgen die Positionen mit Bearbeitung in KHKVKBelegePositionen und KHKVKVorgaengePositionen.
Muss ich weitere Tabellen beachten?

Liebe Grüße
René Hellmich
 
Hallo René,

die Anlage von Belegen ist ein sehr umfangreicher Anwendungsfall. Welche Tabellen dafür gefüllt werden müssen, hängt stark von den jeweiligen Details ab - bspw. müssen im konkreten Fall von Lieferscheinen bei Chargen- oder seriennnummernpflichtigen Artikeln eben diese in den entsprechenden Tabellen geführt werden. Für eine korrekte Weiterverarbeitung in der Sage solltest Du auch die Positionsreferenztabellen etc. beachten. Hinzu kommt, dass eine Belegerstellung auf Datenbankebene an der eigentlichen Programmlogik vorbei geht und somit weder die sage-eigenen Validierungen noch eventuelle Erweiterungen oder künftige Entwicklungen berücksichtigt werden.

Ich rate daher stark von der Belegerstellung auf Datenbankebene ab. Siehe hierzu auch meinen Beitrag zu einem ähnlich gelagerten Thema.

Viele Grüße
Steffen

Nachtrag:
Im Fall von Lieferscheinen müsstest Du auch Lagerbuchungen / Entnahmen erstellen etc., das wird sehr komplex.
 
Zuletzt bearbeitet:
Von einer direkten Erstellung innerhalb der Datenbank per SQL würde ich eher abraten, da die komplette Logik sonst nachgebaut werden muss.
Neben den eigentlichen Verkaufstabellen gibt es nämlich noch reichlich Tabellen, in denen sich die Daten verstecken.

Empfehlung wäre, immer über die DLLs zu gehen oder die API oder zB unseren Belegimport zu verwenden.
Das wäre u.a. auch Updatesicherer, da - selbst wenn man das jetzt "hinbastelt" - irgendwann bei einem Update was nicht mehr passt.
 
Danke für eure Antworten!
Ja ich weiß, dass ist absolut nicht das was man machen sollte. Problem an der Sache ist, bei uns ist die Sage historisch gewachsen (alles vor meiner Zeit) .. ich versuch da gerade das Beste draus zu machen.
Wir haben keine Fertigungsaufträge, keine Chargen in den VK Artikeln und der Verkauf eines VK Artikels hat bei uns auch keine Auswirkung auf den Lagerbestand.
Somit würde der gesamte Batzen an Tabellen und Auswirkungen wegfallen.

Da wir noch Sage 8.1.2.24 verwenden und ich keinen Zugriff auf die APIs der 9.0.x habe, ist meine Idee eben gewesen ich bau das alles nach (was ja an sich schon gut funktioniert hat) und bau so viel Sicherheitsabfragen ein wie ich kann.
 
Zurück
Oben