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.

Fejl ved import af løsninger i Opdatering 0.2

af Henrik Jensen 7. december 2015 15:12

Man kan opleve fejl ved import af Løsninger når man har implementeret Opdatering 0.2 til MS CRM 2015.

 

Man kan ligeledes opleve fejlen ved brug af Ribbon Workbench:

Fejlen opstår hvis man har oprettet Forretningsregler (Business Rules) på en entitet som er i den Løsning man importerer.

Jeg har følgende bemærkninger til fejlen:

  • Fejlen er erkendt af Microsoft, som arbejder på en løsning.
  • Hvornår der frigives en løsning vides ikke pt.
  • Fejlen omhandler alene Opdatering 0.2, og altså ikke 7.1.1 eller MS CRM 2016.
  • Den gode mand Scott Durow fra Develop 1 har beskrevet (link herunder) at en løsning kan være at oprette Forretningsreglerne. Jeg kan dog bekræfte at det ikke vil fungere i alle tilfælde.

 

Midlertidig løsning

Selv om det måske er en ringe trøst, kan en midlertidig løsning være, at fjerne alle Forretningsregler i den Løsning man importerer til. Man skal selvfølgelig huske at disse så skal være i den Løsning man importerer...ellers mistes de jo.

 

Læs mere

Blinkende markør i Outlook 2013 med MS CRM 2015

af Henrik Jensen 23. november 2015 08:22

I forbindelse med opsætning af MS CRM 2015 til Outlook 2013 i et testmiljø hvor der indgik en Barracuda Proxy oplevede vi at Outlook 2013 blinkede, som om at Outlook forsøgte at indlæse data, men ikke rigtig kom videre.

Det viste sig at en manglende konfigurationsfil til MS CRM til Outlook var den grundlæggende årsag til problemet.

Problemet kan løses ved at oprette en tom fil med navnet Microsoft.CRM.Application.Outlook.WebFormsHost.exe.config og placere filen, på Outlook-klienten, i mappen C:\Program Files\Microsoft Dynamics CRM\Client\res\web\bin

Inspiration til løsning af problemet blev fundet her (Engelsk): Flashing Cursor in Outlook 2013 with CRM 2015 for Outlook installed...

To nye felter, i MS CRM 2015, som kan forårsage fejl

af Henrik Jensen 10. november 2015 12:13

MS CRM 2015 indeholder en række nye felter, herunder følgende felter på Firma:

  • Åbne handler (opendeals)
  • Åben omsætning (openrevenue)

Felterne er indstillet som Akkumulerede felter samt bagvedliggende definition akkumuleringen (eksemplet herunder er på feltet Åben omsætning (openrevenue)):

Felterne er indstillet til Feltsikkerhed (Field Level Security):

En nærmere analyse af Profil for feltsikkerhed viser at felterne ikke kan indstilles til Opdater og Opret.

...op det er her balladen kan opstå i form af en fejlmeddelelse (se herunder), nemlig at felterne ikke kan opdateres, og dermed ikke fungerer efter hensigten. Der er selvfølgelig tale om en fejl fra Microsofts side. Indtil fejlen bliver rettet kan man slå Feltsikkerheden fra på de 2 felter.

Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: User with ID 918e980f-ae4a-e311-8c18-005056b90028 does not have Update permissions for the openrevenue attribute in the account entity. The accountid of the record is 66da74a1-3b3e-e411-9407-005056b93ac4Detail: 
<OrganizationServiceFault xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/xrm/2011/Contracts">
  <ErrorCode>-2147158777</ErrorCode>
  <ErrorDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic" />
  <Message>User with ID 918e980f-ae4a-e311-8c18-005056b90028 does not have Update permissions for the openrevenue attribute in the account entity. The accountid of the record is 66da74a1-3b3e-e411-9407-005056b93ac4</Message>
  <Timestamp>2015-11-02T08:07:15.6466161Z</Timestamp>
  <InnerFault i:nil="true" />
  <TraceText i:nil="true" />
</OrganizationServiceFault>

Opgradering fra MS CRM 2013 til MS CRM 2015 kan fejle

af Henrik Jensen 28. september 2015 21:51

Philip Stanhope

Hvis man opgraderer MS CRM 2015 til MS CRM 2015 kan man opleve en bemærkelsesværdig fejl. Fejlen går ud på at der bliver skrevet en forkert datoværdi i en tabel i CRM-organisationsdatabasen.

I forbindelse med opgraderingen kan man opleve følgende fejl (uddrag af logfil):

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Microsoft.Crm.CrmArgumentOutOfRangeException: DateTime is less than minumum value supported by CrmDateTime. Actual value: 01/01/1753 00:00:00, Minimum value supported: 01/01/1900 00:00:00 ---> System.ArgumentOutOfRangeException: DateTime is less than minumum value supported by CrmDateTime. Actual value: 01/01/1753 00:00:00, Minimum value supported: 01/01/1900 00:00:00

Læg mærke til datoen 01/01/1753.

Konsulentchef Anders Lytoft Fyrst fra Nordic Computer, analyserede sig frem til at det var opgraderingsprocesser der indsatte den "forkerte" dato i tabellen TimeZoneRuleBase i organisationsdatabasen:

 

Løsningen

Inspiration til løsning på problemet er hentet i følgende blogindlæg: Upgrade 2013 to 2015 causes error...

Dog med en lille ændring af triggeren:

CREATE TRIGGER MyBasicTrigger On timezonerulebase After Insert, Update AS   
SET NoCount ON   
IF UPDATE(effectivedatetime)  
BEGIN
	UPDATE timezonerulebase
	SET EffectiveDateTime = '1900-01-01'     
	FROM timezonerulebase
	INNER JOIN inserted on timezonerulebase.TimeZoneRuleId = inserted.TimeZoneRuleId     
	WHERE Inserted.EffectiveDateTime < '1900-01-01'  
END

Efter oprettelse af triggeren køres opgraderingen. Når denne er færdig fjernes triggeren med følgende kommando:

DROP Trigger MyBasicTrigger

 

Læs mere

Mon fejlen har noget med den 4. Jarl af Chesterfield Philip Stanhope at gøre? Det kan du selv vurdere efter at have læst følgende: What is the significance of 1/1/1753 in SQL Server?...

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

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.