Analysere CRM's Audit Log med KingswaySoft

af Henrik Jensen 29. maj 2016 11:38

Jeg faldt over et blogindlæg som beskriver hvordan med kan bruge KingswaySoft til at trække data ud af CRM's Audit Log, hvilket ikke kan lade sig gøre som standard, og heller ikke muligt med tidligere versioner af KingswaySoft.

Med udgivelsen af version 7 (Læs mere: Opdatering af Kingswaysoft (7.1)...) kan man nu hente data i Audit Loggen.

Jeg kan anbefale at læse blogindlægget (Engelsk): Analyzing Audit Logs using KingswaySoft...

Opdatering af Kingswaysoft (7.1)

af Henrik Jensen 23. maj 2016 13:30

Min gode kollega, og KingswaySoft MVP Thomas Pein-Lorenzen har gjort mig opmærksom på at Kingswaysoft har frigivet en Spring Release af deres SSIS Integration Toolkit...ikke bare til MS CRM, men også til den enorme mængde af produkter og teknologier, som KingswaySoft kan integrere til. Læs mere om de mange teknologier her: SSIS Integration Toolkit Spring 2016 Releases...

I forhold til MS CRM omfatter opdateringen en række nyheder, udvidelser samt almindelige fejlretninger. Læs mere om disse her: What's New with the SSIS Integration Toolkit for Dynamics CRM...

BEMÆRK! Man bør altid benytte samme version af KingswaySoft til designer og server. Der kan opstå problemer hvis man f.eks. på serveren bruger version 6.1, og i designeren benytter version 7.1.

Download Kingswaysoft SSIS Integration Toolkit (Engelsk): Download the SISS Integration Toolkit for MS CRM...

Oprette en Installationsadministrator (Deployment Administrator) i databasen

af Henrik Jensen 16. maj 2016 08:30

I nogle tilfælde har jeg fået adgang til en CRM-server hvor jeg skal administrerer MS CRM via Installationsstyringen (Deployment Manager), men jeg er ikke oprettet som Installationsadministrator (Deployment Administrator). I de fleste tilfælde vil jeg bede de ansvarlige om at oprette mig som Installationsadministrator, men i nogle tilfælde kan det være besværligt.

 

Denne vejledning viser hvordan man kan oprette en CRM-bruger som Installationsadministrator (Deployment Administrator) direkte på SQL Serveren, og dermed opnå adgang til Installationsstyringen (Deployment Manager).

Eksemplet herunder tager udgangspunkt i MS CRM 2016, men det er samme fremgangsmåde helt tilbage til MS CRM 4.0.

Forudsætningerne er, at den Bruger man vil gøre til Installationsadministrator:

  • Skal være oprettet i MS CRM og have sikkerhedsrollen Systemadministrator.
  • Skal, som minimum, være Lokal AdministratorCRM-serveren.
  • Man skal have rettigheder som SysAdminSQL Serveren.

Gennemfør følgende trin:

  1. Find SystemUserId, fra Organisationsdatabasen, på den bruger som skal være Installationsadministrator:
    SELECT SystemUserId, FullName
    FROM dbo.SystemUser
    WHERE (FullName LIKE '%test%')
  2. Find Id og UserId fra MSCRM_CONFIG:
    SELECT Id, UserId
    FROM dbo.SystemUserOrganizations
    WHERE (CrmUserId = '[SystemUserId fra Trin 1]')
  3. Find Id, fra MSCRM_CONFIG, på den Sikkerhedsrolle (Security Role), som er Administrator:
    SELECT Id FROM dbo.SecurityRole WHERE (Name = 'Administrator')
  4. Kør følgende script, fra MSCRM_CONFIG, for at oprette en SystemUserRole:
    INSERT INTO SystemUserRoles
    (
         [Id]
         ,[SecurityRoleId]
         ,[SystemUserId]
         ,[IsDeleted]
    )
    VALUES
    (
         NEWID()
         ,'[Id fra Trin 3]'
         ,'[UserId fra Trin 2]'
         ,0
    )
  5. Kør følgende script, fra MSCRM_CONFIG, for at knytte Brugeren til SystemUser-tabellen:
    UPDATE SystemUser
    SET Name =  '[Brugernavn (User Name) i MS CRM]'
    WHERE Id = '[UserId fra Trin 2]'

 

Gendanne en krypteret database med certifikater

af Henrik Jensen 2. maj 2016 19:53

Jeg har implementeret en del organisationsdatabaser fra CRM Online til Onpremise, i den seneste tid er den primære årsag dårlig ydelse på CRM Online.

Tidligere leverede Microsoft organisationsdatabasen som en SQL-backupfil, som man kunne gendanne i sit eget setup (onpremise). På det seneste leverer Microsoft organisationsdatabasen "pakket ind i vat" i form at et certifikat, som skal implementeres på SQL Serveren før man kan gendanne organisationsdatabasen (Tekster der identificerer kundenavn er erstattet med XYZ efterfølgende).

I nedenstående er 838bc2d177704acaa9e0d37190dd88f0 lig med GUID'en på organisationen.

Proceduren er følgende:

  1. Åbn SQL Server Management Studio. Åbn et Forespørgselsvindue (Query) og tast følgende
    use master
    GO
  2. Kontroller om DMK (MS_DatabaseMasterKey) eksisterer med følgende kommando:
    select * from sys.symmetric_keys
    GO
  3. Hvis Database Master Key ikke eksisterer så opret den således:
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '[strong password text]'
    GO
  4. Verificer at DMK er oprettet således:
    select * from sys.symmetric_keys
    GO
  5. Importer certifikat således:
    CREATE CERTIFICATE CRMLTOP_XYZ_838bc2d177704acaa9e0d37190dd88f0
    FROM FILE = '[.cer file path]\CRMLTOP_XYZ_838bc2d177704acaa9e0d37190dd88f0.pfx_1.cer'
    WITH PRIVATE KEY (FILE = '[.pvk file path]\CRMLTOP_XYZ_838bc2d177704acaa9e0d37190dd88f0.pfx_1.pvk',
    DECRYPTION BY PASSWORD = 'CRMLTOP_XYZ_838bc2d177704acaa9e0d37190dd88f0')
  6. Herefter kan man gendanne organisationsdatabasen.

Databaseindeks i MS CRM

af Henrik Jensen 3. februar 2016 10:19

Jeg har ofte opgaver som handler om optimering af MS CRM, herunder optimering af databasen. Der er mange "knapper" man kan "skrue på", en af dem er at optimere databaseindeks, særligt på CRM-organisationer som indeholder mange tilpasninger.

Jeg benytter enten SQL egen profiler til at analysere data-trafikken, eller meget gerne SQL-værktøjet sp_BlitzCache™ fra Brent Ozar, som i øvrigt også har en fortræffelig checkliste til SQL-optimering (Engelsk): How to Make Slow SQL Servers Go Faster...

Jeg faldt dog også over et indlæg som er lavet af Teamet bag Dynamics CRM in the Field. Dette indlæg beskriver bl.a.:

  • Hvad man skal være opmærksom i forhold til optimering af MS CRM.
  • Fokus på fjernelse af indeks som ikke benyttes.
  • Anviser forskellige lister (Excel), med standardindeks i MS CRM.
  • Anviser en forespørgsel som viser alle indeks i en MS CRM-organisation (Se herunder)
SELECT s.name + '.' + t.name AS 'table_name', i.name, i.index_id
FROM sys.schemas AS s
INNER JOIN sys.tables AS t ON s.schema_id = t.schema_id
INNER JOIN sys.indexes AS i ON t.object_id = i.object_id
LEFT OUTER JOIN sys.objects AS o ON o.parent_object_id = t.object_id
AND i.name = o.name
WHERE (i.name IS NOT NULL)

Link til indlæg om optimering (Engelsk): Dynamics CRM indexes (missing, redundant, and OOB)...

Tags: ,

2013 | 2015 | 2016 | SQL Server

Antal af poster i en CRM organisationsdatabase

af Henrik Jensen 15. september 2015 12:23

Jeg har tidligere brugt værktøjet Dynamics XRM Tools (Statistics) til at vise hvor mange poster der er i en CRM-organisation. Værktøjet fungerer stadig, selvom det er skrevet til MS CRM 2011.

Jeg har også tidligere benyttet en standardrapport som SQL Serveren tilbyder, som hedder Disk Usage by Top Tables, og som viser en ganske fin rapport.

Jeg har for nyligt "opdaget" at Jamie Miley har begået et blogindlæg (How to Easily Get Record Counts for Entitys in MS CRM...) som indeholder et SQL View, som viser alle CRM-relaterede poster. SQL'et ser således ud:

SELECT        TOP (1000) dbo.RecordCountSnapshot.Count, dbo.RecordCountSnapshot.RecordCountSnapshotId, dbo.EntityView.ObjectTypeCode, dbo.EntityView.Name
FROM            dbo.RecordCountSnapshot INNER JOIN
                         dbo.EntityView ON dbo.RecordCountSnapshot.ObjectTypeCode = dbo.EntityView.ObjectTypeCode
WHERE        (dbo.RecordCountSnapshot.Count > 0)
ORDER BY dbo.RecordCountSnapshot.Count DESC

Outputtet er:

Problemer med E-mail Router i MS CRM 2013, som er flyttet fra Online til Onpremise

af Henrik Jensen 13. september 2015 08:27

Jesper Funk og Thomas Rath fra Norriq har tippet mig om et problem, som kan opstå med E-mail Router softwaren i MS CRM 2013, som er flyttet fra Online til Onpremise. Problemet har omfattet flere kunder.

Problemet

En række brugere, som er indstillet til at benytte Email Router for Outgoing Emails blev e-mails ikke behandlet. I Email Router Configuration Manager ved klik på knappen Load Data blev e-mails ikke overført til E-mail Routeren, og dermed er de ikke behandlet.

 

Analysen

Følgende SQL Trace blev benyttet til analyse af problemet:

exec sp_executesql N'select 
top 5001 "systemuser0".SystemUserId as "systemuserid"
, "systemuser0".FullName as "fullname"
, "systemuser0".InternalEMailAddress as "internalemailaddress"
, "systemuser0".OutgoingEmailDeliveryMethod as "outgoingemaildeliverymethod"
, "systemuser0".IncomingEmailDeliveryMethod as "incomingemaildeliverymethod" 
from
SystemUserBase as "systemuser0" 
where
(((((("systemuser0".InternalEMailAddress is not null and "systemuser0".IsDisabled = @IsDisabled0)) 
 and (((("systemuser0".OutgoingEmailDeliveryMethod = @OutgoingEmailDeliveryMethod0))
  or (("systemuser0".IncomingEmailDeliveryMethod = @IncomingEmailDeliveryMethod0
   or "systemuser0".IncomingEmailDeliveryMethod = @IncomingEmailDeliveryMethod1))))
    and (("systemuser0".InviteStatusCode = @InviteStatusCode0)))))) 
            order by
"systemuser0".SystemUserId asc',
N'@IsDisabled0 bit, @OutgoingEmailDeliveryMethod0 int, @IncomingEmailDeliveryMethod0 int, @IncomingEmailDeliveryMethod1 int, @InviteStatusCode0 int', @IsDisabled0=0, @OutgoingEmailDeliveryMethod0=2, @IncomingEmailDeliveryMethod0=2, @IncomingEmailDeliveryMethod1=3, @InviteStatusCode0=4

 

Bemærk følgende: (("systemuser0".InviteStatusCode = @InviteStatusCode0))))))

Nye brugere har som standard værdien 4 (InviteStatusCode), men analysen viser at brugere har en anden værdi end 4.

Løsningen

Løsningen var at eksekvere følgende script på den aktuelle organisation:

UPDATE SystemUserBase
SET InviteStatusCode = 4
WHERE InviteStatusCode <> 4

Fejl ved import af organisationer efter Opdatering 0.1

af Henrik Jensen 25. juni 2015 19:33

Hvis man har opdateret MS CRM 2015 med Opdatering 0.1 (Update 0.1) så vil man opleve følgende fejl når man forsøger at importere en organisation:

I logfilen finder man bl.a. følgende meddelelse:

Error while updating organization information: System.Data.SqlClient.SqlException (0x80131904): Could not find stored procedure 'p_CreateAuditEntry'.

Der er flere som har oprettet en sag hos Microsoft, men der er ikke frigivet en officiel løsning på problemet. Læs mere om dette her: Error Importing Organization after Update 0.1...

I ovennævnte artikel beskriver Harald Petersilka en løsning, som jeg kan tilslutte mig, om end det er en midlertidig løsning. Husk herunder at fjerne de dele af de 2 stored procedures, som refererer til tabellen AuditHistory. De 2 stored procedures skal ende med at se således ud:

if exists (select * from sys.objects where name = 'p_CompleteAuditEntry' and type = 'P')
begin
drop procedure p_CompleteAuditEntry
end
go
create procedure p_CompleteAuditEntry( @AuditEntryId uniqueidentifier,
@Result int,
@Details nvarchar(max)) as
begin
set nocount on
end
go

 

if exists (select * from sys.objects where name = 'p_CreateAuditEntry' and type = 'P')
begin
drop procedure p_CreateAuditEntry
end
go

create procedure p_CreateAuditEntry (@AuditEntryId uniqueidentifier,
@ObjectId uniqueidentifier,
@ObjectType nvarchar(40),
@Operation nvarchar(40),
@Details nvarchar(max),
@UserName nvarchar(40)) as
begin
set nocount on
end
go

Forbedring af ydelsen på forespørgsler med SQL Server 2014

af Henrik Jensen 8. juni 2015 08:42

Jeg læste for nyligt et indlæg (Improve CRM query performance using compatibility version 120 with SQL 2014...) som har fokus på forbedring af ydelsen på forespørgsler med SQL Server 2014. Indlægget kommer omkring fordelene ved at indstille Compatibility Level på SQL Serveren til det korrekte niveau. I forhold til SQL Server 2014 er det SQL Server 2014 (120):

Jeg har lavet en række test (forespørgsler på indekserede og ikke indekserede felter) af ydelsen på de forskellige Compatibility Level med følgende resultat:

  • SQL Server 2008 (100): Udgangspunktet for analysen
  • SQL Server 2012 (110): En ydelsesfremgang på 2-4%
  • SQL Server 2014 (120): En ydelsesfremgang på optil 25%

Vær opmærksom på at hvis man skifter indstillingerne i et kørende miljø så kan det påvirke resultatet af forespørgsler til det uheldige...altså at man får forkerte resultater af forespørgsler. For at undgå dette kan man:

  • Genstarte SQL Serveren

    eller

  • Indstil databasen til Single-user access mode ved at benytte ALTER DATABASE SET SINGLE_USER.
  • Ændre Compatibility level.
  • Indstil databasen til Multi-user access mode ved at benytte ALTER DATABASE SET MULTI_USER.

MS CRM-rapporter med PowerPivot

af Henrik Jensen 23. november 2012 16:09

I går afholdt jeg et indlæg på MS CRM Partner Community hos Microsoft.

På dette Community-møde handlede mit indlæg om PowerPivot, og om hvordan man kommer i gang med at benytte PowerPivot til at lave rapporter som relaterer til såvel MS CRM som andre datakilder.

Dagen igennem har modtaget en række e-mails, samt henvendelser fra MS partnere og kunder via bloggen, hvor jeg bliver spurgt til PowerPoint-præsentation og links.

Så hermed min PowerPoint-præsentation:  MSCRM_2011-CRM-rapporter_med_PowerPivot.pptx (498,84 kb)

Nye kurser til MS CRM 2011

af Henrik Jensen 4. juli 2012 21:53

Microsoft har atter frigivet en række kurser (Engelsk). I denne omgang som e-learning. Kurserne er kun tilgængelige for Microsoft Partnere (Login kræves).

  • Implementing Claims-Based Authentication and IFD (61 minutter)
    Kurset kommer omkring de mange udfordringer, der er ved implementering og konfiguration af Claims-baseret sikkerhed ifm. MS CRM 2011.
    Kursusindhold:
    • Preparing to use Claims-Based Authentication
    • Install and configure the ADFS 2.0 server
    • Configure the CRM Server for Claims-Based Authentication
    • Configure the CRM Server for IFD
    • How to pass through claims for an untrusted domain
    • Troubleshooting
       
  • Custom Reporting (67 minutter)
    Kurset handler om at oprette brugerdefinerede rapporter, som laves ved brug af MS CRM 2011 og BIDS (Business Intelligence Developer Studio).
    Kursusindhold:
    • Reporting Extensions
    • Custom Report Types
    • Fetch XML-based Reports
    • SQL-based Reports
    • Working with Solutions
    • Including External data Sources on Reports

Ud over ovennævnte nye kurser, vil jeg anbefale følgende kurser: Kurser til MS CRM 2011...

Maksimumsgrænsen for poster er overskredet, og dashboard vises ikke...?

af Henrik Jensen 27. februar 2012 16:21

I forbindelse med dashboard, i MS CRM 2011, kan man rende ind i en kedelig meddelelse, nemlig "Maksimumgrænsen for poster er overskredet. Reducer antallet af poster.", og det var præcis hvad en af mine kollegaer (Bo Møller, Logica) gjorde mig opmærksom på.

Jeg har gravede lidt i problemstillingen, hvilket dette indlæg handler om. I indlægget anvises også en anden indstilling, som er anvendelig omkring dashboards.

Læs mere: Maksimumsgrænsen for poster er overskredet, og dashboard vises ikke...

Bliv medlem af CRMUG DK

De regionale afdelinger i CRMUG giver mulighed for a mødes med andre medlemmer af CRMUG i dit lokalområde. Hermed får du mulighed for at mødes ansigt til ansigt og vidensdele med andre brugere af Microsoft Dynamics CRM i dit område.

Læs mere den Danske afdeling af CRMUG...

Om Henrik Jensen

Jeg har altid fingeren på pulsen når det drejer sig om Microsofts produkter & teknologier, og især når det handler om Microsoft Dynamics CRM.

Henrik Jensen

Jeg har arbejdet professionelt i IT-branchen mere end 25 års, deraf mere end 18 år med CRM-systemer, og samtidig indehaver af mere end 50 Microsoft-certificeringer.

EASYConsult ApS

Læs mere...

Downloads, værktøjer, installation og JScript

Downloade komponenter til MS CRM:
    • Microsoft Dynamics CRM 4.0
    • Microsoft Dynamics CRM 2011
    • Microsoft Dynamics CRM 2013
    • Microsoft Dynamics CRM 2015
    • Microsoft Dynamics CRM 2016

Liste over Opdateringspakker (Rollups):
    • Microsoft Dynamics CRM 4.0
    • Microsoft Dynamics CRM 2011
    • Microsoft Dynamics CRM 2013
    • Microsoft Dynamics CRM 2015
    • Microsoft Dynamics CRM 2016

Værktøjer til MS CRM:
    • Liste med værktøjer til MS CRM

Krav og opsætninger til installation:
    • Krav og opsætninger MS CRM 2011
    • Krav og opsætninger MS CRM 2013
    • Krav og opsætninger MS CRM 2015
    • Krav og opsætninger MS CRM 2016

JScript eksempelkode:
    • JScript eksempelkode

Diverse værktøjer:
    • Sysinternals
    • PowerShell og MS CRM 2011

Månedsliste

Forbehold

Alt hvad du læser på denne blog er alene udtryk for mine egne holdninger og meninger, og kan ikke henføres til andet end som så.

De løsninger jeg fremstiller på denne blog er ikke nødvendigvis testet i et driftsmiljø. Hvis du gør brug af mine løsninger er det på eget ansvar.