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;

WHILE @@FETCH_STATUS = 0
BEGIN
EXEC sp_executesql @currentStatement;

FETCH NEXT FROM dropStatementCursor INTO @currentStatement;
END

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=8.2.9.19, 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
BEGIN
BEGIN TRANSACTION;
UPDATE dbo.Attachment
SET
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
WHERE
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
COMMIT TRANSACTION;
PRINT ‘Processed ‘ + CAST(@Total as varchar) + ‘ records.’
END

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.

Sales:

  • 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:

https://docs.microsoft.com/en-us/dynamics365-release-plan/2019wave2/features-ready-early-access

 

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.

SÅDAN IMPORTERER DU DATA TIL MICROSOFT DYNAMICS 365

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

HVORFOR DIN CRM-VISNING IKKE ALTID VIRKER…..

…. 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

DYNAMICS 365 KLIENTEN TIL MICROSOFT OUTLOOK KAN IKKE VISE CRM SIDER

I oktober 2017 er der frigivet en sikkerhedsopdatering til Microsoft Outlook, som blevet rullet ud på alle maskiner via Windows update. Sikkerhedsopdateringen har en sideeffekt, som gør at den blokerer for at CRM klienten kan få kontakt til CRM systemet. Microsoft anbefaler ikke at man fjerner opdateringen for at løse udfordringen med Dynamcis 365, men har i stedet frigivet et fix, som virker på Microsoft Outlook 2010, 2013 og 2016. I praksis det som skal gøres er, at der skal tilføjes en registreringsnøgle til registreringsdatabasen i Windows. Dette kan gøres manuelt , eller via Group Policies.

Læs mere

SIKKERHEDSOPDATERING FRA MICROSOFT

Vi har oplevet brugere af Microsoft Dynamics CRM hosted eller on-premises, hvor systemet har været uhensigtsmæssigt påvirket af sikkerhedsopdateringer fra Microsoft.
Uhensigtmæssighederne viser sig ved at Dashboard, visninger og andre elementer i Microsoft Dynamics CRM ikke virker og visuelt ser ud til at være “gået i stykker”

Vi har indtil videre oplevet problemer med 2 opdateringer:

  • Windows 10. Kb4013429. Kan påvirke Microsoft CRM 2011 + 2015, on-premises og hosted
  • Windows 8.1 – kb4012216. Kan påvirke Microsoft CRM 2011, on-premises og hosted

Læs mere