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).
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();