Fejl ved visning af CRM i Outlook

af Henrik Jensen 16. oktober 2017 12:51

Hussain Iqbal fra CoreAmbition har gjort mig opmærksom på en fejl som kan opstå ved visning af CRM i Outlook.

Fejlen resulterer i et tomt skærmbillede.

Microsoft har erkendt fejlen, som kan opstå efter opdatering af i Oktober 2017 Outlook Security Update.

Løsningen

Microsoft har frigivet en artikel som beskriver hvad man skal gøre for at løse/undgå problemet, nemlig ved at oprette en nøgle i registreringsdatabasen, som afhænger af hvilken version af Outlook man benytter: Læs mere her (Engelsk): Microsoft Dynamics 365 for Outlook is unable to render webpages after installing the October 2017 Microsoft Outlook security update...

Løsning på fejl vedr. SQL Servers instansnavn som ikke matcher computerens navn

af Henrik Jensen 28. september 2017 08:00

Jeg flyttede for nyligt SQL Server på et hostingcenter, og stødte i den forbindelse på en sjælden fejl.

Den nye SQL Server havde følgende karakteristika:

  • SQL Server 2016 Standard Edition
  • 2 Instanser (CRM 2015 og CRM 2016)

SQL Serverens navn var xxHOSTCRMSQL-STD (xx er opfundet for at skjule kundens identitet). Med dette navn skulle de 2 instanser så have følgende navne:

  • xxHOSTCRMSQL-STD\MSSQLSTD2015
  • xxHOSTCRMSQL-STD\MSSQLSTD2016

I forbindelse med etableringen af instanserne fremkom der en fejl som indikerede at server-delen af navnet (xxHOSTCRMSQL-STD) på instansen var for langt. Jeg troede at vi var ovre den tid med korte navne på servere...men nej!

Navnet på serveren skulle ændres (til xxHOSTSQL-STD), og dem som har prøvet det på en server som har installeret SQL Server ved at det gør man ikke bare. Normalt skal man afinstallere og installere SQL Serveren igen efter ændringen af serverens navn. Men sådan er det ikke med SQL Server 2016. Den kan godt finde ud af at omdøbe SQL Serveren og dens instanser..hurra Microsoft - langt om længe!

Jublen varede dog kun til at CRM-organisationerne skulle flytter, så fremkom følgende ballade:

Så havde ændringen af navnet på serveren alligevel ikke slået igennem alle steder, på trods af at dette blev indikeret i navnet når man åbner de 2 instanser på SQL Serveren.

Løsningen

Løsningen var at fjerne det forkerte navn på de 2 instanser og oprette disse igen. Dette gøres således:

  1. Åbn SQL Serveren med den ønskede instans.
  2. Klik, med den højre musknap, på instansen og vælg New Query.


     
  3. Indtast og eksekver følgende kommando for at identificere navnet på instansen: select @@servername
    Resultatet er: xxHOSTCRMSQL-ST\MSSQLSTD2015, altså det forkerte navn.
     
  4. Fjern navnet ved at eksekvere følgende kommando: SP_DROPSERVER "xxHOSTCRMSQL-ST\MSSQLSTD2015"
     
  5. Opret det nye navn ved at eksekvere følgende kommando: SP_ADDSERVER "xxHOSTSQL-STD\MSSQLSTD2016", local
     
  6. Tjek evt. navnet ved at eksekvere følgende kommando: SP_HELPSERVER

Løsningen på fejlmeddelelsen: "The current active key (KeyType: CrmWRPCTokenKey) is expired"

af Henrik Jensen 22. september 2017 14:02

Jeg har tidligere oplevet fejlen "The current active key (KeyType: CrmWRPCTokenKey) is expired" i tidligere versioner af CRM, men nu er det ligesom at fejlen er ved at dukke op igen.

 

Senest har jeg oplevet fejlen i følgende setup:

 

 

Løsningen

Ved ovennævnte CRM-setup var løsningen følgende:

FrontEnd-servere

  1. Åbn en Kommandoprompt (Eleveret) og indtast følgende kommando: "C:\Program Files\Microsoft Dynamics CRM\tools\Microsoft.Crm.Tools.WRPCKeyRenewal.exe" /R
  2. Lav en IISRESET
     

BackEnd-server

  1. Genstart følgende Services:
    • Microsoft Dynamics CRM Asynchronous Processing Service
    • Microsoft Dynamics CRM Asynchronous Processing Service (maintenance)
       
  2. Åbn en Kommandoprompt (Eleveret) og indtast følgende kommando: "C:\Program Files\Microsoft Dynamics CRM\tools\Microsoft.Crm.Tools.WRPCKeyRenewal.exe" /R
     
  3. Genstart følgende service:
    • Microsoft Dynamics CRM Monitoring Service

Fejl vedrørende Sandbox-processer og Trace directory i Dynamics 365 Onpremise

af Henrik Jensen 18. september 2017 08:04

I forbindelse med installation og konfiguration af Dynamics 365 Onpremise, vil man rende ind i et irriterende problem som vedrører Sandbox-processer og en fejl vedrørende Trace directory.

Fejlene forekommer primært ved implementering af Opdatering 2.1.

Fejlen vedrørende Sandbox-processer forekommer primært hvis man har selvudviklede plugins eller implementeret løsninger med plugins, og medfører at CRM kører en del langsommere end normalt, og man vil se at CRM-serveren bruger op til 100% CPU. Fejlen forekommer også hvis man benytter en eller flere Backend- og Frontend-servere.

Fejlen vedrørende Trace directory kan man se i Event Vieweren, hvor der vil optræde rigtig mange fejl som indikerer "Invalid Trace Directory". Fejlen har eksisteret siden CRM-version 2011. Læs tidligere blogindlæg: Fejlmeddelelse samt aktiveres af sporing i MS CRM 2011...

 

Faktisk hænger de to fejl sammen.

Løsningen

Løsningen er tildels ulogisk, idet man skal angive et trace directory (logisk) men også enable tracing (ikke logisk). Vær opmærksom på at det medfører at der bliver oprettet trace-filer i det directory man angiver.

Man kan enten benytte Powershell og køre følgende kommandoer på CRM-serveren/serverne:

Add-PSSnapin Microsoft.Crm.PowerShell
$Setting = Get-CrmSetting TraceSettings
$Setting.Enabled = $True 
$Setting.CallStack=$True 
$Setting.Categories="*:Error" 
$Setting.Directory="C:\Program Files\Microsoft Dynamics CRM\Trace"
Set-CrmSetting $Setting

 

Man kan også oprette følgende i Registreringsdatabasen (Registry), under HKLM\Software\Microsoft\MSCRM:

Key Type Indstilling
TraceDirectory String C:\Program Files\Microsoft Dynamics CRM\Trace
TraceEnabled DWORD 1
SandboxHostMinWorkerProcesses DWORD 1

Undgå automatisk oprettelse af dubletter

af Henrik Jensen 13. august 2017 16:45

For nogen tid siden oplevede en af mine kunder at der blev oprettet dubletter af Kontaktpersoner. I perioder blev der oprettet flere hundrede Kontaktpersoner indenfor få minutter...altså ikke en menneskelig handling. Der måtte være noget kode bagved som spillede et puds.

Analysen

Jeg lavede den sædvanlige analyse af Arbejdsprocesser (Workflows), Plugins, Klientside-kode, Forretningsregler (Business Rules). Men der var ikke noget af det som oprettede Kontaktpersonerne.

En anden underlig ting var, at det ofte var en bruger med navnet CRMAdmin, som oprettede Kontaktpersonerne, og vi havde en overgang i tankerne at det kunne være NN Markedsdata (Som nu hedder Bisnode), som var årsagen. NN Markedsdata var inde over for at hjælpe med analyser, og vi endte med at konkludere at årsagen ikke var NN Markedsdata.

Jeg valgte at oprette en supportsag hos Microsoft, som sagde, at de havde lignende sager hos andre kunder.

Årsagen

Årsagen til problemet er en smule mystisk. Det viser sig nemlig at handle om 2 ting:

  1. Der benyttes Server Side Synchronization
  2. Der er ikke mindst 1 aktiv Dublet-regel under Kontaktpersoner

Microsoft har erkendt at der er tale om en fejl (bug) i CRM, og at den vil blive rettet i en fremtidig opdatering.

Løsningen

En midlertidig løsning er at aktivere mindst 1 Regler for registrering af dubletter. I dette tilfælde aktiverede vi 2 regler og analyserede over 3 dage for at konstatere at der ikke længere blev oprettet dubletter.

Reglerne har følgende kriterier:

Undergitter kan forsvinde i MS CRM 2011 efter Windows-opdatering

af Henrik Jensen 18. marts 2017 08:39

Jesper Funk fra Brüel & Kjær har tippet mig om et problem, som man kan rende ind i hvis man har MS CRM 2011.

Problemet er at undergitter ikke vises i MS CRM 2011. Fejlen kan opstå hvis man implementerer Security Update for Microsoft Windows (KB4013429). Problemet kan ikke alene løses ved at fjerne sikkerhedsopdateringen.

Jesper Fogh og Jesper Funk fra Brüel & Kjær har gennemført en supportsag hos Microsoft, som har anerkendt problemet, så må vi se hvordan problemet løses. Der udkommer nemlig ikke flere opdateringspakker til MS CRM 2011. Læs mere om det her: Opdatering til Opdateringspakke 18 til MS CRM 2011...

Jesper Fogh og Jesper Funk fundet en midlertidig løsning på problemet.

På CRM-serveren (eller CRM FrontEnd-serverne), i filen global.css.aspx, skal man indsætte følgende til sidst i filen:

table.ms-crm-Form-Layout span[type="subgrid"] {position:static !important}

Filen global.css.aspx finder man 2 steder:

  • C:\Program Files\Microsoft Dynamics CRM\CRMWeb\_common\styles\
  • C:\Program Files\Microsoft Dynamics CRM\CRMWeb\Help\Common\

Der er andre som har bokset med problemet, som man kan læse mere om i denne tråd (specielt til sidst i tråden) (Engelsk): Win10 March cumulative update KB 4013429 breaks display of forms in MS CRM 2011... 

Dynamics 365 Onpremise: Fejl ved opgradering af organisation

af Henrik Jensen 3. januar 2017 19:11

Efter at jeg selv skrev et indlæg om fejl efter opgradering af MS CRM 2016 til Dynamics 365 Onpremise, har flere kontaktet mig med lignende fejl eller andre fejl.

Morten Jørgensen fra C2-Relations har gjort mig opmærksom på endnu en fejl efter opgradering af MS CRM 2016 (8.0.1.79) til Dynamics 365 Onpremise (8.2.0.749).

Problemet

CRM-serveren opdateres uden den store ballade, men organisationerne bliver ikke opgraderet. Årsagen er ballade med index i solutionbase:

Info| Database update install failed for orgId = “orgid”.  Continuing with other orgs.
Exception: System.Data.SqlClient.SqlException (0x80131904): Cannot insert duplicate key row in object 'dbo.SolutionBase' with unique index 'ndx_UniqueName'.
The duplicate key value is (SnapshotSolution80).
The statement has been terminated.

Informationen skriver samtidig at det skyldes SnapshotSolution80, hvilket ikke er korrekt. Den egentlige årsag skal formegentlig findes i at organisationen tidligere er opgraderet fra MS CRM 2015.

Det som er forvirrende er at fejlen henleder opmærksomheden på SnapshotSolution80, men ID'et handler faktisk om SnapshotSolution (Det er nok her opgraderingen fra MS CRM 2015 til 2016 spiller ind), ID’et har tilknytning til SnapshotSolution, og ikke SnapshotSolution80.

Løsningen

Det virker med andre ord som om at et opgraderingsscript ikke bliver afviklet. Der findes rigtig mange af disse som afvikles ved en opgradering.

Når følgende script er afviklet, på den eller de organisationsdatabaser der ikke kan opgraderes, kan organisationen opgraderes, og i følge egne tests, kører alt som det skal.

-- Solution Type is a new field introduced in v8.2 and this needs to be set for old 8.0 solution which was created in v8.1
-- devek 6/29/2016
UPDATE SolutionBase 
SET SolutionType = 1, Version = '8.0', UniqueName = 'SnapshotSolution80'
WHERE SolutionId = '57A85212-B3B4-4C39-BCB0-5D5EF1F5FFC4'

I databasen kan man se følgende (læg mærke til at SnapshotSolution80 blev introduceret i Leo - MS CRM 2013 Rollup 1 (6.1.x.x)):

Bemærkninger

Hvis man ikke kører ovennævnte script så er organisationen/organisationerne ikke opgraderet, hvilket indebærer at man ikke kan Publicere tilpasninger (Publish). Man får følgende fejlmeddlelse, også selv om man har rollen Systemadministrator (System Administrator):

Med følgende fejl:

PrivilegeName: prvReadCustomControl, PrivilegeId: f343f9c2-3810-4328-adbc-7fe57a0a63c5

Hvis man opretter en Brugertilpasset Sikkerhedsroller (Custom Security Roles), så fremkommer samme fejl.

Dynamics 365 Onpremise: Fejl ved indlæsning af formularer

af Henrik Jensen 29. december 2016 13:14

Den nyligt frigivne opdatering Serviceopdatering 2 (Servicepack 2) til MS CRM 2016, som også har navnet Dynamics 365 Opdatering 2, har en irriterende fejl. Når man f.eks. forsøger at åbne et Firma (Account), så åbnes formularen ikke. Det eneste man møder er følgende meddelelse:

 

Indtil Microsoft har erkendt fejlen, og fået gjort noget ved den, kan man imidlertid slå Brug den ældre formulargengivelse (Use legacy form rendering) under Indstillinger, Administration, Systemindstillinger (Settings, Administration, System Settings), i fanen Generelt (General)

 

Jeg har kun kunne fremprovokere fejlen i Internet Explorer, og ikke i Firefox og Chrome. I øvrigt er hastigheden virkelig god i de sidstnævnte browsere.

Forretningsregler kan åbne for låste felter

af Henrik Jensen 9. juni 2016 16:10

Min gode kollega Thomas Pein-Lorenzen har lavet et blogindlæg på baggrund af en opdagense en anden kollega (Niclas Lund Stisager) har gjort.

Opdagelsen går ud på at, hvis man opretter en Forretningsregel (Business Rule), som låser op for felter, så vil disse forblive låst op selv om man f.eks. lukker en Salgsmulighed, deaktiverer en Kontaktperson mv. Der kan vist ikke være tvivl om at der er tale om en fejl i MS CRM.

 

Ud over de test som Thomas og Niclas har lavet, har jeg testet fejlen i den seneste opdatering (Serviceopdatering 1) til såvel Online som Onpremise, og fejlen er der stadig, og det gælder for alle felttyper.

...men der er en løsning på fejlen, om end den er lidt kryptisk, nemlig at opsætte mere end et kriterie i samme Forretningsregel.

Jeg kan anbefale at tage et kig på blogindlægget (Engelsk): Possible CRM bug: Business rules overrule Read-only records...

Fejl ved implementering af Documents Core Pack

af Henrik Jensen 8. april 2016 07:49

Min kollega Thomas Pein-Lorenzen viste mig en fejl som opstod når man implementerer Add-in'en Documents Core Pack (DCP) i en organisation (nedenstående er kun en del af fejlmeddelelsen).

Der fremkom endvidere en række fejl i Event Loggen på CRM-serveren, men disse gav ikke en særlig god information om hvad der kunne være galt, så vi besluttede at kontakte DCPs support, og de gav os følgende svar (her oversat fra Engelsk), som vi blev en del overrasket over:

"Hvis man får fejlmeddelelsen Solution AutoMergeGlobalButtonTmp Failed To Import, betyder det, at den bruger som er i gang med at implementere DCP ikke har de nødvendige rettigheder for at tilgå løsningsfilerne.

En mulig løsning på problemet er at give rettigheden Modify på gruppen Everyone for følgende mappe på den server hvor DCP er installeret: C:\Program Files\Microsoft Dynamics CRM\CustomizationImport"

Utroligt men sandt, så virkede det. Det utrolige er, at adgangen til filsystemet, fra MS CRM, blev fjernet i MS CRM 2011...men der er åbenbart stadig noget "gammel kode", som spøger i kulissen.

Link til svar fra DCP-support (Engelsk): Solution AutoMergeGlobalButtonTmp failed to import...

Fejl ved oprettelse af Mailserverprofil (Email Server Profile) - mangler felt på formular

af Henrik Jensen 19. februar 2016 08:00

Når man konfigurerer Server Side Synchronization (SSS) i MS CRM, kan man møde en ret irriterende fejl, som kan hindre at man kan fuldføre konfigurationen. Fejlen opstår når man opretter en Mailserverprofil (Email Server Profile).

På formularer mangler Sand/Falsk-feltet Brug repræsentation til indgående mail (Use impersonation). Det er selvfølgelig en fejl at feltet mangler. En fejl som øjensynlig er opstået efter MS CRM 2015 Update 0.1 og 0.2. Fejlen opstår ligeledes i MS CRM 2016.

Det er ikke muligt at redigere formularen, for dermed at få vist feltet, men man kan indstille feltet til standard at indeholde værdien Sand (True). Det gør man ved at redigere feltet Brug repræsentation til indgående mail (incominguseimpersonation). Efter en publisering af ændringen skal man oprette en ny Mailserverprofil for at ændringen slår igennem.

Imellemtiden kan vi så vente på at Microsoft udsender en rettelse som får feltet vist igen.

Inspiration til dette indlæg er hentet fra denne tråd (Engelsk): Use Impersonation is not shown...

Den Asynkrone service fejler, og en mulig løsning

af Henrik Jensen 5. januar 2016 08:12

Jeg har netop været i kontakt med Microsoft Support i forbindelse med et problem med den asynkrone service for en kunde. Vi boksende med problemstillingen i et par uger inden der kom en brugbar løsning. Her er problemstillingen og løsningen.

Problemstillingen

Den Asynkrone Service fejlede gentagne gange, og efter en række fejl blev servicen autmatisk genstartet, for at gentage samme mønster. Event Vieweren viste følgende (uddrag):

Host [NAVN FJERNET]: failed while monitoring asynchronous operations queue. Exception: System.Windows.Markup.XamlParseException: 'Add value to collection of type 'System.Windows.Documents.TableRowGroupCollection' threw an exception.' Line number '1' and line position '1212'. ---> System.ArgumentNullException: Value cannot be null.
Parameter name: item
  at MS.Internal.Documents.TableTextElementCollectionInternal`2.Add(TElementType item)
  at MS.Internal.Documents.ContentElementCollection`2.System.Collections.IList.Add(Object value)
  at MS.Internal.Xaml.Runtime.ClrObjectRuntime.Add(Object collection, XamlType collectionType, Object value, XamlType valueXamlType)
  --- End of inner exception stack trace ---

 

Løsningen

Efter at Microsoft Support kiggede forskellige tracelogs og hukommelsesdumps igennem, viste det sig at det handlede om den hukommelse der er allokeret til Performance Counters. Hukommelsen var for lille, og at det dermed forårsagede at den asynkrone service fejlede.

Fejlrettelsen er således at allokere mere hukommelse til Performance Counters. Det gøres ved at oprette en Key med navnet FileMappingSize, af typen DWORD, og indstille værdien (decimal) til 786432 på følgende Keys i Registreringsdatabasen:

  • HKLM\System\CurrentControlSet\Services\ServiceModelEndpoint 4.0.0.0\Performance
  • HKLM\System\CurrentControlSet\Services\ServiceModelOperation 4.0.0.0\Performance
  • HKLM\System\CurrentControlSet\Services\ServiceModelService 4.0.0.0\Performance

Hvis ovennævnte Keys ikke eksisteret så findes de under ServiceModelService 3.0.0.0.

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.

Mobil: +45 20 300 300
E-mail: hj@easyconsult.dk

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.