Disable Quick Create Views Using PowerShell

Introduction

In the Dynamics CRM, Quick Create Views provide users with a streamlined way to enter data swiftly into the system. However, there are instances where organizations may find it necessary to disable Quick Create Views for certain entities. This could be due to the need for stricter data validation, adherence to specific business processes, or other compliance requirements. In this article, we will discuss how to achieve this using PowerShell scripting.

Use Cases

Disabling Quick Create Views holds advantages across several scenarios:

  1. Data Integrity: Through the deactivation of Quick Create Views, organizations can uphold stricter data entry standards, guaranteeing the accurate capture of vital information.
  2. Automation: Users don't need to perform this step manually. Powershell script facilitates this operation to be performed on multiple entities in one go.
  3. Customization: Entities possessing extensively customized Dynamics 365 setups may require the need to disable Quick Create Views.

Step by Step process to disable quick create views


Step 1. Install Microsoft.Xrm.Data.Powershell Module

Ensure that you have the necessary PowerShell module installed. You can install it using the following command:

Install-Module Microsoft.Xrm.Data.Powershell -Scope CurrentUser

Step 2. Establish CRM Connection

Establish a connection to your CRM instance using PowerShell. Replace the placeholders with your actual CRM instance URL, client ID, and client secret.

$conn = Get-CrmConnection -ConnectionString "AuthType=ClientSecret;Url=yourCRM_Instance_URL;ClientId=yourClientId;ClientSecret=yourClientSecret"

Step 3. Define PowerShell Function to Disable Quick Create

Create a PowerShell function named Disable-QuickCreate that takes the EntityName as a parameter. This function retrieves the entity metadata, updates the IsQuickCreateEnabled property to false, and publishes the changes.

function Disable-QuickCreate($EntityName) {
    # Retrieve entity metadata
    $entityRetrieve = New-Object Microsoft.Xrm.Sdk.Messages.RetrieveEntityRequest -Property @{
        EntityFilters = 1
        LogicalName = $EntityName
    }
    $responseEntity = $conn.ExecuteCrmOrganizationRequest($entityRetrieve)
        
    write-output "Current value for IsQuickCreateEnabled for $EntityName is: $($responseEntity.EntityMetadata.IsQuickCreateEnabled)" 
    $responseEntity.EntityMetadata.IsQuickCreateEnabled = $false
        
    $entityUpdate = new-object Microsoft.Xrm.Sdk.Messages.UpdateEntityRequest 
    $entityUpdate.Entity = $responseEntity.EntityMetadata 
    write-output "Setting IsQuickCreateEnabled to: False on $EntityName" 
    $conn.ExecuteCrmOrganizationRequest($entityUpdate)
    Write-Output "Quick Create View Disabled for $EntityName."
}

Step 4. Disable Quick Create for specific Entities

Specify the entities for which you want to disable Quick Create Views. Iterate through each entity and call the Disable-QuickCreate function.

$entitiesToDisableQuickCreate = "incident", "account"

foreach ($entity in $entitiesToDisableQuickCreate) {
    Disable-QuickCreate -EntityName $entity
}

Step 5. Publish Metadata Changes

Finally, publish all metadata changes to reflect the updates in the CRM instance.

$Publish = New-Object Microsoft.Crm.Sdk.Messages.PublishAllXmlRequest
$conn.ExecuteCrmOrganizationRequest($Publish)

Step 6. Sample Output

Sample output

Conclusion

Disabling Quick Create Views using PowerShell gives organizations a flexible way to customize Dynamics 365 CRM to fit their needs. Whether it's making sure data is correct, following business rules, or making changes, PowerShell scripting is a strong solution. By following these steps, organizations can easily turn off Quick Create Views for certain entities of their CRM. This helps them make their CRM better suited to their changing business needs. Please feel free to reach out in case of any concerns.


Similar Articles