MercatorPenguin 2.0: informatiebestanden

0000002821     -      23-07-2020

MercatorPenguin 2.0 maakt het mogelijk om informatiebestanden te wijzigen (klanten, leveranciers, artikelen, contacten, algemene rekeningen, projecten, prospecten,...). Standaard kan MercatorPenguin alleen het record van de basistabel van het informatiebestand wijzigen. 

Het heeft niet de mogelijkheid om gerelationeerde tabellen te wijzigen (TARCLI, ARTFOU, TACTSIG,...). 
Deze limiet kan echter gemakkelijk omzeild worden met behulp van de techniek die in  dit voorbeeld beschreven wordt.

De toegang tot een informatiebestand vertrekt vanuit een bundel van het type "Lijst", via een SigEditButton, waarvan volgende eigenschappen worden meegegeven:

  • Module = de verkorte naam van het informatiebestand (CLI, FOU, STOCK, TACT, GEN, PROJ, XLEAD, YPREST, ...)
  • IdSig = het ID van het formulier dat we willen wijzigen. Indien deze parameter leeg is, wordt er een nieuw formulier gemaakt.
<m:SigEditButton Text="Wijzigen" Font="Small" Module="CLI" IdSig="@C_ID" />

De layout van het scherm binnen MercatorPenguin moet aangemaakt worden in XAML, dit kan gedaan worden vanuit het instellingenscherm voor Actie Modellen in "Tools-Setup-Acties modellen" van Mercator en met behulp van deze dropdown:

xaml_sig_NL

Het is toepasselijk om een afzonderlijke versie per taal aan te maken. (Alleen de werkelijk gebruikte talen moeten dan worden ingevuld). De XAML-parametrering maakt gebruik van EditControls.

Het bijgevoegd zip-bestand bevat enkele voorbeeldinstellingen.

Wat het wijzigen van een informatiebestand betreft, wordt MercatorPenguinServer tweemaal aangesproken:

  1. Voor het lezen van de gegevens
  2. Voor het bewaren van de gewijzigde/toegevoegde gegevens

MercatorPenguin is per definitie stateless, er is geen enkele relatie tussen deze 2 stappen. Concreet betekent dit dat een actie die door MercatorPenguinServer gemaakt of geopend is, niet open blijft totdat deze is opgeslagen.

Bij elke stap wordt MercatorUi.Main gebruikt, daarom bevatten onderstaande statische eigenschappen altijd de waarde die overeen komt met de huidige Mercatorpenguin-gebruiker

  • MercatorUi.Globals.Langue
  • MercatorUi.Globals.UserId
  • MercatorUi.Globals.CurrentUser
  • MercatorUi.Globals.CurrentUserRecord
  • ...

De toegangsrechten worden ook gecontroleerd.


Indien er tijdens de eerste stap een customizer bestaat die de interface IStringUpdater, gebruikt, kan men de query voor het lezen van gegevens wijzigen.

Bij het bewaren van gegevens wordt er rekening gehouden met de interface ISqlCommandUpdater om de query voor het updaten van gegevens te wijzigen. Indien er een nieuw bestand aangemaakt wordt, wordt de standaardfunctie voor het berekenen van een nieuw ID aangeroepen, bijvoorbeeld via een customizer die INewSigId implementeert. Merk op dat het aanmaken van nieuwe formulieren niet mogelijk is indien de ID-creatie handmatig gebeurt.

Gebruik binnen elke C#-code deze test om te weten of de customizer werkt onder MercatorPenguinServer:

Zoom
if (MercatorUi.Globals.IsMercatorPenguinServer)
{
    ...
}

 

Opmerkingen:

  • Wat artikelen betreft, houdt MercatorPenguinServer rekening met de optie "Automatische prijs bij validatie" om de uitvoering van het herberekeningsscript te activeren.
  • Indien het veld x_modiftag noodzakelijk is voor multi-site configuraties, wordt hier rekening mee gehouden.

 

Er is geen mechanisme dat je waarschuwt indien de actie bewerkt wordt door een andere gebruiker tijdens het lezen en wegschrijven van de data. Het volledige record dat overeenkomt met een actie wordt telkens opnieuw ingelezen, alleen de velden die gebruikt worden in de XAML-parametrering kunnen gewijzigd worden. Indi en men tijdens het bewaren vaststelt dat de actie momenteel door een andere gebruiker gewijzigd wordt zal MercatorPenguin een bericht weergeven dat het bewaren tijdelijk niet mogelijk is.



Te laden : 0000002821.zip (10 Kb - 08-08-2022)