Microsoft Dynamics CRM 2011 | JScript Bibliothek oder nicht

Mit jedem Migrationsprojekt von CRM 4.0 auf Microsoft Dynamics CRM 2011 stellt sich erneut die Frage, ob man einzelne an den Entitäten “haftende” Scripte in eine Code-Bibliothek überführen sollte. Sicherlich habt auch Ihr Euch diese Frage schon gestellt.

Nicht nur unter dem Gesichtspunkt der Wiederverwendung von Funktionen solltet Ihr über zentrale Code-Bibliotheken nachdenken, sondern auch vom Standpunkt der Wartbarkeit und nicht zuletzt der Performance.

JSBibl_Script_in_actionHierzu nachfolgend ein simples Beispiel. Ihr alle kennt den Optionssatz Adresstyp und das Feld Adressname. Da Microsoft Dynamics CRM bei der Auswahl von Liefer- und Rechnungsadresse mit dem Adressnamen arbeitet, ist es sinnvoll, bei Auswahl eines Adresstyps im Optionssatz den Wert automatisch in das Feld Adressname zu übernehmen. Grundsätzlich kein Problem, konnte man dies mit wenigen Script-Zeilen in CRM 4.0 umsetzen.

crmForm.all.(picklistitem).SelectedText half, den Text zu ermitteln und crmForm.all.(attribute).DataValue = crmForm.all.(picklistitem).SelectedText übertrug den Wert in das Zielfeld.

Problematisch nur, das die Felder Adresstyp und Adressname gleich mehrmals im Standard vorkommen. Sich somit diese Script-Zeilen gleich in mehreren Entitäten eingebunden befinden.

Um die Vorteile von Microsoft Dynamics CRM 2011 optimal zu nutzen, empfiehlt es sich gleich zwei neue Funktionen zu nutzen.

  1. eine zentrale JScript-Bibliothek mit einer oder mehrerer Funktionen, die sich immer wieder nutzen lässt.
  2. Die Parameterübergabe inkl. dem Ausführungskontext

JSBibl_Feldeigenschaft

Nehmen wir also unser Adresstyp-Feld, fügen dem Formular unsere allgemeine JScript-Bibliothek hinzu und fügen im OnChange-Ereignis unseren Funktionsaufruf hinzu.

JSBibl_Händlereigenschaft

Und bei der Konfiguration der Händler-eigenschaft übergeben wir den Ausführungs-kontext und geben einen weiteren Parameter (unser Zielfeld) mit “” an.

Bei der Parameterangabe unbedingt “” verwenden und diese Trennzeichen-getrennt angeben.

Beispiele für die Auswertung von Parametern im Code findet Ihr hier.

Bleibt nur noch die Frage, wie sieht denn eigentlich die Funktion in unserer Code-Bibliothek aus?

Wie immer bei meinen Code-Beispielen, findet Ihr die .js Datei auf meinem SkyDrive im Verzeichnis CRM2011_Scripts.

 

Welchen Vorteil haben wir durch diese Funktion?

1. Sie lässt sich in jede Form integrieren, in der wir aus einem Quellfeld den Wert an ein Zielfeld übergeben wollen.

2. Die Funktion arbeitet nicht nur mit Picklisten, sondern auch mit Suchfeldern (Lookups) oder reinen Textfeldern.

3. Der Funktion wird der Ausführungskontext als Quelle übergeben und ein Zielfeld als Parameter übergeben

4. Wir können X-Browser-Kompatible Funktionen zur Verfügung stellen.

5. Die Funktion lässt sich leicht erweitern, wollte man mehrere Parameter als Ziel übergeben.

 

Im Endeffekt mag es komisch klingen, dass die Performance des Systems besser ist. Bedarf es doch deutlich mehr Zeilen, als dies direkt als einzelne Quellcode-Zeile an jedem Feld zu hinterlegen. Aber im Endeffekt darf man nicht vergessen, das üblicherweise in einer Bibliothek mehr als eine Funktion beinhaltet ist.

Viel Spaß bei den Tests.

Technorati Tags:

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s