Ersatz für ReadOnly DCM (zb alle VKBelegProxy..)

Dieses Thema im Forum ".NET (sagede.* DLLs)" wurde erstellt von OJansen, 4. April 2019.

  1. OJansen

    OJansen Neues Mitglied

    Hallo zusammen,
    wie kann man per DCM nach der Belegübernahme in einen neuen Beleg die Belegdaten manipulieren ?
    in alten Versionen wurde hier zb BelegEnable verwendet.
    Seit der neuen Erfassung gibt es dies nur als Proxy (VKBelegProxyBelegEnable). Hier ist das Belegobjekt jedoch schreibgeschützt.

    Kennt jemand eine Alternative um bei Belegübernahme die Belegdaten des neuen Beleges zu manipulieren ?

    Schöne Grüsse

    Oliver Jansen
     
  2. Scholz

    Scholz Neues Mitglied

    Hallo Oliver,

    es gibt dabei verschiedene Ansätze die du wählen kannst es gibt zum Beispiel den Punkt VKBelegInitialize und VKBelegTransform. Die kannst du nutzen und darin den Beleg manipulieren.

    Gruß

    Jaan Scholz
     
  3. OJansen

    OJansen Neues Mitglied

    DIe Sache hat leider einen Haken..
    Bei Belegübernahme in werden lediglich
    VKBelegProxyBelegToContainer
    VKBelegProxyAfterSetKonto
    VKBelegProxyAfterLoad
    VKBelegProxyBelegEnable
    VKBelegProxyBelegToContainer
    ausgelöst.
     
  4. OJansen

    OJansen Neues Mitglied

    Ich habe mittlerweile eine Lösung für mein Problem gefunden.
    Hintergrund : nach Belegübernahme sollte die Belegreferenz zum Vorbeleg gelöscht werden.
    Die DCM Aufrufe bringen mich hier nicht weiter, da zb nach VKBelegTransform (hier konnte ich im Belegobjekt die Referenz löschen) noch VKBelegProxyAfterLoad aufgerufen wird. Hier ist die Referenz leider wieder im Beleg drin.

    Code:
    VKBelegCreate
    VKBelegCreate
    VKBelegInitialize
    VKBelegInitialize
    VKBelegProxyContainerToBeleg
    VKBelegCreate
    VKBelegCreate
    VKBelegTransform
    VKBelegTransform (Start) von:D01110 RefBelHandle Servicerechnung 2018-215847:3086358
    VKBelegTransform (Ende) von:D01110 RefBelHandle ohne Referenz:0
    VKBelegTransform
    VKBelegTransform (Start) von:D01110 RefBelHandle ohne Referenz:0
    VKBelegTransform (Ende) von:D01110 RefBelHandle ohne Referenz:0
    VKBelegProxyAfterSetKonto
    VKBelegProxyAfterSetKonto von:D01110 RefBelHandle ohne Referenz:0
    VKBelegProxyAfterLoad
    VKBelegProxyAfterLoad von:D01110 RefBelHandle Servicerechnung 2018-215847:3086358
    VKBelegProxyBelegEnable
    VKBelegProxyBelegEnable von:D01110 RefBelHandle Servicerechnung 2018-215847:3086358
    VKBelegProxyBelegToContainer
    VKBelegProxyBelegToContainer von:D01110 RefBelHandle Servicerechnung 2018-215847:3086358
    
    Ich habe mich dann entschieden im Appdesigner das Element ediVKBelegerfassung in meine Lösung zu kopieren und dort per Makro "Bei Anzeige" die entsprechenden Felder zu setzen.

    Leider funktioniert dieser Weg nur wenn die Belege nicht im Hintergrund generiert werden sondern in der Belegerfassung selbst. Für mich ist das erst einmal ausreichend.....

    Schöne Grüsse

    Oliver Jansen
    p.s.: wenn jemand einen eleganteren Weg kennt... bin gerne für Vorschläge offen.. :)
     

Diese Seite empfehlen