Tip #913: Searching within attachments

Recently on the Dynamics CRM Facebook group, Rana Potter asked if it was possible to search within attachments from CRM.


The winning answer came from Niran Belliapa:

If you are using Dynamics 365 Online and have the December 2016 update you can use the Relevance search feature. You’ll find search results for text in a document that is stored in Dynamics 365, including text in notes, email attachments, or appointments.

See  documentation on the customer center for more details.

This introduces some interesting wrinkles into the discussion around should you extract your attachments to somewhere other than Dynamics 365? The argument for moving attachments somewhere else (like SharePoint or Azure blob storage) to save storage space and reduce cost is still valid, but another common reason people moved attachments was so they could search the content (since Dynamics CRM did not search attachments). Now that relevance search can search the contents of attachments, if storage space is not a concern, leaving them in Dynamics may give users a better search experience.

Tip #912: Data Export Service configuration notes

This great tip comes from Katina Hester. (And you can submit your tip too – just email it to jar@crmtipoftheday.com!)

Here are a few tips to keep in mind when configuring the Dynamics 365 data export service that might not be obvious:

  1. When setting up the DES profile, the MSFT provided steps for copying the secret URL after running the PowerShell show including the secret current version id. Since you cannot edit the secret URL of a DES profile (not even with a cmdlet) once created this could cause issues in future if you ever change password, username, etc… Instead you should remove the current version id and paste in the URL without it. This will cause D365 to automatically utilize the current version of your secret. https://somekey.vault.azure.net/secrets/somesecret/6ca4d3817… (remove the last part)
  2. If you need to add back in a previously synchronized entity (you turned it on, then off, now want back on), in addition to manually deleted the entity table (ex dbo.account) from the Azure SQL database you need to the delete the 2 associated user-defined table type (dbo.accountType and dbo.accountIdType).
  3. Check your firewalls. If you use the PowerBI template to set up the Data Export it will configure the firewall pretty open, you may want to lock this down.
  4. If you add a new entity to the profile and it gets stuck for any reason (would say created but in progress on sync), your other entities will also stop syncing new data (you can tell by the missing records and the last sync date). Recommend validating last sync date periodically, or perhaps configuring some kind of notification (flow?).

 

Tip #911: Developers, start planning for new features

If you are a developer, deprecated Dynamics 365 features are not the only ones to watch out for. Much shinier and more exciting is the list of what’s coming in July 2017 (a.k.a. Spring) Update.

This is a very short summary what I think we should be paying close attention to, you’ll notice slightly rearranged order of the items. See the source for the details and, of course, YMMV.

Major stuff

These items represent either new exciting features or massive application design shifts in the Dynamics 365. Either way, the impact is going to be huge.

Feature Comments
Virtual Entities This is, hands down, new way to do real-time integration with external systems. In some scenarios say goodbye to replication and synchronization. I also see some potential for gaming the integration for oddball behaviors without any data sources at all.
Create & manage business apps In case you didn’t get the memo, in the last release we got appized™. “In addition to using the app designer, you can now programmatically create, manage, validate, and publish business apps.”

“Big deal” you say? Watch this space for the licensing to follow, signalling monetization for ISVs.

Create custom controls Beyond “the ability to create controls is being released as a preview feature”, details are sketchy. Unfortunately abbreviated Custom Control Framework (folks who acquired few grey hairs deploying CCF will appreciate) signals new era in customizations. Suffice to say that editable grid is built using this framework.

Who’s going to be the first vendor to release the “Dynamics 365 Custom Control Suite”?

WebHooks integration I’ve always been integration advocate and this is music to my ears. Azure Service Bus integration has been a robust workhorse for ages but this nod to open standards will reduce the complexity and open new possibilities. Watch this space as more details emerge.
Client API enhancements API enhancements are not usually classified as revolutionary unless they look like a major rewrite (with a nod to backward compatiblity) to support new UX paradigm of Unified Interface . I believe it’d be our fifth form type, right?

Evolution

Natural progression of things. Not quite revolutionary as the above list but still deserves similar respect and consideration.

Feature Comments
Web API improvements With support for EntityReference, Entity, and EntityCollection types in custom actions, our rumbling about CRM as API just became a little bit more coherent and relevant.

New messages means that Web API is one step closer to 100% coverage of the legacy endpoints functionality.

Control app settings & customizations  Natural addition to the programmatic business app management.
Multi-select option set  It’s not a new data type as some have been expecting. Somewhat hacky at the backend, it delivers long-awaited functionality. Why it’s not ground breaking? Because with Custom Control Framework I expect ISVs to unleash lots of similar (and better) controls.
Timeline control API API means that Timeline control is here to stay. Signals the beginning of the end for the Activity Pain (yes, spelled correctly).
WebHooks integration I’ve always been integration advocate and this is music to my ears. Azure Service Bus integration has been a robust workhorse for ages but this nod to open standards will reduce the complexity and open new possibilities. Watch this space as more details emerge.
JavaScript Web Resource dependencies Ability to load multiple resources for a form is great but you know there is something wrong with the approach when Scott “Mr Ribbon Workbench” Durow feels compelled to write “Deep Dive” on the subject. This enhancement promises universal dependency handling and auto-loading of the linked resources, would it be another script or an image. Dependency on attributes is interesting but watch out for some pitfalls though. “When a JavaScript web resource used in a form script is associated to an attribute for a specific entity, that entity attribute will be available to the script even when a field for that attribute isn’t included in the form.” Review your code if your script relied on some graceful error handling for missing attributes.
Unified Service Desk 3.0 I would place JAWS (Job Access With Speech) screen reader support on top of the pile of multiple enhancements.

None of the other enhancements seems to be ground breaking but, together, they sound powerful enough to warrant the major version change.

Spit & Polish

Category reserved for the items that don’t seem like a big deal. Don’t get me wrong, they are all nice but usually listed under “improved” category

Feature Comments
Vector Image web resources Did anyone lose a customer/prospect/project just because SVG was not a supported format? It might become more important in Unified Interface as we getting into the responsive CSS territory as opposed to the table-driven design.
Interactive Service Hub improvements We get it, it’s now called Customer Service Hub. Take two panadols and read Main – Interactive experience vs. Main form type upgrade battlesheet.
Grid enhancement The official name is “Override the default open behavior of data rows in an entity-bound grid”. It’s nice but is it such a big deal? Especially with at least 4 or 5 (according to my guesstimates) 3rd party grid replacements released in the first 6 months of CCF being made available.
Business process flow enhancements They are what they are – enhancements. Floating mode sounds interesting though.

At the moment, the most interesting features are “wait and see” pending pre-release. Watch this space as the features become available for consumption and review.

Tip #910: Start planning around deprecated features

With the imminent release of the next major version of Dynamics 365 (v 9.0), it’s time to do some forward planning to utilize new features. Quite often new features mean better ways to do old tasks and sometimes that’s going to be the only way forward. Yes, I’m talking about deprecated features.

Don’t be alarmed, deprecated does not mean removed, it only signals the intention. As documentation explains,

“Deprecated” means we intend to remove the feature or capability from a future major release of Dynamics 365

While it’s not the time to panic yet, use the deprecation announcement to plan the upgrade and the replacement if you use any of these features. Short, slightly out of order reference list is below, refer to the announcement for more details.

Good riddance

This is category of features that were buggy, incomplete, and where the people using these features quite often regretted doing so.

Feature Comments
Parature knowledgebase Good riddance. ‘Nuf said.
Project Service Finder app Did anyone actually use it? I’m genuinely curious about the companies where people “search” and “bid” for their next project.
Contracts, Contract Line Items, Contract Templates If you ever used these, I feel your pain. Entitlements are the way to go.
Announcements You can say that again. Good intention but who would have thought people need to customize the way messages are broadcast to their users?!
Silverlight (XAP) web resource Silver what? 2007 called, they want their tools back.

Some assembly required

These are natural evolution, though handful come as a suprise. Some of the features maybe deeply embedded in your implementation and used on a daily basis – time to start planning.

Feature Comments
Dynamics 365 for Outlook (Outlook client) I was never a huge fan of the Outlook client due to its instabilities. App for Outlook is the way forward.
Service scheduling Some people managed to get it working but it was cumbersome at best, Unified Resource Scheduling (included with Field Service) is much more robust and flexible alternative.
Dialogs That’s a surprise one. As one of my customers observed: “Dialogs like pugs, they are ugly but some people love them to death”.  We’ll see if the suggested mobile task flows and business process flows are viable alternatives.
Standard SLAs With the Enhanced SLAs in place since 2015, no reason to hang onto these.
Relationship Roles Connections have been available as a viable alterntive since forever. Move on.
Mail Merge Server-side document generation using Word templates is better but mail merge was a fairly popular choice so I can see some pain coming.
Ready-to-use business processes It was a good collection of samples (you didn’t use any of those “as is” in production, did you?!). In any case, it looks like the change in the distribution mechanism, that’s all. That’s right, App Source is the place to be.
Some client APIs This one is a natural API evolution, some methods are new, some are obsolete, others are just tidying up the libraries. Developers should get busy.
EntityMetadata
.IsInteractionCentricEnabled
That metadata property defined if an entity is enabled for the Interactive Service Hub. With ISH making way for Unified interface, neither the customization setting nor this metadata property will survive.

Time to get busy!

Tip #909: Simulate Offline in browser

Today’s tip comes from Noah Schultz. (And you can submit your tip too – just email it to jar@crmtipoftheday.com!)

Want to easily simulate disconnected behavior of Dynamics 365 mobile?

Follow tip 127 and open CRM tablet experience in Chrome, hit F12 and check “offline” in the network tab:

This is great, because you can continue to work online in other tabs while being offline in one in which you are testing offline.

Tip #908: How to add a missing field to Excel template

Have you ever created an Excel Template, with all of the necessary edits, pivot tables, charts, etc. that you need to report, only to realise the first time you use it that it’s missing a vital field from CRM? Typically, this means you have to redo all the work you did originally to include the missing field, wasting valuable time and energy.

Ryan “Nipper” Maclean believes he found the way.

tl;dr

Download the template that is missing a field, something, something, hidden sheet, something, eureka, add a reference, something, something, voilà!

Ah, snap, why won’t we just let Ryan do the talking in step-by-step instructions.

The usual warning applies: use at your own risk, contains small parts, choking hazard, swim between the flags. Not tested on animals, children or CRM 2011.

Tip #906: Pets are dangerous

Kyle the dog from Descpicable meYou move into a new CRM system and you found a cute new feature. You love that feature–it is your favorite feature, and you adopt it.

I call these features “pet” features–features that are viewed as significantly more important than anything else in the application. Some examples I’ve seen in real-world deployment pets include Connections, dialogs, certain Outlook client features, offline access, and goals.

The reason that pet CRM features are dangerous is that they can cloud your vision, hold you back from implementing new and better features, and give you angst if your pet does not perform at 100% of your expectations.

So let’s say connections is your pet. You love connections, and every problem you see you answer with connections. The problem is, connections should not be used for every relationship scenario, connections have limitations, and there are some newer better options. If the connections feature is your pet, when it fails you (and it will), your world will be shattered, and your faith in Dynamics as a platform may be shaken.

How do I identify my pets?

  • If this feature doesn’t work or has limitations, does my workflow stop? If your business process is so dependent on one specific feature that it can’t be done in any other way, it may be a pet.
  • Which features, when they don’t work, raise your blood pressure the most? These may be your pets.
  • Which features are you resistant to replace, even if there is a better way? These features may be pets.

Tips for keeping your pets in line

  • Maintain a realistic outlook. No feature is perfect; no feature is the solution for every problem. Test and validate the fit of the feature, including user experience, administration process, and performance.
  • Get involved in the Dynamics Community. Meet users from other companies and industries. This will give you exposure to the broader world of CRM, and how other people are using CRM. Whenever there is something in CRM that doesn’t work exactly the way that users want it to, it is common to hear “I can’t believe we’re the only ones who are doing this.” Realize that just because a specific feature doesn’t work in exactly the way you are trying to use it, that doesn’t make it bad. Sometimes the “by design” behavior is there because the majority of client feedback that Microsoft receives asks for it to be done in a different way than how you want to do it. Have you voiced your opinion on ideas.dynamics.com? Have you opened a support ticket with Microsoft or called your partner about it? If you don’t make your voice heard, you can’t complain about it.
  • Fully regression test system updates. Ensure that features used by users, including your favorite pet features, work correctly before deploying the update to production. If you find that the update impacts the performance of one of your pet features, identify if there are usable workarounds or newer approaches that might work better than your pet.
  • Re-evaluate old pets. Features like connections, goals, dialogs, Outlook client, and legacy service entities, while still functional, are no longer in the mainstream of the Dynamics product roadmap. This means that these features typically do not receive the same level of testing in new releases, and are in maintenance mode. These features do not work on mobile or with the new Unified UI, so holding on to these pets may prevent you from fully benefiting from the latest product enhancements.
  • Don’t be afraid to replace your pet if a newer better feature comes along. Sure, you and the CRM 4.0 Announcements entity had a great time, but he’s now gone to live in a farm in the country.

 

Tip #905: Another option for delegate tracking

Filed under #CRMfeaturesweforgotabout

Recently, we described some of the limitations of support for delegate tracking with server-side synchronization. There is one additional option that I neglected to mention that allows for the creation of appointments for other people from Outlook while using server-side synchronization, and may be another reason why you may not want to dump CRM for Outlook quite yet.

In the settings for CRM for Outlook, there are some options to select which forms to use when clicking the new record buttons from the Dynamics 365 tab of the Outlook ribbon. The Appointment, Contact, and Task buttons are checked by default.

In this scenario, the delegate can be in Outlook, view their boss’ calendar, and click the new appointment or new contact button from the Dynamics 365 ribbon tab of Outlook.

This will launch the CRM form for new contact or new appointment. The assistant can create the appointment or contact, save the record, and via server-side synchronization, the record will synchronize with the boss’ Outlook inbox or calendar.

So what do I need to do to make sure the item synchronizes correctly?

The following reflects the default synchronization rules. If you have modified your default rules, you will need to ensure that you are setting the appropriate fields to be included in the boss’ synchronization filter.

Contacts

The default synchronization rule for Contacts is “contacts I own.” Before saving the contact set the owner of the record to the boss.

Appointments

The default synchronization rule for Appointments is appointments where I am an activity party other than owner. Just make sure you specify the boss as a meeting attendee. This also means that, by default, if the assistant owns the appointment, but is not an attendee/recipient, he or she will not see the appointment on their calendar.

Tasks

The default synchronization rule for Tasks is tasks where I am the owner. Before saving the task set the owner of the record to the boss.

 

 

Tip #904: Portal refresh, change notification, and reset button

Portal, change notification and reset button walk into a bar… We did discuss portal refresh previously and the topic seems to have been closed. But some users have reported that, despite all of the correct settings, portal cache refresh just was not working as advertised and the only solution to make the changes visible was to restart the portal.

Dileep Singh, the man on the inside, to the rescue.

If you’re observing an erratic portal cache refresh behaviour and entity change tracking does not seem to be doing its job, your organisation may not enabled for change notification monitoring [from the portal point of view]. This is an internal setting which gets enabled when you provision a portal (or enable relevance search). However, if you reset your org or restore it from another org, after provisioning the portal, it can get reset.

To enable it again, go to Portal Management Page > Portal details tab, modify the name of the portal and submit. This will enable the tracking and cache will start working.

Bonus

Developers, rejoice! There is a hidden new feature in the new release that you might like to know about.

If you log into the portal with site admin permissions, you can visit the about page (append _services/about to your portal url). This page will show additional diagnostic information if you are an admin as well as a reset cache button. W00t!

That said, you should not need to reset cache in normal operations. The admin button was added to help portal development scenarios where developers need instantaneous cache updates so that they can debug and develop without slowing down.