6 Alte Vorschläge und Ideen zum neuen Buchungssystem
-
Aktionen wie Vorbelegen usw. vor der Dialogeingabe nicht mehr vorsehen.
-
Buchen heißt Verarbeitung der Eingaben (ohne jede Dialogführung).
-
Alle Eingaben liegen als GV-Variable vor (Menge, Preis, Teil, Projekt usw.). Langsam aber sicher werden Sie in SVC-Buffer eingefüllt, die feste Namen haben (oder Arrays), z.B. "SVCBFdis". Folgepuffer werden wieder aus diesen Puffern gefüllt. Liegen Puffer schon vor, wie Teilestamm oder Dispo (Erfassen auch schon als BUCHUNG ?), werden Sie vor Aufruf des Buchungssystems in SVC's umgespeichert.
-
Vielleicht sollte man einfach Tables, die es zu versorgen gilt, als Oberbegriff nehmen. Ein Buchungsschlüssel (LBZFB) ist so aufgebaut, dass nacheinander die Dateien Dispo, Dispoerweiterung, Bewegung, Lagerstamm, Teilestamm, Auftragskopf usw. versorgt werden.Dazu gibt es Aktionen, die ganze Sätze vorinitialisieren und füllen und Aktionen je Feld (addieren, Nummernkreis, Konstanten, GV-Variable).Es gibt Datenbankaktionen wie Sperren, Lesen, Schreiben usw.
-
Folgebuchungen werden nicht übers Buchungssystem abgewickelt, sondern im Programm. Umlagerung = Zugang + Abgang (wobei die entsprechenden Buchungsfolgen durchaus irgendwo abgelegt sein können).
-
Aufruf z.B.
-
SVCBUCHEN("LBZBB", Eingang, strSVCBuffers als Struktur oder Array)Jeder denkbare Puffer mit festem Index oder Namen. Oder variabel und Steuerdatei spricht über Index an.Über "Eingang" könnten Dinge wie Ermittlung Nummernkreis bei Stapelbuchen gesteuert werden. Beim ersten Mal mit Neue Nummer, beim zweiten Mal nur noch Position erhöhen. Sonst eigener Buchungsparameter (schlecht!).
-
Ablage je Buchungsschlüssel in eigener Datei? Oder Sektion Buchungsschlüssel und Keywort Aktion.[LBZBB]; Voraussetzungen: Eingabe der Menge in GV_menge .....,: Satzpuffer Dispo liegt als Aufrufparameter 1 vor;TITEL = Lagerzugang aus BestellungDISPO = {INIT =BUFFER1; Puffer SVCdis aus 1. Aufrufparameter versorgenINIT =DEFAULT, Parameter; Default-Routine für Datei DISPO aufrufen,; Aufsplitten in mehrere Aktionen, wo sinnvollINIT =FirmaX, Parameter; Routine für Firma x aufrufenFELD = 12,=,GV(GV_datum)FELD = 13,+,GV(GV_menge); Wegen Transparenz alle Mengenop. offenlegenFELD = 14,=,BUF(TEIL,20); Teilepuffer muss vorher versorgt seinSATZ =LOCKSATZ =UPDATE; besser eigene Update-Sektion am Ende für alle Dateien}TEILE = {......}DBS = {LOCK =LAGERUPDATE =DISPOWRITE =BEWEG}
Andere Lösung:
|
DISPO = {
| |||
|
|
INIT(BUFFER1)
|
|
; Puffer SVCdis aus 1. Aufrufparameter versorgen
|
|
|
ACTION(DISPO, Parameter)
|
; Default-Routine für Datei DISPO aufrufen,
| |
|
|
|
|
; Aufsplitten in mehrere Aktionen, wo sinnvoll
|
|
|
ACTION(DISPO1, Parameter)
|
; Routine für Datei DISPO aufrufen,
| |
|
|
ACTION(FirmaX, Parameter)
|
; Routine für Firma x aufrufen
| |
|
|
FELD(12,=,GV(GV_datum))
|
| |
|
|
FELD(13,+,GV(GV_menge))
|
; Wegen Transparenz alle Mengenop. offenlegen
| |
|
|
FELD(14,=,BUF(TEIL,20))
|
; Teilepuffer muss vorher versorgt sein
| |
|
|
}
|
|
|
|
TEIL = {
| |||
|
|
......
|
|
|
|
|
}
|
|
|
|
DBS = {
| |||
|
|
DBS(LAGER,LOCK)
|
| |
|
|
DBS(DISPO,UPDATE)
|
| |
|
|
DBS(BEWEG,WRITE)
|
| |
|
|
}
|
|
|
