09.05.2014

CRM 2011 Update Rollup & Service Update Overview

Update Rollup Version Release Date Detail Info Download Service Update
Update Rollup 1 05.00.9688.1045 04.04.2011 KB 2466084 ENU DEU -
Update Rollup 2 05.00.9688.1155 06.06.2011 KB 2466086 ENU DEU -
Update Rollup 3 05.00.9688.1244 26.07.2011 KB 2547347 ENU DEU -
Update Rollup 4 05.00.9688.1450 19.09.2011 KB 2556167 ENU DEU -
Update Rollup 5 05.00.9688.1533 20.10.2011 KB 2567454 ENU DEU Q4/2011
Update Rollup 6 05.00.9690.1992 20.01.2012 KB 2600640 ENU DEU Q4/2011
Update Rollup 7 05.00.9690.2165 22.03.2012 KB 2600643 ENU DEU Q4/2011
Update Rollup 8 05.00.9690.2243 03.05.2012 KB 2600644 ENU DEU Q4/2011
Update Rollup 9 SKIPPED (merged with Q4/2012) Q4/2011
Update Rollup 10 05.00.9690.2730 16.06.2012 KB 2710577 ENU DEU Q4/2011
Update Rollup 11 05.00.9690.2835 22.10.2012 KB 2739504 ENU DEU Q4/2011
Update Rollup 12 05.00.9690.3233 29.01.2013 KB 2795627 ENU DEU Q1/2013
Update Rollup 13 05.00.9690.3448 26.03.2013 KB 2791312 ENU DEU Q1/2013
Update Rollup 14 05.00.9690.3557 11.07.2013 KB 2849744 ENU DEU Q1/2013
Update Rollup 15 05.00.9690.3731 08.10.2013 KB 2843571 ENU DEU Q1/2013
Update Rollup 16 05.00.9690.3911 22.01.2014 KB 2872369 ENU DEU Q1/2013
Update Rollup 17 05.00.9690.4150 08.05.2014 KB 2915687 ENU DEU Q1/2013
Update Rollup 18 05.00.9690.4376 24.09.2014 KB 2958724 ENU DEU Q1/2013

29.01.2014

Increasing ADFS Token Timeout Time for Microsoft Dynamics CRM 2013

Wenn man via IFD auf einer CRM2013 Organisation arbeitet, kann es schon manchmal lästig sein, sich alle 60 Minuten (bzw. sogar 40 Minuten) neu einloggen zu müssen. Das ist nämlich die Zeitspanne, für die ein ADFS Token im Standard gültig ist.

Der Token ist abgelaufen...

Um die Zeitspanne auf z.B. 4 Stunden hochzusetzen muss man folgende auf dem ADFS-Server durchführen:


  1. Den ADFS Manager starten und den Display Name der Relying Party Trust ermitteln. 
    Anzeigename der Relying Party Trust
  2. Windows PowerShell als Administrator starten.
Aktuelle Werte eines Relying Party Trust auslesen:
Get-ADFSRelyingPartyTrust –Name:"crm"

Token Lifetime auf 4 Stunden setzen:
Set-ADFSRelyingPartyTrust –TargetName "crm" –TokenLifetime 240


Token Lifetime ist 4 Stunden

--
:: Links / Weiterführende Informationen: 

How to Configure IFD Hosted Setup in Dynamics CRM

In diesem Beitrag möchte ich die Schritte für ein IFD dokumentieren. Da es sich um eine Demoumgebung handelt wurden alle benötigten Komponenten auf einem Server installiert. Die Installation fand auf einem Windows Server 2012 in der Domain "CRM2013" statt.

0. Schematische Darstellung eines IFD-Logins (hier noch unter CRM 2011)


Die benötigten Komponenten und Rollen sind:
  • Active Directoy (AD)
  • Active Directory Federation Services (ADFS)
  • Datenbank (SQL Server 2012)
  • CRM (Microsoft Dynamics CRM 2013 On-Premise + UR 1)
  • DNS-Server
ADFS-Server
Unter Windows 2012 ist ADFS keine Komponente, die man herunterläd und zusätzlich installiert, sondern eine Serverrolle:

01. ADFS Server-Rolle in Windows Server 2012

CRM-Server
Da sich ADFS automatisch in die Default Website installiert, muss das CRM auf einem anderen Port installiert werden (z.B. 5555). Auch das HTTPS des CRMs kann nicht über die gewohnte 443 laufen. Ich habe das CRM HTTPS auf 444 konfiguriert.


02. HTTP Ports der CRM Installation

Zertifikat
Als erstes benötigt man ein SLL Zertifikat. Da wir mehrere (Sub-)Domain über HTTPS laufen lassen wollen, eigenet sich ein Wildcard Zertifikat wie "*.akquinet.de" am Besten. Dieses muss auf dem Server installiert werden.


02. Wildcard SSL Zertifikat

DNS Einträge
Des Weiteren benötigen wir einige Einträge im DNS, die in unserem Fall alle gegen die IP des Server, auf dem wir installieren, aufgelöst werden müssen.


04. Benötigt DNS Einträge

Auf Server und Client hilft nach der Einrichtung der DNS Einträge oft ein

ipconfig /flushdns 

um Probleme bei der korrekten Autlösung zu beheben.

Firewall
Zusätzlich sollte man darauf achten, dass alle eingerichteten Ports auch durch die Firewall hindurch kommen und von den Clients aus erreicht werden können. In unserem Fall sind das
  • 80
  • 443
  • 444
  • 5555 (nur intern) 
Alternativ kann man auch die Firewall komplett ausschalten - dies sollte man allerdings nur bei Test- oder Demo-Umgebungen machen.

ADFS konfigurieren
Um ADFS initial zu konfiguerieren, wählt man im Wizard folgende Einstellungen:
  • "Create a new Federation Service"
  • Deployment Type: Stand-alone federation server
  • Federation Service name: "sts1.akquinet.de"
Danach sollte ADFS erfolgreich konfiguriert sein:

05. ADFS Configuration Results
Wenn die Konfiguration erfolgreich war, kann man über die URL

https://sts.akquinet.de/federationmetadata/2007-06/federationmetadata.xml

die Metadaten im Browser anschauen.

06. ADFS Metadata

Microsoft Dynamics CRM Properties
Im Deployment Manager des CRMs öffnet man die Deployment Properties, stellt das Binding auf HTTPS um und aktualisiert die URLs wie folgt:

07. CRM Deployment Properties

Claims-Based Authentication konfigurieren
Nun kann man den Wizard für die Claims-Based Authentication im Deployment
Als Federation Metadata URL ist die bereits verwendete URL einzugeben:


08. Claims-Based Authentication Wizard: Federation Metadata URL

Als Zertifikat wähl man das Wildcard Zertifikat aus:

09 Claims-Based Authentication: Select Certificate

Nachdem man sich über diverse Next-Buttons bis zum Ende geklickt hat, darf man nicht vergessen, das Log zu öffnen, nach unten zu scrollen und sich die dort angezeigte URL zu speichern:


10. Claims-Based Authentication: End


Auch diese URL kann man im Browser validieren.

Edit Claim Rules
Im ADFS Management Tool zu Trust Relationships -->Claims Provider Trust --> Active Directory navigieren und dort im Kontextmenü "Edit Claim Rules..." auswählen. 


11. Edit Claim Rules

Hier muss nun eine neue Rule über "Add Rule..." angelegt werden. Dafür gibt es auch wieder einen Wizard. Die Werte können den folgenden Screenshots entnommen werden:


12. Claim rule template "Send LDAP Attributes as Claims"
13. UPN Claim Rule

Relying Party Trust konfigurieren (intern)
Im ADFS Manager muss nun ein neuer Relying Party Trust hinzugefügt werden. Wichtig ist hier, als Federation metadata address die URL anzugeben, die wir uns beim Einrichten der Claims-Based Authentication im CRM aus dem Log-File gemerkt haben:

https://crm2013demointernal.akquinet.de:444/FederationMetadata/2007-06/FederationMetadata.xml

14. Relying Party Trust hinzufügen

Nachdem erfolgreichen Anlegen des Trusts, müssen im Claim Rule Editor folgende drei Claim Rules angelegt werden:

1. Pass Through UPN
  • Claim rule template: Pass Through or Filter Incoming Claim
  • Incoming claim type : UPN
  • Pass through All claim values
2. Pass Through Primary SID

  • Claim rule template: Pass Through or Filter Incoming Claim
  • Incoming claim type : Primary SID
  • Pass through All claim values

3. Transform Windows Account Name to Name

  • Claim rule template: Transform an Incoming Claim
  • Incoming claim type: Windows account name
  • Outgoing claim type: * Name
  • Pass through All claim values


15. Claim Rules

CRM 2011 IFD konfigurieren
Jetzt kann man im CRM Deployment Manager den Wizard für IFD starten:


16. IFD Wizard 1: URLs


17. IFD Wizard 2: External Domain


18. IFD Wizard 3: System Checks

Relying Party Trust konfigurieren (extern)
Im ADFS Manager muss nun ein weiterer Relying Party Trust hinzugefügt werden. Die Federation metadata address hat diesmal die Subdomain auth. - die wir im vorherigen Schritt im IFD Wizard konfiguriert haben:

https://auth.akquinet.de:444/FederationMetadata/2007-06/FederationMetadata.xml


19. Relying Party Trust hinzufügen

Acuh hier müssen nach erfolgreichem Anlegen des Trusts, folgende drei Claim Rules angelegt werden:

1. Pass Through UPN
  • Claim rule template: Pass Through or Filter Incoming Claim
  • Incoming claim type : UPN
  • Pass through All claim values
2. Pass Through Primary SID

  • Claim rule template: Pass Through or Filter Incoming Claim
  • Incoming claim type : Primary SID
  • Pass through All claim values

3. Transform Windows Account Name to Name

  • Claim rule template: Transform an Incoming Claim
  • Incoming claim type: Windows account name
  • Outgoing claim type: * Name
  • Pass through All claim values
20. Claim Rules

FERTIG!
Damit sind wir fertig und auch der extern Zugriff sollte funktionieren. Das Login Form kann hier

C:\inetpub\adfs\ls\FormsSignIn.aspx

bzw. hier

C:\inetpub\adfs\ls\MasterPages\MasterPage.master

angepasst werden.

21. Login Form
Achtung
Eventuell muss ADFS, der ISS oder am besten gleich der gesamte Server neu gestartet werden.

18.10.2013

Microsoft Dynamics CRM 2013 Downloads and Trial Product Keys

Am 24.09.2013 wurde von Microsoft offiziell das nächste "Major Release" der On-Premise Version von Dynamics CRM veröffentlicht. Hier sind nun die wichtigsten Download-Links zu Dynamics CRM 2013 (Version 06.00.0000.0809):

Installationsdateien

Microsoft Dynamics CRM Server 2013

Microsoft Dynamics CRM 2013 Email Router

Microsoft Dynamics CRM 2013 Language Packs

Microsoft Dynamics CRM 2013 Report Authoring Extension

Microsoft Dynamics CRM 2013 List Component for Microsoft SharePoint Server

Microsoft Dynamics CRM 2013 for Microsoft Office Outlook


Dokumentation

Microsoft Dynamics CRM 2013 Software Development Kit

Microsoft Dynamics CRM 2013 Implementation Guide


Trial Keys (90 Tage)

Microsoft Dynamics CRM Workgroup Server 2013 (5 CAL limit):
NX77Y-BTBCV-JP3T3-8W7JH-94QJP

Microsoft Dynamics CRM Server 2013 (no CAL limit): 
CQWW3-TNXBF-HRQWC-CVTW9-M968H

31.07.2013

Advertorial

Die CRM Akademie für Mitarbeiter aus Fachbereichen
 
Die meisten Projekte zur Einführung und Weiterentwicklung von Microsoft Dynamics CRM werden heute entweder selbständig von internen Projektteams oder in Zusammenarbeit mit externen Partnern umgesetzt.
 
Um die Mitglieder des internen Projektteams über den gesamten Lebenszyklus des Projektes hinweg – von der Erstellung eines Pflichtenheftes bis zur kontinuierlichen Weiterentwicklung der vorhandenen Lösung – mit dem erforderlichen Rüstzeug auszustatten, vermittelt die akquinet ihre umfangreichen Erfahrungen und Best Practices im Rahmen der „CRM Akademie“ an  Endkunden, die eine Einführung von Microsoft Dynamics CRM planen oder dies bereits einsetzen.
 
Die CRM-Akademie ergänzt dabei die klassischen vom Hersteller inhaltlich definierten Seminare um das konkrete Praxiswissen der akquinet aus zahlreichen erfolgreichen Projekten. Sie stellt im Baukastenprinzip, das sich an der Projektsituation der Teilnehmer orientiert, Inhalte für 3 klassische Zielgruppen bereit.
 
Diese offenen Seminare richten sich an alle Mitarbeiter aus Fachbereichen im Projektteam des Endkunden:
 
Zielgruppe: Technische Berater
18. – 20.09. in Hamburg
 
Zielgruppe: Projektleiter
16. – 18.10. in Hamburg
 
Zielgruppe: Mitarbeiter Fachbereiche
13. – 15.11. in Hamburg

28.05.2012

Form Message Box for CRM 2011 Forms

Schon in CRM 4 gab es die Möglichkeit via JavaScript eine "Bandarole" samt Benutzernachricht direkt über einem Formular anzuzeigen. Im Blog Pete's CRM 2011 Stuff gibt es ein Script, was genau diese Funktionalität für CRM 2011 bereitstellt.

0.1 Account Formular mit Message Boxen

Dieses JavaScvript-Bibliothek inklusiv Beispiel-Aufruf steht in der Solution CRMFormMessage_1_0_0_0.zip bereit. Nach dem Import müssen folgende Schritte ausgeführt werden, damit die Funktionalität genutzt werden kann:

1) Hinzufügen der Bibliothek zum Account-Formular
Die Bibliothek "akq_form_message" unter "Form Properties" dem Account-Formular hinzufügen.

1.1 Account-Formular Form Properties

2) Hinzufügen des Event Handler
Für das Ereignis "OnLoad" des Formulars einen Event Handler hinzufügen, welcher mit der Bibliothek "akq_form_message" verknüpft ist. Der Name der aufgerufenen Funktion lautet "Test".

2.1 Event Handler Test-Aufruf


Dieser Schritt ist optinal und nur zur Demonstration gedacht. Normalerweise können folgende Aufrufe bereits nach Schritt 1 in eigenen Scripten eingebunden werden:
  • ShowMessage("My Test Info Message", "info");
  • ShowMessage("My Test Warning Message", "warn");
  • ShowMessage("My Test OK Message", "ok");
  • ShowMessage("My Test Error Message", "error");
--
Links / Weiterführende Information:

24.05.2012

CleanUp PrincipalObjectAccess after installing Update Rollup 6

In der Tabelle PrincipalObjectAccess (Organisations-Datenbank) speichert das CRM sämtliche Informationen über Sicherheitsfreigaben aller Objekte. Durch einen Fehler im CRM wächst diese Tabelle schnell auf mehrere Millionen Datensätze an, was zu Performance-Problemen führen kann.

Dieser Fehler wurde mit Update Rollup 6 behoben. Allerdings nur für neu angelegte Objekte. Um die Tabelle zu säubern und von Artefakten zu befreien stellt Microsoft in KB2664150 ein SQL-Script bereit.

Vor Ausführung des SQL-Scriptes:
  1. Update Rollup 6 auf dem CRM-Server installieren
  2. Organization_MSCRM in Zeile 1 Datenbank Namen ersetzen 
Laufzeit:
Datensätze vor dem Script: 3.000.000+
Datensätze nach dem Script: 200.000+
Laufzeit: ~5:00 min


USE [Organization_MSCRM] GO BEGIN TRY BEGIN TRAN t1 create table #ToDeletePoaEntries ( ObjectId uniqueidentifier, Otc int ) CREATE UNIQUE NONCLUSTERED INDEX [mainindex] ON [dbo].[#ToDeletePoaEntries] ( [ObjectId] ASC, [Otc] ASC )WITH (STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] declare entity_cursor cursor local FORWARD_ONLY READ_ONLY for select distinct e.ObjectTypeCode, e.BaseTableName, a.PhysicalName from EntityView e inner join AttributeView a on e.EntityId = a.EntityId and a.IsPKAttribute = 1 where e.IsReplicated = 0 and e.IsDuplicateCheckSupported = 0 and e.OwnershipTypeMask & 1 = 1 open entity_cursor declare @baseTableName sysname declare @otc nvarchar(20) declare @primaryKey sysname declare @totalCollected int = 0 declare @totalDeleted int = 0 fetch next from entity_cursor into @otc, @baseTableName, @primaryKey while @@FETCH_STATUS = 0 begin print 'Cleaning up POA for ' + @baseTableName declare @deletestatement nvarchar(max) -- Insert records to be deleted in [#ToDeletePoaEntries] set @deletestatement = 'insert into #ToDeletePoaEntries(ObjectId, Otc) select distinct poa.ObjectId, poa.ObjectTypeCode from PrincipalObjectAccess poa left join ' + @baseTableName + ' e on poa.ObjectId = e.' + @primaryKey + ' where e.' + @primaryKey + ' is null and poa.ObjectTypeCode = ' + @otc; print @deletestatement exec(@deletestatement) set @totalCollected = @@ROWCOUNT print CAST(@totalCollected as nvarchar(20)) + ' records collected for deletion for ' + @baseTableName fetch next from entity_cursor into @otc, @baseTableName, @primaryKey end close entity_cursor deallocate entity_cursor print CAST(@totalCollected as nvarchar(20)) + ' total records collected' -- Delete query -- delete all records of the current entity type which don't have corresponding object in the base table delete from PrincipalObjectAccess from PrincipalObjectAccess poa join #ToDeletePoaEntries e on poa.ObjectId = e.ObjectId and poa.ObjectTypeCode = e.Otc -- delete PrincipalObjectAccess records set @totalDeleted = @@ROWCOUNT print CAST(@totalDeleted as nvarchar(20)) + ' records deleted for ' + @baseTableName COMMIT TRAN t1 PRINT 'EXECUTION SUCCEED' END TRY BEGIN CATCH ROLLBACK TRAN t1 PRINT 'EXECUTION FAILED :' + ERROR_MESSAGE() END CATCH

--
:: Links / Weiterführende Informationen:

28.01.2012

Change Excel Export Limit

In CRM 2011 ist die Anzahl der Datensätze, die man nach Excel exportieren kann, auf 10.000  begrenzt. Es gibt keine Möglichkeit diese Grenze zu erhöhen – kein supportete Möglichkeit.

Unsupportet sieht das ganze schon anders aus. Mit folgendem SQL-Statement kann man die Grenze auf z.B. 2 Millionen erhöhen:

UPDATE [OrganizationDatabaseName].[dbo].[OrganizationBase] SET [MaxRecordsForExportToExcel] = 2000000

Folgende Parameter muß man ersetzen:
-    OrganizationDatabaseName: Name der Datenbank der Organisation
-    2000000: Neue Grenze der maximal zu exportierenden Datensätze




Natürlich sollte man immer damit rechnen, dass das Ganze in einem Timeout endet, wenn man es übertreibt.

--
:: Links / Weiterführende Informationen:

04.11.2011

Mapping between CRM 4 and CRM 2011 Data Types

Da sich die Datentypen von CRM 4 zu CRM 2011 geändert haben, hier eine kleines Mapping zwischen alten und neuen Datentypen



CRM 4

CRM 2011

CrmBoolean

bool

CrmDateTime

DateTime

CrmDecimal

decimal

CrmFloat

double

CrmMoney

Money

CrmNumber

int

Customer

EntityReference

DynamicEntity

Entity

Key

Guid

Lookup

EntityReference

Owner

EntityReference

Picklist

OptionSetValue

Status

OptionSetValue

string

string





Legende / Farbcodes

*CRM Datentypen                              

*.NET Datentypen

:: Links / Weiterführende Informationen:

22.05.2011

There was an error while retrieving the data from Microsoft Dynamics CRM.

Fehlermeldung im CRM
Wenn in Microsoft Dynamics CRM 2011 Charts nicht angezeigt werden und stattdessen die Fehlermeldung "There was an error while retrieving the data from Microsoft Dynamics CRM." erscheint, liegt das daran, dass die Anzahl der für das Chart zu analysierenden Datensätze 50.000 überschreitet.

Dieser Fehler kann durch Hochsetzen der Grenze von 50.000 auf z.B. 200.000 behoben werden. Die dafür benötigten Schritte unterscheiden sich, je nachdem ob man die Grenze auf dem Server (Web Client) oder in Outlook (Offline Client) manipulieren will.



 #1: Erhöhen der Grenze auf dem Server
Der relevante Wert ist in der CRM-Konfigurationsdatenbank hinterlegt. Um den Wert zu erhöhen muß in der Datenbank „MSCRM_CONFIG“ die Tabelle „DeploymentProperties“ geöffnet werden. In dieser Tabelle filtert man die Spalte „ColumnName“ nach dem Wert „AggregateQueryRecordLimit“. Im gefundenen Datensatz kann man die maximale Anzahl über die Spalte „IntColumn“ festlegen.

1.1 Datensatz in der MSCRM_CONFIG Datenbank
Um die Änderungen zu aktivieren, muß der Webserver neu gestartet werden. Dies geschieht über ein „iisreset“ in der Kommandozeile.

1.2 Neustarten des Webservers









#2: Erhöhen der Grenze im Client
Hier ist der relevante Wert in der Registry hinterlegt. Über die Kommandozeile startet man mit dem Befehl „regedit“ den Registrierungseditor. In diesem kann man unter dem Schlüssel

 HKEY_CURRENT_USER\Software\Microsoft\MSCRMClient\AggregateQueryRecordLimit

die maximale Anzahl festlegen.

Nun sollten die alle Charts wieder korrekt angezeigt werden.
Charts werden wieder angezeigt






































--
:: Links / Weiterführende Information: