openwave:1.35:applicatiebeheer:instellen_inrichten:schermdefinitie:schermkolominformatie_voor_controle_standaard_delete

Scherminformatie voor controle standaard delete

Bij de definitie van een standaardlijst (beheertegel Tabellen Standaardapi) kan bij de definitie van een deleteknop een verwijzing staan naar een kaart in tbscreencolumns met daarin gedefinieerd een extra controle sql-statement die uitgevoerd wordt voordat de delete-actie wordt uitgevoerd.

Die verwijzing staat bij de delete-knopdefinitie als derde onderdeel van de derde parameter indien de action bij die deleteknop is gedefinieerd als startWizard en de eerste parameter de waarde deleteSysStandardRow heeft. Zie blokje startwizard(deleteSysStandardRow,param2,param3,param4) bij Actions

voorbeeld aanroep

startwizard(deleteSysStandardRow,tbmilinrichtingen.{id},dvinrichtingnaam;;MDWC_deleteInrichtingCheck.xml,Locatiedossier_Lijstendetail)

Het derde deel van de derde parameter verwijst naar een kaart in tbscreencolumns. Die xml-naam MOET beginnen met MDWC_ en als extensie .xml hebben, waarbij het tussenliggende gedeelte bij voorkeur wordt gevuld met de tabelnaam waarop de delete gaat plaatsvinden.

De kolom tbscreencolumns.dvclassname heeft dezelfde waarde als die van de bijbehorende lijst (van daaruit wordt de delete gedaan) en dvviewname heeft de naam van de tabel waarop de deleteaction wordt gedaan. De plaats en inhoud van de delete-controlescherm worden, net als bij een lijst- of detailscherm, geregeld in het text-veld dvscreenxml met een xml-opmaak.

De xml heeft enkel tot doel om een sql-stament te definiteren en te evalueren. Bij uitkomst true wordt de delete actie voortgezet, bij uitkomst false wordt een opmerking getoond met de reden.

De xml bevat één blok <permissions> met daarin message(s) en statement(s).

De xml opmaak moet aan het volgende schema voldoen: Validatieschema voor insertSysStandardRow en deleteSysstandardRow. Jawel, hetzelfde schema als dat voor insertSysstandardrow.

Voorbeeld

<?xml version="1.0" encoding="UTF-8"?>
<document>
    <!--aangeroepen vanuit api deleteSysStandardRow-->
    <permissions>
        <permission type="start">
            <query>select case when 
                   (exists (select 1 from vwfrmtoestemmingen where dlactueel = 'T' and dnkeyomgvergunningen = %keypointer%)) = false
	           then 'true' else 'false' end
             </query>
            <errormessage>Aan dit locatiedossier zijn actieve activiteiten verbonden. U mag deze niet verwijderen</errormessage>
        </permission>
    </permissions>
</document>

Bovenstaand voorbeeld geeft aan hoe met het blok Permissions te regelen is dat een extra controle wordt gedaan voordat een rij wordt verwijderd.
Van belang hierin is het attribuut type. Zie ook hierboven de xsd-verwijzing. Het attribuut type moet bij een delete-check zijn “start”. Bij type start wordt deze controle bij aanvang van de deletewizard uitgevoerd (er is geen toonbaar delete-scherm).
De query (kan ook een verwijzing zijn naar een dvcode van tbqueries, bijv <query>query(%MijnQuery%,{id})%</query>)
De query moet als resultaat 'true' of 'false' hebben (dus als string).
Indien het resultaat 'false' dan wordt de errormessage op het scherm getoond.

In de query worden de variabelen %keyparent% vervangen door de dnkey van de parenttabel (indien aanwezig) en %keyaccount% met de dvcode van de ingelogde medewerker en %keypointer% door de primary key van de kaart die verwijderd zou moeten worden.

  • openwave/1.35/applicatiebeheer/instellen_inrichten/schermdefinitie/schermkolominformatie_voor_controle_standaard_delete.txt
  • Laatst gewijzigd: 2026/10/15 11:23
  • door Paul de Boer