Verschillen
Dit geeft de verschillen weer tussen de geselecteerde revisie en de huidige revisie van de pagina.
Vorige revisie | |||
— | openwave:1.31:applicatiebeheer:instellen_inrichten:documentsjablonen [Ongeldige datum] (huidige) – Externe bewerking (Ongeldige datum) 127.0.0.1 | ||
---|---|---|---|
Regel 1: | Regel 1: | ||
+ | ====== Documentsjablonen en Sjabloongroepen ====== | ||
+ | Portaal beheerportaal-Nieuw. Tegels **Documentsjablonen** en **Sjabloongroepen**. | ||
+ | |||
+ | Screenidentifiers: | ||
+ | * MDLC_getVwfrmDocumentenList.xml (vwfrmdocumenten) | ||
+ | * MDLC_getStencilGroupList.xml (tbdocumentsoorten) | ||
+ | * MDDC_getStencilGroupDetail.xml (tbdocumentsoorten) | ||
+ | * MDLC_getStencilList.xml (vwfrmdocumenten) | ||
+ | * MDDC_getStencilDetail.xml (vwfrmdocumenten) | ||
+ | * MDLC_getStencilParamsList.xml (tbrapportparameters) | ||
+ | * MDDC_getStencilParamsDetail.xml (tbrapportparameters) | ||
+ | * MDLC_getVwfrmKopDocAanDocSoortList.xml (vwfrmkopdocaandocsoort) | ||
+ | |||
+ | Het beheer van documentsjablonen is gesplitst in het beheer van **Sjabloongroepen** (tbdocumentsoorten) en **Documentsjablonen** (tbdocumenten). De tegel // | ||
+ | |||
+ | Sjablonen zijn .odt of .dotx/.docx files waarin merge-coderingen zijn opgenomen die dynamisch worden gevuld met gegevens uit de database. Een sjabloon wordt opgeroepen met de menuoptie //Creëer document// op diverse plekken in de applicatie, mits de gebruiker documentcreatie-rechten heeft voor de betreffende module. Voor de sjabloondefinities en groep definities inzien en wijzigen moet de inlogger beheerrechten hebben: tbmedewerker.dnbeheerniveau = 99. | ||
+ | |||
+ | Alle kolommen en knoppen op de sjabloonschermen zijn dan toegankelijk. | ||
+ | |||
+ | ===== Sjabloongroepen ===== | ||
+ | De sjablonen kunnen worden gekoppeld aan 1 of meerdere groepen, waarbij een groep toegekend kan worden aan één of meer modules door middel van hun moduleletters. Daar waar de gebruiker uiteindelijk een menuoptie //Creëer document// tot zijn beschikking heeft is dus deze moduleletter bepalend voor de inhoud van de radiobuttonlist: | ||
+ | * A: Algemeen | ||
+ | * M: Management | ||
+ | * W: Omgeving | ||
+ | * O: APV/Overig | ||
+ | * H: Handhaving | ||
+ | * I: Info | ||
+ | * E: Milieu/ | ||
+ | * C: Horeca | ||
+ | * B: Bouw/Sloop (pre-wabo) | ||
+ | Vervallen sjabloongroepen zijn niet zichtbaar voor de gebruiker bij de wizard creëer document. | ||
+ | In het detailscherm van een sjabloongroep, | ||
+ | |||
+ | ==== Documentsjablonenlijst==== | ||
+ | In de lijst met documentsjablonen kunnen documentsjablonen verwijderd worden (inclusief parameters), | ||
+ | |||
+ | ===== Sjabloondefinitie ===== | ||
+ | In het detailscherm van een documentsjabloon kan men het sjabloon na aanmaken vervolgens koppelen aan de gewenste sjabloongroep(en) via het blok **Sjabloongroep(en)**. Hierbij valt er te kiezen uit sjabloongroepen die niet vervallen zijn en waarvan de module van het sjabloon waar men op staat voorkomt in de modules van de sjabloongroep. | ||
+ | Voor bestaande sjablonen kan via het detailscherm op dezelfde manier de koppeling aan sjabloongroepen gewijzigd worden. Met de komst van dit blok is het veld // | ||
+ | |||
+ | === Triggers in het menu opties rechtsboven === | ||
+ | * **Toon uploads** bij deze sjabloonfile. Hiermee wordt de uploadgeschiedenis getoond van het documentsjabloon zelf in de kolom dvtemplatebase64. Zie [[openwave: | ||
+ | * **Verwijder upgeloade sjabloon**. Hiermee wordt de kolom dvtemplatebase64 leeggemaakt. Zichtbaar doordat het aanvinkvakje voor het label //Sjabloon is upgeload in tabel// leeggemaakt wordt. | ||
+ | |||
+ | === Triggers linksonder === | ||
+ | * Met de knop **controleer SQL-statements** worden de gevulde query-kolommen gevalideerd. De betreffende kolomnamen worden zichtbaar met een groen bolletje indien ok en met een rood bolletje indien het statement niet valide is. | ||
+ | * Met de knop **upload sjabloonfile** kan één document (met extensie .odt of .dotx of .docx) aangewezen worden, dat vervolgens met base64 opgeslagen wordt in de kolom dvtemplatebase64. Zichtbaar doordat het aanvinkvakje voor het label //Sjabloon is upgeload in tabel// gevuld is. Indien de kolom //(UNC-pad) + naam sjabloon// een lege waarde had, dan wordt deze gevuld met de naam van het zojuist geüploade document. | ||
+ | <adm warning> | ||
+ | * De knop **download sjabloonfile** is alleen enabled indien de kolom dvtemplatebase64 gevuld is (zichtbaar doordat het aanvinkvakje voor het label //Sjabloon is geüpload in tabel// gevuld is) EN indien de kolom //(UNC-pad) + naam sjabloon// een gevulde waarde heeft. Indien deze laatste kolom zowel een UNC-pad heeft als een filenaam, dan wordt de file gedownload onder de filenaam op de standaard downloadmap. | ||
+ | * De knop **bewerk opgeslagen sjabloon** is alleen enabled indien de kolom dvtemplatebase64 gevuld is (zichtbaar doordat het aanvinkvakje voor het label //Sjabloon is geüpload in tabel// gevuld is) EN indien de kolom //(UNC-pad) + naam sjabloon// een gevulde waarde heeft. De knop is enabled indien | ||
+ | * de instelling //Sectie: Documenten Item: OnlyOffice// | ||
+ | * EN de extensie van de sjabloonnaam (dvtemplatebase64) komt voor in de kolom //Tekst// van deze instelling (waarbij in kolom //Tekst// de mogelijke extensies gescheiden zijn door een puntkomma, dus bijvoorbeeld docx; | ||
+ | |||
+ | === Triggers rechtsonder === | ||
+ | * Met het aanvinkvakje (default aangevinkt) vervallen kaarten zichtbaar, kan de lijst gefilterd worden op alleen niet-vervallen sjablonen. | ||
+ | |||
+ | ==== Kolommen ==== | ||
+ | * De kolom **ID** (dnkey) geeft de automatisch gegenereerde primary key weer van het sjabloon in de tabel tbdocumenten. | ||
+ | * **Naam/ | ||
+ | * **Naam van sjabloon in Xential** (dvnaaminexternsjablprog). Moet alleen gevuld worden indien het OpenWave sjabloon doorgeefluik is naar een Xentail-sjabloon. Zie: [[openwave: | ||
+ | * **Compartiment** (dnkeycompartiment). Indien het sjabloon hier wordt toegekend aan een [[openwave: | ||
+ | * Met het **Volgordenummer** kan de volgorde van de sjabloonnamen bepaald worden zoals die voor gebruikers zichtbaar worden in een lijst, wanneer de gebruiker de wizard // | ||
+ | * **Vervaldatum**. Vervallen documentsjablonen zijn niet zichtbaar voor de gebruiker bij de wizard // | ||
+ | * **Te genereren documentnaam** (dvtemplate). Bij het samenvoegen in de wizard // | ||
+ | * %date% in dvtemplate wordt door de applicatie vervangen door ' | ||
+ | * %login% in dvtemplate wordt vervangen door de medewerkerscode van de inlogger | ||
+ | * %hoofdzaaknr% in dvtemplate wordt vervangen door de wavezaakcode van de hoofdzaak c.q. inrichting | ||
+ | * %deelzaaknr% in dvtemplate wordt vervangen door de wavezaakcode van de deelzaak (dus advies, inspectie of bezwaar/ | ||
+ | * %hoofddmsnr% in dvtemplate wordt vervangen door de externe zaak/DMS code (dvintzaakcode) van de hoofdzaak c.q. inrichting | ||
+ | * %deeldmsnr% in dvtemplate wordt vervangen door de externe zaak/DMS code (dvintzaakcode) van de de deelzaak (dus advies, inspectie of bezwaar/ | ||
+ | * %teller% in dvtemplate wordt vervangen door uniek briefnummer dat gegenereerd wordt op moment van aanmaken van brief mits de instelling //Sectie: Documenten en Item: WaveBriefNummer// | ||
+ | * %adres% in dvtemplate wordt vervangen door het adres + de woonplaats van de hoofdzaak/ | ||
+ | * %ExtDocIdent% (hoofdlettergevoelig!) in dvtemplate wordt vervangen door de externe documentidentifier die verkregen wordt door een Stuf Zaak/DMS genereerdocumentidentificatie-bericht. Alleen van toepassing indien automatische opslag in een DMS via Stuf Zaak/DMS. Wanneer OpenWave geen externe documentidentifier kan bemachtigen, | ||
+ | * **Benaderbaar vanuit tabel**. Deze kolom is verplicht en wordt onder meer gebruikt om de query variabelen : | ||
+ | * **Voor module**. Lijkt dubbelop i.v.m. // | ||
+ | * **Documenttype DMS**. Deze kolom is noodzakelijk indien het te genereren document direct wordt doorgezet met een zaak/DMS koppeling (//autom upload (dlautoupload) // is aangevinkt EN indien GEEN compartiment dan de kolom //Tekst// van instelling //Sectie: KoppelingDOCNAARDMS// | ||
+ | * **Aanduiding vertrouwelijkheid**. Deze kolom is alleen noodzakelijk indien het te genereren document direct wordt doorgezet met een zaak/DMS koppeling (//autom upload (dlautoupload)// | ||
+ | * **Alleen gemeentes**. Alleen indien deze kolom gevuld is heeft dat consequenties voor de lijst met sjablonen die de gebruiker kan kiezen met de wizard // | ||
+ | * ** Moet dig. ondertekend worden** (dllmoetdigondertekenen). Indien aangevinkt zal een geregistreerd document op basis van dit sjabloon ook geregistreerd staan als //moet digitaal ondertekend worden// | ||
+ | * **Contactpersoon kiezen** (dlcontactverplicht). Indien aangevinkt dan zal de inlogger bij het creëren van een document gevraagd worden een contactpersoon te kiezen. De keuze is beperkt tot de contactpersonen die bij de hoofdzaak/ | ||
+ | * **Bijlages aanwijzen uit geregistreerde documenten** (dlbijlagesregdoc). Indien aangevinkt en de instelling //Getal1// van //Sectie: Documenten en Item: Documentregistratie// | ||
+ | * **Voorgestelde documentnaam overschrijfbaar? | ||
+ | * **Document mag alleen per post verzonden worden** (dlmoetperpost). Indien aangevinkt dan zal de gebruiker bij het creëren van een document op basis van dit sjabloon dit gegeven NIET kunnen wijzigen. Het gevolg is ook dat bij een automatische registratie van een document op grond van dit sjabloon de kolom tbcorrespondentie.dlmoetperpost ook de waarde T krijgt en NIET muteerbaar is. indien niet aangevinkt dan kan de gebruiker bij de creatie van een document wel de keuze maken per post of per email | ||
+ | * **Richting** (dvdocrichting). Uitgaand of Intern. Deze geldt als default voor de waarde die de gebruiker kan opgeven tijdens de creatie van het document op basis van dit sjabloon. Deze eigenschap wordt overgenomen in de automatische registratie van het document (tbcorrespondentie) indien dat zo is ingesteld | ||
+ | * **(UNC-pad) + naam sjabloon** (dvdocumentnaam). Deze kolom moet in ieder geval een filenaam bevatten met extensie .dotx, docx of .odt. Indien de filenaam voorafgegaan wordt door een UNC-pad EN de kolom dvtemplatebase64 is NIET gevuld (zichtbaar indien //Sjabloon is upgeload in tabel // leeg is: leeg te maken via de menu optie),dan zal het programma proberen het sjabloon van de fileshare op te halen. Dan moeten ook de kolommen// Tekst// bij de instellingen //Sectie: Documenten// | ||
+ | * **Sjabloon is upgeload in tabel** (dvtemplatebase64 is wel/niet gevuld). Zie hierboven en bij de triggers upload/ | ||
+ | * **autom upload** (dlautoupload). Indien aangevinkt heeft dat als consequentie dat het programma het te genereren document direct gaat opslaan: Indien | ||
+ | * de kolom //Tekst// van instelling //Sectie: KoppelingDOCNAARDMS// | ||
+ | * de kolom //Tekst// van instelling //Sectie: KoppelingDOCNAARDMS// | ||
+ | * de instelling //Sectie: Documenten, Item: OphalenViaFileserver// | ||
+ | * **Item Sectie Aanmaakmappen**. Deze kolom is alleen zinvol indien //autom upload// is aangevinkt en die automatische upload van het gegenereerde document moet naar de fileshare of in een DMS. Hier wordt verwezen naar de instellingskaart kaart met //Sectie : Aanmaakmappen// | ||
+ | * **Queries**. Er zijn 10 formqueries (queries waarvan het resultaat van het SQL-statement uit maar één regel mag bestaan) en 12 childqueries (de resultaatsets van deze SQL-statements mogen wel meer dan één regel bevatten). In het .odt of .dotx of .docx sjabloon worden childqueries gebruikt om tabellen te vullen en formqueries voor één op één merge-coderingen. Zie kopjes formquery en childquery. De views waarvan de naam begint met ‘VwFrm’ zijn de views die goed gedocumenteerd zijn en door Rem bij updates worden beschermd. Het is dus raadzaam alleen deze views als onderlaag van de queries te gebruiken. Zie https:// | ||
+ | |||
+ | |||
+ | ====Formquery ==== | ||
+ | Het resultaat van een formquery wordt gebruikt om merge-coderingen in de vorm van <1> of <301> in een sjabloon te vervangen met waardes uit de database.\\ | ||
+ | |||
+ | <adm warning> | ||
+ | Zorg dat de spellingchecker uit staat EN zorg dat de coderingen in het sjabloon zonder opmaak zijn (dus echt elke code selecteren en opmaak wissen uitvoeren).\\ | ||
+ | Tevens geldt dat indien er gebruik gemaakt wordt van input parameters, het gebruik van de **LIKE** operator NIET van toepassing is: in dat geval zal alles na karakter **%** opgevat worden als naam van een input parameter. Wil men toch zoeken op een gedeelte van een waarde gebruik dan substring selects | ||
+ | </ | ||
+ | |||
+ | Een eenvoudig sjabloonvoorbeeld van een ontvangstbevestiging: | ||
+ | < | ||
+ | <101> | ||
+ | <102> | ||
+ | <103> | ||
+ | <104> | ||
+ | Rommeldam, <7> | ||
+ | Betreft: < | ||
+ | < | ||
+ | Hierbij kan ik u mededelen dat uw aanvraag betreffende een omgevingsvergunning voor <1> op <2> te < | ||
+ | in goede orde is ontvangen op <4>. | ||
+ | De aanvraag wordt behandeld onder zaakcode <6>. | ||
+ | Wij hopen de zaak binnen <8> dagen afgerond te hebben. | ||
+ | Hoogachtend, | ||
+ | Burgemeester en wethouders van Gemeente Rommeldam, | ||
+ | namens dezen, | ||
+ | hoofd afdeling Vergunningen, | ||
+ | <201> <204> <203> <205> | ||
+ | Email: <206> | ||
+ | Tel: <202> | ||
+ | </ | ||
+ | |||
+ | 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/ | ||
+ | |||
+ | < | ||
+ | |||
+ | * 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.1300 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 dotx/ | ||
+ | |||
+ | In bovenstaand voorbeeld worden coderingen gebruikt uit groep formquery-1, | ||
+ | |||
+ | 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): | ||
+ | |||
+ | <code sql> | ||
+ | Select | ||
+ | a.DVAANVRAAGNAAM "< | ||
+ | a.DVOBJADRES "< | ||
+ | a.DVOBJPLAATS "< | ||
+ | a.DDAANVRAAG "< | ||
+ | a.DVSOORTAANVRAAG "< | ||
+ | a.DVZAAKCODE "< | ||
+ | fn_ddmaandjjjj(fn_vandaag(0)) "< | ||
+ | from | ||
+ | VWFRMOMGVERGUNNINGEN a | ||
+ | WHERE DNKEYOMGVERGUNNING = : | ||
+ | </ | ||
+ | Formquery-2: | ||
+ | |||
+ | <code sql> | ||
+ | SELECT | ||
+ | DVAVRBEDRIJF "< | ||
+ | DVAVRTAV "< | ||
+ | DVAVRADRES "< | ||
+ | DVAVRPOSTCODE | | ' ' | | DVAVRWOONPLAATS "< | ||
+ | DVAVRBRIEFAANHEF "< | ||
+ | FROM VWFRMOMGAVRCONTACTEN | ||
+ | WHERE DNKEYOMGVERGUNNINGEN = : | ||
+ | </ | ||
+ | |||
+ | Formquery-3: | ||
+ | |||
+ | <code sql> | ||
+ | Select | ||
+ | case when a.DVGESLACHT=' | ||
+ | when a.DVGESLACHT=' | ||
+ | else '' | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | from VWFRMACTIEFINBEHBIJ a | ||
+ | WHERE a.DNKEYOMGVERGUNNINGEN = : | ||
+ | </ | ||
+ | |||
+ | === Query-variabelen === | ||
+ | * Bij afspraak geldt de variabele **: | ||
+ | * De variabele **: | ||
+ | * De variabele **: | ||
+ | * De variabele **: | ||
+ | * De variabele **: | ||
+ | * De variabele **: | ||
+ | * De variabele **: | ||
+ | * De variabele **: | ||
+ | * De variabele **: | ||
+ | * De variabele **: | ||
+ | * De variabele **: | ||
+ | * De variabele **: | ||
+ | |||
+ | === OpenWave database functies === | ||
+ | OpenWave heeft zelf een aantal functies op de database gedefinieerd - zoals fn_ddmaandjjjj() - die gebruikt kunnen worden in allerlei queries. | ||
+ | Zie: | ||
+ | |||
+ | ====Childquery ==== | ||
+ | Het resultaat van een childquery wordt gebruikt om merge-coderingen in de vorm van een getal tussen accolades (zoals {1} en {2}) binnen tabellen van een sjabloon te vervangen met waardes uit de database. Van boven naar beneden zullen de {1} en {2} merge-coderingen van de eerste tabel in het sjabloon vervangen worden door childquery-1 en de merge-coderingen van de tweede tabel met die van childquery2 en zo verder. | ||
+ | De tabel(len) in de sjabloonfile moeten uit twee regels bestaan: de eerste regel is voor de vaste labels en in de tweede regel komen dan de merge-coderingen. | ||
+ | Het aantal regels dat de tabel uiteindelijk in het te genereren document gaat innemen is afhankelijk van het aantal rijen uit de resultaat set. | ||
+ | |||
+ | Het eenvoudige .docx voorbeeld van een ontvangstbevestiging is hieronder uitgebreid met een tabel waarin het de bedoeling is dat daar de onderdelen van de omgevingszaak worden opgesomd: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | De childquery-1 kan er als volgt uitzien: | ||
+ | |||
+ | <code sql> | ||
+ | select | ||
+ | dvtoestemmingnaam, | ||
+ | dvwerkzaamheden | ||
+ | from vwfrmtoestemmingen | ||
+ | where | ||
+ | vwfrmtoestemmingen.dnkeyomgvergunningen = : | ||
+ | and vwfrmtoestemmingen.ddvervallen is null | ||
+ | </ | ||
+ | |||
+ | <adm warning> | ||
+ | Bij gebruik van .odt-sjablonen met Libre Office moeten in plaats van cijfers, letters gebruikt worden. Dus de notatie in een cel is dan {a}, {b} etc. Hiervoor moet ook een extra programma-instelling aangemaakt worden en aangevinkt: //Sectie: Programma// en //Item: SamenvoegenTabellenMetLetters// | ||
+ | </ | ||
+ | |||
+ | In de tabellen mogen meerdere merge-coderingen per cel gebruikt worden al of niet in combinatie met tekst: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | <adm warning Waarschuwing 2> | ||
+ | Indien in het sjabloon een tabel is opgenomen in de header of footer dan geldt het volgende: | ||
+ | * in die headertabel mogen alleen merge-coderingen gebruikt worden die naar formqueries verwijzen, dus <1> of < | ||
+ | * de tabel in de header telt wel mee in de tellingen van het aantal tabellen. Dus stel dat in de header één tabel staat en in de body staat ook één tabel, dan verwijst de tabel van de body naar childquery2. | ||
+ | </ | ||
+ | |||
+ | === 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: | ||
+ | * Opsomming van afgekeurde items uit digitale checklist. De tekst in de bijbehorende childquery moet zijn: // | ||
+ | //. Zie hiertoe het kopje // | ||
+ | |||
+ | === Speciale childquery: Opsommen aangewezen bijlages === | ||
+ | De variabele **: | ||
+ | De childquery is bijvoorbeeld als volgt gedefinieerd: | ||
+ | |||
+ | De query kan dan ook zijn: | ||
+ | |||
+ | <code sql> | ||
+ | select | ||
+ | 'geen bijlage' | ||
+ | where not exists | ||
+ | (select 1 from vwfrmcorrespondentie where dnkey in (: | ||
+ | |||
+ | | ||
+ | |||
+ | select | ||
+ | dvfilenaam | ||
+ | from vwfrmcorrespondentie | ||
+ | where dnkey in (: | ||
+ | </ | ||
+ | |||
+ | ====Queries en gebruik van Xential ==== | ||
+ | Queries worden gebruikt om een documentsjabloon te mergen met gegevens uit de database.\\ | ||
+ | In het geval dat het OpenWave sjabloon een doorgeefluik is naar een Xential sjabloon (kolom dvnaaminexternsjablprog is dan gevuld), worden de resultsets van de queries gebruikt om een xml te construeren die Xential gebruikt om te mergen. Zie voor deze toepassing: [[openwave: | ||
+ | |||
+ | ====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: [[openwave: | ||
+ | Hierdoor hoeft een query die in meerdere sjablonen gebruikt wordt maar eenmalig te worden gedefinieerd. | ||
+ | <adm example> | ||
+ | formmquery_1 is bijvoorbeeld: | ||
+ | select dvzaakcode, dvaanvraagnaam from tbomgvergunning where dnkey = : | ||
+ | en formquery_2 is bijvootrbeeld | ||
+ | select dvbedrijfsnaam, | ||
+ | Deze twee select statements kunnen nu vervangen worden door de volgende:\\ | ||
+ | De inhoud van formquery_1 wordt dan | ||
+ | %query(sjabloon_zaakgegevens,: | ||
+ | en die van formquery_2 wordt dan | ||
+ | %query(sjabloon_geadresseerdegegevens,: | ||
+ | | ||
+ | In de tabel tbqueries dienen vervolgens twee kaarten aangemaakt te worden:\\ | ||
+ | Eén met de naam // | ||
+ | select dvzaakcode, dvaanvraagnaam from tbomgvergunning where dnkey = {id} | ||
+ | en één met de naam // | ||
+ | select dvbedrijfsnaam, | ||
+ | </ | ||
+ | |||
+ | ==== Invoegen tekstblokken o.b.v. query-aanroep naar tbqueries ==== | ||
+ | Er kan in het sjabloon 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 het sjabloon ingevoegd. Een dergelijke verwijzing ziet er als volgt uit: | ||
+ | * < | ||
+ | * of < | ||
+ | * of < | ||
+ | * of < | ||
+ | Hier dus geen verwijzing naar een formquery of childquery bij het sjabloon, maar een verwijzing naar een kaart in tbqueries. | ||
+ | |||
+ | <adm warning> | ||
+ | De hier gebruikte merge-codering zal niet door de spellingchecker heenkomen, voor een goede werking zal het sjabloon daarom opgeslagen moeten zijn zonder spellingchecker | ||
+ | </ | ||
+ | |||
+ | Op grond van de eerste parameter (codevanquery in bovenstaand voorbeeld) wordt in tbqueries de kaart met dvcode = // | ||
+ | Stel: de tabel is tbomgvergunning. Dan zal de tweede parameter : | ||
+ | |||
+ | Voorbeeld: de aangeroepen query met dvcode = // | ||
+ | kan de volgende inhoud hebben: | ||
+ | |||
+ | <code sql> | ||
+ | | ||
+ | then 'Dit is ten gevolge van artikel x van wet y' | ||
+ | else '':: | ||
+ | </ | ||
+ | |||
+ | 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: | ||
+ | |||
+ | <code sql> | ||
+ | select case when (select dvsoortproc from vwfrmomgvergunningen where dnkeyomgvergunning = {id}) = ' | ||
+ | then dvtekstblok | ||
+ | else '':: | ||
+ | from tbtekstblokken where lower(dvcode) = ' | ||
+ | </ | ||
+ | |||
+ | 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 = // | ||
+ | Die kolom dvtekstblok kan gevuld zijn met een tekst van maximaal 4000 tekens. | ||
+ | |||
+ | In de tabel tbtekstblokken (beheertegel // | ||
+ | Zie ook: [[openwave: | ||
+ | |||
+ | ==== Invoegen plaatje o.b.v. query-aanroep naar tbqueries ==== | ||
+ | Er kan in het sjabloon een speciale vorm van merge-codering worden opgenomen die verwijst naar een kaart in tbqueries t.b.v. opnemen plaatjes. In dat geval wordt die aangeroepen query geëvalueerd en het resultaat van die query MOET verwijzen naar een unieke dvcode uit de tabel **tbimages**. Het plaatje uit tbimages wordt op de bewuste plek in het sjabloon ingevoegd. Een dergelijke verwijzing ziet er als volgt uit: | ||
+ | * < | ||
+ | * of < | ||
+ | * of < | ||
+ | * of < | ||
+ | |||
+ | <adm warning> | ||
+ | De hier gebruikte merge-codering zal niet door de spellingchecker heenkomen, voor een goede werking zal het sjabloon daarom opgeslagen moeten zijn zonder spellingchecker | ||
+ | </ | ||
+ | |||
+ | Op grond van de eerste parameter (codevanquery in bovenstaand voorbeeld) wordt in tbqueries de kaart met dvcode = // | ||
+ | |||
+ | Een voorbeeld van een query met dvcode = // | ||
+ | <code sql> | ||
+ | select | ||
+ | case when dvgemeenteid = ' | ||
+ | else ' | ||
+ | end | ||
+ | from vwfrmomgvergunningen | ||
+ | where dnkeyomgvergunning = {id} | ||
+ | </ | ||
+ | |||
+ | De uitkomst van deze query waarbij //{id}// eerst is gesubstitueerd door de dnkey van de omgevingszaak levert dus een verwijzing naar een specifieke dvcode van tbimages op (beheer), namelijk of wel de image met dvcode = // | ||
+ | |||
+ | Als er geen case when nodig is, dus als een bepaald plaatje er altijd onvoorwaardelijk in moet, dan is //< | ||
+ | |||
+ | <adm warning> | ||
+ | 1. De < | ||
+ | 2: De regelafstand van het onderdeel < | ||
+ | </ | ||
+ | |||
+ | ==== Tonen Wave briefnummer ==== | ||
+ | (indien instelling //Sectie: Documenten, Item: WaveBriefNummer// | ||
+ | |||
+ | Indien gewenst kan er met de juiste instellingen een uniek briefnummer door OpenWave gecreëerd worden bij aanmaken van de brief. Als je dit nummer in het sjabloon wilt tonen dan kan dit door in het sjabloon de verwijzing < | ||
+ | |||
+ | Voorbeeld: stel de instellingen zijn als volgt WaveBriefnummer staat aan, //Getal1// = 78, //Getal2// = 5 en //Tekst// = ' | ||
+ | |||
+ | Indien //Getal1// van //Sectie: Documenten Item: Documentregistratie// | ||
+ | |||
+ | ==== Tonen externe documentidentifier ==== | ||
+ | De string < | ||
+ | |||
+ | ==== Tonen gecrypte versie van een kolomwaarde ==== | ||
+ | Verder kan de encryptiemethode worden aangeroepen vanuit het documentsjabloon. De string < | ||
+ | |||
+ | ===== 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 tbdocparameters. | ||
+ | |||
+ | Uitzondering hierop zijn de hierboven behandelde strings < | ||
+ | |||
+ | <adm warning> | ||
+ | Indien er gebruik gemaakt wordt van input parameters, is het niet mogelijk om de **LIKE** operator te gebruiken in ALLE Form query' | ||
+ | </ | ||
+ | |||
+ | ==== Parameterkolommen ==== | ||
+ | * In de kolom **parameternaam** (dvparameter) staat de naam van de parameter precies zoals die in de querie(s) van het bijbehorende sjabloon staat, maar dan zonder %-tekens. In de parameternamen mogen alleen letters of cijfers voorkomen of een underscore. Dus geen spaties of slashes/ | ||
+ | * **Invulsoort** (dvinvulsoort). Moet ingevuld worden. Er zijn drie mogelijkheden: | ||
+ | * (A)utomatisch. Dit wil zeggen dat Wave de parameter onder water automatisch vervangt met de actieve waarde van de kolom default waarde | ||
+ | * (I)nvoer. Invoer wil zeggen dat de gebruiker de gelegenheid krijgt om de parameter te vervangen door een waarde die hij zelf opgeeft met als default de actieve waarde van de kolom default waarde | ||
+ | * (L)ijst. Lijst wil zeggen dat de gebruiker de te vervangen parameterwaarde kan kiezen uit een lijst in een dropdown-box alvorens het document wordt gegenereerd. De lijst wordt samengesteld door de query die wordt opgegeven bij //lijst query// (zie opmerkingen aldaar). | ||
+ | * In de kolom **label** (dvlabel) kan hier het label behorende bij de te maken editbox of dropdownlist worden ingevoerd indien de Invulsoort = (I)nvoer of (L)ijst. | ||
+ | * **Type** (dvinvoerobject). Type geldt alleen wanneer de InvulSoort = (I)nvoer of (L)ijst. | ||
+ | * Indien Invulsoort is (I)nvoer dan bepaalt het type het masker voor de in te vullen waarden. De volgende conventies gelden indien gevuld: | ||
+ | * STRING (tekst): Het programma toont een normale editbox om de waarde in te voeren voor zowel cijfers als letters. Dus ook wanneer het om een in te voeren numerieke waarde gaat (zoals een bedrag) kan als type toch string worden gekozen | ||
+ | * DATUM: Laat datum kiezen uit een kalender | ||
+ | * INTEGER (getal): Het programma toont een normale editbox om de waarde in te voeren voor een getal. | ||
+ | * Indien Invulsoort is (L)ijst dan geldt dat als de waarde van eerste kolom van de result-dataset van de query_bij_soort_is_lijst (zie hieronder) een: | ||
+ | * Integer of float is dan moet het type leeg zijn (maar mag ook string zijn) | ||
+ | * String is dan moet bij type ook een string worden gekozen | ||
+ | * Datum is dan moet bij het type ook een datum worden gekozen. | ||
+ | * **Query_bij_soort_is_lijst** (dvlijstquery). Geldt alleen wanneer de Invulsoort = (L)ijst. In geval van (L)ijst komt het resultaat van de hier opgegeven query als dropdownlijst alvorens de rapportage wordt gestart. Daarbij geldt dat de waarde van eerste kolom van de result-dataset van de query als de te vervangen parameter wordt beschouwd (maar niet zichtbaar in de dropdownlijst). De query mag maar twee kolommen bevatten genaamd id en omschrijving. Voorbeeld: //SELECT DvCode id, DvOmschrijving omschrijving from TbMedewerkers where ddvervaldatum is null order by omschrijving// | ||
+ | * **Inputvolgordenummer** (dnregel). Geldt voor invulsoort (L)ijst of (I)nvoer. Hiermee kunt u de plek beïnvloeden van de editbox of lijst wanneer er meerdere parameters zijn. Mag leeg gelaten worden, maar dan is de volgorde van de gevraagde invoer willekeurig. | ||
+ | * **Functie Defaultwaarde** (dvdefaultwaarde). Een – bij afspraak – geldende typering wat de standaard waarde moet zijn bij Invulsoort = (A)utomatisch en bij (I)nvoer. De mogelijkheden zijn: | ||
+ | * Begin van dit jaar (DbeginJaar) | ||
+ | * Eind van dit jaar (Deindjaar) | ||
+ | * Vandaag (Dvandaag) | ||
+ | * Vandaag minus 1 maand (Dmin1Maand) | ||
+ | * Vandaag plus 1 maand (Dplus1Maand) | ||
+ | * Vandaag minus 2 maanden (Dmin2Maand) | ||
+ | * Vandaag plus 2 maanden (Dplus2Maand) | ||
+ | * Vandaag minus 1 jaar (Dmin1Jaar) | ||
+ | * Vandaag plus 1 jaar (Dplus1Jaar) | ||
+ | * Vandaag minus 6 maanden (Dmin6Maand) | ||
+ | * Vandaag plus 6 maanden (Dplus6Maand) | ||
+ | * Huidige Gebruiker (Cinlogger) TbMedewerkers.DvCode van persoon die het sjabloon start | ||
+ | * Identifier van powerportal (nportalid). Kan alleen gebruikt worden bij sjablonen die gestart worden vanuit een zaakportaal of een inrichtingsportaal. De identifier is dan de primary key van de betreffende module voor dat portaal. | ||
+ | * **Vaste Defaultwaarde** (dvdefaultvast). Een vaste default waarde bij bij Invulsoort = (A)utomatisch en bij (I)nvoer en (L)ijst. Indien Lijst (waarbij de default waarde dus verwijst naar een bepaalde regel van het dropdownlijstje bestaande uit de kolommen id en omschrijving), | ||
+ | |||
+ | ==== Voorbeeld gebruik verschillende soorten (types) parameters ==== | ||
+ | Stel: een sjabloon ziet er als volgt uit: | ||
+ | < | ||
+ | Rommeldam, <1> | ||
+ | Betreft: < | ||
+ | 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: | ||
+ | |||
+ | <code sql> | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | from | ||
+ | VWFRMOMGVERGUNNINGEN a | ||
+ | WHERE DNKEYOMGVERGUNNING = : | ||
+ | </ | ||
+ | |||
+ | Let hierbij 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 het document tot een invoerscherm: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | En het te genereren document 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 | ||
+ | </ | ||
+ | |||