Men moet hiervoor de property MercatorSqlCommandForFinalTransaction van de BillingEngine gebruiken, dat is een MercatorApi.MercatorSqlCommand.
In de transactie van het bewaren, indien de property CommandForFinalTransaction niet "null" is, werkt Mercator gewoon verder. Mercator zorgt ervoor dat de properties Connection en Transaction automatisch afgerond worden. (Zo moet hij dit zelf niet aanvullen)
Bovendien verandert Mercator automatisch de instellingen @id, @journal et @piece hierdoor weten we welk document geldig is.
Hieronder een customizer voorbeeld voor een sequentie uit het commercieel beheer:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using MercatorApi;
using MercatorUi;
namespace Billing
{
public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
{
public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
{
BillingEngine.DuringSave += BillingEngine_DuringSave;
}
public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
{
BillingEngine.DuringSave -= BillingEngine_DuringSave;
}
void BillingEngine_DuringSave(object sender, MercatorUi.Engine.Gescom.BillingEngine.DuringSaveEventArgs e)
{
MercatorUi.Engine.Gescom.BillingEngine billingEngine = (MercatorUi.Engine.Gescom.BillingEngine)sender;
billingEngine.MercatorSqlCommandForFinalTransaction = new MercatorSqlCommand("update pieds_v set reference=rtrim(reference)+'*' where (id=@id) and (journal=@journal) and (piece=@piece)");
}
}
}
Goeiedag,
Wij wensen een SQL-query uit te voeren in ons project, in de SQL-transactie van het opgeslagen document. Dit om te verzekeren dat de query zal uitgevoerd worden bij het bewaren, en goed teruggegeven indien het bewaren niet uitgevoerd is. Hoe moeten we verder?