Few key points – Auto Number field in Dataverse (Dynamics 365 CE / CRM)


  • Can we convert the existing text field to the Auto Number field?

Yes, e.g. we can update the Last Name attribute of the lead’s data type to be of Auto number from Text.

  • Can we convert the auto number field back to the normal text field?

Yes

 

  • Can the auto number field have duplicate values?

Yes, the platform allows having more than one record to have the same value. It doesn’t throw an error.

Multiple lead records have null values for the auto number field as shown below.

  • What if the Seed value increases than the digits specified?

The platform will assign the next value and will not throw an exception.

  • Can we change the format of the existing auto number field?

Yes

It will affect any new records created.

  • What other things we can do with the auto number fields?

We can make the field readonly in the form so that users do enter the values manually, we make the field required and for uniqueness, we can enable alternate keys on it.

 

  • What is the min and max length of the RANDSTRING placeholders?

Between 1-6

  • What about maximum seed value?

The auto number field is similar to a text field, it is different in that it generates a unique number when there is no value specified for it.

Get all details here –

https://docs.microsoft.com/en-us/powerapps/developer/data-platform/create-auto-number-attributes

https://jonasr.app/2017/10/anm/

Hope it helps..

Advertisements

Fixed – ‘InvalidApprovalCreateRequestAssignedToNoValidUsers’. Error Message: ‘Required field ‘assignedTo’ contained no valid users in the organization’.


We would get the below error while using Approvals in Power Automate

“BadRequest. The request failed. Error code: ‘InvalidApprovalCreateRequestAssignedToNoValidUsers’. Error Message: ‘Required field ‘assignedTo’ contained no valid users in the organization'”

This error occurs if we are trying to send the approval to the user which doesn’t exist in the organization or to the external users.

We recently got this error, and interestingly in our case, the user was showing up in the members in the Security Group inside Azure Admin Portal and was also giving us the option to add the user in Assigned To in the Flow.

However the user was not there in the Address Book of the Outlook, that is when we realized that user does not exist in the tenant anymore.

The flow can also fail if Assigned to a user’s personal account.

Here we have an option, to add the user as the Guest User.

Within Admin portal, navigate to Users >> Guest Users 

Invite the user 

The guest user needs to accept the invitation.

Back in our approval flow, we can now select the guest user added.

We can see the guest user getting the approval request

If we are using Security Group for the CRM Environment, than the user needs to be added to the Security Group also, else we will get the below exception – UserNotMemberofCdsSecurityGroup – The user cannot be created in Microsoft Dataverse because the account is not the member of the security group.

Fixed – Error code: ‘UserNotMemberOfCdsSecurityGroup’. Error Message: ‘The user ‘xyz’ cannot be created in Microsoft Dataverse because the account is not a member of group ‘abc’

In case we want to use approval with an external user(s) – without adding them as a guest user, we can use Send Email with Options Action instead of Power Automate Approvals.

https://debajmecrm.com/approvals-with-external-users-in-power-automate-without-consuming-power-automate-flow-license/

Hope it helps..

Advertisements

Route Case (routecase) attribute and msdyn_ApplyRoutingRuleEntityRecord Action in Dynamics 365 Customer Service


The case entity/table in Dynamics 365 CE has a Boolean type field named Route Case.

It has a default value as Yes.

On manually creating the record from the user interface, although Route Case shows the default value as Yes

On saving the record, the value changes to No, the field is also locked.

So basically no routing rules are applied when a case record is created from the user interface.

To apply routing rules, we need to use the “Save and Route” option

Or “Apply Routing Rule” command from the Grid

This also however will not update or set the Route Case field to Yes on the case record.

Now if we create the case record programmatically, the field would be set and saved with its default values as Yes.

The same goes for cases created from Flow.

Route Case is set to Yes.

So basically routing rules will be triggered on the records created from outside the User Interface as Route Case will be set Yes for those records.

Now if we want to run the routing rules against the case record created from the user interface, we can make use of the following action –

msdyn_ApplyRoutingRuleEntityRecord

Within Flow –

Within Plugin or any custom code–

msdyn_ApplyRoutingRuleEntityRecord can be used for other entities apart from the case.

In the case of Case entity, we can also make use ApplyRoutingRule action also.


Hope it helps..

 

Advertisements

Delete the current (active) partition in Audit – Dynamics 365


We recently exceeded log storage capacity for our Power Platform environment

We can check the same at Resources >> Capacity inside the Power Platform admin center.

One of the sandbox environments had the most Log Usage

https://docs.microsoft.com/en-gb/power-platform/admin/legacy-capacity-storage#capacity-page-details

We deleted the plugin trace logs and all the audit partitions (except the active/current one, which the system doesn’t allow)

If we try deleting the current active partition, we will get the below error –

Microsoft.Crm.CrmException: You cannot delete audit data in the partitions that are currently in use, or delete the partitions that are created for storing future audit data.

The partitions are created on quarterly basis each year –

1 Jan – April, 1 April – July, 1 July – October, 1 Oct – January

Even after deleting the plugin trace logs and the partitions, we didn’t see any change in the storage capacity usage. So we raised a Microsoft Support Ticket and were informed by the team that they can delete the active partition for us, and it could take around 3 days. As that was a sandbox environment and we had no use of Audit data we went ahead and the Support Team deleted the active partition for us. (Also there was some issue in our data center with regards to the recalculation of the storage and it took few more days for that change to reflect inside the Capacity page of Power Platform Admin Center).

This way we were able to reclaim some of the log storage.

So basically we just need to raise Microsoft Support Ticket and request the same.

More on Audit

Also check the new process for deleting audit logs –

https://docs.microsoft.com/en-gb/power-platform/admin/free-storage-space#method-10-delete-audit-logs—new-process

Select audit logs to delete.

Hope it helps..

Tracking email and automatic record creation – Personal Options in Dynamics 365


Let us have a look at the different options provided in the Email Tab for Tracking and Automatic creation of records.

Also check – https://crmkeeper.com/2020/04/20/dynamics-365-queue-setup-with-shared-mailbox/

Select Personalization Settings in the Settings icon within the app.

Select Email tab within Set Personal Options Dialog box.

Select the email messages to track in Microsoft Dynamics 365 option has the following values

Email messages in response to Dynamics 365
email is the default option.

Let us start with the All email messages option.

  • All email messages – In the case of all email messages, all email messages will be tracked in Dynamics 365, including the junk mail.

Here we have sent a test email to the CRM User with Track All email messages selected

The CRM user has his mailbox already configured.

Sample mail sent to the CRM user from the personal Hotmail account.

Inside Outlook Office, we can see the same mail received and marked as Tracked to Dynamics 365.

And an email activity created inside CRM.

We can see the existing contact record having the matching email id being set as from for the email.

If no contact record is found with the same email id, then a new contact record will be created for the tracked email, if the below setting “automatically create record” is enabled.

Here I am now sending an email to the CRM user through my Gmail id. (This email id doesn’t exist in CRM for any records)

We can see the mail tracked, and the email activity created along with the new contact record.

Let us just disable create record option and also delete the existing contact records (both Hotmail and Gmail) with matching email id, so that no match is found.

Let us again send an email from the Hotmail account to the CRM user

This time in the email activity created, we see the email id marked as red as there were no matching records in CRM.

Also as we had disabled contact creation so no contact record was created.

  • What if we enable Lead Creation instead?

Remember we still do not have any existing matching contacts in CRM as we have deleted them.

Let us sent a test mail and check.

The email activity inside CRM will have the From part set as the lead record created as part of tracking.

Below is the lead record created with associated email

  • What if we have both lead and contact records with the matching email id, to which record will the tracked email be associated?

The answer is the contact record.

  • Now let us look at the other tracking option – Email messages from Dynamics 365 Leads, Contacts, and Accounts – In this case only if the email is originated from the user having an existing lead, contact, or account record will be tracked.

  • Let us send an email from an account that doesn’t have any lead, contact, or account record created inside CRM.

And also email from an account that has both lead and contact records.

After a couple of minutes, we can see the mail from the account having lead and contact records being tracked and the other email from an account that doesn’t have any matching records not being tracked.

The email activity is associated with the contact record as expected.

  • Now let us send the mail from an account with matching lead and contact, this time we have disabled the matching contact record.

So now the system has only a matching lead record.

We have disabled the matching contact record.

Result – We can see the email activity associated with the lead in this case as the contact was disabled.

  • Now let us disable and both matching lead and contact see the result.

And create one more custom entity record with email enabled having matching email id.

In this case, the email activity is associated with an active custom entity record having the matching email id


Now let us try the same by disabling this custom record as well i.e. now we have all the matching records lead, contact, and the custom entity one disabled.

Result – As no matching record was found it creates it against an email and highlights it in red.

It is tracked the email even though the record were inactive.

Now let us delete that inactive contact record and send the same mail from the same account. We have the create contact option enabled right now.

Result – The mail was tracked but no contact record was created.

  • Now let us delete the matching inactive lead record from CRM, and keep the matching inactive custom entity record as it is.

Result – Now as we do not have any lead or contact record, the email as expected is not tracked as we have opted for tracking – Email messages from leads, contact, and accounts.


  • Let us change the tracking option to Email messages from Dynamics 365 records that are email enabled – In this case, all email messages will be tracked for those entities having email-enabled (including custom entities)


We can see the email tracked even though the custom matching record is inactive.

  • Now let us set the tracking option as Email messages in response to Dynamics 365 email


This will track replies or forwards of email messages that have already been tracked.

Let us send a new mail, we only have an inactive matching custom entity record in CRM right now.

As expected the email is not traced as it is a new email, not a response.

  • Let us send another email, this time we have created a matching contact record in CRM.

As expected the emails are not tracked as they are not the responses.

  • Now let us respond to an existing tracked email.

Reply Sent From Outlook :

Reply From within CRM :

We can see it tracked in CRM.

  • And finally the last option No email messages is self-explanatory

In a nutshell

Tracking  
All Email Messages Email tracked, email activity created.

 

If an existing contact record is found, it is associated.

If no contact record is found, it will be created if Create contact record option is enabled. Here if for Create Option we have selected Lead then lead will be created instead.

If no existing record is found and create contact is disabled, then it is associated with an unknown email address (marked as red)

If both matching lead and contact records are found, then the contact record is associated with the email activity.

 
Email messages from Dynamics 365 Lead, Contact, and Account The email from only matching lead, contact, or account will be tracked.

 

Even if the matching record is disabled, the email is tracked.

Here even if the create option is enabled, no lead or contact records are created.

Email messages from Dynamics 365 records that are email enabled. It considers all the entities with email enabled not just lead, contact and account.
Email messages in response to Dynamics 365 email Only replies or forwards of email messages that have been already tracked will be considered for tracking.
No email messages No email messages are tracked.

Check the details here –

https://docs.microsoft.com/en-us/dynamics365/outlook-addin/user-guide/set-option-automatically-track-incoming-outlook-email#automatically-track-email-messages

Hope it helps..

Advertisements

Audit Entity / Table – Few key points (Dynamics 365 / Power Apps)


In the earlier post we looked at different ways of extracting Audit History data.

Extract Audit Historyhttps://nishantrana.me/2021/05/17/how-to-export-the-audit-history-values-from-dynamics-365/

We can use Microsoft 365 Security and Compliance Center for the same, though it is limited to the Production environment only.

https://docs.microsoft.com/en-us/power-platform/admin/enable-use-comprehensive-auditing#requirements

Then we have Audit History Extractor, and we can also write SSIS Packages as well as Custom Code.

Let us just revisit some of the key points with regards to the Audit entity.

  • Do we have the Audit entity available for Advanced Find? >> No.

  • Do we have it available inside Report Wizard? >> No.

  • Can we write SSRS Report against the Audit entity using the TDS endpoint?

Let us create the Data Source.

Select the authentication as Active Directory Password Authentication for the TDS endpoint.

Enter the database name manually.

The final connection string >>

Data Source=orgnamae.crm.dynamics.com;Initial Catalog=orgname.crm.dynamics.com;Encrypt=True;TrustServerCertificate=False;Authentication=”Active Directory Password”

Within SQL4CDS the following query works

However, the same query doesn’t work inside SSRS.

It will give the below error message >>

Table audit is not available for reports

  • Do we have the Audit entity in the Power BI Dataverse connector? >> No

However, we can use the OData endpoint to create the report against the Audit entity.

https://www.365knowledge.com/2019/03/06/dynamics-365-user-access-report-with-fetchxml-and-power-bi/

  • Do we have the Audit entity available in Azure Synapse Link (Export to Data Lake)? >> No

How to set up Azure Synapse Link >>

https://nishantrana.me/2021/06/16/how-to-setup-azure-synapse-link-microsoft-dataverse/

  • Cannot we write a Fetch XML Based SSRS report?

Writing a Fetch XML based-report would be challenging, because of the way information is saved.

Check the below article to understand how the audit table stores the information.

https://mahadeomatre.blogspot.com/2015/02/ms-crm-audit-database-table-details.html

http://makdns.blogspot.com/2014/06/dynamics-crm-audit-entity.html

  • How about SQL Based SSRS Report if we are using SQL – for On-Premise?

Refer to the below article that provides the steps to do so.

http://makdns.blogspot.com/2014/06/dynamic-crm-20112013-audit-report-in.html

Hope it helps..

Advertisements