How to detect deactivated business rules of all entities?

Problem: Sometimes after a deployment of customizations business rules are deactivated. (Reason unknown..)

How can we check now all business-rules for their state if we don’t want to open every entity and check every single rule for its state? image

Solution: By the advanced find! (Column “Status”)

image


Error beim Solution deployen

Problem
Beim Deployen einer verwalteten Lösung, welche unverwaltete Komponenten in verwaltete konvertiert, trat folgender Fehler auf:

The AttributeLookupValue (Id=00000000-0000-0000-0000-000000000000) entity or component has attempted to transition from an invalid state: ComponentStateName: SystemUnpublished; ComponentOperation: Delete; ComponentSolutionType: Active; SolutionOperationContext: None; IsProtected: False; IsBeingPublished: True. 

Lösung
Nach einer fast stündigen Fehlersuche war am Schluss die Lösung einfach: Auf dem Zielsystem alle Anpassungen veröffetnlichen. Danach konnte die verwaltete Lösung ohne Fehler importiert werden.


Invalid parameter ‘regardingobjectidtype=account’ in Request.QueryString

Im CRM ist es möglich via URL ein Formular zum Erfassen eines neuen Datensatzes zu öffnen. Dabei können  meisten Felder eines Formulars direkt mit URL-Parameter gesetzt werden. Bsp. zum Setzen des Feldes “Name”:

/main.aspx?etn=account&extraqs=name%3DNew%20Account&pagetype=entityrecord

https://msdn.microsoft.com/en-us/library/gg334375.aspx

Es gibt jedoch Ausnahmen wie bsp. das Feld “RegardingObjectId” auf einer Aktivität-Entität. Dieses Feld kann (wahrscheinlich da es sich um ein ActivityParty handelt) nicht via URL gesetzt werden. Versucht man es trotzdem findet man im CRM-Server-Trace folgenden Fehler:

System.InvalidOperationException: CRM Parameter Filter - Invalid parameter 'regardingobjectidtype=account' in Request.QueryString

Ist das Setzen des Feldes jedoch trotzdem gewünscht, kann mit Form-Parametern gearbeitet werden. Hierzu sind drei Parameter notwendig:

image

Diese drei Parameter können in der URL dem Formular übergeben werden:

main.aspx?etn=phonecall&newWindow=true&pagetype=entityrecord&extraqs=is_regardingobjectid%3D%7B67D26E69-082B-4F30-B70D-EF202530CD41%7D%26is_regardingobjectidtype%3Daccount%26is_regardingobjectidname%3DCompanyname

Auf dem Formular kann nun mit Hilfe von JavaScript das Feld “RegardingObjectId” gesetzt werden:

function addToPartyListFromFormParameters(propertyName, idBaseName, replaceExisting) {
    var queryParams = Xrm.Page.context.getQueryStringParameters();
    var idParam = queryParams[idBaseName];
    var nameParam = queryParams[idBaseName + "name"];
    var typeParam = queryParams[idBaseName + "type"];

    if (idParam && nameParam && typeParam) {
        addToPartyList(propertyName,
            {
                Id: idParam,
                Name: nameParam,
                LogicalName: typeParam,
            }, replaceExisting
        );
        return true;
    }
    return false;
}

Ein möglicher Inhalt wie die Funktion “addToPartyList” aussehen könnte, kann hier gefunden werden:

https://rajeevpentyala.wordpress.com/2012/04/02/get-and-set-partylist-fields-using-jscript/


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


CRM 2016 – Das sind die Neuerungen

Seit Anfang Dezember steht CRM 2016 für neue Online-Kunden zur Verfügung. Bestehende Online-Kunden müssen sich noch etwas gedulden. Die Updates werden in diesem Fall erst ab Januar/Februar zur Verfügung stehen.

OnPremise-Kunden können die Installations-Bits bereits heute unter folgendem Link herunterladen: https://www.microsoft.com/en-us/download/details.aspx?id=50372

Nachfolgend die wichtigsten Neuerungen auf einen Blick (Quelle Microsoft):

Neuerungen für den Vertrieb

Mit der CRM-App für Outlook können Nutzer direkt aus einer Outlook-E-Mail auf CRM zugreifen, indem sie einfach zum Register für Dynamics CRM navigieren. Behalten Sie Ihre eingehenden E-Mails im Blick und lassen Sie sich kontextbezogene Dynamics CRM-Informationen zu den Personen anzeigen, von denen Sie E-Mails erhalten, sowie zu Vertriebsaktivitäten, Cases und Verkaufschancen.

Führen Sie schnelle Analysen Ihre CRM-Daten in Excel durch – direkt in Dynamics CRM Online. Exportieren, betrachten und analysieren Sie Ihre Daten mit Excel. Nehmen Sie Änderungen vor und erledigen Sie die Speicherung und den Upload in Dynamics CRM Online mit nur einem Klick. Das Wechseln zwischen verschiedenen Anwendungen gehört der Vergangenheit an.

Die verbesserten Werkzeuge für mobiles Arbeiten erleichtern den Zugriff auf Ihre Dateien in der CRM Mobile-App, auf SharePoint sowie in OneDrive for Business. Mit dem Device Management von Microsoft Intune kann Ihre IT-Abteilung zudem alle CRM-Daten übergreifend für die Endgeräte Ihrer Anwender verwalten und schützen.

Die Integration von FantasySalesTeam unterstützt Gamification-Methoden für Ihren Vertrieb. Richten Sie einfach Wettbewerbe ein und motivieren Sie Ihr Team. Auf diese Weise können Sie nicht nur „spielerisch” Ihre Vertriebsleistung und Umsätze steigern, sondern auch für eine höhere Nutzung Ihres CRM-Systems sorgen. Die geplante Preview-Version wird auf Englisch zur Verfügung gestellt. Registrieren Sie sich einfach auf der Webseite zur FantasySalesTeam-Preview.

Neuerungen für den Service

Der interaktive Service-Hub bietet rollenbasierte Dashboards für Tier-1- und Tier-2-Agenten, die ihnen bei der Priorisierung ihrer Arbeit im Case-Management helfen. Interaktive Diagramme und Drill-down-Funktionen sorgen für umfassendere Einblicke und unterstützen Ihre Mitarbeiter, Kunden einen noch besseren Service zu bieten.

Die Funktionalität für das Wissensmanagement ist jetzt verfügbar und wird direkt in Dynamics CRM Online gesteuert. Enthalten sind Workflows, eine Versionsverwaltung, Unterstützung für Übersetzungen und Feedbackfunktionen. Damit ist jetzt einfacher als je zuvor, relevante Supportinformation aufzufinden, sodass Ihre Mitarbeiter Cases schneller bearbeiten und Informationen leichter austauschen können.

Neuerungen für Social CRM

Die vereinfachten Veröffentlichungsfunktionen im Social Center ermöglichen Ihnen, Multimedia-Inhalte in Ihre Inhalte einzubetten und diese Elemente direkt als Tweets auf Twitter oder Posts auf Facebook zu veröffentlichen.

Intelligente Social-Erkenntnisse direkt im Social Center zeigen zusätzliche Informationen an, z. B. zu Verfassern von Tweets und deren Gesamtzahl an Followern, sodass Sie mehr darüber erfahren, wer sich über Ihre Produkte und Dienstleistungen äußert. Zudem erkennt Microsoft Social Engagement potenzielle neue Leads und Supportfälle, indem es Inhalte, die als Social-Stimmungen erfasst wurden, auswertet und automatisch entsprechende Datensätze in CRM erstellt.


CRM 2016 Link-Collection

Overview

Release Preview Guide

http://download.microsoft.com/download/D/5/D/D5D38A09-6A5C-4DC0-8649-3A4F39A8F8F3/Microsoft_Dynamics_CRM_2016_Release_Preview_Guide.pdf

Get ready for the next release

http://www.microsoft.com/en-us/dynamics/crm-customer-center/get-ready-for-the-next-release.aspx

Technical

What’s new for administrators and customizers in Microsoft Dynamics CRM 2016 and CRM Online

https://technet.microsoft.com/library/dn531078(v=crm.8).aspx

Before you upgrade: issues and considerations

https://technet.microsoft.com/en-us/library/hh699765.aspx

Manage Microsoft Dynamics CRM Online updates

https://technet.microsoft.com/en-us/library/dn308237.aspx

Synchronizing data with Outlook or Exchange FAQ

https://www.microsoft.com/en-us/dynamics/crm-customer-center/synchronizing-data-with-outlook-or-exchange-faq.aspx

Microsoft Dynamics CRM IT Pro Technical Library

  • What’s new for administrators and customizers in Microsoft Dynamics CRM 2016 and CRM Online
  • Manage Microsoft Dynamics CRM Online updates
  • Deploying and administering Microsoft Dynamics CRM Online and Microsoft Dynamics CRM 2016
  • Manage your Microsoft Dynamics CRM Online subscription
  • Administration Guide for Unified Service Desk 2.0
  • Get ready for the next release

https://technet.microsoft.com/en-us/library/jj992623.aspx

Developers

What is Microsoft Dynamics CRM 2016 and Microsoft Dynamics CRM Online?

  • What’s new for Microsoft Dynamics CRM 2016 and CRM Online update
  • Software Development Kit 
  • How do I…? page
  • What’s new in Unified Service Desk 2.0
  • Download SDK documentation and resources
  • Updated Nuget packages

https://msdn.microsoft.com/en-us/dynamics/crm/default.aspx

Users

What’s new for end users

http://www.microsoft.com/en-us/dynamics/crm-customer-center/what-s-new.aspx

User Guide Dynamics CRM 2016

http://go.microsoft.com/fwlink/p/?LinkID=716876

User’s guide for the new interactive service hub

https://www.microsoft.com/en-us/dynamics/crm-customer-center/user-s-guide-for-the-new-interactive-service-hub.aspx

CRM App for Outlook User’s Guide (lightweight app)

http://www.microsoft.com/en-us/dynamics/crm-customer-center/crm-app-for-outlook-user-s-guide-lightweight-app.aspx

CRM for Phones and Tablets User’s Guide

http://www.microsoft.com/en-us/dynamics/crm-customer-center/crm-for-phones-and-tablets-user-s-guide.aspx

eBooks and videos

https://www.microsoft.com/en-us/dynamics/crm-customer-center/ebooks-and-videos.aspx

User Guides back to Dynamics CRM 2013

http://www.microsoft.com/en-us/dynamics/crm-customer-center/microsoft-dynamics-crm-user-guides.aspx

CRM Help, browseable topic list

https://www.microsoft.com/en-us/dynamics/crm-customer-center/contents.aspx

Pricing & Licensing

Online

http://aka.ms/gtn5wt

Onpremise

http://aka.ms/kn26ux

Bits

Dynamics CRM 2016 Server

https://www.microsoft.com/en-us/download/details.aspx?id=50372


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


LogicalName von Feldern auf Form sichtbar machen

Will man den LogicalName eines Feldes auf einem Formular herausfinden (Bsp. für JavaScripts, Reports etc.), muss man normalerweise das Edit-Form öffnen, dort die Eigenschaften des Attributes anzeigen, in welchem dann der Name gefunden werden kann:

image

Das geht einfacher! Und zwar mit Hlife des folgenden Scripts:

(function(){var frm=(window.Xrm&&window.Xrm.Page&&window.Xrm.Page.ui&&window)||(frames[1]&&frames[1].Xrm&&frames[1].Xrm.Page.ui&&frames[1])||frames[0];var Xrm=frm.Xrm;if(!Xrm||!Xrm.Page||!Xrm.Page.ui){alert(‘Unable to find CRM form’);return;}Xrm.Page.ui.tabs.forEach(function(tab){tab.setVisible(true);tab.sections.forEach(function(section){section.setVisible(true);});});var $=frm.jQuery||(frm.CEI&&frm.CEI.$);if(!$){var head=frm.document.getElementsByTagName(‘head’).item(0);var s=frm.document.createElement(‘script’);s.setAttribute(‘type’,'text/javascript’);s.setAttribute(‘src’,'https://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js’);s.async=false;head.appendChild(s);waitForJQ();}else{setLabels();}function waitForJQ(){if(frm.jQuery){$=frm.jQuery.noConflict(true);setLabels();}else{setTimeout(waitForJQ,1000);}}function setLabels(){Xrm.Page.data.entity.attributes.forEach(function(a){a.controls.forEach(function(c){var lblText=c.getLabel();c.setVisible(true);var attr=a.getName();var lbl=$(‘#’+c.getName()+’_c’).html(”);lbl.css(‘text-align’,'left’);if(lbl.is(‘td’)){lbl.closest(‘table’).children(‘colgroup’).children(‘col:even’).attr(‘width’,’400′);}$(‘<input/>’).width(200).val(attr).appendTo(lbl).focus(function(){$(this).select()});$(‘<span></span>’).text(lblText).appendTo(lbl);});});}})();

Das Script wird via Konsole der Developer-Tools ausgeführt. Dazu das gewünschte Formular im IE öffnen und mit F12 die Developer-Tools starten. Hier unter “Konsole” das Script einfügen und ausführen und siehe da, die Labels zeigen nun den LogicalName des Feldes an:

image


Supported email service configurations for server-side synchronization

Weil ich das oftmals immer wieder gefragt werde, hier die Kombinationsmöglichkeiten von CRM und Exchange im Zusammenhang mit Server-Side-Sync:

image

Quelle: https://technet.microsoft.com/en-us/library/dn531050.aspx