Das (alte) Lagerbuchungsprotokoll

Alles, was den Programmierer beschäftigt

Moderator: SYNERPY

Antworten
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Das (alte) Lagerbuchungsprotokoll

Beitrag von miboe »

... bis Version 2006.B2.02 gibt mir immer noch ein paar Rätsel auf, insbesondere in der Sicht des Anwenders:

Soweit ich es verstanden habe, werden die Reservierungen und Entreservierungen über die unzähligen BUCHEN=N, MENGE=0 Datensätze gemacht. Hier stellt sich mir dann aber schon die Frage, warum es für eine Reservierung und eine Entreservierung unbedingt zwei eigentlich bis auf einen Datumswert gleiche Datensätze geben muß. Ich vermute, daß das an der Arbeitsweise der entsprechenden Prozuduren, welche das Lagerbuchungsprotokoll auswerten, liegt. Hauptsächlich also z.B. die P_BARTLHPOME_BEWEGUNGEN, bei der ja jeder zweite Befehl ein SELECT FROM BARTLHBU ist.
Eine Nachvollziehbarkeit durch den Benutzer ist dadurch auf jeden Fall nicht gegeben. Wenn ich z.B. einen Fertigungsauftrag P->A setze, erscheint pro Materialposition eine Reservierung. Wenn ich aber am Tag danach merke, daß ich was falsch gemacht habe, und wieder A->P setze, erscheint zusätzlich noch eine Buchung, die wohl entreserviert, aber bis auf das Ausführungsdatum genau identisch aussieht. Jeder andere User, der diesen Vorgang nicht mitbekommen hat, versteht dann nicht, warum es für diesen FA zweimal (oder wenn wieder aktiviert, eigentlich sogar dreimal) die Buchungen gibt :roll:

Was ich aber dann letzten Endes wirklich nicht mehr nachvollziehen kann, ist warum beim Löschen eines geplanten FA nicht gleich die ganzen Reservierungsbuchungen mitgelöscht werden. Stattdessen wird einfach nur die ID der Materialposition aus dem Buchungssatz gelöscht und es verbleibt eine "tote" Materialbewegung ohne Menge (=0), die nicht gebucht werden soll und zudem keinerlei Verknüpfung zu irgendeinem real noch existierenden Vorgang hat. Diese Buchung muß aber doch bei jeder Auswertung der BARTLHBU für Materialplanungen unnötigerweise mit ausgewertet werden ...

Vielleicht kann mir ja hier jemand mit einem besseren Erklärungsversuch auf die Sprünge helfen.

Und ja, ich habe schon gesehen, daß in der 2007er das Buchungsprotokoll in zwei getrennt wurde. Damit sollen offensichtlich die Buchungen von den Reservierungen getrennt werden. Ob aber der erste geschilderte Themenblock dort auch geändert wurde oder noch besteht weiß ich halt nicht.

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
admin
Site Admin
Beiträge: 2673
Registriert: Di Feb 10, 2004 5:48 am
Wohnort: Bayreuth

Beitrag von admin »

1. Im neuen AvERP wird es keine 0-Buchungen zum Reservieren der Standardlagerorte mehr geben. Die Reservierungen interessieren sowie so niemanden, daher gibt es jetzt eine zweite Maske.

2. Das Lagerbuchungsprotokoll erzeugt recht viele Datensätze. Gleichzeitig muss es allerdings sehr performant sein, so dass eine Reservierung von 100 Fertigungsmaterialien nicht ewig dauert. Firebird mag es nicht, wenn einzelne Datensätze aus einer großen Menge gelöscht werden (ähnlich wie Fragmentierung im Dateisystem). Daher haben wir die unnötigen Datensätze meist nachts in einem Job gelöscht, so dass tagsüber einfach weitere Datensätze angefügt wurden (sehr viel schneller).
Ein sehr großes Problem bei Firebird ist die Garbage Collection, die gelöschte Datensätze richtig löscht (ähnlich Papierkorb leeren). Diese hat massive Geschwindigkeitsprobleme beim Löschen von Datensätzen, bei denen es viele leere Fremdschlüssel gibt.

Wie gesagt, in der neuen Version sind eigentlich alle Probleme behoben, so dass alles auch deutlich schneller abläuft.
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Beitrag von miboe »

1. Wie werden denn die Reservierungen dann gemacht?

2. Das wollte ich ja wissen: per Job oder Prozedur (oder wie auch immer), kann man die Datensätze also löschen. Dann nachts die Datenbank per gbak aufräumen und gut iss ...

Danke
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
admin
Site Admin
Beiträge: 2673
Registriert: Di Feb 10, 2004 5:48 am
Wohnort: Bayreuth

Beitrag von admin »

1. Über ein UPDATE SET ID = ID auf die entsprechende BARTLHPO.

2. P_JOB_BARTLHBU
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Beitrag von miboe »

1. aha, danke ... werde ich mal nachschauen, nur so aus Interesse

2. da ärgere ich mich jetzt gerade über mich selbst, weil ich in die P_JOB ... Prozeduren nie reingeschaut habe, weil der Jobserver bei uns eh nicht läuft ... :evil:

Aber es ist nie zu spät :wink:

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
Antworten