‘navBarData’ is undefined error

Problem

Nach der Migration von einer CRM 2011 Organisation auf 2016 (via 2013 und 2015) kann das Edit-Formular von verschiedenen Entitäten nicht mehr geöffnet werden resp. es bleibt eine weisse Seite und die Daten werden nicht geladen.

image

Lösung

Auf dem Form war die Anzeige der Navigationselemente ausgeschaltet:

image

Nachdem diese wieder eingeschalten worden war, konnte das Formular ohne Probleme geladen werden.


Prozessaktivierung: “Ganzzahliger Wert liegt ausserhalb des gültigen Bereichs”

Problem

Beim Aktiveren eines Workflows erscheint folgende Fehlermeldung:

image

Die Protokolldatei liefert mehr Informationen:

A validation error occurred.  The value of ’1033′ in attribute ‘languagecode’ on record of type ‘workflow’ not a provisioned LCID.

Lösung

Auf dem Development-System, auf welchem der Prozess erstellt worden war, war das englische Sprachpaket aktiviert. Nach dem auf Prod-Mandanten auch das englische Sprachpaket (1033) aktiviert worden war, konnte der Workflow aktiviert werden.


Nice to know: Custom Activities und Quick-Forms

You can enable custom activity entities to support quick create forms, and you can create quick create forms for those entities. However, the quick create form for custom activity entities will not be used when people click the Create button on the nav bar. These quick create forms can be used only when people add a new record for a subgrid that displays that specific custom activity entity.

Source: https://technet.microsoft.com/en-us/library/dn531126.aspx#BKMK_QuickCreateFormEntities


Welche Benutzer-Lizenz muss ich kaufen?

Oftmals kaufen Kunden für ihre Benutzer teure Professional-Lizenzen obwohl eigentlich Basic (fast die Hälfte des Preises!) reichen würde.

Nachfolgend die wichtigsten Links und Auszüge zu diesem Thema für CRM 2013, 2015 und 2016.

CRM 2016

Microsoft Dynamics CRM 2016 On-Premises Licensing and Pricing Guide

Wichtigste Änderung zu CRM 2015: Die Essential Lizenz kann nun auch auf Accounts und Contacts zugreifen.

Das Wichtigste auf einen Blick (Auszug aus dem Licensing und Pricing Guide):image

CRM 2015

Microsoft Dynamics CRM 2015 On-Premises Licensing and Pricing Guide

Das Wichtigste auf einen Blick (Auszug aus dem Licensing und Pricing Guide): image 

Understanding Dynamics CRM Licensing 2015

Sehr gute und praktische grafische Darstellung der Lizenzen:

CRM 2013

Microsoft Dynamics CRM 2013 Online Pricing and Licensing Quick Reference Guide


CRM Metadata Browser – Coole Sache, nutze ihn!

Bereits seit einiger Zeit liefert Microsoft mit dem SDK den Metadata Browser mit. Nur nutzen ihn scheinbar eher weniger, was schade ist. Denn gerade wenn es darum geht System-Informationen von Entitäten oder Attributen herauszulesen stösst man mit den CRM-Bordmitteln oft sehr schnell an die Grenzen.

Nachfolgend eine nicht abschliessende Liste von Features, welche der Metadata Browser zur Verfügung stellt:

  • Schnelle und übersichtliche Listenansichten aller Entitäten und Attributen
  • SchemaName von Entitäten und Attributen (V.a. in JavaScript und REST-Abfragen sehr nützlich)
  • Privileges einer Entität (Sehr wertvoll, bei Security-Errors)

Installation

Der Metadata Browser wird mit dem SDK in Form einer Solution geliefert:

image

Die Solution in der gewünschten Organisation importieren.

Wichtig: Die Solution muss mit der Organisation kompatibel sind. Für eine OnPrem CRM 2015 (7.0) Umgebung muss  bsp. die Solution des CRM 2013 SDKs verwendet werden, da das CRM 2015 SDK bereits die Solution für CRM 2015 Update 1 (7.1) liefert, welche dann nicht kompatibel ist.

Metadatabrowser aufrufen

Zum Aufrufen des Browsers muss die importierte Solution geöffnet werden:

image

Von hier aus kann der Metadata Browser per Knopfdruck gestartet werden. (Am Besten gleich ein Bookmark setzen.)

Alternativ kann er auch direkt über die folgende URL geöffnet werden:

<CRM_URL>/WebResources/sample_/metadatabrowser/entitymetadatabrowser.htm

Verwendung

Die nachfolgende Grafik zeigt die wichtigsten Features des Browsers:

image


Fehlerhafte Grafikanzeige (v.a. Header) im CRM

Beim Öffnen des CRMs (CRM 2015 oder CRM 2016) kann die Benutzeroberfläche bei einigen Benutzern ab und zu wie folgt aussehen:image

Grafiken wie bsp. der Header werden nicht korrekt angezeigt. Besonders anfallen tut dies, wenn ein Theme mit Logo definiert worden ist und das Logo nicht geladen wird.

Schuld daran ist die persönliche Option “Hohen Kontrast aktivieren”. Dies kann wie folgt deaktiviert werden:image

Dann die Option deaktivieren:

image

Und schon sieht das CRM wieder wie gewohnt aus:

image


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