Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.

...

THEN blocket innehåller de beräkningar som skall utföras då villkoret i WHEN blocket är uppfyllt. Denna delan delen kallas ofta RHS, right hand side

Exempel

Kodblock
languagejava
when

  $q: Questions()

  eval($q.get("vikt") != null)

  eval($q.get("längd") != null)

  eval($q.get("längd") > 0)

then

    Double bmi = $q.get("vikt") / ($q.get("längd")/100 * $q.get("längd")/100);

    outcome.set(bmi);

end

Fakta

Fakta är något som vi vill använda i vår beräkning. Fakta från formuläret är en lista med alla frågor och dess svar, namnet på denna lista är Questions.

Questions måste man själv göra tillgänglig som en egen variabel, i exemplet nedan kallar vi variabeln för $q.

Questions innehåller då nyckel/värde par där nyckel är Frågans id och värde är svaret på frågan.

...

Resultatet för beräkningen, som vi själva skall sätta, finns alltid tillgängligt i then-blocket med namnet outcome

...

Kodblock
when
  ....
then
  Double bmi = $q.get("vikt") / ($q.get("längd")/100 * $q.get("längd")/100);
  outcome.set(bmi); // här sätter vi värdet på outcome

end

Beskrivning av objektet Outcome

...

Man kan skapa egna variabler som sedan kan användas i en formel. Man måste själv sätta vilken datatyp som avses för variabeln och det är Javas datatyper, primitiver och klasser,  som finns tillgängliga att användas. Man

Tänk på att syntaxen för variabelnamn skiljer på versaler och gemener vilket innebär att namnet undervikt vikt inte är samma som underVikt Vikt.

Se längre ner för beskrivning av Javas datatyper

...

Syntax och Java dialekt

För att skriva Drools kod beräkningar så använder vi oss av Drools egna DSL samt Java syntax. Drools DSL (Domain Specific Language) är specific syntax och för att skriva Drools regler använder vi Drools Rule Language (DRL), dock är det bara en delmängd av DRL:en som används vid en resultatberäkning. Det är alltså Java syntax till stor del som styr hur en beräkning skrivs och i Java syntax så finns det en del regler som måste följas men det innebär också att vi får tillgång till Javas operatorer, flödeskontroller, primitiver och standard klasser. För att skriva enkla beräkningar så behöver man inte vara en fullfjädrad programmerare utan det räcker långt att man tittar på de kodexempel som finns för att göra sin beräkning. Om man sedan vill göra en mer avancerad beräkning så hjälper det självklart om man har grundläggande förståelse om programmering och då gärna specifikt för Java.

...

En operator används när du vill utföra en operation på en variabel. Nedan följder några vanliga operatorer:

...