Code uitvoeren bij het uitwisselen met de McdServerService

0000002358     -      30-07-2025

Mercator kan code uitvoeren tijdens de uitwisseling met de McdServerService. Dit kan gedaan worden door gebruik te maken van static events die beschikbaar zijn in MercatorUi.McdClient.McdClientStatic:

  • BeforeExport
  • AfterExport
  • BeforeImport
  • AfterImport

Deze events verwachten eventArgs die volgende properties bevat:

  • Dictionary<McdClientClasses.McdBaseDicoKeyEnum, McdClientClasses.McdItemDescriptor> DicoBase : lijst van import-export elementen
  • StringBuilder SbErr : eventuele foutmeldingen
  • Boolean Cancel (uniek voor het Before-event): op true zetten indien men het proces wenst te onderbreken.

Ze worden uitgevoerd in Mercator die de uitwisseling uitvoert (niet in McdServerService)

Het voorbeeld hieronder start vanuit een realistische ontwikkeling. Het illustreert simpelweg volgende 2 functies:

  1. De mogelijkheid om vertegenwoordigers te exporteren is weggevallen.
  2. Indien men een een winkel-export selecteert, wordt het proces onderbroken.
Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Windows.Forms;


namespace Main
{
    public class Customizer : MercatorUi.ICustomizers.IExec
    {
        public void Main(MercatorUi.ICustomizers.ExecAction action)
        {
            if (action == MercatorUi.ICustomizers.ExecAction.DossierOpen)
            {
                MercatorUi.McdClient.McdClientStatic.BeforeExport += McdClientStatic_BeforeExport;
            }
            else if (action == MercatorUi.ICustomizers.ExecAction.DossierClose)
            {
                MercatorUi.McdClient.McdClientStatic.BeforeExport -= McdClientStatic_BeforeExport;
            }
        }

        void McdClientStatic_BeforeExport(MercatorUi.McdClient.McdClientStatic.BeforeExportEventArgs e)
        {
            if (e.DicoBase.ContainsKey(MercatorUi.McdClient.McdClientClasses.McdBaseDicoKeyEnum.OutReps))
            {
                e.DicoBase.Remove(MercatorUi.McdClient.McdClientClasses.McdBaseDicoKeyEnum.OutReps);
            }

            if (e.DicoBase.ContainsKey(MercatorUi.McdClient.McdClientClasses.McdBaseDicoKeyEnum.OutMagasins) && e.DicoBase[MercatorUi.McdClient.McdClientClasses.McdBaseDicoKeyEnum.OutMagasins].Selected)
            {
                e.SbErr.AppendLine("De magazijnen kunnen niet geëxporteerd worden !!!");
                e.Cancel = true;
            }
        }
    }
}

 

Andere pagina's betreffende de configuratie van het uitwisselen met de McdServerService :

 

 



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)