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. On myös mahdollista saada tietty tietokenttä näkymään entiteetin oikealla puolella, kun entiteetti avataan ja asetettu ehto täyttyy.
Aloitus
Dynaamisten kenttien kaavojen hallinta löytyy kunkin moduulin asetuksista, jonne pääsee reittiä Asetukset → Moduulimanageri ja painamalla painiketta halutun moduulin kohdalla. Itse kaavoihin pääsee valikosta Dynaamisten kenttien kaavat.
Uusi kaava luodaan Uusi kaava -painikkeesta. ”Aja”-kenttä määrittelee ajetaanko kaava esimerkiksi entiteettiä luodessa, tallennettaessa vai entiteettiä. ”Field”-kenttään valitaan kohdekenttä, jonne arvo tallennetaan. ”Formula”-kenttään määritellään haluttu kaava.
HUOM! Kaavan tulee olla yhtenäinen eikä sitä saa rivittää Enter-painikkeella. Jos Enter-painikkeen kautta tehtävään rivittämiseen on tarvetta kaavan pituuden vuoksi, tulee kaava kirjoittaa strip-tagia käyttäen muodossa {strip}{kaava}{/strip}. On kuitenkin otettava huomioon, että {strip} poistaa myös välilyönnit sekä kaavan alusta että sen lopusta, joten mikäli nämä halutaan säilyttää, ei kaavaa voida rivittää Enter-painikkeella.
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.
Aktiivinen kaava, joka ajetaan silloin kun Aja-otsikon alla oleva ehto täyttyy.
Epäaktiivinen kaava merkitään punaisella taustavärillä.
Kaavojen ajaminen
Dynaamiset kenttien laskukaavat ajetaan joko entiteettiä luodessa, hakemalla toiseen kenttään tietoa tai Tallenna–painikkeen painamisen ja itse tietokantaan tallentamisen välissä. Informatiivisten kenttien kaavat tarkistetaan aina entiteettiä avattaessa.
- 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 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.
- HUOM! Kentästä ajettavat kaavat toimivat vain järjestelmän Legacy-versiossa.
Huomioitavia asioita kaavojen ajamisesta
Jos kaava ajetaan ”Tallentaessa”, 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. Staattisia muuttujia käytettäessä järjestys on ratkaiseva, koska muuttujaa voidaan käyttää vain niissä kaavoissa, jotka suoritetaan sen kaavan jälkeen, joka luo käytettävän staattisen muuttujan.
Rivitason kentän kaavat ajetaan aina viimeisenä, joten kaavojen järjestyksellä listauksessa ei ole niin suurta vaikutusta rivitason kaavoihin, ja rivitason kaavan sijoittaminen ensimmäiseksi tarkoittaa vain sitä, että ensimmäisellä sijalla oleva rivitason kaava ajetaan ensimmäisenä rivitason kaavana.
Rajoitukset
- Relaatiokenttä ei voi olla dynaamisen kenttäkaavan kohdekenttä.
- 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).
Rivitason kenttien kaavojen rajoitukset
- 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.
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.
Muita kaavatyyppejä
Informatiiviset kaavat
Informatiivisten kaavojen avulla järjestelmä voi antaa käyttäjille ilmoituksen, joka aktivoituu mikäli kaavassa annettu ehto täyttyy.
Ilmoitukset on jaettu neljään eri tyyppiin ja niiden tekstin voi vapaasti kirjoittaa vastaamaan kaavan tarpeita:
Vaara:
Varoitus:
Ilmoitus:
Onnistunut:
Validointikaavat
Validointikaavojen avulla voidaan esimerkiksi varmistaa se, että kenttään syötettävä arvo vastaa sille asetettuja kriteerejä. Kriteeri voi olla esimerkiksi syötettävän arvon pituus tai mahdollisuus antaa vain numeerinen arvo. Validointikaavoilla voidaan myös esimerkiksi estää samannimisten entiteettien luominen moduuliin – tällaisia kaavoja voidaan käyttää esimerkiksi estämään kahden samannimisen yrityksen luominen järjestelmään.
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. Huom! Ajastetut kenttäkaavat voivat olla myös epäaktiivisia.
Työnkululla aktivoituvat kenttäkaavat
Työnkulun ja dynaamisten kenttäkaavojen yhdistäminen antaa käyttäjille mahdollisuuden päivittää tietoja tallennetun entiteetin ulkopuolella. Tästä on saatavilla lisää tietoa ohjeessa Linkitettyjen entiteettien tietojen päivitys.
Esimerkkejä dynaamisista kenttäkaavoista
Olemme keränneet tietoa kenttäkaavojen kirjoittamisesta ja yleisimmin käytetyistä kaavoista omaan artikkeliinsa Malleja dynaamisista kaavoista.