belegservices.ValidateKonto // ApplicationContext

D.Benker

Mitglied
Teammitglied
Hallo zusammen,

wir haben eine kleine Anpassungen mit der u.a. auch Belege erstellt werden. nach Update auf die SAGE 9.0.9 funktioniert diese Anpassung nicht mehr.

Leider haben wir (als nicht Developer Partner) keinen Zugriff auf Developer Ressourcen um herauszufinden was genau wir ändern müssen damit es wieder funktioniert,

Der Beleg wird erstellt mit einem Code wie in einer alten Version des "Developer Kochbuchs" gezeigt:

Code:
private static void handleCreateAuftragAusKundenstamm(Sagede.OfficeLine.Wawi.BelegProxyEngine.DcmContextBelegProxyServiceCall svcContext, BelegServices belegservices, string kontokorrent, string artikelnummer)
{
    svcContext.CreateNewBeleg(Erfassungsart.Verkauf, "VVA", DateTime.Today, (short)svcContext.Mandant.PeriodenManager.Perioden.Date2Periode(DateTime.Today).Jahr);

    if (!svcContext.Beleg.SetKonto(kontokorrent, false))
    {
        svcContext.Errors.AppendErrorWithSource(0, "Kunde ist nicht gültig.", "A0Konto");
    }
    svcContext.Beleg.Bearbeiter = svcContext.Mandant.Benutzer.Name;
    svcContext.Beleg.Matchcode = "Beleg über .NET-Service Call erstellt";
    belegservices.ValidateKonto(svcContext.Mandant, svcContext.Beleg);
    var position = new BelegPosition(svcContext.Beleg);
    position.Initialize(Positionstyp.Texte);
    position.Langtext = string.Format("Automatische Bestellung von Artikel {0} aus dem Kundenstamm... :)", artikelnummer) ;
    position.LangtextRtf = Sagede.Core.Tools.ConversionHelper.PlainTextToRtf(position.Langtext, "Arial", 12);
    svcContext.Beleg.Positionen.Add(position);
    position = new BelegPosition(svcContext.Beleg);
    position.Initialize(Positionstyp.Artikel);
    position.SetArtikel(artikelnummer, 0);
    position.Menge = 1;
    position.RefreshBasismenge(true, 2);
    position.Calculate();
    belegservices.ValidatePosition(svcContext.Mandant, svcContext.Beleg, position);
    svcContext.Beleg.Positionen.Add(position);
    svcContext.Beleg.Renumber();
    svcContext.Beleg.Calculate(true);
    svcContext.Beleg.Validate();
    svcContext.Beleg.PrepareForDataService();
}

Es scheint sich in der SAGE 9.0.9 jetzt dieser Aufruf geändert zu haben:

belegservices.ValidateKonto(svcContext.Mandant, svcContext.Beleg);

Dieser erwartet jetzt einen dritten Parameter vom Typ "Sagede.Shared.RealTimeData.Common.ApplicationContext"

Kann mir hier vielleicht jemand auf die Sprünge helfen wie man den oben stehenden Code wieder lauffähig bekommt ?

Vielen Dank!
 
Hallo @D.Benker,

beim dritten Parameter den ApplicationContext übergeben
etwa so:
var applicationContext = new OfficeLineConnectionInfo(svcContext.Mandant);
belegservices.ValidateKonto(svcContext.Mandant, svcContext.Beleg, applicationContext);

Dazu muss noch der Verweis auf sagede.officeline.controlcenter.shared.dll gesetzt sein.

Beste Grüße
Sergej Müller
 
Zurück
Oben