U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

Notificatie bundel: Nieuwe webbestelling

0000002793     -      19-01-2018

Deze bundel is bedoeld voor gebruik in combinatie met een Mercator-website. Het genereert een melding wanneer een bestelling gevalideerd wordt door een gebruiker op de website. Stap 2 biedt de mogelijkheid het PDF-duplicaat te bekijken en de details van de verkochte items te bekijken.

          

 

De C#-code die deze melding verzend staat hieronder. De code wordt geplaatst in een customizer die gekoppeld is aan de sequentie van de Webbestellingen. 

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
using MercatorApi;
using MercatorExtensions;
using MercatorUi;

namespace Billing
{
    public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
    {
        public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
        {
            BillingEngine.AfterSave += BillingEngine_AfterSave;
        }

        public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
        {
            BillingEngine.AfterSave -= BillingEngine_AfterSave;
        }

        void BillingEngine_AfterSave(object sender, EventArgs e)
        {
            if (Api.IsWeb)
            {
                MercatorUi.Engine.Gescom.BillingEngine billingEngine = (MercatorUi.Engine.Gescom.BillingEngine)sender;
                var dicoParams = new Dictionary<string, object>
                {
                    { "@id", billingEngine.Id },
                    { "@journal", billingEngine.Journal },
                    { "@piece", billingEngine.Piece }
                };
                MercatorPenguin.NotificationClient.SendAsync("Nouvelle commande web de € " + billingEngine.PiedsVRecord.TOT_TTC_DV.ToString("### ##0.00") + " TTC !", "d4719813-884b-43b1-96fb-9d80aec7ab66", dicoParams);
            }
        }
    }
}

 

Let hierop:

  • Het is noodzakelijk om de waarde van de bundleId parameter die aan SendAsync doorgegeven wordt aan te passen naar de waarde die uit de tabel PENGUIN_BUNDLES van deze Mercator.
  • De voorwaarde Api.IsWeb wordt gebruikt om de code alleen uit te voeren via de webtoepassing. Als het bestand later geopend en opgeslagen wordt binnen Mercator zal er geen aanvullend kennisgeving verzonden worden.
  • Bij het gebruik van Async is de Send-methode, sans le mot clé await. Dit laat ons toe om meldingen te verzenden zonder dat men op een retourbericht moet wachten. De ASP.NET-thread zal het bericht direct verzenden, en de webpagina teruggeven aan de gebruiker.
  • Om in een ASP.NET-toepassing Async-opdrachten uit te voeren, moet men ervoor zorgen dat het web.config-bestand minstens .NET versie 4.5 of hoger bevat.
<system.web>
<compilation targetFramework="4.6" />
<httpRuntime targetFramework="4.6" />
</system.web>

Snelle installatie : het bestand Nouvelle commande web.pngb kan ingelezen worden via de knop "Openen", terug te vinden onderaan in het configuratiescherm.