Inhoud

Actions

Wat is een action

Een action is een aanroep naar een methode van OpenWave met de juiste parameters. Die action wordt gekoppeld aan een trigger (zoals een knop, of een tegel of dubbelklikken op een lijstregel). OpenWave roept de methode aan en het gevolg is dat een lijst- of detailscherm wordt geopend, of een nieuw tabblad met een URL, of een wizard die wordt opgestart, of een kaartje dat getoond wordt, een memo…. et cetera.

Waar worden actions gedefinieerd

Op vele plekken in OpenWave kan een action aan een trigger worden gekoppeld. Bijvoorbeeld:

Syntax en substitutie van variabelen

In de meeste gevallen moet de action (methode + parameters) in één string worden gedefinieerd zoals: geefZaakMemo(12234,W) of getFlexList(SysStandardList,nil,nil,G,beheer_tbdocumenttype). Alleen de actions gekoppeld aan knoppen van een standaardlijst of standaarddetail (dus via de beheertegel Tabellen standaard API) zijn opgesplitst in een kolom action, waarin dit keer alleen de methodenaam moet komen, en kolommen voor de parameters: elke parameter een eigen kolom.

OpenWave kan bij de aanroep van een action binnen die action-definitie de volgende substrings tegenkomen:

Welke OpenWave methodes kunnen worden gebruikt?

Voor de onderstreepte items geldt dat de substring {id} of {kolomnaam} in de action - indien aangeroepen van een lijstscherm - vooraf vervangen zal worden door de betreffende regel id (de waarde van de primary key van de regel) c.q. de waarde van de genoemde kolomnaam.

openTabPage

Waarschuwing

LET OP: indien openTabPage vanuit een tegelaction wordt aangeroepen kunnen de parameters niet via een query aanroep worden gesubstitueerd. Dat moet in dat geval iets ingewikkelder via een flexaction: bijvoorbeeld de action op de tegel is getflexaction(omgeving_complex_oorsprong,{id}) waarbij de aangeroepen query (in dit voorbeeld omgeving_complex_oorsprong) een openTabPage-aanroep dient te construeren zonder te substitueren variabelen zoals: select 'openTabPage(#omgevingdetail/' | | dnkeyparentverg | | ')' from tbomgvergunning where dnkey = {id}

getFlexList

getFlexDetail

getFlexAction

Voorbeeld

Een voorbeeld van het gebruik van een getFlexAction in de definitie van het lijstscherm van de processtappen (termijnbewakingstappen) bij een zaak, zoals die default wordt uitgeleverd:
De kolom void in MDLC_GeefProcessenoverzicht toont een klikbaar vraagtekenicoon indien de kolom dvprocitemtoelichting op de regel is gevuld (de query achter celvisible) EN indien de instelling Sectie: Termijnbewaking Item: ToelichtingZichtbaar is aangevinkt (de query achter visible).

   <column tagnaam="void">
      <label></label>
      <index>80</index>
      <length>60</length>
      <wavetype>schermknop</wavetype>
      <icoon>28</icoon>
      <showhint>false</showhint>
      <action>getFlexAction(termijnbewaking_toelichting,{id})</action>
      <visible>%query(termijnbewaking_toelichtingzichtbaar)%</visible>
      <celvisible>%query(termijnbewaking_celtoelichtingzichtbaar,{id})%</celvisible>
   </column>
   

Met het aanklikken van het vraagtekenicoontje wordt de query termijnbewaking_toelichting geëvalueerd die aangeroepen wordt met de getFlexAction met de {id} ofwel de dnkey van tbtermijnbewstappen-rij als parameter.
Dat levert de action startWizard(showtekst,' || coalesce(replace(dvprocitemtoelichting,chr(44),chr(32)),'Sorry. Geen toelichting aanwezig') || ',Toelichting op processtap,300)' from tbtermijnbewstappen where dnkey = {id} op, die vervolgens wordt uitgevoerd.

Voorbeeld

Een tweede voorbeeld is de aanroep bij het hooveren over het groepicoontje op de lijst alle zaken (openingsportaal). Die kolom in de MDLC_AlleZakenList.xml is als volgt gedefinieerd.

 <column tagnaam="dnkeygroepvergunning">
      <label>Groep</label>
      <index>10</index>
      <length>40</length>
      <wavetype>icoon</wavetype>
      <icoon>12</icoon>
      <showhint>false</showhint>
      <hooverhint>getFlexAction(groep_inhoudtekst,{dnkeygroepvergunning})</hooverhint>
  </column>

De tag hooverhint moet bij afspraak gevuld worden met de aanroep getFlexAction(querynaam,{id-naam}) waarbij de query een string teruggeeft. Deze string wordt getoond bij het hooveren over de kolom in de lijst, waarbij puntkomma's in de string worden geïnterpreteerd als een harde return.
Voorbeeld: het groepvergunningicoontje in de lijst alle zaken. De hooverhint is hier gedefinieerd als getFlexAction(groep_inhoudtekst,{dnkeygroepvergunning}). Dus de query met de naam groep_inhoudtekst wordt aangeroepen met de parameter dnkeygroepvergunning (uit vwfrmalleaanvragen) van de rij waar de gebruiker over het icoontje hoovert. De query retourneert startdatum, betreft en wavezaakcode van de leden van de groep, gescheiden met een puntkomma.
Door het gebruik van getFlexAction wordt de query pas aangeroepen wanneer daar om gevraagd wordt.

geefGeoVanLokatie

getFlexMemo

getFlexBalloon

noAction

refreshActiveDialog

refreshActiveDialog(parameterlist)

startWizard

Action column:kolomnaam

Heeft dezelfde functie als getFlexAction. Alleen wordt de uiteindelijke uit te voeren actie NIET opgehaald uit een query, maar uit een kolom van de view die aan de lijst ten grondslag ligt.

De tag <action> bij de knop wordt zonder verdere parameters gevuld wordt door de vaste tekst 'column:' die direct gevolgd wordt door een kolomnaam uit de betreffende lijst. De waarde van die kolomnaam bevat de action die uitgevoerd wordt bij het indrukken van de bewuste knop. Het gaat dan om de waarde uit de actieve regel van die lijst. In zo'n kolom staat dus bijv. als waarde: geefGeovanLokatie(1234,tbperceeladressen) en in diezelfde lijst bij een volgende regel geefGeovanLokatie(5678,tbperceeladressen).

Toepassing: zie beheertegel Tabellen Standaardapi en zoek de kaart met dvcode = opening_vwfrmtevolgenzaken.