Inhoud

Standaard Lijst- en Detailschermen

Portal beheerportaal-Nieuw. Tegel Tabellen standaardAPI.

Screenidentifiers (beheertegel Schermkolomdefinitie tabellen standaard-API)

Tabellen:

Zie ook: Uitgewerkt voorbeeld

Omschrijving

Met behulp van de tabel tbSysStandardTable kan een applicatiebeheerder zelf nieuwe schermen op bestaande OpenWave tabellen/views definiëren.

De kaarten in de tabel tbSysStandardTable hebben een unieke codering. Elke kaart is een representatie van hoe een bepaalde view of tabel uit de OpenWave database moet worden getoond met die restrictie dat altijd gerenderd wordt conform de opmaak van een OpenWave-lijstscherm en OpenWave-detailscherm. Naast het definiëren van de tabel/view die getoond moet worden, en met welke parent, worden ook de verwijzing(en) naar de bijbehorende schermkolomdefinitie(s) vastgelegd in de kaart. In de dochtertabel tbSysstandardButton kunnen tenslotte de knoppen linksonder op de te leveren lijst-of detailpagina worden gedefinieerd met bijbehorende action. Eventueel kan ook een filter op het lijstscherm worden getoond. Zie hiervoor onderaan deze pagina Voorbeeld filterdefinitie.

Aanroep

Waarbij:

De kolommen van de tabel tbsysstandardtable

Zie verder over het gebruik en mogelijkheden van actions: Actions.

Voorbeeld gebruik rechtenkolom op basis van query

Het gaat hier om het vullen van de kolom tbqueries.dvcode wijzigrechten (dvautheditquerycode) of tbqueries.dvcode kijkrechten (dvauthvisiblequerycode) waarbij de uitkomst true of false bepalend is voor het kijk- of wijzigrecht van het scherm. Ook bij de knoppen (zie hieronder) wordt van deze systematiek uitgegaan.

Voorbeeld

wanneer het inzien of wijzigen van een scherm voorbehouden moet zijn aan een functioneel beheerder is er een verwijzing naar de systeemquery met dvcode = sysstandaard_isbeheerder het makkelijkst. Deze standaard uitgeleverde query retourneert true indien de medewerker beheerniveau 99 heeft.(tbmedewerkers.dnbeheerniveau).

Wanneer het inzien of wijzigen van een scherm gekoppeld moet zijn aan de autorisaties van een medewerker rekening houdend met compartiment is het volgende voorbeeld met gebruik functies fn_rechtenkolom en fn_iscompartimentok
van toepassing.
In de kolom dvauthvisiblequerycode wordt naar een query uit tbqueries verwezen bijv. met de code omgeving_milalertmuteren
De query met dvcode = omgeving_milalertmuteren kan dan als volgt gedefinieerd zijn:

select case when (fn_iscompartimentok(:keyaccount, 'W',{id}) = 1) 
	  and (fn_rechtenkolom('tbomgrechten.dlbomgmemoedt',:keyaccount) = 'T' ) 
      then 'true'  
      else 'false' 
      end

De query maakt gebruik van twee OpenWave functies:
fn_iscompartimentok kijkt op grond van de inlogger, de module en de dnkey van de kaart of de compartimentsrechten in de weg zitten. De string :keyaccount wordt onder water altijd vervangen door de dvcode van de inlogger. De string (id) altijd door de dnkey van de kaart waar de gebruiker op staat in de hoofdtabel (dvmaintablename).
fn_rechtenkolom kijkt op grond van de aangegeven rechtenkolom (rechtentabel gevolgd door een punt gevolgd door de kolomnaam) of de inlogger (:keyaccount) wijzigrechten heeft volgens die rechtenkolom .
Zie ook Database functies

Controle op valide schermverwijzingen

In het servicecentrum portaal onder de kolom Notificaties is een tegel Ontbrekende sysstandardschermen in AAR gedefinieerd. Met deze tegel wordt een lijst gegenereerd van schermaanroepen (lijstschermen of detailschermen of filterschermen of insertstandardrowschermen) in tbsystandardtable en/of tbsysstandardbutton (dus in de tabel achter de tegel tabellen standaardapi van het nieuwe beheerportaal onder de kolom Scherm- en tegelbeheer) die niet zijn opgenomen in de AAR.

Dit zijn schermen die niet met implementatie en updates van OpenWave zijn aangeleverd. Dat kan zijn omdat de schermen door een functioneel beheerder zelf zijn gedefinieerd: in de tabel tbscreencolumns (tegel Schermkolomdefinitie tabellen standaard-api) is de kolom dvscreenxml in dat geval gevuld met de eigen opmaak. In bovengenoemde controlelijst is dat zichtbaar indien de kolom Afwijkend scherm aangevinkt is. Er gaat dus pas iets mis indien een regel in deze lijst is opgenomen zonder dat de kolom Afwijkend scherm is gevuld. Een reden is vaak dat de verwijzing en benaming van de feitelijke opmaakxml-file in de AAR van elkaar verschillen in kamelennotatie.

Filterdefinitie bij lijstscherm

Zie: Definitie filterblokken op lijstschermen. Indien er gewenst is dat het lijstscherm gefilterd kan worden zal er een filter xml moeten worden gedefinieerd. De naam van de xml moet beginnen net 'MDFC_' en de rest van de naam moet gelijk zijn als de xml-naam van het lijstscherm (zonder de prefix MDDLC_).

Ga naar gewenste kaart in tbsysstandardtable (beheertegel: Tabellen standaardAPI):

Knoppen op lijst- en detailschermen

Knoppen die binnen een detailscherm dat door tbsysstandardtable wordt gedefinieerd- bijv. achter een specifieke kolom - moeten verschijnen, worden in de xml van dat detailscherm gedefinieerd inclusief de actions die aan die knoppen verbonden moeten zijn: dus - in bovenstaand voorbeeld - in de MDFC_getTest_MWPerRechtengroepList.xml. Zie Scherminformatie voor detailschermen.

De knoppen die linksonder op het gedefinieerde lijst- of detailscherm moeten komen, kunnen binnen de detailkaart van tbSysStandardTable in het blok Knoppen worden gedefinieerd. Deze informatie wordt in de tabel tbSysstandardButton opgeslagen: een dochtertabel van tbsysstandardtable.

Per knop zijn de volgende kolommen beschikbaar:

Knop Standaard insertscherm

Om een knop te maken met als doel een standaard insert op een tabel moet bij de knopdefinitie de action startWizard aangeroepen worden met:

Voorbeeld

Een voorbeeld van de aanroep van insertSysStandardRow in de basis uitlevering van OpenWave is de insert-knop op het lijstscherm van medewerkers verbonden aan een team.
Zie voor de definitie hiervan: beheerportaal, onder de kolom Scherm-en tegelbeheer de tegel Tabellen Standaardapi en vervolgens de rij in tbsysstandardtable met dvcode = beheer_vwfrmmwteams. Het gaat om de knop Voeg medewerker toe.
Het resultaat is te gebruiken in het beheerportaal onder de kolom Gebruikers de tegel Teams. Op het detailscherm van een team staat de lijst met medewerkers bij dat team. Aan de insert-knop is dus de InsertSysStandardRow-functie verbonden.

Voor de opmaak van standaard insertscherm (de xml) zie: Scherminformatie voor standaard insert- en kopieer.

Knop Standaard kopieerscherm

Om een knop te maken met als doel een standaard insert op een tabel te doen als kopie van de kaart waar de gebruiker op staat moet bij de knopdefinitie de action startWizard aangeroepen worden met:

Voorbeeld

Een voorbeeld van de aanroep van kopieerSysStandardRow in de basis uitlevering van OpenWave is de kopieer-knop op het lijstscherm van de zaaktypes.
Zie voor de definitie hiervan: beheerportaal, onder de kolom Scherm-en tegelbeheer de tegel Tabellen Standaardapi en vervolgens de rij in tbsysstandardtable met dvcode = beheer_vwfrmsoortomgvergs. Het gaat om de knop Kopieer zaaktype.
Het resultaat is te gebruiken in het portaal Zaakbeheer onder de kolom Zaaktypes de tegel Zaaktypes. Op het lijstscherm van de omgevingzaaktypes staat de kopieer-knop waar dus de kopieerSysStandardRow-functie aan verbonden is.

Voor de opmaak van standaard insertscherm (de xml) zie: Scherminformatie voor standaard insert- en kopieer.

Knop Standaard verwijderen van een kaart

Om een knop te maken met als doel een standaard verwijderactie op een kaart van een tabel moet bij de knopdefinitie de action startWizard aangeroepen worden met:

Voorbeeld

Een voorbeeld van de aanroep van deleteSysStandardRow in de basis uitlevering van OpenWave is de min-knop op het lijstscherm van de adviesinstanties:
Zie voor de definitie hiervan: beheerportaal, onder de kolom Scherm-en tegelbeheer de tegel Tabellen Standaardapi en vervolgens de rij in tbsysstandardtable met dvcode = beheer_tbadviesinstanties. Het gaat om de knop Verwijder adviesinstantie.
Het resultaat is te gebruiken in het beheerportaal onder de kolom Gebruikers de tegel Adviesinstanties. Op het lijstscherm is de min-knop hier dus verbonden aan de deletesysstandardrow-functie.

Deze methode deleteSysStandardRow kijkt naar de voorwaarden gedefinieerd in de kaart uit tbsysstandardtable met dvcode = de vierde parameter.

In deze kaart kan de Kolomnaam blokkering uit parenttabel gevuld zijn, hetgeen betekent dat indien de achterliggende waarde van deze kolom gevuld is - en parenttable is van toepassing- , dat dan de verwijderactie niet door kan gaan. In deze kaart kan de Kolomnaam blokkering uit hoofdtabel/view gevuld zijn, hetgeen betekent dat indien de achterliggende waarde van deze kolom gevuld is, dat dan de verwijderactie niet door kan gaan.

In de dochtertabel tbsysstandardbutton is bij de betreffende deletesysstandardrowkaart gedefinieerd naar welke rechten het programma dient te kijken.

Voor verwijderacties op de hoofdtabellen houdt OpenWave rekening met compartiment.

OpenWave waarschuwt ook met naam en toenaam dat een verwijderactie niet plaats kan vinden indien er een foreign key in de weg zit.

Knop insert of synchroniseer vanuit een derde codetabel

Toepassingen:

In beide gevallen is de sysstandaardtabel in kwestie een dochtertabel van een parent.

Voorbeeld

Een voorbeeld van synchronisatiegebruik in de basis uitlevering van OpenWave is de koppeling van documentsjablonen aan een of meer groepen:
Zie voor de definitie hiervan: beheerportaal, onder de kolom Scherm-en tegelbeheer de tegel Tabellen Standaardapi en vervolgens de rij in tbsysstandardtable met dvcode = beheer_vwfrmkopdocaandocsoort. Het gaat om de knop Sjabloon koppelen aan sjabloongroepen. Het resultaat is te gebruiken in het beheerportaal onder de kolom Werkbeheer de tegel Documentsjablonen. Op het detailscherm van een willekeurig sjabloon is een lijst opgenomen van de groepen waaraan dat sjabloon is verbonden. De plusknop is hier dus verbonden aan de koppelsysstandardrow-functie.

In beide toepassingsgevallen kan de gebruiker één of meer rijen aan- of uitvinken van de codetabel in een wizardscherm.
De selectie van rijen op die codetabel wordt beïnvloed door:

De vierde deelparameter van param2 (met de waarde 0, leeg of 1) is bepalend voor wat OpenWave met de selectie van rijen uit de codetabel gaat doen: Indien