Verschillen
Dit geeft de verschillen weer tussen de geselecteerde revisie en de huidige revisie van de pagina.
Beide kanten vorige revisie Vorige revisie Volgende revisie | Vorige revisie | ||
openwave:1.32:applicatiebeheer:instellen_inrichten:standardlist_standarddetail [2024/11/26 06:07] – verwijderd - Externe bewerking (Ongeldige datum) 127.0.0.1 | openwave:1.32:applicatiebeheer:instellen_inrichten:standardlist_standarddetail [2024/12/11 14:05] (huidige) – Kars Gottschal | ||
---|---|---|---|
Regel 1: | Regel 1: | ||
+ | ====== Standaard Lijst- en Detailschermen ====== | ||
+ | {{tag> | ||
+ | Portal beheerportaal-Nieuw. Tegel //Tabellen standaardAPI// | ||
+ | |||
+ | Screenidentifiers (beheertegel // | ||
+ | * MDLC_getVwFrmSysStandardtableList.xml | ||
+ | * MDDC_getVwFrmSysStandardtableDetail.xml | ||
+ | * MDFC_getVwFrmSysStandardtableList.xml | ||
+ | |||
+ | Tabellen: | ||
+ | * tbSysStandardTable/ | ||
+ | * tbSysstandardButton | ||
+ | |||
+ | Zie ook: [[openwave: | ||
+ | |||
+ | ===== Omschrijving ===== | ||
+ | Met behulp van de tabel tbSysStandardTable kan een applicatiebeheerder zelf nieuwe schermen op bestaande OpenWave tabellen/ | ||
+ | |||
+ | 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 ===== | ||
+ | * Aanroep voor het tonen van een **lijstscherm** op basis van de informatie van een kaart in tbSysStandardTable (dus bijvoorbeeld een action op een tegel): // | ||
+ | * OF aanroep van een blok in een detailscherm, | ||
+ | |||
+ | ==== Waarbij: ==== | ||
+ | * de methode getFlexList() aangeeft dat het resultaat van de aanroep een lijstscherm is | ||
+ | * de eerste parameter // | ||
+ | * de tweede parameter wordt genegeerd. Kan dus leeg zijn | ||
+ | * de derde parameter (hier alleen gevuld in tweede voorbeeld) wordt alleen gevuld met de waarde van de primary key van de parenttable indien van toepassing (welke parenttable: | ||
+ | * de vierde parameter (hier in het eerste voorbeeld de waarde ' | ||
+ | * de vijfde parameter, met hier de waarde // | ||
+ | * optioneel kan nog aangevuld worden tot de negende parameter: paramtype. Dit is alleen van toepassing als er bij het lijstscherm een filter xml gedefinieerd is EN gebruik wordt gemaakt van een query afweging bij een van de tags < | ||
+ | * Aanroep voor het tonen van een **detailscherm** op basis van de informatie van een kaart in tbSysStandardTable (dus bijvoorbeeld een action op een tegel of knop): // | ||
+ | * de methode getFlexDetail() aangeeft dat het resultaat van de aanroep een detailscherm is | ||
+ | * de eerste parameter // | ||
+ | * de tweede parameter de waarde van de primary key bevat van de tabel waarvan het detailscherm wordt opgevraagd | ||
+ | * de derde parameter, met hier de waarde // | ||
+ | |||
+ | ===== De kolommen van de tabel tbsysstandardtable ===== | ||
+ | * **Identifier** (dnkey). Primary key van de tabel. | ||
+ | * ** Unieke codering voor tabel ** (dvcode). De unieke codering van de kaart die bij de action-aanroep getFlexList(sysStandardList,,,, | ||
+ | * ** Systeem-categorie** (dnkeysysstandardcat). Foreign key naar de tabel tbsysstandaardcategorie om de standaardapi' | ||
+ | * ** Systeemkaart** (dlsystem). Niet muteerbaar. T of F. Indien T dan is de betreffende kaart voor de OpenWave-applicatie onmisbaar en mag de kaart niet verwijderd worden. | ||
+ | * **Hoofdtabel- of viewnaam** (dvmaintablename). De naam van de view of tabel waarvan een of meer kaarten in lijst of detail getoond moeten worden. | ||
+ | * **Kolomnaam van de primary key** (dvmainprimkeyname). De kolom naam van de primary key van de hoofdtabel/ | ||
+ | * **Tabelnaam waarop hoofdtabel/ | ||
+ | * **Kolomnaam foreign key uit deze achterliggende tabel** (dvmainbaseforeignkeyname). Deze kolom alleen invullen indien ook de kolom // | ||
+ | * **Parenttabelnaam** (dvparenttablename). De naam van de tabel (of view) die als parent fungeert voor de hoofdtabel/ | ||
+ | * **Kolomnaam foreign key (uit hoofdtabel/ | ||
+ | * **Kolomnaam blokkering uit parenttabel**(dvparentblokkeringfieldname). Betekent dat indien de achterliggende waarde van deze kolom gevuld is - en parenttable is van toepassing- , dat dan geen wijzigingen en inserts en deletes bij deze tabel kunnen plaatsvinden. | ||
+ | * **Kolomnaam blokkering (uit hoofdtabel/ | ||
+ | * **Schermidentifier voor lijst** (dvlistscreenfilename). De unieke naam met de schermkolominformatie die verwijst naar tbscreencolumns.dvscreenfilename (beheertegel // | ||
+ | * **Schermidentifier voor detail** (dvdetailscreenfilename). De unieke naam met de schermkolominformatie die verwijst naar tbscreencolumns.dvscreenfilename (beheertegel // | ||
+ | * **Schermidentifier voor filter** (dvfilterscreenfilename). De unieke naam met de schermkolominformatie die verwijst naar tbscreencolumns.dvscreenfilename (beheertegel // | ||
+ | * **Kijkrechtenkolom (bijv. tbomgrechten.dlcomgadvvsb)** (dvauthvisiblefield). Een verwijzing naar een rechtenkolom waarvan de waarde T moet zijn voor de inlogger om de gevraagde lijst of detailpagina te bekijken. Indien ingevuld gaat deze kolom voor op de kolom // | ||
+ | * **Muteerrechtenkolom (bijv. tbomgrechten.dlcomgadvedt)** (dvautheditfield). Een verwijzing naar een rechtenkolom waarvan de waarde T moet zijn voor de inlogger om de gevraagde lijst of detailpagina te muteren. Indien ingevuld gaat deze kolom voor op de kolom // | ||
+ | * **tbqueries.dvcode kijkrechten (result = true)** (dvauthvisiblequerycode). Een verwijzing naar tbqueries.dvcode alwaar de SQL-statement een true of een false moet geven, hetgeen aangeeft of de inlogger de gevraagde lijst of detailpagina mag bekijken. Indien echter de kolom // | ||
+ | * **tbqueries.dvcode wijzigrechten (result = true)** (dvautheditquerycode). Een verwijzing naar tbqueries.dvcode alwaar de SQL-statement een true of een false moet geven, hetgeen aangeeft of de inlogger de gevraagde lijst of detailpagina in beginsel mag muteren (in de schermkolomdefinitie wordt daar per cel/kolom geautoriseerd). Indien echter de kolom // | ||
+ | * **Module/ | ||
+ | * **Datumkolomnaam box vervallen** (dvvervallenboxfieldname). Indien gevuld met een datumkolomnaam van de hoofdtabelview dan zal onderaan in de lijstweergave van die tabel/view een aanvinkbox //vervallen kaarten onzichtbaar// | ||
+ | * **Zoekbox? | ||
+ | * **Action; | ||
+ | * **Detailvenster openen na insert met sysStandardRow? | ||
+ | * **Where clausule; | ||
+ | * //: | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | |||
+ | Zie verder over het gebruik en mogelijkheden van actions: [[openwave: | ||
+ | |||
+ | ===== Voorbeeld gebruik rechtenkolom op basis van query===== | ||
+ | Het gaat hier om het vullen van de kolom // | ||
+ | |||
+ | <adm example voorbeeld gebruik rechtenkolom> | ||
+ | wanneer het inzien of wijzigen van een scherm voorbehouden moet zijn aan een functioneel beheerder is er een verwijzing naar de systeemquery met dvcode = // | ||
+ | |||
+ | 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 // | ||
+ | In de kolom dvauthvisiblequerycode wordt naar een query uit tbqueries verwezen bijv. met de code // | ||
+ | De query met dvcode = // | ||
+ | select case when (fn_iscompartimentok(: | ||
+ | and (fn_rechtenkolom(' | ||
+ | then ' | ||
+ | else ' | ||
+ | end | ||
+ | De query maakt gebruik van twee OpenWave functies:\\ | ||
+ | // | ||
+ | // | ||
+ | Zie ook [[openwave: | ||
+ | </ | ||
+ | |||
+ | ===== Controle op valide schermverwijzingen ===== | ||
+ | In het servicecentrum portaal onder de kolom Notificaties is een tegel // | ||
+ | |||
+ | 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: | ||
+ | |||
+ | ===== Filterdefinitie bij lijstscherm ===== | ||
+ | Zie: [[openwave: | ||
+ | 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 ' | ||
+ | |||
+ | Ga naar gewenste kaart in tbsysstandardtable (beheertegel: | ||
+ | * Zet bij **Schermidentifier voor filter** (bijv.: MDFC_getTest_MWPerRechtengroepList.xml want in voorbeeld is de lijst.xml MDLC_getTest_MWPerRechtengroepList.xml) | ||
+ | * Klik op de knop 'Ga naar schermdefinitie' | ||
+ | * In de kolom **Kolominformatie Toggle F11** moet vervolgens de layout van het filterscherm gedefinieerd worden in xml-formaat met een of meer kolommen uit het lijstscherm. In het voorbeeld worden twee filters gemaakt. | ||
+ | |||
+ | ===== Knoppen op lijst- en detailschermen ===== | ||
+ | Knoppen die binnen een detailscherm dat door tbsysstandardtable wordt gedefinieerd- bijv. achter een specifieke kolom - moeten verschijnen, | ||
+ | [[openwave: | ||
+ | |||
+ | 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: | ||
+ | * Blok Identifier: | ||
+ | * **Systeemkaart** (dlsystem). Indien aangevinkt dan is de kaart bij een update door REM aangemaakt en onontbeerlijk voor goede werking van het programma. Niet aankomen dus. | ||
+ | * Blok Knop: | ||
+ | * **Hint**. Deze tekst verschijnt als hint bij de knop, of als omschrijving van de knop indien onderdeel van itemlist. | ||
+ | * **Lijst of Detail**. Een L of een D. Indien L dan is de knop zichtbaar op het gedefinieerde lijstscherm. Bij D dus alleen op het detailscherm. | ||
+ | * **Linksonder of Itemlijst**. Een L of een I. Indien L dan verschijnt de knop met een icoon linksonder aan de pagina. Indien I dan verschijnt de knop als item met als omschrijving de Hint in een itemlijst (Opties-menu) rechtsboven aan de pagina. | ||
+ | * **Icoonnummer**. Alleen van toepassing indien (L)inksonder. Hier moet een nummer komen uit de lijst: | ||
+ | * **Volgorde**. Met deze numerieke waarde kan de volgorde van de knoppen van links naar rechts of - indien itemlist- van boven naar beneden bepaald worden. | ||
+ | * **Refresh**. Indien aangevinkt dan zal het scherm na het uitvoeren van de action bij de knop opnieuw worden uitgeschreven. | ||
+ | * Blok Rechten: | ||
+ | * **Action execute-rechtenkolom** (dvauthexecutefield). Een verwijzing naar een rechtenkolom waarvan de waarde T moet zijn voor de inlogger om de de action die aan de knop vastzit te mogen uitvoeren. Indien ingevuld gaat deze kolom voor op de kolom // | ||
+ | * **tbqueries.dvcode action execute (result = true)** (dvauthexecutequerycode). Een verwijzing naar tbqueries.dvcode alwaar de SQL-statement een true of een false moet geven, hetgeen aangeeft of de inlogger de action bij de knop mag uitvoeren. Indien echter de kolom // | ||
+ | * Blok Action en parameters. De eerste kolom is de naam van de aan te roepen methode. De volgende kolommen worden gevuld met één of meer vereiste parameters. Voor alle action/ | ||
+ | * %: | ||
+ | * %inlogger% met de waarde van tbmedewerkers.dvcode van de inlogger | ||
+ | * %keypointer% met de waarde van de primary key van de kaart waar de gebruiker op dat moment op staat (alleen bij knoppen op een detailscherm) | ||
+ | * %keyparent% met de waarde van de primary key van de parenttabelkaart | ||
+ | * %query(querynaam)% wordt vervangen door resultaat van de query met naam querynaam (alleen bij knoppen op een detailscherm) | ||
+ | * %query(querynaam, | ||
+ | * { + kolomnaam uit hoofdview/ | ||
+ | |||
+ | ==== 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: | ||
+ | * als eerste parameter de tekst // | ||
+ | * als tweede parameter de schermnaam van een xml waarin het insertscherm is gedefinieerd. Bijv. MDWC_insertTbKopCompGem.xml. Deze naam moet beginnen met ' | ||
+ | * de derde parameter is LEEG indien de tabel waarop een insert plaatsvindt GEEN parenttabel heeft. Indien deze tabel echter wel een parenttabel heeft dan moet deze parameter gevuld worden met de tekst %keyparent%. De tekst %keyparent% wordt door OpenWave 'on the fly' vervangen met de primary key van de parenttabel | ||
+ | * als vierde parameter een verwijzing naar de unieke codering van de kaart uit tbsysstandardtabel waar deze knopdefinitie bij hoort. | ||
+ | |||
+ | <adm example voorbeeld insertsysstandardrow> | ||
+ | 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, | ||
+ | Het resultaat is te gebruiken in het beheerportaal onder de kolom // | ||
+ | </ | ||
+ | |||
+ | Voor de opmaak van standaard insertscherm (de xml) zie: [[openwave: | ||
+ | |||
+ | |||
+ | ==== 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 | ||
+ | * als eerste parameter de tekst // | ||
+ | * als tweede parameter de schermnaam van een xml waarin het insertscherm is gedefinieerd. Bijv. MDWC_insertTbKopCompGem.xml. Deze naam moet beginnen met ' | ||
+ | * de derde parameter is bevat de primary key van de kaart waarop de gebruiker staat. Hier in te geven met de tekst //{id}//. Die tekst //id// wordt door OpenWave 'on the fly' vervangen met de primary key van de te kopiëren kaart | ||
+ | * als vierde parameter een verwijzing naar de unieke codering van de kaart uit tbsysstandardtabel waar deze knopdefinitie bij hoort. | ||
+ | |||
+ | <adm example voorbeeld kopieersysstandardrow> | ||
+ | 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, | ||
+ | Het resultaat is te gebruiken in het portaal Zaakbeheer onder de kolom // | ||
+ | </ | ||
+ | |||
+ | Voor de opmaak van standaard insertscherm (de xml) zie: [[openwave: | ||
+ | |||
+ | ==== 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: | ||
+ | * als eerste parameter de tekst // | ||
+ | * als tweede parameter de tabelnaam gevolgd door een punt gevolgd door //{id}// die //{id}// wordt on the fly' door OpenWave vervangen met primary key van de kaart die verwijderd moet worden | ||
+ | * als derde parameter een kolomnaam uit de view of tabel die aan de lijst ten grondslag ligt, waarvan de achterliggende waarde gebruikt wordt voor de //weet u zeker// tekst | ||
+ | * als vierde parameter de code uit tbsysstandardtable die verwijst naar de kaart waar de betreffende standaardlijst in is gedefinieerd. | ||
+ | |||
+ | <adm example voorbeeld deletesysstandardrow> | ||
+ | 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, | ||
+ | Het resultaat is te gebruiken in het beheerportaal onder de kolom // | ||
+ | </ | ||
+ | |||
+ | 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// | ||
+ | In deze kaart kan de //Kolomnaam blokkering uit hoofdtabel/ | ||
+ | |||
+ | 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 ==== | ||
+ | |||
+ | {{openwave: | ||
+ | |||
+ | Toepassingen: | ||
+ | * Inserten in een sysstandaardtabel van meerdere kaarten op basis van een selectie uit een derde codetabel | ||
+ | * Of synchroniseren van de rijen in een sysstandaardtabel op basis van een selectie uit een derde codetabel | ||
+ | |||
+ | In beide gevallen is de sysstandaardtabel in kwestie een dochtertabel van een parent.\\ | ||
+ | |||
+ | 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, | ||
+ | Het resultaat is te gebruiken in het beheerportaal onder de kolom // | ||
+ | |||
+ | |||
+ | * **startwizard(koppelSysStandardRow, | ||
+ | * param1: koppelSysStandardRow | ||
+ | * param2: Bestaat uit vier delen gescheiden door een puntkomma: | ||
+ | * de eerste deelparameter is de waarde van de parentkey naar de parenttabel (in te geven als %keyparent% en wordt on the fly vervangen met de echte waarde) | ||
+ | * de twee deelparameter is een veldnaam uit de parenttabel waarvan de waarde gebruikt wordt in de koptekst | ||
+ | * de derde deelparameter is optioneel en bevat - indien gevuld - een veldnaam uit de parenttabel die een moduleletter bevat. Mag dus leeg zijn | ||
+ | * de vierde deelparameter is leeg of 0 of 1. Indien 0 of leeg dan worden de rijen in de standaardtabel (de koppeltabel) gelijkgemaakt (gesynchroniseerd) met de aangevinkte rijen van de codetabel. Sommige worden dus verwijderd, sommige worden toegevoegd. Indien de waarde 1 dan worden alle aangevinkte rijen altijd toegevoegd aan de standaardtabel. | ||
+ | * param3: Bestaat uit negen delen gescheiden door een puntkomma: | ||
+ | * de eerste deelparameter is de tabelnaam van de codetabel ((mag ook een viewnaam zijn op basis van de code tabel) | ||
+ | * de tweede deelparameter is de veldnaam van de foreign-key kolom uit de koppeltabel naar de codetabel | ||
+ | * de derde deelparameter is de veldnaam van de primary key van de codetabel | ||
+ | * de vierde deelparameter is een veldnaam uit de codetabel of view die getoond kan worden in het aanvinkscherm. Mag leeg zijn | ||
+ | * de vijfde deelparameter is een veldnaam uit de codetabel of view die getoond moet worden in het aanvinkscherm. Mag NIET leeg zijn | ||
+ | * de zesde deelparameter is optioneel en bevat - indien gevuld - een veldnaam uit de codetabel of view die een moduleletter bevat. Mag dus leeg zijn. | ||
+ | * de zevende deelparameter is optioneel en bevat - indien gevuld - een veldnaam uit de codetabel of view die gevuld kan zijn met een vervaldatum. Indien gevuld dan zijn de vervallen items niet zichtbaar in het keuzelijstscherm | ||
+ | * de achtste deelparameter is optioneel en bevat een extra where clausule met kolommen uit de codetabel/ | ||
+ | * de negende parameter is optioneel en bevat een verwijzing naar tbqueries (dvcode). Indien gevuld dan zal OpenWave de codetabel tonen volgens die select-query. Die query moet aan een aantal eisen voldoen: | ||
+ | * Er moet een kolomnaam zijn met de naam //id//, waarvan de inhoud bij koppelen overgenomen wordt in de kolom aangeduid in de tweede deelparameter van param3 (de veldnaam van de foreign-key kolom uit de koppeltabel naar de codetabel) | ||
+ | * Er moet een kolom zijn met de naam // | ||
+ | * Er moet een kolom zijn met de naam //dnkey// waarvan de inhoud een primary key van de codetabel is. | ||
+ | * Er moet een kolomnaam zijn met als naam de inhoud van vijfde deelparameter van param3 en deze kolom moet een gevulde waarde hebben. | ||
+ | * Indien de vierde deelparameter van param3 gevuld is, dan moet er een kolomnaam zijn met als naam de inhoud van vierde deelparameter van param3. | ||
+ | * De query kan gebruik maken van de variable //{id}// die on the fly wordt gevuld met de waarde van %keyparent% (dus met de primary key van de parenttabel) | ||
+ | * param4: de code uit tbsysstandardtable die verwijst naar de kaart waar de betreffende tabel in is gedefinieerd. | ||
+ | |||
+ | 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: | ||
+ | * Indien de zevende deelparameter van param3 is gevuld met de kolomnaam van een datumveld dan gaat OpenWave er van uit dat het hier gaat om een vervaldatum en worden alleen die kaarten uit de codetabel getoond die niet vervallen zijn.\\ | ||
+ | * De moduleletter (de derde deelparameter van param2 die verwijst naar kolomnaam van de parenttabel, | ||
+ | * De rijen van de codetabel kunnen aan nog een voorwaarde moeten voldoen indien de achtste deelparameter van param3 gevuld is met een statement dat gebruikt kan worden in de where clausule van de SQL die ten grondslag ligt aan het oproepen van de codetabelrijen.\\ | ||
+ | |||
+ | 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 | ||
+ | * leeg of de waarde 0 dan zal OpenWave synchroniseren. Dat betekent dat op basis van de NIET aangevinkte rijen OpenWave kijkt of er rijen met foreign keys bestaan in de sysstandaardtabel (de koppeltabel) met een verwijzing naar zo'n niet aangevinkte rij. Zo ja dan worden deze verwijderd uit de koppeltabel. Vervolgens wordt gekeken of er aangevinkte rijen zijn in de codetabel die nog geen verwijzing hebben vanuit de standaardtabel. Zo ja worden op basis daarvan nieuwe kaarten aangemaakt in de syststandaardtabel (de koppeltabel) met gevulde foreign key naar de parenttabel en gevulde foreign key naar de codetabel. | ||
+ | * de waarde 1 dan zal OpenWave op basis van elk van de aangevinkte rijen een kaart aanmaken in de sysstandaardtabel (de koppeltabel) met gevulde foreign key naar de parenttabel en gevulde foreign key naar de codetabel. | ||
+ | |||
+ | |||
+ | <adm example voorbeeld koppelsysstandardrow zonder query-verwijzing> | ||
+ | De knop //Sjabloon koppelen aan sjabloongroepen// | ||
+ | action = // | ||
+ | param1 = // | ||
+ | param2 = // | ||
+ | param3 = // | ||
+ | param4 = // | ||
+ | | ||
+ | Op grond hiervan toont OpenWave een lijstje uit tbdocumentssoorten (de sjabloongroepen) die de gebruiker | ||
+ | nog aan aan- en uitvinken. De aangevinkte kaarten van deze codetabel worden overgenomen in tbkopdocaandocsoort. | ||
+ | Tbkopdocaandocsoort is een dochtertabel van TbDocumenten (de sjablonen). Dus: | ||
+ | Tbdocumenten is de parentabel | ||
+ | Tbkopdocaandocsoort is de koppeltabel | ||
+ | Tbdocumentsoorten is de codetabel | ||
+ | |||
+ | param2 | ||
+ | * de eerste deelparameter // | ||
+ | * de tweede deelparameter // | ||
+ | * de derde deelparameter // | ||
+ | * de vierde deelparameter //0// betrekent dat de aangevinkte kaarten uit de codetabel Tbdocumentsoorten worden overgenomen in tbkopdocaansoort en dat de niet aangevinkte kaarten juist worden verwijderd | ||
+ | |||
+ | param3 | ||
+ | * de eerste deelparameter // | ||
+ | * de tweede deelparameter // | ||
+ | * de derde deelparameter //dnkey// is de naam van de primary key-kolom uit tbdocumentsoorten waar dnkeysocsoort naar verwijst | ||
+ | * de vierde deelparameter is leeg en worfdt dus niet gebruikt. | ||
+ | * de vijfde deelparameter // | ||
+ | * de zesde deelparameter // | ||
+ | * de zevende deelparameter // | ||
+ | * de achtste deelparameter //1=1// is de extra where clausule waarop de lijst uit tbdocumentsoorten wordt gefilterd (in dit geval dus altijd true) | ||
+ | * de negende deelparameter is leeg. Dus Openwave construeerst zelf een lijst uit tbdocumentsoorten op grond van de andere deelparameters. | ||
+ | |||
+ | param4 // | ||
+ | \\ | ||
+ | De query die OpenWave construeert ziet er als volgt uit - ervanuitgaande dat %keyparent% de waarde 100 geeft en de module in dvvantoepop de waarde W:\\ | ||
+ | select b.dnkey as id, ' | ||
+ | from tbkopdocaandocsoort a inner join tbdocumentsoorten b on (a.dnkeydocsoort= b.dnkey) | ||
+ | where a.dnkeydocument = 100 | ||
+ | | ||
+ | | ||
+ | from tbdocumentsoorten where dnkey | ||
+ | not in (select dnkeydocsoort from tbkopdocaandocsoort | ||
+ | and (ddvervaldatum is null or ddvervaldatum >= fn_vandaag(0)) | ||
+ | and 1 = 1 and instr(' | ||
+ | |||
+ | Dus eerst een opsomming met multiselect = T van alle documentsoorten die reeds in tbkopdocaandocsoort en vervolgens een opsomming met multiselect = F van alle documentsoorten die NIET in tbkopdocaandocsoort voorkomen (bij document met dnkey = 100). | ||
+ | </ | ||
+ | |||
+ | <adm example voorbeeld koppelsysstandardrow met eigen query-verwijzing> | ||
+ | Deze Query die OpenWave zelf construeert bij ontbreken van de negende deelparameter bij param3 mag de gebruiker ook zelf construeren en anders maken. Er moet dan een verwijzing in de negende deelparameter komen naar een query. Stel die query heet // | ||
+ | |||
+ | Deze query kan er dan op grond van bovenstaand voorbeeld als volgt uit zien:\\ | ||
+ | |||
+ | select b.dnkey as id, ' | ||
+ | from tbkopdocaandocsoort a inner join tbdocumentsoorten b on (a.dnkeydocsoort= b.dnkey) | ||
+ | where a.dnkeydocument = {id} | ||
+ | | ||
+ | | ||
+ | from tbdocumentsoorten | ||
+ | where dnkey not in (select dnkeydocsoort from tbkopdocaandocsoort where dnkeydocument = {id}) | ||
+ | and (ddvervaldatum is null or ddvervaldatum >= fn_vandaag(0)) | ||
+ | and dnkey > 1000 | ||
+ | Hierbij geldt dus: | ||
+ | * De primary key van tbdocumenten die on the fly wordt vervangen moet weergegegevn worden als {id} | ||
+ | * Er moet een kolom dlmultiselect zijn met waarde T of F | ||
+ | * Er moet een kolom dnkey zijn met de primary key van de codetabel (tbdocumentsoorten) | ||
+ | |||
+ | </ | ||