Soms wil je in CRM een veld berekenen dat afhankelijk is van een optieset. Denk hierbij bijvoorbeeld aan btw, aantal items of gewogen waarden. Hoe kun je dit nu ‘eenvoudig’ doen?

Je moet natuurlijk wel een beetje kijk hebben op Java-scripting en de variabelen en structuur binnen CRM. Deze websites kunnen je erbij helpen:

 
Als start maak je in Web resources een resource aan. Dit bereik je via Instellingen/aanpassingen/Het systeem aanpassen.
 
 
 
Daar maak je een web resource aan waarin je het script kunt aanmaken.


Je vult een naam en weergavenaam in, je kiest het type bijvoorbeeld Script, taal .Hierna klik je op teksteditor. Je krijgt nu de mogelijkheid om een Java script functie te maken.

 
Nadat je het opgeslagen en gepubliceerd hebt kun je naar de volgende stap. Dit script kun je gebruiken als een record geladen, opgeslagen of een veld veranderd wordt, onload, onsave of onchange. Deze instellingen vind je in de eigenschapen van het formulier of veld.
 
In bijvoorbeeld de Form. Eigenschappen voeg je in de Formulierbibliotheek je net gemaakte Script toe.
 
Gevolgd door in de onload gebeurtenis omgeving het gebruik van de Java functie te activeren. Druk op plus, kies de bibliotheek, vul de functie in zoals je hem in je script hebt genoemd, laat het vinkje ‘ingeschakeld’ aan staan, klik een twee maal op OK, sla je formulier op en publiceer het.
 
Nu is je script actief, natuurlijk moet je het testen.
Let op! Scripten is niet ongevaarlijk. Als je een fout maakt kan dit grote gevolgen hebben, dus werk op een testomgeving voordat je het naar een productie omgeving gaat.
Totslot het gebruikt script (let op de hoofd- en kleine letters):
function GewogenOmzet()
{
var oppcode = Xrm.Page.getAttribute('opportunityratingcode').getValue();
var waarde1 = Xrm.Page.getAttribute('estimatedvalue').getValue();
 
if (oppcode != null)
 {
   // oppcode 1 = Heet
   if (oppcode == 1)
 {
                var result = waarde1 * 0.8;
                Xrm.Page.getAttribute('new_weightedestrev').setValue(result)
 }
   // oppcode 2 = Warm
   else if (oppcode == 2)
 {
                 var result = waarde1 * 0.3;
                Xrm.Page.getAttribute('new_weightedestrev').setValue(result)}
   // oppcode 3 = Koud
                else if (oppcode == 3)
                               {
                                var result = waarde1 * 0.15;
                                Xrm.Page.getAttribute('new_weightedestrev').setValue(result)
                               }
   else
   {
  // Handle issue
    }
 }
}