Yleistä
Tähän artikkeliin kerätään tiedossa olevat yleisimmät kenttäkaavoihin liittyvät virheet.
Kaava yrittää tehdä kenttään liian pitkän merkkijonon
Jokaiselle CRM-järjestelmän kentälle on asetettu maksimipituus. Tämä voi tuottaa ongelmia tapauksissa, joissa kenttään tuodaan kaavalla tietoja jotka ylittävät kentän sallitun maksimipituuden. Näin voi käydä esimerkiksi silloin kun kaava kerää yhteen kenttään tietoja useammasta eri kentästä.
Ratkaisu tähän on kääriä tehty kaava seuraavanlaisen kaavan sisään:
{capture assign="laske_pituus"}TÄHÄN OLEMASSA OLEVA KAAVA{/capture}{$laske_pituus|truncate:<kentän_pituus_numerona>:""}
Esimerkissä on muuttuja laske_pituus joka laskee kaavan tuottaman lopputuloksen pituuden. Tässä voidaan käyttää laske_pituus-muuttujan tilalla myös itse nimettyä muuttujaa kunhan se ei ole minkään kentän nimi ja nimi ei sisällä ääkkösiä (eli esim. väliaikaispituus ei kelpaa, mutta valiaikaispituus hyväksytään). Tämä käsitellään lopuksi käyttäen truncate-muuttujaa jonka arvona on kentän pituus (numerona).
Muuttuja truncate katkaisee kenttään asetetun tekstin siihen pituuteen, joka kaavassa on annettu. Muuttujan perään tulee laittaa :”” kuten esimerkkikaavassa, sillä muuten katkaisukohdan jälkeen tulee kolme pistettä (…) joka sitten kasvattaa merkkimäärää kolmella. Mutta mikäli haluat pisteiden näkyvän katkaisun merkiksi voit vähentää kentän pituudesta tämän kolme merkkiä, jolloin pisteille riittää tilaa.
Eli mikäli yritämme laittaa maksimissaan 10 merkkiä sisältävään kenttään sanan voileipäkakku, voisimme saada seuraavanlaiset lopputulokset:
Esimerkki 1: voileipäkakku|trucate:10:”” = voileipäka
Esimerkki 2: voileipäkakku|truncate:7 = voileip…
Matemaattiset laskutoimitukset, joissa on tyhjiä tai ei-numeerisia arvoja
Kun teet matemaattisia laskutoimituksia kaavoissa, kaikkien käytettyjen arvojen on sisällettävä numeerinen arvo. Jos laskennassa tarvittava kenttä ei vielä sisällä arvoa, esimerkiksi kun tietue luodaan ensimmäisen kerran, muuttujalle voidaan antaa oletusarvo määritteellä `default`.
{math equation="a+b" a=$field1|default:0 b=$field2|default:0}
Huomaa myös, että kentän arvo saattaa muuttua suorituksen aikana edellisestä kaavasta, ja on erittäin tärkeää varmistaa, että tulos on kelvollinen numeerinen arvo. Yleisimpiä virheitä tapahtuu, kun kaavan tuloksena on arvo, jossa on perässä välilyöntejä.
Nollalla jakaminen
Varmista aina, että kaava ei johda jakoon nollalla. Helpoin tapa välttää tämä on lisätä laskutoimituksen ympärille ehto:
{if $my_field != 0}{math equation="a/b" a=1 b=$my_field}{else}1{/if}
Kenttien nimeämiserot
Riippuen siitä, missä dynaamisen kentän kaavaa käytetään, kenttien nimillä voi olla muunnelmia. Jos siis dynaaminen kenttäkaava ei toimi, kannattaa tutustua artikkeliin Kenttien nimeämiseroja Legacy vs REST/CRM2.