Naar de boekhouding vanuit een externe .net applicatie centraliseren

0000002451     -      04-08-2024

 Vanaf versie 11.0 van Mercator is deze procedure verouderd. Die wordt door de uitvoering van taken in console modus vervangen.


Deze programmatie toont hoe, vanaf een externe .net applicatie die de Mercator omgeving instantieert, de centralisatie van de documenten van het Commercieel Beheer naar de boekhouding op een automatische wijze wordt opgestart. De hieronder vermelde code kan best in een applicatie van het type "console" worden geplaatst. De naam ervan, bij wijze van voorbeeld, kan automatisch door het taakbeheer van Windows gebeuren. In dit voorbeeld stuurt de consoletoepassing een mail met het resultaat van de centralisatie. 

De code gebruikt hoofdzakelijk de methode PostIntoAccounting die een instance van PostIntoAccountingParams ontvangt, en bevat de verschillende parameters die de gebruiker bij een centralisatie in de interface van Mercator meestal toepast. Deze instance ontvangt ook de resultaten en eventuele foutmeldingen ten gevolge van de centralisatie.

Dezelfde programmatie kan eveneens "binnen Mercator" worden gebruikt om een centralisatie met voorgedefinieerde parameters uit te voeren. In dit geval zal de code als volgt moeten worden gewijzigd:

  • De eerste lijn die de interface uitschakelt verwijderen.
  • De tweede parameter die in de methode PostIntoAccounting overgaat vervangen door false (deze parameter maakt het mogelijk om deze methode in de modus "silent" uit te voeren, d.w.z. zonder enige tussenkomst van de gebruiker).
Zoom
Api.IsWeb = true;

MercatorUi.Forms.Accounting.AccountingProcedures.Procedures.PostIntoAccountingParams p = new MercatorUi.Forms.Accounting.AccountingProcedures.Procedures.PostIntoAccountingParams(
    DateTime.Today, // datum1
    DateTime.Today, // datum2
    new string[3] { "VEN", "NCV", "FactF" }, // te centraliseren journalen
    true, // postPayments
    true, // performMatching
    "001" // dossier als multi
    );
     
MercatorUi.Forms.Accounting.AccountingProcedures.Procedures.PostIntoAccounting(p, true);

StringBuilder sb = new StringBuilder();

if (!string.IsNullOrEmpty(p.LastError))
{
    sb.AppendLine(p.LastError);
    sb.AppendLine();
    sb.AppendLine("*************************************");
    sb.AppendLine();
}

sb.AppendLine("VERKOPEN & AANKOPEN");
sb.AppendLine();
sb.AppendLine(p.ResultPostSalesPurchases);
if (p.LogErrorsPostSalesPurchases != null)
{
    sb.AppendLine();
    sb.AppendLine(p.LogErrorsPostSalesPurchases.ToString());
}
sb.AppendLine();
sb.AppendLine("-------------------------------------------");
sb.AppendLine();

sb.AppendLine("BETALINGEN");
sb.AppendLine();
sb.AppendLine(p.ResultPostPayments);
if (p.LogErrorsPostPayments != null)
{
    sb.AppendLine();
    sb.AppendLine(p.LogErrorsPostPayments.ToString());
}
sb.AppendLine();
sb.AppendLine("-------------------------------------------");
sb.AppendLine();

sb.AppendLine("AFPUNTINGEN");
sb.AppendLine();
sb.AppendLine(p.ResultMatching);

IneoSmtp.Smtp smtp = new IneoSmtp.Smtp();
smtp.MailServer = "...";
smtp.ServerPort = 25;
smtp.SenderEmail = "info@abc.com";
smtp.SenderName = "Mercator PostIntoAccounting";
smtp.Recipient = "xyz@abc.com";
smtp.Message = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + "\r\n\r\n" + sb.ToString();
smtp.Subject = "Mercator PostIntoAccounting Log";
smtp.SendMail();

 



Functionele cookies: Cookies die nodig zijn voor het gebruik van de website en voorkeurscookies. Ze bevatten geen persoonsgegevens. (Meer informatie)

Analytische cookies: Verzamelen van statistieken met betrekking tot het gedrag van internetgebruikers. (Meer informatie)

Marketingcookies: Om bezoekers op verschillende websites te volgen voor advertentiedoeleinden. (Meer informatie)