Dynaamiset kenttien kaavat

Dynaamiset kenttien kaavat

Yleistä

Dynaamisilla laskukaavoilla voidaan entiteetin sisällä mm. laskea arvoja, muodostaa ehtolauseita, tehdä kenttien sisällön formatointia jne. Dynaamisilla laskukaavoilla voidaan myös hakea liitännäismoduuleista tietoa laskennan kohteena olevaan entiteettiin tai laskea rivitasolle arvoja. Dynaamisiin kenttien kaavoihin pääsee kunkin moduulin ylävalikon Asetukset-painikkeesta  tai kohdasta Asetukset → Moduulimanageri.

Dynaamiset kenttien laskukaavat ajetaan joko entiteettiä luodessa, hakemalla toiseen kenttään tietoa tai Tallennapainikkeen painamisen ja itse tietokantaan tallentamisen välissä. Informatiivisten kenttien kaavat tarkistetaan aina entiteettiä avattaessa.

Jos kaava ajetaan ”Tallentaessa” tai ”Kentästä”, on tärkeä huomata, että se ajetaan vain, jos entiteetti otetaan muokkaustilaan ja tallennetaan. Kaavaa ei siis ajeta, jos kaavan kohdekenttää pikamuokataan tai massamuokataan, tai jos kaavaan liittyvään kenttään tuodaan tietoa CSV:n tai integraation kautta.

Aja kaavat -toiminnolla pääset ajamaan kaikkien kyseisen moduulin entiteettien laskukaavat kerralla. Tämä mahdollistaa esimerkiksi tietojen päivittämisen ja muotoilun kentästä toiseen esimerkiksi erinäisten tietohuoltojen yhteydessä. Tämä toiminto ylikirjaa kaikkien olemassa olevien entiteettien tietoja kaavojen mukaisesti. Kaavojen ajaminen kerralla on mahdollista korkeintaan 5000 entiteetille.

Kaavat ajetaan siinä järjestyksessä, jossa ne esiintyvät kaavojen listauksessa. Ajojärjestystä voi muuttaa raahaamalla kaavaa ylös / alaspäin listalla.

Uuden kaavan luominen

Uusi kaava luodaan Uusi kaava -painikkeesta. ”Aja”-kenttä määrittelee ajetaanko kaava esimerkiksi entiteettiä luodessa, tallennettaessa vai toiseen kenttään tietoa hakiessa. ”Field”-kenttään valitaan kohdekenttä, jonne arvo tallennetaan. ”Formula”-kenttään määritellään haluttu kaava.

  • Jos kaavan ajo tapahtuu Tallennettaessa, ajo tapahtuu aina, kun muokkaamisen päätteeksi painetaan Tallenna-painiketta.
  • Jos kaavan ajo tapahtuu Luodessa, ajo tapahtuu, kun entiteetti ensimmäisen kerran luodaan.
  • Jos kaava ajetaan Kentästä-vaihtoehdolla, ajon aktivoi muutos tietyssä toisessa kentässä. Tämän ajon aktivoiva kenttä määritellään luotaessa ”Aja”-kentän oikealle puolelle ilmestyvästä valintalistasta.
  • Jos kaavan ajo tapahtuu Validoidessa, ajo tapahtuu, kun muokkaamisen päätteeksi painetaan Tallenna-painiketta. Tällöin kaava tarkistaa kentän sisällön ja jos sisältö ei ole kaavan mukainen, antaa kaava tästä ilmoituksen ja estää entiteetin tietojen tallentumisen. Tällä toiminnolla tehdään validointikaava.

Tämän sivun alareunassa on esimerkkejä kaavoista, joita voidaan käyttää eri ajotavoissa.

Melkein jokaisessa moduulissa pystyy kaavojen alla myös valitsemaan Aja-kenttään toiminnon Katseltaessa. Tällöin kaava ajetaan, kun Tallenna-painiketta painetaan. Tällä toiminnolla tehdään informatiivinen kaava, joka informoi ehdon täyttyessä käyttäjää kaavan viestillä entiteettikortin oikeassa reunassa. Huomattavaa on, että ajo ”Katseltaessa” ei estä tietojen tallentumista esim. kentän virheellisen sisällön vuoksi, toisin kuin ajo ”Validoidessa”. Jos kaavat rakennetaan vain if (jos) -lauseella, informatiivinen kenttä näytetään vain kun if-lauseen ehdot täyttyvät. Jos kaavan perään lisätään else (muuten) -ehto, voidaan kaava rakentaa niin, että informatiivinen kenttä näytetään, kun else-ehto täyttyy.

Jos kenttä on tyyppiä onnistunut, on viesti seuraavan näköinen:

Jos kenttä on tiedote:

Jos kenttä on varoitus:

Jos kenttä on vaara:

Uusi kaava aktivoidaan painamalla Toiminnot-otsikon alta valintaa Aktivoi. Tällöin kaava on aktiivinen, eikä sen käyttöön ottamiseksi tarvitse Aja kaavat -toimintoa. Alla olevista kuvissa on esitetty aktiivisen (vasen) ja disabloidun (oikea) kaavan Toiminnot-kohta.

Rajoitukset

  • Dynaamiset kaavat eivät toimi moduulityökaluissa. Jos moduulityökalulle halutaan asettaa jotain toimintoja, tulee tähän käyttää moduulityökalun parametreja (ks. ohje Moduulityökalut).
  • Dynaamiset kaavat voivat laskea tuloksia vain ”edit” tai ”read only” -tiloissa näkyvillä oleviin kenttiin (”Näkyvissä vain lukutilassa” -kenttiin ei voida laskea tuloksia).
  • Moduuleissa, joissa on rivitason tietoja (esim. Lasku, Myyntitilaus, Tarjous), riveillä olevaa tietoa ei voida käyttää osana päätason kentän dynaamista kaavaa tai päinvastoin (lue lisää rivitason kaavoista alempana).
  • Vain Legacy:Pikamuokkaus (kenttäkohtainen tiedon muokkaus) tai massamuokkaus ei laukaise kaavojen laskemista.
  • Vain Legacy: Dynaamiset kaavat eivät aktivoidu tuotaessa tietoa sisään CSV-tiedostona. (saatavilla oma työkalu jolla, kaavat voidaan ajaa on saatavilla tukiportaalin kautta)
  • Ajaessa kaavaa ”Kentästä”-vaihtoehdolla, tulee aktivoivaan kenttään hakea tietoa toisesta moduulista.

Dynaamiset kaavat rivitason kentissä

Dynaamisia kaavoja on mahdollista luoda myös rivitason kenttiin, joita on esimerkiksi tarjouksilla, myyntitilauksilla ja laskuilla. Tämä mahdollisuus ei ole oletuksena aktivoituna, mutta sen voi kytkeä päälle kohdasta Asetukset → Lisäasetukset aktivoimalla Rivitason toiminnot alta kohdan Aktivoi dynaamiset kaavat rivitason kentille.

Rivitason kentissä käytettävissä kaavoissa on kuitenkin pari rajoitetta, jotka tulee ottaa huomioon:

  • Rivitason kentän dynaaminen kaava voidaan ajaa vain ”Tallennettaessa” tai ”Luodessa”.
  • Rivitason kentän kaavassa ei voida käyttää osana tietoja entiteetin päätason kentistä (esim. tarjouksen nimi, eräpäivä, ym. ”normaalit” kentät) tai päinvastoin.

Ajastetut kenttäkaavat

Dynaamiset kenttä kaavat voidaan ajastaa ja ajaa taustalla. Tätä voi käyttää esimerkiksi laskentakaavojen kanssa jolloin ei tarvitse avata ja tallentaa entiteettiä nähdäkseen tuoreen laskennan. Lisätietoa kuinka ajastetut kaavat tehdään löydät täältä: Ajastetut toiminnot

Esimerkkejä kaavojen käytöstä

Alla on listattu esimerkkejä dynaamisten kenttien kaavoista sekä siitä, milloin kyseisen kaavan ajo voisi olla sopivinta suorittaa. Ohjeen kaavoissa on käytetty värikoodausta havainnollistamaan sitä, mitkä osat kaavassa todennäköisesti muuttuvat eri tarpeiden mukaan. Sinisellä merkityt kohdat ovat moduulin kenttien tunnuksia (id), jotka tulee vaihtaa vastaamaan juuri käytettävien kenttien tunnuksia. Oranssilla merkityt kohdat kuvaavat tietyn kentän arvoa. Punaisella merkityt kohdat ovat muuttuvia tekijöitä, jotka vaikuttavat kentän lopputulokseen. Näitä kohtia ovat esimerkiksi numeroarvo, johon kentän sisältöä verrataan, tai käyttäjälle näytettävä viesti kentän sisällön virheellisyydestä.

Enemmän erimerkkejä erilaisista kaavoista on sivulla Malleja dynaamisista kaavoista.

 

Ajo tallennettaessa

Potentiaalin päivittäminen 100%, jos potentiaalin tila muuttuu toteutuneeksi kaupaksi

{if $sales_stage=='Closed Won'}100{else}{$probability}{/if}

Yllä oleva kaava muuttaa potentiaalin kentässä probability arvoon 100, jos sales_stage-kentän tila on ”Closed Won”. Muussa tapauksessa muutoksia ei tehdä.

 

Ajo luodessa

Voimassaolopäivän asettaminen kahden viikon päähän, jos voimassaolo-kenttä on tyhjä

{if $validtill ==''}{assign var='t' value='+ 14 days'|strtotime}{'Y-m-d'|date:$t}{else}{$validtill}{/if}

Yllä oleva kaava varmistaa, että kenttä validtill on tyhjä. Jos on, lisää se siihen päivämäärän, joka on nykyisestä päivämäärästä 14 päivää eteenpäin. Jos kenttä ei ole tyhjä, ei sille tehdä muutoksia.

 

Ajo kentästä

Asiakasnumeron haku asiakkaalta

{$account_id|getEntityFieldValue:'account_no'}

Kaava hakee kenttään entiteettiin merkityn asiakkaan asiakasnumeron. Jos asiakasnumero asiakkaalla vaihtuu, muuttuu se myös tässä kentässä.

 

Ajo katseltaessa

Kentän täytetystä arvosta ilmoittaminen

{if $passivation_date!= ""}Kontakti on passivoitu{/if}

Kaava varmistaa, onko kentän ”passivation_date” arvo tyhjä. Jos se ei ole tyhjä, annetaan ilmoitus ”Kontakti on passivoitu”.

 

Ajo validoidessa

Virheellisestä maakoodista ilmoittaminen

{if $bill_country|count_characters > 2}Laskutusmaa on väärässä muodossa: Suomi = FI, Ruotsi = SE, Norja=NO ja Tanska=DK{/if}

Kaava tarkistaa annetun maakoodin pituuden ja jos se on pidempi kuin kaksi merkkiä, antaa se ilmoituksen ”Laskutusmaa on väärässä muodossa…”. Tiedot eivät tallennu, jos ilmoitus annetaan.

Suodattimet legacy-käyttöliittymässä
Dokumenttipohjat – Tägien käyttö ODF-/OOXML-pohjissa
Dynaamiset kenttien kaavat
Combined Shape