DCMs werden bei Beleganlage nicht getriggert

Arne Drews

Mitglied
Vorab
Ich bin mir nicht sicher, ob es hier korrekt platziert ist. Falls nicht, bitte gerne verschieben, liebe Admins ;)


Vorgeschichte
Wir möchten das Kassensystem Korona in unseren Stores einsetzen und haben eigentlich nur noch ein Problem dabei zu lösen.
Um es dem Kunden so reibungslos wie möglich zu gestalten, haben wir eine DCM, die an das Event VKBelegBeforeSave registriert ist. In dieser DCM schauen wir, ob der Bestand im entsprechenden Storelager in ausreichender Menge für den Kauf des/der Artikel vorhanden ist.
Ist dies nicht der Fall, buchen wir die benötigte Fehlmenge zu, um den Kassiervorgang nicht zu blockieren.
Die Bestandskorrekturen werden später von Mitarbeitern erledigt, das ist aber eine andere Baustelle.

Der Ablauf
Wenn wir einen Barverkauf in der Korona Kasse machen, wird ein Request über die SData Services gemacht und der Beleg sollte angelegt werden, wo dann auch im Zuge der Belegspeicherung die DCMs laufen sollten und es keine Probleme mit Fehlbeständen gibt.

Zur Info: Natürlich läuft die DCM für die Zubuchung der Artikel nur für Kassenvorgänge, was ich über entsprechende Kennzeichen ermitteln kann.

Legen wir einen Auftrag über Salesware, die Sage direkt oder eigene .NET Anwendungen an, greifen die DCMs und buchen im Falle eines Store-Verkaufs die fehlenden Artikel zu und speichern den Beleg ohne Fehler.
Dieses Verhalten führt für mich zu der Erkenntnis, dass die DCMs funktionieren und auch an der richtigen Stelle registriert sind.


Das Problem
Ein Barverkauf über die Korona Kasse ist der einzige Prozess, der immer wieder über die SData Services die Meldung zurückgibt, dass der Beleg nicht gespeichert werden konnte, weil nicht ausreichen Bestand da ist. Das Debugging hat ergeben, dass nur in diesem Fall die DCMs gar nicht erst getriggert werden.
Wird an der Kasse ein Barverkauf mit einem Artikel gemacht, der ausreichend Bestand im Store hat, funktioniert auch die Belegspeicherung und die DCMs werden getriggert ( auch wenn die vorzeitig rausspringen, weil es ja nichts zu tun gibt ).

In der Korona Kasse kann man leider nicht einstellen, dass auch negativer Bestand erlaubt ist, was vermutlich das Problem schon lösen würde.
Es gibt zwar einen Call, der den Bestand eines Verkaufs prüft, bevor die Belegspeicherung an Sage übergeben wird, aber die ist bei uns bereits deaktiviert.


Die Frage
Ich gehe davon aus, dass die Ursache an der Kasse bzw. der Kommunikation mit den SData Services zur Sage zu suchen ist.
Natürlich ist mir klar, dass es in dem Fall sinnvoll wäre, Combobase mit ins Boot zu holen, aber ich frage hier mal, ob jemand vielleicht ein ähnliches Problem schon mal hatte und evtl. einen möglichen Lösungsvorschlag dazu hat?

Wie gesagt, die DCMs greifen an der richtigen stelle, sind im richtigen Event registriert und über alle anderen Möglichkeiten der Beleganlage funktioniert es fehlerlos.


Danke für Hinweise
 
Jup, die ist eingestellt.
Aber selbst wenn es daran liegen sollte, dürften die anderen Wege Belege anzulegen auch nicht funktionieren.

Das ist richtig, weil die Validierung vor dem Speichern erfolgt und die DCM somit gar nicht erreicht wird, wenn die Lagerbestände nicht verfügbar sind. Wäre die einfachste Erklärung gewesen.
Theoretisch können andere Wege trotzdem funktionieren, wenn der Parameter "abbruchBeiWarnung" beim Speichern nicht gesetzt ist.

Dann muss das Problem in der Logik der Belegspeicherung der Kasse liegen. Anscheinend ist hier eine eigene Validierungslogik implementiert, weil die Validierung aus dem Geschäftsobjekt nur dann ausgeführt wird, wenn die Mandanteneinstellung nicht gesetzt ist.
 
Zuletzt bearbeitet:
Zurück
Oben