Skip to main content

Error while Restoring DB After Dynamics F&O Version Upgrade "An unexpected failure occurred: Data plan execution failed with message One or more errors occurred. (One or more errors occurred. (One or more errors occurred. (Violation of PRIMARY KEY constraint 'I_15464SETTINGKEYINDEX'. Cannot insert duplicate key in object 'dbo.FINANCIALREPORTINGSETTINGS'. The duplicate key value is (5637144576, DisableMaps). The statement has been terminated.)))."

Dear Dev Team,

We usually encounter this type of error after upgrading Dynamics versions. The simplest and most reliable way to resolve it is to restore or import the database using a temporary name, and then rename it back to AxDB afterward.


Failed Execution : 

you will get the error message.
"An unexpected failure occurred: Data plan execution failed with message One or more errors occurred. (One or more errors occurred. (One or more errors occurred. (Violation of PRIMARY KEY constraint 'I_15464SETTINGKEYINDEX'. Cannot insert duplicate key in object 'dbo.FINANCIALREPORTINGSETTINGS'. The duplicate key value is (5637144576, DisableMaps). The statement has been terminated.)))."

Correct approach

The key step is to temporarily rename AxDB to AxDBLocal during the import.

C:\SqlPackageExe>SqlPackage.exe /a:import /sf:C:\DB\qfz-erp-stgbackup.bacpac /tsn:LOCALHOST /tdn:AxDBLocal /p:CommandTimeout=18000 /TargetEncryptConnection:False


Later use below script to update the name: 


Comments

Popular posts from this blog

Update record set using update_recordset in d365 F&O | AX 2012 using X++

Hello Devs! One the most common condition that we being a developer faces is to update existing records set that is mostly done on report level when we need to add new fields in the Temporary table and we don't wants to make extensions on class level. Here is a small piece of code that will assist you in updating existing record sets.  update_recordset custAgingReportTmp                 setting                 CMTCustInternalCollector = hcmWorker.PersonnelNumber,                 PaymDayId                         = custTable.PaymDayId,                 PaymTermId                       = custTable.PaymTermId,                 CashDisc      ...

Import DB backup from .BacPac file in D365 F&O using CMD

Hello Devs! This is one of the most quickest way to import DB from .Bacpac file. Bacpac files are those which are generated from Tier 2 or higher environments as a DB backup.   Alternate Approach ----> Using wizard Prerequisites: 1) Access to LCS folder Asset library --> Database Backup Incase you don't see the folder ask your project owner to give you the access. Step 1:  Download the file and save it in local non-user directory.  Step 2: - Services to be stopped World Wide Web Publishing Service Management Reporter 2012 Process Service Microsoft Dynamics 365 Unified Operations: Batch Management Service Microsoft Dynamics 365 Unified Operations: Data Import Export Framework Service - Download SqlPackage.Exe.  Download link :  https://learn.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-download?view=sql-server-ver15 Extract it and Open CMD as admin.  Step 3 :  Navigate to directory where you have extracted the SqlPackage.Exe folder us...

Upload and Download file to BLOB storage Account in D365 F&O using X++

Hello Devs! This blog will be a source of help for many Devs who are working on Azure Blog Storage account. We normally use azure blob storage account to hold thing that need to be further processed and stored on cloud. Scenario:  We have been asked to * Upload file to azure * Download file from azure "We will be using Share File Management technique" Case #1 : Uploading File to Azure  Note : Here we are using  PurchParameter  table to extract urls and other folder related details you can use your own folder name to access the azure blob folder Further, Credential details have already been extracted i.e vault key,authorization key and has been stored in our custom table and extracted from d365 through azure parameters  storageCredentials  = new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials(SystemParameters::find().CMTStorageAccountName, purchParameters.CMTTankKeyVaultSecret); Or alternatively, CloudStorageAccount storageAccount = ...