Dynamics 365 (CRM) on-premise cannot login using Plugin Registration Tool or Custom App using Tooling connector.

If all of a sudden you are unable to login via PluginRegistrationTool or other apps, reason can be the recent windows security update on CRM Server.

2020-01 Cumulative Update for Windows Server 2016 for x64-based Systems (KB4534271)

Removing this update restored our connection 🙂

Information om overgangen fra den gamle Dynamics 365 webklient til Unified Interface

Hvem vedrører denne information?

Denne information vedrører primært brugere af Dynamics 365 for Sales Online.


Hvad er Unified Interface?

Unified Interface er udviklet af Microsoft til at give brugere af Dynamics 365 for sales Online en forbedret brugeroplevelse. Med et 100% responsivt design giver Unified Interface dig en bedre visnings- og interaktionsoplevelse uanset om du arbejder via browser, tablet eller telefon.


Hvad kan du selv gøre?

I september 2019 annoncerede Microsoft, at brugere af Dynamics 365 for Sales Online skal overgå fra den gamle webklient til det nye Unified Interface senest d. 1. oktober 2020.

I løbet af 2020 vil du modtage en mail fra Microsoft med emnet ”Change is coming! Automatic transition to Unified Interface”, hvor de tilbyder en planlagt overgangsdato før d. 1. oktober 2020. Du vil modtage mailen mindst 30 dage før den foreslåede dato.


1. Hvis du gerne vil gennemføre overgangen til Unified Interface på den foreslåede dato

Hvis du gerne vil have at overgangen skal finde sted på den foreslåede dato, skal du aktivt godkende dette for de enkelte miljøer, ved at logge på Unified Interface scheduling portal. Godkendelsen skal foretages af en bruger med rollen Global administrator eller Serviceadministrator. Overgangen gennemføres altså ikke på den foreslåede dato uden jeres godkendelse.


2. Hvis du gerne vil flytte datoen for overgangen til Unified Interface

Hvis du ønsker at flytte datoen for overgangen til Unified Interface skal du logge på Unified Interface scheduling portal og ændre datoen for hvert enkelt miljø. Ændring af datoen kan kun foretages af en bruger med rollen Global administrator eller Serviceadministrator.

For yderlige hjælp til dette se Ofte stillede spørgsmål: Overgang til Unified Interface.


3. Hvis du ikke ønsker overgangen til Unified Interface gennemført før 1. oktober 2020.

Hvis du ikke ønsker at gennemføre overgangen før sidste øjeblik, skal du ikke foretage dig noget på nuværende tidspunkt. Vær dog opmærksom på, at overgangen dermed sker automatisk d. 1. oktober 2020. Efter denne dato er det ikke længere muligt at benytte den gamle webklient.


Brug for hjælp?

Find mere information om overgangen til Unified Interface her: FAQ og Kontrolliste.

Det anbefales at gennemgå kontrollisten omhyggeligt for at sikre, at du er klar til overgangen til Unified Interface. Du er også altid velkommen til at kontakte os på telefon 70 22 14 64 eller via support@valcore.dk

Dynamics 365 CRM update/upgrade error: The UPDATE statement conflicted with the FOREIGN KEY constraint “solution_base_dependencynode”

Recently while upgrading (import db) CRM deployment from 2016 to v9 we encountered this strange error. After trying everything including mentioned her and running short of time, we opened MS ticket and got a script to run on organisation’s DB, which actually resolved this issue.
Script actually drops foreign key constraints so should be used carefully and at your own risk.

IF OBJECT_ID(‘tempdb..#DropForeignKeysStatement’) IS NOT NULL DROP TABLE #DropForeignKeysStatement

SELECT DropStatement = ‘ALTER TABLE [dbo].[‘ + st.name + ‘] DROP CONSTRAINT [‘ + sfk.name + ‘]’
INTO #DropForeignKeysStatement
FROM sys.foreign_keys sfk
INNER JOIN sys.tables st ON sfk.parent_object_id = st.object_id
AND sfk.schema_id = st.schema_id
WHERE sfk.schema_id = schema_id(‘dbo’)

SELECT DropStatement FROM #DropForeignKeysStatement

DECLARE dropStatementCursor CURSOR FOR
(SELECT DropStatement FROM #DropForeignKeysStatement);

OPEN dropStatementCursor;

DECLARE @currentStatement NVARCHAR(max);

FETCH NEXT FROM dropStatementCursor INTO @currentStatement;

EXEC sp_executesql @currentStatement;

FETCH NEXT FROM dropStatementCursor INTO @currentStatement;

CLOSE dropStatementCursor;
DEALLOCATE dropStatementCursor;

IF OBJECT_ID(‘tempdb..#DropForeignKeysStatement’) IS NOT NULL DROP TABLE #DropForeignKeysStatement

Dynamics 365(CRM) Organization Update Import Failed in perform Action Install of Solution=CustomControlsCore …

We encountered the following error while updating one of our client’s organization from 8.0 to 8.2x. Other organizations got updated without any issue but this one just won’t.

Error| Failed in perform Action Install of Solution=CustomControlsCore, FileName=CustomControls.zip, Version=, Action=Install for OrgId=xxx

Since other organizations are getting updated without a problem we can imagine the issue is with the organization’s database.
After a rigorous googling and getting through a lot of org. import/update issues we fixed the problem as follows:
Problem: Our CRM base language is danish but the SQL user performing org update has default language English…
Solution: change the user’s default language to danish as is of CRM.
To find user’s default language simple open SQL_Management_Studio and under Security select properties of the user and the default language will be shown in the bottom and simply change it to one which is of CRM, or run SQL:
SELECT default_language_name
FROM sys.server_principals
WHERE name = '<user>'

To find available language name in SQL server:
SELECT name,alias FROM sys.syslanguages WHERE name = '<user>'

To set the default language for the user:
Exec sp_defaultlanguage ‘<user>’,'<languageName>’

Try updating organization from Deployment Manager and it would go smooth 🙂

Dynamics 365(CRM) on-premise huge Attachments size SQL fix (Update/Delete)

While upgrading one of our client we found huge size of database where almost 75% of the DB size was taken by the Attachments table.
Her is the sql script which is actually just updating the body field to release size occupied by large attachments. Be careful while using it as it might take several hours depending on the number of records. Batch size is set to 1000 which can be modified according to the situation. Script processes emails with no activities for more than 2 years which can be adjusted as required.

DECLARE @Count INT=1, @Total INT=0
WHILE @Count>0
UPDATE dbo.Attachment
Body = ‘QXR0YWNobWVudCB3YXMgYXJjaGl2ZWQgLSA5LzIwMTku’, — BASE64 for “Attachment was archived – 9/2019.”
FileSize = 34,
MimeType = ‘text/plain’,
FileName = FileName + ‘.txt’
WHERE AttachmentId in (
select TOP 1000 ATT.AttachmentId — Batchsize=1000
FROM dbo.Attachment ATT
INNER JOIN ActivityMimeAttachment AS AMA ON ATT.AttachmentId = AMA.AttachmentId
INNER JOIN Email AS EML ON EML.ActivityId = AMA.ObjectId
INNER JOIN ActivityPointer AS ACT ON EML.ActivityId = ACT.ActivityId
AMA.ObjectTypeCode = 4202 — emails
AND ATT.FileSize > 50000
AND ACT.ModifiedOn < GETDATE() – 730 — older than 2 years
order by ATT.FileSize desc — to process larger attachments first
SET @Count= @@ROWCOUNT — effted rows
SET @Total = @Total + @Count
PRINT ‘Processed ‘ + CAST(@Total as varchar) + ‘ records.’

Her is the sql script to find out the top 10 tables with largest size:

select top 10 schema_name(tab.schema_id) + ‘.’ + tab.name as [table],
cast(sum(spc.used_pages * 8)/1024.00 as numeric(36, 2)) as used_mb,
cast(sum(spc.total_pages * 8)/1024.00 as numeric(36, 2)) as allocated_mb
from sys.tables tab
join sys.indexes ind
on tab.object_id = ind.object_id
join sys.partitions part
on ind.object_id = part.object_id and ind.index_id = part.index_id
join sys.allocation_units spc
on part.partition_id = spc.container_id
group by schema_name(tab.schema_id) + ‘.’ + tab.name
order by sum(spc.used_pages) desc;

Source: https://dataedo.com/kb/query/sql-server/list-10-largest-tables

Dynamics 365 2019 release wave 2. Some of long waited features in Sales and Customer Service (coming from Aug-Oct)

Following are some of the upcoming features finally coming after public voice. Though most of them are only available in unified interface.


  • Rich text editor on non-blocking pop-up for composing emails (only on UI)
    It helps writing email with context to the record we are working on and can have multiple working drafts at same time. Add attachments, navigate between records and so on.
  • Business card scan (only on UI in US and EU regions)
    Scan business card via mobile or web.
  • Customization of opportunity close dialog box (only on UI)
    This feature was on customer’s voice for several years and is finally heard by MS :). A lot of companies created their own html webresource to achieve this.
  • Lead qualification with options of creating relevant records (only on UI)

Customer Service:

  • Knowledge management inline image enhancementUsers can directly copy, paste, and drag and drop images, or select them from File Explorer and add them to knowledge articles, instead of sourcing them from links, as is done today.

For a full list of features please visit:



Dynamics 365 (CRM) Users, Security Roles and Assign/Delete Views

Dynamics 365 CRM gives out of the box functionality to view a user’s security role but what if we want to view all users who have a particular security role? we might have to build query using advanced find or something else…
Another situation can be if a user have left company but owns som important views. How to share those to other(s) or delete them?
To answer these questions we wrote a little utility that will help:
1. View a user’s security roles.
2. View users a particular security role is assigned to.
3. View a user’s personal views
4. Delete a user’s personal views
5. Assign a user’s views to another user (keeping both source user and target user updated instantly)
6. Swap between source and target user updating their views windows.

To install simply download the managed solution from github DownloadLink and import to organization v9.1 and open configuration page.

Below is a screenshot of utility.

Scribe Insight “Error opening data object ” (solved). Security update for microsoft windows (KB4512517)

If anyone is experiencing this error then there can be one of the following 2 reasons.
(If error just started showing up without any change and integration has been working fine before then jump straight to option 2)

  1. Rights issue
    – Check accound running scribe services have permissions to collaborations folder and Message queues
    – Check scribeinternal dns or file dns is of type system dns not user dns
  2. Security update for microsoft windows (KB4512517)
    If integration has been working fine and error showed up then there might be this security update installed. You can uninstall the update or contact scribe for other solution.


Hvis du lærer dette sparer du RIGTIG meget tid……

Vi oplever jævnligt, at større mængde nyt data (fx nye firmaer) bliver tastet manuelt ind i CRM systemet. Det er en unødvendig tidsrøver, men mange vælger den løsning fordi de tror, at det er for bøvlet og svært at importere data.

”Det er kun noget, som de der IT folk kan finde ud af….”

”Det er kun 30 nye kunder – det er hurtigere at bare taste det hele ind selv”

”Sidst jeg prøvede virkede det ikke”

Men det behøver heldigvis ikke at være sådan. Det er slet ikke så besværligt – det der data import.

Læs mere


…. Og hvad du kan gøre ved det.

Lad os bare være ærlige – om du er ny eller erfaren bruger i CRM, så lykkedes tingene ikke altid. (Jo, det driller af og til også os.)

Især visninger kan være tricky. Derfor vil vi gerne hjælpe dig på vej og dele ud af vores tricks; for vi ved godt, hvor frustrerende det er, når de ønskede resultater ikke fremkommer. Eller endnu værre….

Hvis du får forkerte resultater!

(bare rolig – hvis du slet ikke ved, hvad en CRM-visning er, så bare hæng på – det har vi en løsning til)

Lad os give dig et par eksempler på, hvor det ofte går galt:

Du opretter en visning over dine kunder i Århus, men du kan se, at du mangler nogle kunder i søgeresultaterne.

Du vælger måske her at finde dine bedste bandeord frem og supplere med et effektivt hårdt slag på din pc….. bare lige så den forstår alvoren!

Læs mere