Tuesday, December 11, 2018

Powerpoint Statusslides Hell (Traffic Lights) - Solved

The last years I was looking more or less every week on status slides or I had to create them. Whereever possible, I try to use direct exports from tools like TFS and just copy the table to the deck.

Sometimes a specific format for the famous traffic lights status column is required. So most people (including me until today) were just adding a circle shape and putting it into the Status-Column.

The week after, you need to add new items to the table and your format gets broken because the circles are just not moving.
To get rid of this issue, you can easily use Symbols in Outlook.

Insert --> Symbol --> Symbol --> Select the one you need --> just change Font-Size and Color

The symbol will now be handled like every other regular text.
Alternatively you can just copy and past the black dot from below.

Black Large Circle



Friday, October 12, 2018

Dynamics CRM - What happens to the audit log when field gets deleted?

If you delete a field from a CRM entity, the complete column gets dropped from the database table. This is a known fact and should be mentioned explicitly in your design/userstory to avoid confusion later. The question is, what happens to the audit log itself?

I was doing some testing on 8.1.0 OnPremise and the good thing is, Microsoft is handlign this quite nice (i am not sure if this was the case from the beginning of the audit log).

I created a field "Bank Secret" in the account entity with auditing enabled, created a new account and afterwards deleted the field from form and entity again.


  • The audit-entry still exists
  • the field name is flagged with a id and a "[deleted]" marker
  • The value is removed and shows the famous "audit" icon


Thursday, September 6, 2018

Dynamics CRM - Possible values for TraceLogBase.ErrorTypeDisplay

In my current project we are cleaning up the TraceLogBase table to reduce the DB size and overall get rid of unnecessary data.

Since the documentation on MSDN is not very helpful to understand/make sure what exactly is traced in the table (only email related or other things as well), I extracted the current entries of a ~3 years old database and grouped them by "ErrorTypeDisplay". Following values I identified.

Note: Maybe not complete!
  • ExchangeSyncACTDeliveryMethodNotExchangeSynchronization
  • ExchangeSyncUnapprovedEmailAddress
  • IncomingDeliveryMethodNotEmailRouter
  • IncomingEmailRejected
  • IncomingEmailServerServiceError
  • IncomingMailboxTimeoutError
  • IncomingServerCertificateError
  • IncomingTestConfigurationSuccess
  • InvalidIncomingEmailServerProfile
  • InvalidIncomingMailboxCredentials
  • InvalidIncomingMailboxEmailAddress
  • InvalidOutgoingEmailServerProfile
  • InvalidOutgoingMailboxCredentials
  • InvalidRecipientEmailAddress
  • MailboxQuotaExceeded
  • OutgoingDeliveryMethodNotEmailRouter
  • OutgoingEmailServerServiceError
  • OutgoingMailboxSendAsPermission
  • OutgoingServerCertificateError
  • OutgoingTestConfigurationSuccess
  • RetrieveAttachmentFailure
  • UnapprovedIncomingEmailAddress
  • UnapprovedOutgoingEmailAddress

Query which also returns the amount of traces

SELECT ErrorTypeDisplay, Count(*) AS 'Number of Traces'
GROUP BY ErrorTypeDisplay
ORDER BY ErrorTypeDisplay

Saturday, May 21, 2016

Dynamics CRM TimeZones

To retrieve timezone records for Dynamics CRM you can use following request.

IOrganizationService service = con.GetOrganizationService();
QueryExpression query = new QueryExpression("timezonedefinition");
query.ColumnSet = new ColumnSet(true);
EntityCollection col = service.RetrieveMultiple(query);

You can find a list (exported from 2016 online) here: