Microsoft Dynamics CRM 2011 | Eigene Mehrfachsuchfelder

Blickt man auf die Liste der am häufigsten vermissten Funktionen von Microsoft Dynamics CRM, stößt man unweigerlich in der TOP 10 Liste auf eigene “Customer – Lookups”.

Lookup_FormViele benötigen in Ihren xRM Projekten die Möglichkeit von Mehrfach-Suchfeldern auf eigene oder System-Entitäten. Glücklicherweise lässt sich ein solches Mehrfach-Suchfeld jedoch mit geringem Programmier-Aufwand nachstellen. Zu beachten ist dabei lediglich, dass es nicht nur auf der Form integriert werden sollte, sondern sich auch Gedanken dazu gemacht werden, wie die Nutzer nach dem Inhalt dieses Feldes suchen würden.

Mit einem Beispiel will ich Euch den Ansatz hier näher bringen. Zunächst sind auf einer eigenen Entität (Projekte) drei Suchfelder (Firma, Kontakt, Lead) hinzugefügt wurden. Lookup_CustomizingDas Firmen-Suchfeld werden wir dabei so manipulieren, dass aus einem einfachen Suchfeld ein Mehrfach-Suchfeld wird. Darüber hinaus füge ich der Maske jedoch auch 3 weitere Felder hinzu:

– CustomerGUID,

– CustomerType und

– CustomerName

Für Letzteres erlaube ich die Suche in Erweiterten Suchen, alle anderen Felder schließe ich aus der Erweiterten Suche aus.

Die Bezeichnung des Firmen-Suchfeldes benenne ich in “Kunde” um.

Nun benötigen wir ein wenig JScript im OnLoad, OnSave und OnChange-Ereignis des Firmen-Suchfeldes, um aus dem einfachen Suchfeld ein Mehrfach-Suchfeld zu generieren und dafür zu sorgen, dass der jeweils ausgewählte Name im Feld CustomerName zu finden ist, damit über ein Feld der Kunde über eine Erweiterte Suche recherchiert werden kann.

Ihr findet die einzelnen Scripte im Ordner MultipleLookup auf meinem SkyDrive.

Lookup_Customer_Account

Wenn Ihr die Scripte und Felder integriert habt, wir aus dem einfachen Suchfeld Firma ein Mehrfach-Suchfeld. Ihr könnt jetzt sowohl eine Firma, als auch einen Kontakt oder auch einen Lead auswählen.

Lookup_Customer_Contact

Dabei funktionieren alle Schaltflächen, wie Ihr es gewohnt seid. D.h. als Nutzer kann ich auch neue Datensätze anlegen oder mir Eigenschaften von ausgewählten Datensätzen anzeigen.Lookup_Customer_Lead

Diese Manipuliation lässt sich natürlich auch mit nicht System-Eigenen Entitäten durchführen.

Dazu gilt es das Mehrfach-Suchfeld korrekt zu initialisieren. Hierfür sind im OnLoad-Code folgende Zeilen zuständig:

lookuptypeIcons: Hier werden die Verweise zu den Icons vorgenommen.

lookuptypenames: Hier werden die Parameter Entität:ObjectTypeCode:Schemaname der verwendeten Entitäten gesetzt.

lookuptypes: Hier werden als Komma-separierte Liste noch einmal die ObjectTypeCodes deklariert.

Lookup_Customer_Lead_selectedDa wir im OnChange-Ereignis noch unsere drei zusätzliche Felder füllen, sollte es bei Euch bei Auswahl eines Leads ungefähr so aussehen.

Lookup_Form_Contact_selected

Und sofern ein Kontakt ausgewählt wurde ungefähr so.

In einer Produktiv-Umgebung sollten diese Felder natürlich auf der Maske ausgeblendet werden.

In der Erweiterten Suche können wir mit einem einheitlichen Feld “Kunde (Customer)” nach den zugewiesenen Werten suchen und müssen nicht in drei unterschiedlichen Feldern suchen.

Des Weiteren lässt sich dieses Feld auch für das Berichtswesen heranziehen.

Bleibt noch eine letzte Frage offen: Ist der Code supported?

Nicht zu 100% – denn es werden vorhandene Klassen und Funktionen genutzt und manipuliert. Sofern hier mit einem Update-Rollup an der Display Class “ms-crm-Lookup-Item” Umbenennungen erfolgen, wird unser Code nicht mehr funktionieren.

Bis dahin, so denke ich, wird es aber wohlmöglich auch bereits eine native Unterstützung für Mehrfach-Suchfelder geben. Daher ist der Code bedenkenlos in Projekten einzusetzen.

Ich wünsche viel Spass in der Umsetzung und freue mich über Eure Kommentare

 

Technorati Tags:

2 Gedanken zu “Microsoft Dynamics CRM 2011 | Eigene Mehrfachsuchfelder

  1. Hallo Carsten,
    danke für das Script. Was muss ich bei getAttribute(„cg_accountid“); eingeben? Sollte das nicht einfach accountid heissen? Oder muss man das cg_accountid als new_accountid selbst zuvor neu anlegen?
    Danke Gruss Pit

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