10 Choices for a Better Future No Matter What Happens

10 Choices for a Better Future No Matter What Happens

I’m not a fan of traditional New Years Resolutions, as I wrote about here, but as we started 2026 I wanted to think even a bit more differently about the problem of improvement. First, I don’t think anyone can know what the future holds - and anyone saying they do know, is lying or delusional or both. And while there may be things that make sense to do now (and you should therefore do them) they won’t necessarily makes sense in six or eight months. So I don’t really think we should be building plans around the fact that it just happens to be January 1st any more than we should around March 8th or June 17th or August 22nd or any other random day. Further, I didn’t want to set a simple achievable goal because simple achievable goals don’t have staying power - they won’t usually be powering you years down the road. I wanted to create something that could be applicable forever (in theory) and wasn’t situation dependent, since I don’t know what the future holds. ...

January 2, 2026 · 5 min · Nicolas Nowinski
Calculating Next Anniversary/Birthday Date in Dataverse with Power Fx (Revisited)

Calculating Next Anniversary/Birthday Date in Dataverse with Power Fx (Revisited)

About 4 1/2 years ago I wrote a post on how to calculate a next anniversary (birthday) date in Dynamics 365. It’s been a top 3 post according to Google Analytics. I’m proud of that solution because it was a real no-code solution to a common requirement for lots of applications (especially CRM systems.) A client of mine recently asked for support to show the next birthday for a contact. Often there will be an ask for a list view of contacts with a birthday in the next month. In this post I’m going to show you how to use a business rule and calculated fields to achieve this functionality without writing any code. This will be a a native calculated field so it can be used in lists, forms, queries, etc. ...

July 23, 2022 · 7 min · Nicolas Nowinski
Balancing Life in a time of COVID-19

Balancing Life in a time of COVID-19

In normal times life, liberty, and happiness build upon each other. When one grows our overall life is raised up (and you protect all three because if any shrinks it takes away from your life.) In times of crisis - especially the one we are experiencing now - life becomes more like a set of competing interests, such that more in one area means less in another area. This is the driver of much of the internal frustration people are experiencing right now. It’s vital we learn to recognize the trade-off decisions we are being forced to make so that we can manage the inherent internal and external tension that comes from these choices. Learning to recognize how this impacts yourself, your family members, your colleagues, your friends, and others allows you to be more effective in our interactions and communications. ...

April 22, 2020 · 2 min · Nicolas Nowinski

Dynamics CRM: SQL to Get CRM Metadata in 2011 & 2013

Occasionally, I need (or want – depending on your preference) a list of all the attributes (basic CRM metadata) in a Dynamics CRM organization. While there are several ways, including some great document generators, that will get such a list for you, SQL is always an option. If you are on-premises, or working in a developer VM, you can run this query against a CRM organization database to get the basic details. It can also be used as a starter for more complicated metadata query requirements. SELECT en.LogicalName , en.ObjectTypeCode , att.LogicalName , typ.Description , typ.XmlType FROM MetadataSchema.Entity en JOIN MetadataSchema.Attribute att on en.EntityId = att.EntityId JOIN MetadataSchema.AttributeTypes typ on att.AttributeTypeId = typ.AttributeTypeId ORDER BY en.LogicalName , att.LogicalName

March 26, 2014 · 1 min · Nicolas Nowinski

Dynamics CRM 2011: Abstracting Plugin Setup

Originally published at http://bit.ly/RIxgt9 How people do it today… Often times when looking at Dynamics CRM plugin code that someone else has written – or that I have written in the past, I’m presented with a large collection of setup and validation code at the start of the Execute method. Overtime it becomes obvious that this is simply cluttering up our core Plugin code with what is really overhead infrastructure work. ...

August 11, 2012 · 5 min · Nicolas Nowinski