Tip #301: Using a team for system administrator access

Gustaf (not V) Westerlund mentions that while it may be attractive to create a team with System Administrator role to simplify security administration, the “inherited” approach is not sufficient to grant users all privileges that they need as System Administrator. For example, users cannot publish Business Rules if they don’t have a user role that grants them this privilege.

To better understand the limitations of CRM team security, read this classic from Adam “it’s not really inheritance” Vero.

Tip #300: Adding a specific activity type subgrid

Occasionally I get a design requirement to have a subgrid on a form that only includes a certain type of activity. For example, a grid of scheduled appointments on the account form.

This sounds simple, but due to the mysteries of the activity pointer, it is not so straightforward.

If you add a subgrid and select one of the activity entities, such as appointments or tasks, the subgrid will display correctly; however, when a user adds a new record by hitting the “new” button, the regarding field on the created record will not be set.

Alternatives

Instead of creating a subgrid that is pointed to the specific activity entity, make a grid of activity pointer records and set the view for the subgrid to a view filtered to the desired activity type. Records created from this grid will have regarding object set. The downside is that when a user clicks the “new” button, the user will have to choose the type of activity to create. If they select an activity type outside of the subgrid filter, the created activity will not appear in the subgrid after it is created.

Another option is expose the create button for the desired activity type on the command bar using the ribbon workbench. Way back in 2011, the ribbon contained create buttons for each type of activity. These still exist in 2015, but they are hidden by default. Unhide the button and teach users to create records from the command bar.

Tip #299: Schedule CRM on premise reports

Jim “Sourdough Master” Steger sent us a fresh reminder that, despite all the advantages of CRM Online deployments, on premise installations have a few aces up their sleeves when it comes to reporting, and here is one of them:

Don’t forget about the ability to schedule SQL Server Reporting Services (SSRS) reports when using CRM on premise. This is a great way to do automated alerts across multiple records or more complex results without having to rely on a custom solution. Create a report in Dynamics, then publish for external use. Then go into SSRS and create a dynamic data subscription to the appropriate users.

Tip #298: Living in the past

’m currently on CRM 4.0. How should I upgrade to CRM 2015?

First of all, it is possible to upgrade your CRM environment database to 2015, but it is multiple steps. There is no direct upgrade path — you cannot take a 4.0 database and import into CRM 2015 as an organization.

The upgrade path would be:

  1. 4.0 —> 2011
  2. 2011 —> 2013 SP1
  3. 2013 SP1 —> 2015

The important question is should you upgrade your database, or should you start fresh?

Important considerations:

  • You will need to set up a CRM 2011 server (and SQL and SSRS) and a CRM 2013 SP1 server (and SQL and SSRS) to use for intermediate upgrade steps.
  • You will need completely new server architecture for 2015.
  • For each upgrade environment, you will need to upgrade the database 3 times. Each of these upgrades has potential to take a long time and multiple points at which the upgrade can fail. In most deployments the upgrade happens 3 times (dev, UAT, and Production), so that would be 9 upgrades for most deployment.
  • After the upgrades, all JavaScript, Plugins, forms, and custom security roles will need to be rebuilt.

Given the amount of work required to upgrade from 4.0 to 2015, and that your configuration will ultimately need to be rebuilt anyway, in many cases a company still on CRM 4.0 may be better off starting with a clean, fresh deployment of CRM 2015, rebuild your configuration, and import the data that you wish to keep using the Kingswaysoft SSIS adaptor or Scribe Insight. In many 4.0 environments, the cost of starting fresh in 2015, rebuilding the configuration, and importing data is less expensive than doing the multi-step database upgrade.

Benefits to this approach:

  • This approach can make it easier to incorporate business rules, hierarchical security, rollup fields, and other new features that will result in less complex customization.
  • This approach eliminates legacy artifacts that remain after an upgrade.
  • This approach makes going online an attractive option.

This may not be the answer for every 4.0 environment—if you have a very complex configuration with a large amount of data, upgrading may be your best option; however, if you are an average sized company with simple to moderate complexity customization, a fresh start may be the best option.

Tip #297: What to consider before changing your CRM partner

It’s not you, it’s me

This is not a novel way to start a new year but sometimes we do need a fresh start, and that means saying sayonara to the existing partner, would it be either your spouse or your CRM partner. To discuss this sensitive topic, we invited some experts in the field of CRM customer psychology to stop by the Tipping Truckstop.

truckstop

Jamie “Xerox” Miley:
I was wondering about how to advise larger, heavily customized clients on things to consider when switching partners. The following is a list of three things that stand out right off the bat, but I was wondering what other considerations and concerns people have seen that need to be taken into account.

Issue: Custom Source Code Location
Current Partner is using an in-house Team Foundation Server system when they sent us custom source code for the plugins and other custom solutions. The question that raises is whether or not current partner was diligent in keeping customers internal source code version control repository up to date with the latest code at all times.

Mitigation:
Ask current partner if they had a clear process they have been following in order to update your source control repository, whether followed or not, request the latest copy of the source code for all custom code that pertains to your implementation.

New Partner would prefer to have customer version control (if TFS) be the repository for all source code after the Partner switch. If no Team Foundation Server system is available, we do have an in-house TFS that can be used for source code version control.

Issue: Hosting
While the implementation at customer may be on-premise, you should validate with current partner that there are no components hosted by current partner that need to be migrated to a different location

Mitigation:
Ask current partner whether or not any customizations or items are being hosted by them in proprietary environments. Even if something is missed, it will be discovered in the upgrade regression testing process and can be retrieved and re-hosted at a later time.

Issue: Partner of Record Change / Support Considerations
Partner of Record is held with current partner which leaves them as the main contact with Microsoft for your account for support and/or any Microsoft Partnership considerations.

Mitigation:
Formal partner of record change form completion and submission to Microsoft with new partner and associated Partner information. New Partner will help you with this process when the time comes.

Gayan “Not Daddy” Perera
Couple of other things we’ve noticed:

  • Add-on solutions / licensing of those add-ons
  • Open source solutions that are installed without proper licensing considerations / no migration paths
  • Networking side of it (DNS, Routing, Certificates, Security etc)
  • SQL server licensing (especially going from SPLA to On-Prem or version jumping)
  • Lack of system documentation which might cause you to miss hidden services
  • SharePoint integration / migration of data responsibilities

To add to the source control issue, we’ve come across situations where the code provided by the previous vendor doesn’t match the code running on the server. When this happens on web resource it’s not such a big deal but on plugins and integrations it becomes a nightmare comparing compiled assemblies…

Anne “Ex-MVP” Stanton
You might recommend that they leverage a tool that can export the documentation of their solutions. This will allow them to see if the partner documented the custom fields within the system and they can then potentially leverage that information to ask for more documentation or to get a discount on services to provide more documentation. Additionally requesting any other documentation that might be available.

David “British Scientist” Jennaway
Source control is a big issue. For plugins and web resources, one other mitigation is to attempt a import into a separate, test deployment, and check if all functionality still works. Of course, this does depend on having sufficient documentation of what the expected functionality is, but it can give hints of potential problems.

Integrations is another big one, which can throw up major technical issues, but also challenges regarding responsibility for each integration with another system.

Neil “Lagavulin” Benson
Not much to add, but I encouraged one of my customers to switch from their previous partner’s source control system to a Visual Studio Online system managed by the customer. All our consultants we able to access VSO at no charge to the customer because we all had MSDN licenses. Customer sleeps better at night knowing that their source code is tucked safely under their pillow.

Tip #295: New entities and attributes in CRM 2015

Julie “Nighteye” Yack asked the other day:

Is there a magical list somewhere (that I have failed to find after half an hour of binging, or banging?) of new entities and new attributes on existing entities for 2015?

Everhelpful Jim “Mr SDK” Daly chimed in:

The metadata browser allows you to filter by entities using the IntroducedVersion property, but you would have to open each entity to filter attributes using IntroducedVersion. It doesn’t help with that kind of search.

The attached New Attributes.zip includes an Excel file with information about all the attributes with IntroducedVersion = “7.0.0.0”, in the context of the entity.

Many of these new attributes are for internal use only and there is usually not a use case for using the internal use only attributes. I would categorize this information as “interesting but not important” because as a whole it doesn’t help you do a particular task. But I expect experts will appreciate seeing this and will probably find something interesting in it. Possibly things we didn’t know they would be interested in.

Most new attributes that are relevant to specific things people might do in code are documented in the context within the relevant subsection of the  Model your business data area in the SDK.

I just modified our existing Sample: Dump entity metadata to a file sample to generate the XML and then opened it in Excel.

Please note that it does not include any Intersect entities and virtual attributes are excluded.

Tip #294: Role playing in marketing

Both, year 2015 and Microsoft Dynamics Marketing 2015 are in full swing by now. What’s more, MDM trials can now be easily provisioned (just select one of the marketing roles and follow the wizard).

tl;dr

If you are missing a menu item, a link or an option in MDM, try selecting a different user role in the Welcome Dialog.

I like reading

Some people reported that during the trial they are unable to create any marketing list except for the query type.

Dynamics Marketing follows the footsteps of CRM and welcomes you with its own version of the First Thing First Woman. Don’t be quick to dismiss it though – unlike its CRM counterpart this dialog is interactive and allows you to select the role that will shape your user experience and set of available permissions.
MDM Welcome Dialog
Default role is Creative and, as it turns out, this role for some mysterious reason is limited to creation only query list types.

To change your role mid-flight, click on the cogwheel then click Welcome Dialog.
Invoke Welcome Dialog
On the Welcome Dialog select All as your role and click OK. Now you should see a smorgasbord of the marketing lists available for creation:
All marketing list types are available

Tip #293: What’s the point?

Welcome back to the Tipping Truckstop, where the tipsters gather to discuss pressing CRM matters. It’s DeCRMber already and the trucks are all festively decorated for the holiday season, so grab a cup of eggnog and pull up a stool.

truckstop
Today’s question is: In CRM 2013 and 2015, we have a field data type of “Floating Point,” and also “Decimal.” When is it best practices to use decimal, and when should you use floating point?

Joel “Tipping isn’t just for cows” Lindstrom: I’ve noticed that Floating Point cannot be used with calculated fields, so that would mean that if you need a calculated numerical field that is not whole number, you need to use decimal.

Feridun “Bond” Kadir: Floating Point uses a little less space, calculates slightly faster but at the price of loss of accuracy in the last decimal place. Most times this doesn’t matter, but if you need accuracy to the 10th decimal place then use decimal.

Adam “Beach” Vero: Generally floats are fine, use decimal for rocket science, quantum mechanics or quantities that might be very very small (I had a client recording water purity samples in a database once – they might have needed to record even 1 part per million or less of a toxic chemical). Note also if you might use queries based on equality, decimal is preferable. If using floats, try to use less/greater than or equals to avoid errors in that last decimal place. One thing I have always tried to bear in mind is if the field is involved in integration to/from another system I try to match data types to avoid type conversion (especially if it might be subject to round-trips that can exaggerate any inaccuracies).

Shan “Grillmaster” McArthur: The floating point number format was invented so that computers could work with very large and very small numbers (think of astronomical distances and sizes of atomic parts).  Floating point numbers are an approximation because they only have so many bits to store their data in.
Float1
The above screen shows that CRM does not know how to handle floating point numbers.  The first problem is that there is a precision here, but the precision here has the wrong implementation.  In SQL, the precision of a float is how many digits are in the mantisa using scientific notation for the number format.  In CRM, it is treating it like a decimal type and determines how many digits after the period.  This is wrong.   The second problem is that the CRM UI limits you to a maximum of 5 decimals for precision. This goes against absolutely everything a floating point number requires.  Then consider that there is a maximum value.  Floating point numbers in SQL have a maximum value of 1.7976931348623158E+308 and have the smallest value of 2.23E-308.

Here is the maximum value in CRM.  Notice that you cannot even record the budget allotment that was just approved in the senate this week for the US budget:
Float2
This represents a maximum value of 1.0E11.  That is *much* smaller than 1.79E308.

Then let’s look at the CRM UI.  The CRM UI can handle it if you enter a float in scientific notation, but it will change it to a standard decimal format. So 3E5 will get changed to 300,000.00.  1E-1 will get changed to 0.1.  Unfortunately, the limitations of large and small numbers that are imposed on us in the configuration screen are definitely there.  Entering 1E-5 will change to 0.00  1E15 will trigger an error.

The good news is that the value is still stored in SQL using a float column.  It is good that it is stored in a float because that means that the only bug is all of the display logic and data modelling that goes along with it, but that the underlying database is capable of storing that number.

Here is the connect item that I put in for this issue back in 2011: https://connect.microsoft.com/dynamicssuggestions/Feedback/Details/677405

My guidance is that float has more restrictions than decimal, so use a decimal instead.

David “Straw” Berry: I completely agree on all points, floating or otherwise.

George “Untalkative Bunny” Doubinski: More eggnog please.

Tipp Jarr’s Double Dipp

That’d be all, folks, for 2014. Happy New Year 2015It’s been a fantastic year despite being a Green Wood Horse one. Tipsters celebrated a year in business that overflowed the byte originally reserved for the post count. CRM 2015 is alive and kicking and we can all take a well-deserved break only to spend it dissecting and analyzing the new goodies.

Tipsters will be back on January, 5th, 2015 with another year of tips, tricks and truckstops. Drink safely and drive in moderation.

Dynamics CRM Tipper
The Custodians of The Tipping Jar, bringing you tips by a truckload

Tip #292: Licenses minimus

According to the screenshot, CRM Online Enterprise PurchaseFeridun “The Fifth Beatle” Kadir was literally one minute from his new CRM Online account. He hesitated though, quite unsure about the small print on the deal:

The minimum number of professional licenses for a new subscription to CRM online is 5.

But the screenshot suggests a company can sign up for a new subscription with just one enterprise license and nothing else.

Is this true?

Imad “RTD Advocate” Yanni donated some of his time to clarify:

Customers purchase CRM Online Professional and/or CRM Online Enterprise licenses as different subscriptions. If they purchase Professional then there is a minimum limit of 5, if they purchase Enterprise, there isn’t. If you tried buying one or both of them, you’ll see that the product user interface enforces the limit when required; for example if you purchase Professional, the quantity starts with 5, if you reduce below 5 it shows an error and you cannot proceed with the purchase. If you purchase Enterprise the quantity starts with 1.

The minimum is per subscription type so whenever you purchase Professional you need to start with 5 even if you had an Enterprise subscription with 10 licenses.