Öffnen von Dateifreigaben aus Microsoft CRM 201x

Eine häufige Anforderung in Projekten ist die Möglichkeit, aus einem Microsoft CRM Datensatz heraus eine Dateifreigabe zu öffnen. Dies sind zum Beispiel Netzlaufwerke, auf welchen Daten für Projekte liegen. Leider ist dies mit Bordmitteln nicht ohne weiteres möglich. Ich kann natürlich einen UNC Pfad (file://Freigabe) in einem Textfeld erfassen, aber dieser wird nicht als Hyperlink formatiert. Über Kopieren -> Einfügen geht es natürlich immer. Wie Sie viel einfach per Klick diesen Pfad öffnen können, erläutert dieser Artikel. Dabei wird so soweit als möglich auf Programmierung verzichtet, auch wenn es nicht völlig ohne geht.

Voraussetzungen

Der Grundgedanke der Lösung ist, ein Feld einzufügen, in welcher der UNC Pfad in Klartext steht. Über eine neu eingefügte Schaltfläche wird ein JavaScript ausgeführt, welches den Inhalt des Feldes liest und über die Funktion windows.open() die Freigabe öffnet.

Um eine Schaltfläche einzufügen, eignet sich die CRM Erweiterung Ribbon Workbench for Dynamics CRM. Diese können Sie hier herunterladen. Fügen Sie diese Lösung Ihren Microsoft CRM hinzu. Falls noch nicht vorhanden, müssen Sie noch Microsoft Silverlight installieren. Dieses finden Sie als Download hier.

TIPP: Wenn Sie in einer virtuellen Maschine arbeiten und keine Verbindung zu Laufwerken des Hosts haben, können Sie mit dem ISO Recorder eine ISO Datei erzeugen und diese dann in einem Laufwerk des Gastes verwenden. Den ISO Recorder finden Sie hier.

In meinen Beispiel möchte ich die Entität Acount bzw. Firma anpassen. Dazu habe ich dieser ein Textfeld mit dem Schemaname new_dateifreigabeprojekte hinzugefügt. Dazu habe ich eine eigene Lösung genutzt, welche vorerst nur die Entität Firma enthält. Dies ist wichtig, wie wir gleich sehen werden.

JavaScript erstellen und einbinden

Damit auf das Feld zugegriffen werden kann, erstellen Sie eine Textdatei mit dem Namen OeffneFreigabe.js und darin den folgenden Code, welchen Sie anschießend speichern.

function FreigabeOeffnen()

{

window.open(Xrm.Page.getAttribute(’new_dateifreigabeprojekte ‚).getValue());

}

Gehen Sie zu der Lösung Firma und klicken Sie links im Baum auf Webressourcen. Klicken Sie auf Neu und geben Sie der Ressource den Namen OeffneFreigabe, als Typ wählen Sie Script und laden die Datei hoch, welche wir gerade erstellt haben. Speichern und veröffentlichen Sie die Lösung.

Schaltfläche hinzufügen

Öffnen Sie nun die Lösung Ribbon Workbench for Dynamics CRM. Diese wird Sie zuerst fragen, welche Lösung importiert werden soll, in welcher Sie Anpassungen vornehmen möchten. Öffnen Sie die eben erstellte Lösung Firma und klicken Sie in der Mitte auf account. Sie haben im oberen Drittel drei Menübänder. Für uns ist das dritte Menüband Form interessant. Dies wird aufgerufen, wenn ein einzelner Datensatz angezeigt wird. Zeigen Sie in der Toolbox links auf Button und ziehen Sie diesen hinter Connect.

Klicken Sie dann in die Eigenschaften der Schaltfläche rechts und füllen Sie die Felder

  • AltText
  • Description
  • LabelTextText
  • ToolDescriptionText
  • ToolTipTitelText

mit der Beschriftung Öffne Dateifreigabe.

Klicken Sie jetzt in der Mitte mit der rechten Maustaste auf Command und dort auf Add New.

Öffnen Sie danach Command und klicken Sie auf neu erstellte Kommando.

Klicken Sie in den Eigenschaften rechts auf das Lupensymbol neben Actions und dann Add. Wählen Sie Javascript Function Action. Als Funktionsname tragen Sie FreigabeOeffnen ein. Klicken Sie auf das Lupensymbol neben Library und wählen Sie die JavaScript Datei aus. Bestätigen Sie alle Änderungen mit OK.

Klicken Sie wieder auf die neu erstellte Schaltfläche und wählen Sie in den Eigenschaften unter Command das neue Kommando aus. Klicken Sie anschließend auf Publish. Gehen Sie nach dem Abschluss der Veröffentlichung in einen Firmendatensatz, ggf. müssen Sie die Ansicht mit F5 aktualisieren. Die Schaltfläche sollte jetzt da sein und die Dateifreigabe öffnen, sofern das Feld einen sinnvollen Wert aufweist.

Vielen Dank für Ihr Interesse an meinem Blogeintrag.
Gerne beantworte ich Ihnen persönlich weitergehende Fragen zu diesem Thema.
Kontaktieren Sie mich einfach über mein Kontaktformular.

Sie wollen mehr über mich erfahren? Dann gehen Sie auf meine Site
http://www.nicothiemer.de

Nico Thiemer

Bilder in Entitäten in Microsoft Dynamics CRM 2013 erfassen

Eine der Neuerungen in Microsoft Dynamics CRM 2013, welche natürlich auch in Microsoft Dynamics CRM 2015 zur Verfügung steht, ist die Möglichkeit, einem Datensatz Bilder hinzuzufügen. Damit kann z.B. in einer Firma ein Logo oder bei einem Kontakt ein Foto hinterlegt werden. Diese Möglichkeit besteht auch bei Entitäten, welcher man selbst erstellt. Leider ist der Weg dazu nicht besonderes intuitiv. Dieser Artikel beschreibt zum einen die Einschränkungen, welche vorhanden sind und zum anderen, wie sie eigene Entitäten mit einem Bild versehen können.

Einschränkungen bei der Verwendung von Bildern

Die folgende Auflistung gibt eine Liste der Einschränkungen wieder, ohne einen Anspruch auf Vollständigkeit zu erheben.

  • Sie können pro Datensatz nur ein Bild verwenden. Brauchen Sie mehr Bilder, so könnten Sie einen Dienst über einen IFrame einbinden.
  • Ein Bild kann nicht beim Erstellen einer Entität ausgewählt werden. Es ist also nicht möglich, ein Standardbild auszuwählen.
  • Die Anzeige erfolgt immer an einem vordefinierten, festen Platz an der Maske. Diese ist immer links neben der Bezeichnung des Datensatzes und stellt immer das Symbol eines Menschen dar. Um ein Bild hinzuzufügen, klicken Sie auf das Bild, worauf sich ein Dialog öffnet.

  • Anzeige erfolgt immer in JPG. Andere mögliche Formate werden konvertiert. Dies ist besonders schlecht, wenn transparente Kanäle konvertiert werden. Diese Flächen erscheinen dann schwarz.
  • Das Bild hat immer eine Größe von 144 x 144 Pixel, egal wie groß das Bild ist, welches Sie hochladen. Größere Bilder werden beschnitten. Von daher ist das Limit von fünf MB für den Upload ohne Belang.

Bild einer Entität hinzufügen

Um ein Bild einer neuen Entität hinzuzufügen, muss diese zuerst erstellt und gespeichert sein. Man kann zwar unmittelbar beim Erstellen einer Entität ein Dropdown klicken, dieses ist aber zu diesen Zeitpunkt ohne Belang. Natürlich gilt das hier und weiter unten gesagte auch für die Systementitäten.

Wenn jetzt die Entität aufgerufen wird, ist die Möglichkeit ein Bild hinzuzufügen, noch nicht vorhanden, die Schaltfläche zum Hinzufügen eines Bildes fehlt.

 

 

 

 

Um dies zu ermöglichen, müssen Sie der Entität ein Feld vom Typ Bild hinzufügen. Dies können Sie auch nur einmal und der Schemaname des Feldes entityimage ist immer gleich. Der Schemaname ist ausgegraut und kann auch nicht geändert werden.

Wenn Sie versuchen, ein Feld dieses Typus erneut hinzuzufügen, erhalten Sie einen Fehler.

Nachdem das Feld vom Typ Bild hinzugefügt wurde, ist das Feld Primäres Image schon automatisch mit dem Feldname des Bildes vorbelegt. Wollen Sie kein Bild mehr, ändern Sie den Wert.

Wenn Sie jetzt das Formular aufrufen, ist immer noch kein Bild vorhanden, auch wenn Sie die Änderung veröffentlicht haben. Vielmehr müssen Sie das Formular noch anpassen. Dies hat den Sinn, das das Bild nicht in jedem Formular dargestellt wird. Bearbeiten Sie dazu das Formular, welches das Bild zeigen soll und lassen Sie sich die Formulareigenschaften anzeigen.

Aktivieren Sie dann das Feld Bild im Formular anzeigen auf der Registerkarte Anzeige, speichern und veröffentlichen Sie die Änderung.

Sobald Sie die Anpassung veröffentlicht haben, steht das Bildfeld im Formular auch zur Verfügung.


Vielen Dank für Ihr Interesse an meinem Blogeintrag.
Gerne beantworte ich Ihnen persönlich weitergehende Fragen zu diesem Thema.
Kontaktieren Sie mich einfach über mein Kontaktformular.

Sie wollen mehr über mich erfahren? Dann gehen Sie auf meine Site
http://www.nicothiemer.de

Nico Thiemer

Einrichten einer Microsoft Dynamics CRM 2013 Installation für die Plug-In Entwicklung

Heute zur Abwechslung mal kein SharePoint, sondern Microsoft Dynamics CRM 2013. In einem aktuellen Projekt habe ich gerade ein Plug-In entwickelt, welches eine kundenspezifische Lösung für den Umgang mit Rechnungsdaten zur Verfügung stellt. Die Entwicklung als solches fand ich nicht so komplex, dafür die Vorbereitungen umso mehr. Dies vor allem deshalb, weil ich auch im Netz keine halbwegs komplette Anleitung dazu gefunden habe. Dieser Blog soll dies nun versuchen.

Meine Entwicklungsumgebung ist Visual Studio 2013, welche nicht auf dem CRM Server, sondern auf einer separaten Windows 8.1 Maschine läuft. Das Microsoft Dynamics CRM 2013 hat den aktuellsten Patchstand und ist noch in keiner Weise konfiguriert. Zur Unterstützung im Visual Studio soll mit dem CRM Developer Toolkit gearbeitet werden. (1)

Software installieren

Das erste Problem gibt es beim Developer Toolkit. Das geht ja schon mal prima los. Dieses unterstützt, trotz der 2013 in seinem Namen, Visual Studio 2013 nicht. Es besteht auf Visual Studio 2012. Dieses möchte ich aber ungern installieren. Damit bin ich nicht alleine und jemand hat tatsächlich eine Möglichkeit gefunden, das CRM Developer Toolkit 2013 in Visual Studio 2013 zu integrieren. Eine Anleitung findet sich unter (2). Damit geht es zum Server.

Auf diesem sollt nun .NET 4.5 installiert werden. Wenn man erfolgreich sein Plug-In entwickelt hat und dieses auf dem Server bereitstellen möchte, droht das nächste Ungemach. Zum Registrieren des Plug-Ins auf dem Server stellt Microsoft das PlugIn Registrations Tool bereit. Es befindet sich mit anderen Tools zusammen im SDK. Allerdings ist es mir nicht gelungen das aktuelle Tool zum laufen zu bekommen. Mehrere Maschinen, mehrere Konten, es stürzte immer an der gleichen Stelle nachvollziehbar ab. In solch einem Fall hilft nur der Versuch mit einer früheren Version, doch woher bekommen? Microsoft stellt diese nicht mehr zur Verfügung. Zum Glück gibt es aber Jäger und Sammler, hier findet man das Tool in einer alten Version (6.0.4), welches bei mir wunderbar funktioniert hat (3).

Microsoft Dynamics CRM 2013 Server einrichten

Bevor es losgehen kann mit der Registrierung des Plug-Ins sollten noch einige Einstellungen auf dem Server vorgenommen werden. Zuerst sollte geprüft werden, ob überhaupt fremder Code ausgeführt werden darf. Dies ist zwar standardmäßig der Fall, aber man weiß ja nie. Das folgende PowerShell Script unter (4) hilft da weiter und gibt auch noch mehr Hinweise.

Falls der Code Probleme macht, sollte man das Tracelog einschalten. Dieses ist standardmäßig deaktiviert. Eine Anleitung dazu findet sich hier (5). Achtung: Es muss immer die Eigenschaft

$setting.Directory=“C:\Programme\Microsoft Dynamics CRM\Trace“

gesetzt werden. Mit der schon vorhandenen Standardeinstellung habe ich das Trace nicht zum laufen gebracht.

Plug-In registrieren

Sind alle Aufgaben erfüllt, kann das Plug-In endlich registriert werden. Diesen Vorgang führe ich auf meiner Entwicklungsmaschine aus, welche natürlich eine Verbindung zum CRM Server hat. Ich habe dazu im PlugIn Registrations Tool eine Verbindung hergestellt, was ich hier nicht näher beschreibe. Die Assembly liegt im /bin Ordner des Visual Studio Projektes. Diese wird zuerst registriert.


Darauf achten, dass die Assembly in der Datenbank landet und nicht in einer Sandbox.


Danach läuft der Code aber noch nicht. Es muss noch mitgeteilt werden, bei welcher
Aktion und bei welcher Entität der Code starten soll. Dazu muss ein Step registriert werden.

In meinem Fall soll auf das Update Ereignis in einer Rechnung synchron reagiert werden.

Ein Blick zur Kontrolle

Noch ein Hinweis zum Schluß: Wenn man die Assembly via E-Mail auf dem Liveserver kopiert, so wie ich es gemacht habe, kann diese zuerst nicht registriert werden. .NET ist der Meinung, solcher Code ist unsicher und erlaubt die Aufführung nicht. Dies kann behoben werden, indem man sich im Dateisystem die Eigenschaften der Datei anzeigen lässt und die Ausführung zulässt.

 

Ich hoffe einigen mit diesen Hinweisen weiter geholfen zu haben. Der Kurzlink zu diesem Beitrag ist http://wp.me/p4y7ta-3N.

  1. http://www.microsoft.com/en-us/download/details.aspx?id=40321
  2. http://torsteinutne.com/2014/03/24/getting-the-crm-developer-toolkit-to-work-with-visual-studio-2013/
  3. https://onedrive.live.com/?cid=e4b83260b94d4158&id=E4B83260B94D4158!1387&ithint=folder,.exe&authkey=!ALuzupR9uXK3iII
  4. http://msdn.microsoft.com/en-us/library/gg328153.aspx
  5. http://support.microsoft.com/kb/907490

Vielen Dank für Ihr Interesse an meinem Blogeintrag.
Gerne beantworte ich Ihnen persönlich weitergehende Fragen zu diesem Thema.
Kontaktieren Sie mich einfach über mein Kontaktformular.

Sie wollen mehr über mich erfahren? Dann gehen Sie auf meine Site
http://www.nicothiemer.de

Nico Thiemer