Beide kanten vorige revisie Vorige revisie Volgende revisie | Vorige revisie |
openwave:1.33:applicatiebeheer:instellen_inrichten:openwave_database-functies [2025/07/01 10:55] – ↷ Pagina verplaatst van openwave:1.32:applicatiebeheer:instellen_inrichten:openwave_database-functies naar openwave:1.33:applicatiebeheer:instellen_inrichten:openwave_database-functies Kars Gottschal | openwave:1.33:applicatiebeheer:instellen_inrichten:openwave_database-functies [2025/09/04 15:33] (huidige) – Ton Pullens |
---|
====== Database functies ====== | ====== Database functies ====== |
{{tag>openwave:1.32:applicatiebeheer:functionaliteiten:applicatiebouw}} | |
Op veel plekken in OpenWave kan de applicatiebeheerder SQL-statements definiëren. Bijvoorbeeld in [[openwave:1.32:applicatiebeheer:instellen_inrichten:rapportages|rapportages]], [[openwave:1.32:applicatiebeheer:instellen_inrichten:queries|query's]] op tegels en [[openwave:1.32:applicatiebeheer:instellen_inrichten:documentsjablonen|documentsjablonen]]. Om ingewikkelde statements te vermijden heeft OpenWave zelf een aantal functies op de database gedefinieerd om veel voorkomende problemen op te lossen. Deze functies kunnen opgenomen worden in de query's op dezelfde manier als de inheemse Postgres functies. | {{tag>openwave:1.33:applicatiebeheer:functionaliteiten:applicatiebouw}} |
| Op veel plekken in OpenWave kan de applicatiebeheerder SQL-statements definiëren. Bijvoorbeeld in [[openwave:1.33:applicatiebeheer:instellen_inrichten:rapportages|rapportages]], [[openwave:1.33:applicatiebeheer:instellen_inrichten:queries|query's]] op tegels en [[openwave:1.33:applicatiebeheer:instellen_inrichten:documentsjablonen|documentsjablonen]]. Om ingewikkelde statements te vermijden heeft OpenWave zelf een aantal functies op de database gedefinieerd om veel voorkomende problemen op te lossen. Deze functies kunnen opgenomen worden in de query's op dezelfde manier als de inheemse Postgres functies. |
| |
* **fn_bedrag(p_bedrag)** retourneert een string waarbij p_bedrag (een float) is omgezet in een string met een komma voor de decimale punt en een punt voor de duizendtallen. Voorbeeld: fn_bedrag(1234.56) retourneert '1.234,56' (indien fn_bedrag(0) dan retourneert deze functie 'null' of te wel een lege waarde) | * **fn_bedrag(p_bedrag)** retourneert een string waarbij p_bedrag (een float) is omgezet in een string met een komma voor de decimale punt en een punt voor de duizendtallen. Voorbeeld: fn_bedrag(1234.56) retourneert '1.234,56' (indien fn_bedrag(0) dan retourneert deze functie 'null' of te wel een lege waarde) |
* **fn_iscompartimentok(p_mwcode char(5),p_module char(1), p_dnkey integer)** retourneert 0 of 1 als integer. 0 indien de compartimentcheck niet klopt en 1 indien de compartimentscheck wel klopt. \\ In //p_mwcode// moet de medewerkerscode van de inlogger doorgegeven worden (wanneer deze functie aangeroepen wordt vanuit een opgeslagen query in tbqueries, dan kan daartoe de systeemvariabele //:keyaccount// voor worden gebruikt). \\ De parameter //p_module// één letter namelijk (B)ouw/sloop, hore(C)a, mili(E)/gebruik, (H)andhavimg, (I(infoaanvragen, apv/(O)verig, (V)inrichtingen of (W ) omgevingzaken. \\ In de parameter //p_dnkey// dient de primary key doorgegeven te worden van de hoofdtabel die hoort bij de module en die verwijst naar een rij waarvoor de compartimentcheck moet worden gedaan. OpenWave zoekt de dnkeywaarde op in vwfrmomgvergunningen c.q. vwfrmhandhavingen et cetera en evalueert daar of de kolom dnkeycompartiment overeenkomt met die van de medewerker. | * **fn_iscompartimentok(p_mwcode char(5),p_module char(1), p_dnkey integer)** retourneert 0 of 1 als integer. 0 indien de compartimentcheck niet klopt en 1 indien de compartimentscheck wel klopt. \\ In //p_mwcode// moet de medewerkerscode van de inlogger doorgegeven worden (wanneer deze functie aangeroepen wordt vanuit een opgeslagen query in tbqueries, dan kan daartoe de systeemvariabele //:keyaccount// voor worden gebruikt). \\ De parameter //p_module// één letter namelijk (B)ouw/sloop, hore(C)a, mili(E)/gebruik, (H)andhavimg, (I(infoaanvragen, apv/(O)verig, (V)inrichtingen of (W ) omgevingzaken. \\ In de parameter //p_dnkey// dient de primary key doorgegeven te worden van de hoofdtabel die hoort bij de module en die verwijst naar een rij waarvoor de compartimentcheck moet worden gedaan. OpenWave zoekt de dnkeywaarde op in vwfrmomgvergunningen c.q. vwfrmhandhavingen et cetera en evalueert daar of de kolom dnkeycompartiment overeenkomt met die van de medewerker. |
* **fn_isLineString(p_string)** Retourneert 0 of 1 als integer. 0 indien de p_string geen LineString is vanwege onvoldoende lengte of rare coordinaten. Retourneert 1 indien p_string bestaat uit paren coordinaten gescheiden door een spatie, waarbij de x en y coordinaten binnen een paar gescheiden zijn door een komma EN waarbij het eerste paar ongelijk is aan het laatste paar. Bijvoorbeeld //167321,454597 167344,454619 167346,454613 167359,454617 167380,454606 167373,454592 167354,454576//\\ Of een string een valide polygoon is, met het laatste paar gelijk aan eerste paar kan dus gecontroleerd worden met twee uitkomsten: fn_isposintlijnofpolygoon (p_string) = 1 EN de uitkomst fn_isLineString(p_string) = 0 | * **fn_isLineString(p_string)** Retourneert 0 of 1 als integer. 0 indien de p_string geen LineString is vanwege onvoldoende lengte of rare coordinaten. Retourneert 1 indien p_string bestaat uit paren coordinaten gescheiden door een spatie, waarbij de x en y coordinaten binnen een paar gescheiden zijn door een komma EN waarbij het eerste paar ongelijk is aan het laatste paar. Bijvoorbeeld //167321,454597 167344,454619 167346,454613 167359,454617 167380,454606 167373,454592 167354,454576//\\ Of een string een valide polygoon is, met het laatste paar gelijk aan eerste paar kan dus gecontroleerd worden met twee uitkomsten: fn_isposintlijnofpolygoon (p_string) = 1 EN de uitkomst fn_isLineString(p_string) = 0 |
| * **fn_iskolomleeg(p_column text,p_dnkeykey integer)** retourneert 1 of 0 als integer. Het resultaat is 1 indien de achterliggende waarde van de parameter p_column die doorgegeven moet worden als tabelnaam + '.' + kolomnaam bijvoorbeeld //tbsoortomgverg.dvzgwuuid// leeg is. De parameter p_dnkey moet de waarde hebben van een dnkey uit de betreffende tabel. Er is een systeemquery (dvcode = //beheer_setuuid//) die deze aanroep gebruikt. Voorbeeld van hoe deze aanroep er uit zou moeten zien: //fn_iskolomleeg('tbsoortomgverg.dvzgwuuid', 3456)// |
| |
Zie voor voorbeeld met betrekking tot gebruik van de functies //fn_rechtenkolom en fn_iscompartimentok//: onder kopje //De kolommen van de tabel tbsysstandardtable// bij [[openwave:1.32:applicatiebeheer:instellen_inrichten:standardlist_standarddetail]]. | Zie voor voorbeeld met betrekking tot gebruik van de functies //fn_rechtenkolom en fn_iscompartimentok//: onder kopje //De kolommen van de tabel tbsysstandardtable// bij [[openwave:1.33:applicatiebeheer:instellen_inrichten:standardlist_standarddetail]]. |
| |
| |
| Zie voor voorbeeld met betrekking tot gebruik van de functie //fn_iskolomleeg//: in het detailscherm van tbsoortomgverg (zaakbeheerportaal). Achter de kolom //UUID Open Zaak API// is een schermknop waarmee deze kolom gevuld kan worden met een uuid. |
| De action bij de schermknop is: //getFlexAction(beheer_setuuid,%keypointer%+tbsoortomgverg.dvzgwuuid)//. |
| De query //beheer_setuuid// construeert òf de aanroep naar een showaction met een bepaalde tekst òf de aanroep naar setcolmnvalue, die de kolom vult met een uuid. |
| De query beslist dat op basis van de aanroep naar fn_iskolomleeg(). Indien namelijk niet leeg, dan geeft OpenWave die showtekstmelding |