Erfolgreiches Speichern einer Buchung in DCM erkennen

Mr. Smiss Sr.

Neues Mitglied
Hallo allerseits,

ist jemandem bekannt, wie man erkennen kann, dass in Sage Rewe eine Buchung tatsächlich persistiert wurde?
(Und am besten auch noch die TAN dazu?)

Nach BuchungAfterSave kann es noch Meldungen geben in denen der User abbricht.
BuchungConfirm(2) wird einmal vor und einmal nach BuchungAfterSave aufgerufen und wir sehen keine Parameter, á la final=true;
(Außerdem bekommen wir in BuchungConfirm2 immer TAN=0)

ProxyBuchungToContainer wiederum wird ständig aufgerufen.

Wo ist unser blinder Fleck?
 
Guten Morgen,

wenn kein Zugriff auf das Buchungsobjekt nötigt ist und es nur um das "Lesen geht" würde ich TransaktionPost Sagede.OfficeLine.Rewe.Buchungsautomat.DcmContextTransaktionBuchungTanPost verwenden.

Alternativ, wenn auch eine Transaktion verhindert werden soll in einem bestimmten Fall TransaktionBeforeUpdate Sagede.OfficeLine.Rewe.Buchungsautomat.DcmContextTransaktionBeforeUpdate mit Cancel = True und Fehler im Error-Obejtk Sagede.OfficeLine.Shared.ApplicationStateInfo definieren.

BuchungConfirm(2) wird einmal vor und einmal nach BuchungAfterSave aufgerufen und wir sehen keine Parameter, á la final=true;
(Außerdem bekommen wir in BuchungConfirm2 immer TAN=0)
Sollte aber auch hiermit gehen. Ich nehme stark an, dass Tan=0 auf einen Fehler hindeutet und hier bereits die Tan über Rollback zurückgesetzt wurde. Habe aber mit der DCM in diesem Kontext noch nicht gearbeitet.
 
Zuletzt bearbeitet:
Vielen Dank für diesen vielversprechenden Hinweis!

Komischerweise wird bei uns das DCM Event nicht ausgelöst, obwohl es im AppDesigner registriert ist und in der DLL behandelt wird. Haben Sie oder jemand anders zufälligerweise eine Idee dazu?
 
Guten Abend,

ich habe mir die folgenden DCM´s genauer angeschaut

C#:
//using Sagede.OfficeLine.Rewe.Buchungsautomat;

//BuchungConfirm
case DcmDefinitionManager.DcmListId.BuchungConfirm:
    DcmContextBuchungErrors ContextBuchungConfirm = (DcmContextBuchungErrors)context;
    break;

//BuchungConfirm2
case DcmDefinitionManager.DcmListId.BuchungConfirm2:
    DcmContextBuchungTanPostErrors ContextBuchungConfirm2 = (DcmContextBuchungTanPostErrors)context;
    break;

//TransaktionPost
case DcmDefinitionManager.DcmListId.TransaktionPost:
    DcmContextTransaktionBuchungTanPost ContextTransaktionPost = (DcmContextTransaktionBuchungTanPost)context;
    break;

//BuchungAfterSave
case DcmDefinitionManager.DcmListId.BuchungAfterSave:
    DcmContextBuchungTan ContextBuchungAfterSave = (DcmContextBuchungTan)context;
    break;

//TransaktionBeforeUpdate
case DcmDefinitionManager.DcmListId.TransaktionBeforeUpdate:
    DcmContextTransaktionBeforeUpdate ContextTransaktionBeforeUpdate = (DcmContextTransaktionBeforeUpdate)context;
    break;

und diese werden wie folgt aufgerufen:

Buchung Ablauf Dialog:
BuchungConfirm -> Tan property nicht vorhanden (innerhalb Buchung._tan = 0)
BuchungConfirm2 -> Tan = 0
BuchungAfterSave -> Tan = 123456
BuchungConfirm -> Tan property nicht vorhanden (innerhalb Buchung._tan = 0)
BuchungConfirm2 -> Tan = 0
TransaktionBeforeUpdate -> Tan = 123456
1711992718603.png

Buchung Ablauf Stapel
BuchungConfirm -> Tan property nicht vorhanden (innerhalb Buchung._tan = 0)
BuchungConfirm2 -> Tan = 0
BuchungAfterSave -> Tan = 123456
TransaktionBeforeUpdate -> Tan = 123456
1711992899746.png

Lösung wäre also TransaktionBeforeUpdate mit Überprüfung der Error-Collection.

Die Tan in den Properties der BuchungConfirm2 ist nur gesetzt, wenn über den Kontext der Sitzung unverarbeitete Buchungen verarbeitet werden.
Im Buchungskontext existiert die Tan an dieser Stelle noch nicht, weil diese erst später erzeugt und dem Geschäftsobjekt zugewiesen wird -- kann somit also auch nicht weitergreicht werden. TransaktionPost wird ebenfalls nur im Sitzungskontext beim Verarbeiten von Buchungen nach BuchungConfirm2 aufgerufen, dass wusste ich nicht mehr.

Sitzung Ablauf Verarbeiten
BuchungConfirm -> Tan property nicht vorhanden (innerhalb Buchung._tan = 123456)
BuchungConfirm2 -> Tan = 123456
TransaktionPost -> Tan = 123456
1711996353820.png
 
Zuletzt bearbeitet:
Vielen Dank für's Analysieren, wie es sich bei Ihnen verhält bzw. wie es sich eigentlich verhalten müsste.

Komischerweise wird bei uns keine der Transaktions DCMs aufgerufen.

Ich suche gerade nach Einstellungen o.ä. durch die Transaktionen bzw. deren DCMs deaktiviert werden.
 
Zurück
Oben