Businessrules & JavaScript: Ausführungsreihenfolge

Businessrules (Geschäftsregeln) und JavaScript können gut miteinander, solange keine Abhängigkeiten bestehen. Wichtig ist dann die Ausführungsreihenfolge zu kennen:

  1. Custom JavaScripts
  2. Business Rules

Testen kann man dies relativ einfach: Dazu wird eine Businessrule erstellt, welche beim Ändern der Daten des Feldes “Firmenname” die Telefonnummer befüllt:

image

Auf demselben Feld “Firmenname” wird die folgende JavaScript-Funktion registriert:

function setTelephone()
{
      Xrm.Page.getAttribute(“telephone1″).setValue(“+41 31 741 22 22″);
}

Ergebnis: Der Wert von “Telefon” lautet “+41 31 741 11 11”.

Will man also beispielsweise mit Hilfe von Business Rules Feldern Werte zuweisen und dann mit JavaScript den Datensatz speichern, werden die Änderungen nicht gespeichert. In diesem Fall ist es ratsam alles mit JavaScript zu realisieren. Dasselbe gilt, wenn man mit JavaScript auf Daten zugreifen will, welche mit Businessrules gesetzt werden.


Section verbergen mit Businessrules – ohne JavaScript

Eine Section (dt. Abschnitt) auf einem Form verstecken, kann man einfach mit JavaScript:

Xrm.Page.ui.tabs.get(“tab_name”).sections.get(“section_name”).setVisible(false);

Will oder kann man nicht JavaScript verwenden, dann geht dies auch mit Businessrules. Denn sobald alle Felder der Section mit Businessrules versteckt werden, verschwindet auch automatisch die Section.

Vorteil: Auch ein Nicht-JavaScript-Kenner kann so sehr einfach GUI-Anpassungen an einem Formular vornehmen.

Beispiel: Die Section “Adresse” auf der Entität Firma soll versteckt werden, wenn das Feld “Adresse verstecken” den Wert “Ja” enthält.

image

Mit Javascript würde diese wie folgt aussehen:

var showAddress = Xrm.Page.getAttribute(“procrm_toggleaddress”).getValue();
Xrm.Page.ui.tabs.get(“tab_name”).sections.get(“section_name”).setVisible(showAddress)
;

Mit einer Businessrule ohne JavaScript:

image

In beiden Fällen wird die Section nun ausgeblendet wenn “Adresse verstecken” = “Ja”:

image