Inhoud

Emailsjablonen

Portaal beheerportaal-nieuw. Tegel Emailsjablonen.

Screenidentifiers:

Met deze tegel kunnen mailsjablonen worden gedefinieerd. In deze mailsjablonen kunnen merge-coderingen zijn opgenomen die dynamisch worden gevuld met gegevens uit de database. De uiteindelijk gecreëerde email zal opgeslagen kunnen worden als een platte tekst file (.txt). Een sjabloon wordt opgeroepen met de menu-optie Creëer email op het detailscherm van een omgevingszaak OF op het detailscherm van een inspectiebezoek (alle modules), mits de gebruiker documentcreatie-rechten heeft voor de betreffende module.

Voor de sjabloondefinitie moet de inlogger beheerrechten hebben: tbmedewerker.dnbeheerniveau = 99.

Alle kolommen en knoppen op de sjabloonschermen zijn dan toegankelijk.

Sjabloongroepen

De sjablonen kunnen worden ingedeeld in groepen, waarbij een groep toegekend kan worden aan één of meer modules door middel van hun moduleletters. Daar waar de gebruiker een menuoptie Creëer email tot zijn beschikking heeft is dus deze moduleletter bepalend voor de inhoud van de radiobuttonlist: kies sjabloonsoort.

Vervallen sjabloongroepen zijn niet zichtbaar voor de gebruiker bij de wizard MaakEmail. Let op: de sjablonen zijn te maken voor alle modules. Voor alsnog is het creëren van mails alleen mogelijk bij inspectiebezoeken, collegiale toetsen en adviezen (alle modules waar deze zijn aan te maken) en via het detailscherm van een omgevings-, en handhavingszaak. In de toekomst zal het creëren van mails mogelijk zijn op alle plekken waar nu ook creëer document mogelijk is.

Sjabloondefinitie (emailsjablonenlijst)

Per sjabloongroep kunnen emailsjablonen verwijderd (inclusief parameters), nieuw aangemaakt en gekopieerd worden. Bij het maken van een kopie worden de parameters mee gekopieerd.

Sjabloondefinitie (detailscherm)

Triggers linksonder

Triggers rechtsonder

Kolommen

* Compartiment (dnkeycompartiment). Indien het sjabloon hier wordt toegekend aan een compartiment kan dit sjabloon alleen worden gebruikt door iemand die lid is van dat compartiment. Omgekeerd: de inloggers die geen lid zijn van een compartiment zien enkel sjablonen die ook niet zijn toegekend aan een compartiment.

Formquery

Het resultaat van een formquery wordt gebruikt om merge-coderingen in de vorm van <1> of <301> in de body van de email te vervangen met waardes uit de database.

Een eenvoudig sjabloonvoorbeeld van een ontvangstbevestiging:

<101>
  <102>
  <103>
  <104>
  Onderwerp:
  Ontvangst aanvraag omgevingsvergunning <1> <2>
  <105>,
  Op <5> heeft u een omgevingsvergunning aangevraagd (zaakcode: <6>).
  Deze brief is een ontvangstbevestiging. Uw aanvraag betreft <4> op het adres <1> in <2>. In deze brief leest u meer over de procedure. 
  Wij toetsen binnenkort of uw aanvraag genoeg gegevens bevat
  Welke gegevens voor een aanvraag nodig zijn staat in de Ministeriële regeling omgevingsrecht. Als uw aanvraag te weinig gegevens bevat, krijgt u daarover   schriftelijk bericht. U krijgt dan de mogelijkheid uw aanvraag verder aan te vullen. Als aanvullingen nodig zijn, kan de beslistermijn langer worden.
  Onze brieven en andere documenten ontvangt u per e-mail
  Als u dit niet wilt, laat het ons dan per brief weten.
  Neem contact op als u vragen heeft
  U kunt daarvoor bellen met de afdeling Vergunningen, telefoonnummer
  06 11 11 11 11. Mailen kan ook naar vergunningen@..............nl. Schrijft u een brief of een e-mail aan ons, noem daarin dan dit zaaknummer: <6>
  U kunt de zaak volgen met code <%strEncrypt(:dnkey)%> op
  http://tracktrace.demo3.open-wave.nl/TrackNTraceOmgBasis/
  Met vriendelijke groet,
  <204>,
  namens deze
  <201>
  <202>
  <203>
  <204>

Bij het samenvoegen van een sjabloon met gegevens uit de database geldt het volgende:

De resultaat set van een formquery moet dus bestaan uit één rij. Als de query meer rijen oplevert wordt alleen de eerste rij gebruikt. De waardes uit de kolommen van die rij worden samengevoegd met merge-coderingen uit de bijbehorende dotx/odt/docx-file. OpenWave beschouwt elk getal tussen een “groter dan teken” (>) en een “kleiner dan teken” (<) als een te vervangen merge-code, bijv. <1> of <201> of <531>.

  • De merge-coderingen met nummers 1 - 100 verwijzen naar de kolomnummers van de resultaat set die door de query Form Query wordt bepaald.
  • De coderingen 101-200 verwijzen naar de kolomnummers van Form Query-2.
  • De coderingen 201-300 verwijzen naar de kolomnummers van Form Query-3.
  • De coderingen 301-400 verwijzen naar de kolomnummers van Form Query-4.
  • De coderingen 401-500 verwijzen naar de kolomnummers van Form Query-5.
  • De coderingen 501-600 verwijzen naar de kolomnummers van Form Query-6.
  • De coderingen 601-700 verwijzen naar de kolomnummers van Form Query-7.
  • De coderingen 701-800 verwijzen naar de kolomnummers van Form Query-8.
  • De coderingen 801-900 verwijzen naar de kolomnummers van Form Query-9.
  • De coderingen 901-1300 verwijzen naar de kolomnummers van Form Query-10.

Wanneer de samenvoegfunctie van OpenWave dus in de body van de email de merge-code <304> tegenkomt zal hij deze merge-code vervangen door de waarde van de 4e kolom van de resultaat set van formquery-4.

De merge-code <6> zal hij vervangen door de waarde van de 6e kolom van de resultaat set uit formquery-1.

In bovenstaand voorbeeld worden coderingen gebruikt uit groep formquery-1, formquery-2 en formquery-3.

Formquery-1 zou de volgende kunnen zijn (de aliassen - vanwege < en > tussen dubbele quootjes - verwijzen naar de merge-codering in het sjabloon. Niet verplicht wel handig):

SELECT
  a.dvobjadres x1,
  a.dvobjplaats x2,
  a.dvobjpostcode x3,
  a.dvaanvraagnaam x4,
  a.ddaanvraag x5,
  a.dvzaakcode x6
  FROM
  vwfrmomgvergunningen a
  where a.dnkeyomgvergunning = :keyvergunning
Formquery-2:

SELECT 
  DVAVRBEDRIJF "<101>", 
  DVAVRTAV "<102>", 
  DVAVRADRES "<103>",
  DVAVRPOSTCODE | | ' ' | | DVAVRWOONPLAATS "<104>",
  DVAVRBRIEFAANHEF "<105>"
  FROM VWFRMOMGAVRCONTACTEN
  WHERE DNKEYOMGVERGUNNINGEN = :keyvergunning
Formquery-3:

Select
  case when a.DVGESLACHT='M' then 'dhr.'
       when a.DVGESLACHT='V' then 'mevr.'
       else 'dhr./mevr.' end "<201>",
   a.DVTELEFOON ,
   a.DVTUSSENVOEGSEL,
   a.DVVOORLETTERS,
   a.DVIBBNAAMMW,
   a.DVEMAIL
   from VWFRMACTIEFINBEHBIJ a
   WHERE a.DNKEYOMGVERGUNNINGEN = :keyvergunning

Query-variabelen

OpenWave database functies

OpenWave heeft zelf een aantal functies op de database gedefinieerd - zoals fn_ddmaandjjjj() - die gebruikt kunnen worden in allerlei query's. Zie:OpenWave database functies.

Childquery

Het resultaat van een childquery wordt gebruikt om merge-coderingen in de vorm van een getal tussen accolades (zoals {1} en {2}) binnen de body van een mailsjabloon te vervangen met waardes uit de database. Voor nu is het mogelijk om maar 1 rij per childquery weer te geven. Overige rijen zal het programma nog niet naar kijken.

Het eenvoudige voorbeeld van een ontvangstbevestiging is hieronder uitgebreid met verwijzingen naar de childquery waarin het de bedoeling is dat daar de onderdelen van de omgevingszaak worden opgesomd:

<101>
  <102>
  <103>
  <104>
  Onderwerp:
  Ontvangst aanvraag omgevingsvergunning <1> <2>
  <105>,
  Op <5> heeft u een omgevingsvergunning aangevraagd (zaakcode: <6>).
  Deze brief is een ontvangstbevestiging. Uw aanvraag betreft <4> op het adres <1> in <2>. In deze brief leest u meer over de procedure. 
  Het onderdeel dat van toepassing is {1} met de daarbij horende activiteit is {2}
  Wij toetsen binnenkort of uw aanvraag genoeg gegevens bevat
  Welke gegevens voor een aanvraag nodig zijn staat in de Ministeriële regeling omgevingsrecht. Als uw aanvraag te weinig gegevens bevat, krijgt u daarover
  schriftelijk bericht. U krijgt dan de mogelijkheid uw aanvraag verder aan te vullen. Als aanvullingen nodig zijn, kan de beslistermijn langer worden.
  Onze brieven en andere documenten ontvangt u per e-mail
  Als u dit niet wilt, laat het ons dan per brief weten.
  Neem contact op als u vragen heeft
  U kunt daarvoor bellen met de afdeling Vergunningen, telefoonnummer
  06 11 11 11 11. Mailen kan ook naar vergunningen@..............nl. Schrijft u een brief of een e-mail aan ons, noem daarin dan dit zaaknummer: <6>
  U kunt de zaak volgen met code <%strEncrypt(:dnkey)%> op
  http://tracktrace.demo3.open-wave.nl/TrackNTraceOmgBasis/
  Met vriendelijke groet,
  <204>,
  namens deze
  <201>
  <202>
  <203>
  <204>

De childquery-1 kan er als volgt uitzien:

select 
  dvtoestemmingnaam,
  dvwerkzaamheden
  from vwfrmtoestemmingen
  where
  vwfrmtoestemmingen.dnkeyomgvergunningen = :keyvergunning
  and vwfrmtoestemmingen.ddvervallen is null

Speciale childquery: samenvoegen met externe bron

Het is mogelijk om delen van een sjabloon samen te voegen met gegevens uit een externe bron in plaats van met gegevens uit de OpenWave database. Dat kan vooralsnog alleen bij childqueries.

OpenWave zal bij een childquery zoeken naar speciale gevallen die worden herkend aan een vaste formulering in die childquery. Momenteel zijn daartoe enkel de volgende mogelijkheden:

Invoegen tekstblokken op basis van een query-aanroep naar tbqueries

Er kan in de body van de email een speciale vorm van merge-codering worden opgenomen die verwijst naar een kaart in tbqueries. In dat geval wordt die aangeroepen query geëvalueerd en het resultaat wordt op de bewuste plek in de email ingevoegd. Een dergelijke verwijzing ziet er als volgt uit:

Hier dus geen verwijzing naar een formquery of childquery bij de body, maar een verwijzing naar een kaart in tbqueries.

Op grond van de eerste parameter (codevanquery in bovenstaand voorbeeld) wordt in tbqueries de kaart met dvcode = codevanquery gezocht en de bijbehorende query geëvalueerd, waarbij de variabele {id} in de query wordt vervangen door de tweede parameter (indien aanwezig). Die tweede parameter moet één van de bovenvermelde query-variabelen zijn (zoals :keyinrichting, :keyadvies, :keyvergunning) en is dus afhankelijk van de tabel van waaruit het sjabloon benaderd wordt. Stel: de tabel is tbomgvergunning. Dan zal de tweede parameter :keyvergunning dus vervangen worden door de dnkey van tbomgvergunning van waaruit de email wordt gecreëerd.

Voorbeeld: de aangeroepen query met dvcode = omgeving_tkstblk_1 op grond van de aanroep <%query(omgeving_tkstblk_1,:keyvergunning)%> kan de volgende inhoud hebben:

select case when (select dvsoortproc from vwfrmomgvergunningen where dnkeyomgvergunning = {id}) = 'M' 
              then 'Dit is ten gevolge van artikel x van wet y' 
              else ''::text end

Hetgeen wil zeggen dat indien het zaaktype van de omgevingszaak waar je op staat van het type M (melding) is, druk dan de tekst Dit is ten gevolge van artikel x van wet y af. Anders, is het type anders dan M, druk dan niets af.

Datzelfde kan ook met hergebruik van blokken tekst door een verwijzing in de query naar tbtekstblokken:

select case when (select dvsoortproc from vwfrmomgvergunningen where dnkeyomgvergunning = {id}) = 'M' 
              then  dvtekstblok 
              else ''::text end 
         from tbtekstblokken where lower(dvcode) = 'tkstblk_1'

Hetgeen wil zeggen dat indien het zaaktype van de omgevingszaak waar je op staat van het type M (melding) is, druk dan de waarde van de kolom dvtekstblok van de tabel tbtekstblokken af waarbij dvcode = tkstblk_1. Anders, is het type anders dan M, druk dan niets af. Die kolom dvtekstblok kan gevuld zijn met een tekst van maximaal 4000 tekens.

In de tabel tbtekstblokken (beheertegel Tekstblokken) kunnen deze tekstblokken gedefinieerd worden die op bovenstaande wijze in meerdere sjablonen op conditie kunnen worden aangeroepen. Zie ook: Queries.

Tonen Wave briefnummer

(indien instelling Sectie: Documenten, Item: WaveBriefNummer is aangevinkt)

Indien gewenst kan er met de juiste instellingen een uniek briefnummer door OpenWave gecreëerd worden bij aanmaken van de email. Als je dit nummer in het sjabloon wilt tonen dan kan dit door in de body van de email de verwijzing <%teller%> te zetten op de plek waar je het briefnummer wilt tonen. Voorbeeld: stel de instellingen zijn als volgt WaveBriefnummer staat aan, Getal1 = 78, Getal2 = 5 en Tekst = 'OW'. Het unieke briefnummer waarmee <%teller%> in de email vervangen zal worden is 'OW00079'.

Tonen gecrypte versie van een kolomwaarde

Verder kan de encryptiemethode worden aangeroepen vanuit het emailsjabloon. De string <%strEncrypt(:columnname)%> in een sjabloon wordt bij het creëren van een email als volgt geïnterpreteerd. Het programma zal columnname interpreteren als een kolomnaam uit de hoofdtabel van het sjabloon. De waarde van die kolom wordt gecrypt volgens de ingestelde methode (zie: 2-way encryptie van externe wachtwoorden) en deze gecrypte waarde wordt in de email opgenomen op de betreffende plaats. Voorbeeld: <%strEncrypt(:dnkey)%>.

Sjabloon-parameters

De substrings in de formqueries ingesloten door %-tekens (bijvoorbeeld %datumvanaf%) heten parameters. Deze worden bij het uitvoeren van het SQL-statement automatisch vervangen door een bedoelde waarde. Hoe dat gebeurt wordt gedefinieerd met de kolommen van de tabel tbemailparameters.

Uitzondering hierop is de string <%query(codevanquery)%> : Zie hierboven bij het sub lemma Invoegen Tekstblokken. Elke query kan 0 of meer parameters hebben.

Parameterkolommen

Voorbeeld gebruik verschillende soorten (types) parameters

Stel: een sjabloon ziet er als volgt uit:

Rommeldam, <1>
  Betreft: <2> 
  Hier volgt een aantal invoerparameters:
  Een code uit een medewerkerslijst <3>
  Een invoerdatum omgezet naar tekst <4>
  Een invoer getal (integer): <5>
  Een invoer van een getal (float) omgezet naar een bedrag <6>
  en de invoer van zomaar een string <7>

en de bijbehorende formquery als volgt:

Select
   fn_ddmaandjjjj(fn_vandaag(0)) "<1>"
   a.DVSOORTAANVRAAG "<2>",
   %Medewerker% "<3>",
   fn_ddmaandjjjj(to_date(%Zomaardatum%,'yyyy-mm-dd')) "<4>",
   %Zomaareeninteger% "<5>",
   fn_bedrag(cast(%Zomaareenfloat% as double precision)) "<6>",
   %Zomaareenstring% "<7>"
  from
  VWFRMOMGVERGUNNINGEN a
  WHERE	DNKEYOMGVERGUNNING = :keyvergunning

Waarschuwing

LET HIER OP DAT:

  • een integer of string inputparameter zonder quootjes of extra functie in de query kan worden opgenomen: zoals %Zomaareeninteger%
  • een floatparameter alleen ingebracht kan worden als type string en dat die dan gecast wordt naar float
  • een datumparameter gecast moet worden naar datum met bijv. to_date functie waarbij de ingevoerde datum wordt aangeleverd als yyyy-mm-dd

Er zijn dus 5 invoerparameters:

Dat resulteert bij het genereren van de email tot een invoerscherm:

En de te genereren email ziet er dan zo uit:

Rommeldam, 01 mei 2017
  Betreft: reguliere procedure 
  Hier volgt een aantal invoerparameters:
  Een code uit een medewerkerslijst MDH
  Een invoerdatum omgezet naar tekst 21 april 2017
  Een invoer getal (integer): 34
  Een invoer van een getal (float) omgezet naar een bedrag 123,69
  en de invoer van zomaar een string altijd is Kortjakje ziek

formquery en childquery-verwijzingen naar tbqueries

De inhoud van de kolommen van de formqueries en childqueries kan ook bestaan uit een verwijzing naar een query in de beheertabel tbqueries. Zie: Queries
Hierdoor hoeft een query die in meerdere sjablonen gebruikt wordt maar eenmalig te worden gedefinieerd. De opmaak van de sjablonen wijzigt hierdoor niet. Zie voorbeeld onder het kopje formquery en childquery-verwijzingen naar tbqueries bij Documentsjablonen en Sjabloongroepen