Moin,
Ich habe das ganze noch nicht so erfasst, was ihr genau macht und/oder vorhabt, aber das kann an mir liegen, daher ein paar Fragen und Anmerkungen
Problematisch sind Fälle wie Korrektur der Mengen in einem Beleg oder das Löschen eines Beleges.
Welche Problematiken genau treten da auf?
den zugehörigen Job des Belegobjektes zu löschen und die neuen Werte in einem neuen Job zu erfassen, wird mit der Meldung "Löschen des Jobs nur mit Löschen des Beleges möglich" quittiert.
Wenn ein Lagerjob über einen Beleg erstellt wurde, gibt es in der
KHKLagerplatzBuchungen einen Verweis im Feld
Referenz. Ob das ausschlaggebendes Kriterium für den Fall ist, weiß ich nicht zu 100%, könnte es mir aber vorstellen, denn ansonsten ist mir kein Bezug bekannt.
Unsere derzeitige Lösung besteht darin, alle Buchungen des originalen Beleges zu stornieren und die neuen Mengen im gleichen Job zu erfassen. Dies müssen wir auch vor dem Löschen des Belegs durchführen, weil der Lagerjob selbst dann nicht gelöscht wird (???) Das kommt mir alles ziemlich tricki vor. Gibt es da auch smartere Lösungen?
Wie gesagt bin ich mir nicht ganz sicher, ob ich alles richtig verstanden habe, aber so wie ich es verstehe, würde ich einen Gegenbeleg erzeugen, also eine Belegart verwenden
( zur Not selbst anlegen ), die über entsprechende Kennzeichen die benötigten Rückbuchungen vornimmt.
Dann einfach einen Korrekturbeleg, wo die korrigierten Buchungen drin sind. Kann man über eine DCM dann auch in einem Schritt durchführen.
Kann man über die KHKLagerbewegungsarten - Tabelle eventuell eigene Bewegungsarten kreieren. Was bewirken die Einzelnen Werte dieser Tabelle?
Ja, das machen wir auch. Man muss halt die Kennzeichen entsprechend setzen:
-
Bewegungsart : Kürzel/Kennzeichen der Bewegungsart
( bspw. IU usw. ) => frei wählbar
-
Bezeichnung : Info, damit man weiß, worum es sich bei dieser Bewegungsart handelt => frei wählbar
-
Standardtext : Ein frei wählbarer Text, der bei den Buchungen mit übernommen wird. Hier ist eine Art Platzhalter
$&$ möglich, über den man bspw. die Belegnummer in den Standardtext übernimmt, sofern die Buchung über einen Beleg durchgeführt wird.
-
IstManuell : Ob die Bewegungsart manuell in den Buchungsmasken verwendet werden kann.
-
Bestandswirkung : Ob die Bewegungsart Bestand bucht.
-
Schwebt : Ob es sich um eine schwebende Buchung handelt.
-
IstInventur : Ob die Bewegungsart eine Inventurbuchung darstellt.
-
IstIFAuftrag : Ob die Bewegungsart für interne Fertigungsaufträge verwendet wird.
-
IstStorno : Ob die Bewegungsart eine Stornobuchung durchführt ( Mengen werden negativ bewertet )
-
Anzeige : Steht für die Reihenfolge der Auswahl über die Sage-Masken. Ist bei uns häufig einfach 0, weil wir die eigenen Bewegungsarten nur Script basiert einsetzen.
Bei den Spalten
IstManuell bis
IstStorno muss man bedenken, dass es ein
KHKBoolean Datentyp ist, bei dem
-1 für
true steht!
Kenne ich aus keiner Programmiersprache, dass ein negativer Wert als true definiert wird, aber ist wohl aus KHK Zeiten übernommen, wie man am Namen sehen kann.
Ein Profi möge mich korrigieren, wenn ich etwas falsch dargestellt habe.