Just Some Tips Working with Virtual Entities

Recently I spent some time working on Virtual Entities, one of the new features in Dynamics 365 v9.0. To learn more about Virtual Entities, you can read the official documentation here and how to set it up here. In this post, I would like to share my tips and findings working with Virtual Entities and connecting it to a custom oData v4.0 Web API.

During my attempt setting up Virtual Entity, I encountered a very generic error: “Entity could not be retrieved from data source.” for different problems.

Error.PNG

The error message is not that descriptive and doesn’t provide further information for me to troubleshoot. I’ve submitted a feedback for this, if you also encounter the similar issue: https://ideas.dynamics.com/ideas/dynamics-crm/ID0003358

The tips in this post hopefully can be helpful to fix the above issue 🙂

Background

So, to set the context, in my sample scenario I have a custom oData data source with metadata as below:

VE-Casesensitive.PNG

Tip #1 – Make sure the path is in the correct case (Upper/Lower)

 

I was under an assumption: oData seems to be just an URL, so if I throw in the path as all lower case it should be fine…

Well, one of the reason the error being thrown is because oData seems to expect case sensitive path. I entered “movies” instead of “Movies” and in the field mapping I put “rating” instead of “Rating”. So, make sure the mapping and path is the same as the metadata.

VE-Case.png

Tip #2 – Missing Field Mapping

In my experiment, I created a few extra fields that doesn’t match the metadata definition. Well, this should not create any harm right, just like other custom entity…

Apparently, when there is a missing field in the mapping, the virtual entity is showing the above error.

So, make sure you have the all fields to be mapped correctly and do not create any field that is not in the oData definition. Luckily, you can still omit fields that you don’t like (e.g: when I don’t have “ReleasedYear” field, the VE still works fine).

VE-Mapping.png

Tip #3 – Setting Field Requirement(s)

If you noticed my oData definition for Rating field, it is mentioned there: Nullable=”false”. If the oData set up the field to be mandatory, the corresponding field in the VE also need to be set “Business Required”VE-Field Requirement.PNG

Tip #4 – Be Careful with the “Numbers”

In my oData definition, I have the Rating field, which is a decimal field. But how about in Dynamics 365 we want it to be stored as a different field type, whole number or float instead? Well, VE doesn’t support that, so we need to ensure the field data type is the same from the data source to the VE’s field.

VE-Data type.png

That’s all for today. Hope this helps!

Advertisements

Dynamics 365 v9.0 Hidden Gems – #2 Configurations for a better UX

I’m continuing the hidden gems series of the Dynamics 365 v9.0. Today’s topic is about the UI/UX Configuration that is introduced in the Dynamics 365 v9.0. This is not about the “Hub” features that you can use the custom control, that would be a separate topic on the unified client. The configuration options that I’m going to share here is about the refreshed web UI.

Configuration Option #1: Multi-Select Option Set

It’s been a long waiting ask from the Dynamics Community to have multi-select option sets. In the past, workarounds for this are either using Many-to-Many relationship or flatten the selection within the entity. With this new enhancement to the platform, we can tailor the UX of the data entry to be simpler. The old workaround using Many-to-Many relationship requires the user to click the (+) button at the subgrid and it will pop-up the lookup window to select (lots of clicks here)

Many-To-Many-Workarounds

Compared to the new Multi-Select Option Set, where we can capture the data in a single location and less clicks.

Multi-Select.png

Findings on the multi-select option sets:

  • Behind the scene, it is stored similar to the regular option set (a pair of value and label), which is good for reporting, it is not stored as just plain text, separated by comma or a specific character that makes it harder to report.
  • We are not able to update existing option sets to be multi-select option sets.

Configuration Option #2: Colour-coded Sub Grids

Another UX enhancement that we can apply with the v9.0 is around the Panel header color for Subgrids. In my example, I’m colour-coding case subgrids under account entity to be able to see open cases with the account by glancing the colour coded cases by priority.

Subgrid1

The end result is:

Subgrid2

Configuration Option #3: Allow Text Wrapping

In the past, it is another common feedback when we are configuring fields on the form, some of the fields are a bit more descriptive than the other. When it’s longer than the pre-defined label width within the section, the text will be truncated. The almost immediate feedback from the end users would be: I want them to be visible!

With the update of v9.0, the Web UI addressed this feedback to a certain degree. There is an option under the System Settings to allow text wrapping in form fields labels and value.

Allow Text Wrapping.PNG

So, I gave it a go and see a long text label for a single-field text. And it wrapped up to a few lines, which addresses the common feedback. yay!

Wrapped.PNG

Conclusion

From my perspective, these configuration options to the UI are giving some improvements to the usability and UX aspect of the application. With simple change and minimum effort, as well as doing it in a supported way, we can improve the UX of the system.

HTH!

Dynamics 365 v9.0 Hidden Gems – #1 Autonumber

The Dynamics 365 v9.0 for the online deployment has become available since a few days ago. I believe we are all excited with this new release. There are major improvements in a lot of areas such as the unified client (a.k.a refreshed UI and great potential ahead), platform enhancements (Virtual Entities, Microsoft Flow integration directly from Dynamics 365), Hubs – this was the Interactive Service Hubs, being extended for other modules (Sales, Service, Project Service, Field Service) and many more.

Yet, there are few hidden gems that can be uncovered from the v9.0 update that could be a life saver in the Dynamics 365 projects. I’m starting the v9.0 Hidden Gems series to run through the hidden gems. I’m going to start with the first one: Autonumber. And no, this is not the same Autonumber that is available for some of the out of the box entities like case, invoice, order, etc

not the autonumber.png

This feature was announced by Matt Barbour at Microsoft Ignite Conference, the recording is available at this Youtube video. At this moment, this feature is available from the API only and there is no explicit documentation available yet.

At high level, this Autonumber features could generate the number with below features:

  • Date format
    • Syntax: {DATETIMEUTC:[format]}
  • Sequential Numbers
    • Syntax: {SEQNUM:size}
  • Random String
    • Syntax: {RANDSTRING:6}
  • Static string
    • Any string component that is not using the above syntax will be treated as static string.

Sample code snippet from Matt’s presentation:

Autonumber code snippet.png

Given at this moment the documentation is not available yet and it is only available via the API, this is a bit tricky for Admins/System Customisers to work on this feature. Luckily, the Dynamics 365 community is really reactive to this and there are few helper tools available.

Option 1: AutoNumManager – XrmToolBox Plugin by Jonas Rapp

ANM-screen.jpg

You can read the instruction on how to use it at: http://anm.xrmtoolbox.com/ and download the plugin from GitHub: https://github.com/rappen/AutoNumManager/releases

Option 2: Easy AutoNumber by Dimitri Chevkov

Another option if you would like to configure the Autonumber from the Dynamics 365 itself. This solution is provided as Dynamics 365 managed solution: https://dynamics365heroes.com/2017/10/02/easy-autonumber-utility-dynamics-365-july-2017-update-v9/

easyautoscreen.png

Findings

So, I’ve tried the Autonumber features and would like to share some of my findings here:

  1. This autonumber attributes apparently more robust from the Workflow/Plugins workarounds that some people might have developed. It could handle a good degree of parallelism. My PoC was using KingswaySoft to load 5k contact records with bulk operation enabled and using balanced data distributor to do 2 parallel runs. I cannot find any duplicate number with this testing. While the other Workflow/Plugins workarounds produced duplicate records on Dynamics 365 Online environment.
  2. A common question that often been asked by customers: can we specify the starting number? The answer is yes. I looked at Jonas’ XrmToolBox plugin and there is a field to fill in called “Seed”. Here you can specify the starting number for the sequence. Note: from Jonas’ blog post, modifying Seed could potentially generate duplicate numbers.
  3. Multiple Number Sequence within a single Autonumber field is not possible. It seems it is using the same “counter”.
  4. It could not refer to other values within the entity or related entity, where some of autonumber requirements asked for the number to be sequential based on the parent entity. E.g: Custom Case numbering with parent child case, where the child case should use the parent case number as prefix and add the sequence at the end).
  5. At this moment there is no known way to update existing “bespoke” autonumber fields to use this autonumber feature. I read Jonas’ experiment and it seems there are some placeholders within the entity metadata where the autonumber definition is stored. And it seems a bit risky to re-engineer the existing field with something new. If organisations would like to leverage this new autonumber feature, they might consider using a new field, which might impact existing reporting/integration.

HTH!

 

Hide the Dynamics 365 script error pop-ups

A colleague of mine recently mentioned that one of our clients is complaining about the script errors that keep pop-ing up. It happens even on a new sandbox instance.

Dynamics_365_Error.png

This issue seems to be a classic recurring theme for everyone. So, I would share it here as a “reminder” for myself as well.

First, as an admin, navigate to Settings > Administration > Privacy Preference 

Privacy_Settings.png

And select either to automatically send the error report or never send

Privacy_Settings2.png

Extra Info

If you would like to see what is going to be sent to Microsoft (in case there is a legitimate error). Click the “view the data that will be sent to Microsoft” to see the real error.

Dynamics_365_Error2.png

So far, I’ve seen very few informative log there. But it has saved me once or twice in troubleshooting real issues.

 

HTH!

 

What matters with the Dynamics 365 v9.0

A quick disclaimer: this article is based on the preview program where the actual might differs.

Last week, I spent some more time watching again the recording of the Executive Briefing for Dynamics 365 July 2017 Preview Program. There is a massive load of good content and updates to Dynamics 365 in this next release. Traditionally, the preview program is under NDA and things that mentioned there are not for public consumption. However, a shift has happened in the direction of the preview program, where the information available there is no longer under NDA. A fellow MVP, Jukka Niiranen, posted a really good summary of this information on his blog: http://survivingcrm.com/2017/06/all-you-need-to-know-about-dynamics-365-v9-0-for-now/.

After spending a few hours digesting again the recording, I would like to share a few key things that I’ve learned and thought as the outcome of the Executive Briefing as well as from documentations that are currently available.

An Exciting UI Revamp

Unified_Interface.png

The Unified Client that was mentioned during the Executive Briefing addressed quite significant issues of usability of the system. Reduction of white spaces, better tab navigation, text not to be wrapped anymore is a good sign for the usability. With this change, we all hope that users adoption would become much better. Now, when we are talking about user adoption, Dynamics 365 customers might need to start considering and thinking the plan for the change management. From my perspective, the more preparation of the change is the better user adoption will be.

Business EditionGuided Setup For Business.jpg

During the Executive Briefing, it was mentioned that the Business Edition (BE) will start with Sales & Marketing module and other capabilities will follow. The setup experience with the Business Edition seems to be simplified that much for the admin to setup, which is positive in a way. However, since it’s a new thing, everyone needs to learn it.

Simplified Settings.jpg

A few things that I noticed, would be as usual on what can/cannot be done in Business Edition. This screenshot from the presentation slide outlines the high-level limitation on Business Edition when it’s compared with the Enterprise Edition.

Business Limitation.jpg

And as per the first release, based on the question during the briefing, it seems there is no downgrade path for Enterprise Edition to Business Edition, at least for now.

No Downgrade.jpg

However, it seems to be possible to run Business and Enterprise edition in the same environment (still TBC though..)

Side-by-side.jpg

And with the Business Edition, the configuration experience will also be different

BU-Customization.jpg

My quick takeaway from the Business Edition: Be prepared to learn something (completely) new!

Platform Changes, Shift of Paradigm

With these exciting updates to the platform. Designing a Dynamics 365 solution is now no longer silo-ed within the Dynamics 365. Noticed that Microsoft Flow and Azure Logic Apps are becoming an integral part of Dynamics 365 solution. More and more integration and solutions will leverage this “native” capabilities (also become a space for us, Dynamics 365/CRM professional to start investing our time to learn).

Flow-LogicApps.jpg

With the Webhook supports, it opens up greater possibilities for Event-Driven processes/integration. This will work nicely with Azure function or any other APIs that support Webhook.

Webhook-Support.jpg

And Virtual Entity (this could be the end of data replication mindset)

a14be4aa-2d62-4775-b312-a6ae5fb7eb0e-original.png

Deprecation Announcements

With the release of v9.0, there are some components that are made deprecated.

  • Outlook Client
  • Service scheduling in Dynamics 365 for Customer Service
  • Dialogs
  • Parature knowledge base as the Dynamics 365
  • Project Service Finder app
  • Contracts, Contract Line Items, and Contract Templates
  • Standard SLAs
  • Relationship Roles
  • Mail Merge
  • Announcements
  • Silverlight (XAP) web resource

For more detail, have a read on Microsoft’s official documentation on this: https://docs.microsoft.com/en-us/dynamics365/get-started/whats-new/customer-engagement/important-changes-coming

The deprecation announcement is important for us to start planning on how to handle the deprecation and move on with the latest available feature and start adopting the new feature for new implementations. The interesting ones are around Outlook Client, Dialogs, Contract-related entities and SLA. I believe this will require more planning.

For example, rolling out the new Outlook App might have some infrastructure/desktop rollout impact, as the current Outlook App has some compatibility gap with older version Exchange Server and Desktop Outlook (ref: https://technet.microsoft.com/en-us/library/dn946901.aspx). Office 365 definitely solves the upgrade/infrastructure compatibility issue (another compelling reason where organisations should start considering moving to the cloud ;)).

Currently, Dialogs are there as the only way to prompt users for a value that can be consumed by the processes/workflow. Without any equivalent replacement, this could be a tricky situation. Some organisations might still using the contract-related and older SLA, and they work fine. If it becomes deprecated, then a change to the system is required.

Changes for Developers

Within the same documentation above, there is a section on “Some client APIs are deprecated” and I noticed the popular Xrm.Page library is now deprecated. This is in-line to support the new Unified Client structure. This means a really good planning needs to happen to be prepared with this release and start learning the new Client API/library.

For more details, there is another documentation from Microsoft for developers: https://docs.microsoft.com/en-us/dynamics365/get-started/whats-new/customer-engagement/new-in-july-2017-update-for-developers

Conclusion

Dynamics 365 v9.0 is indeed a major upgrade, not only from the versioning, but also with the content. We all need to be ready to learn A LOT of new things and start embracing the latest and the greatest of the features to stay supported and ready for “undeniably” rapid changes to the platform. At this moment, we are just scratching the surface of the Dynamics 365 v9.0, I believe there are more to be unveiled and really excited about it!

Last but not least, even though the “briefing” for the upcoming preview program has completed, nothing is too late. Please feel free to sign up at https://connect.microsoft.com/DynamicsCustomerEngagement/

Microsoft Teams: Tips to Change Date/Time Format

We, at Barhead has just started our Microsoft Teams journey earlier this month. One thing that we noticed is that by default of standard installation every date/time formatting are in US format. Below is a sample of conversation log between me and my colleague. The conversation was happening a few weeks ago, which is still in the month of April, but the one showing below seems to be reverse of Australian time format (dd/MM/yyyy) and showing US format (MM/dd/yyyy).

Chat Log

So, I found out the way to change the date time format is by changing the Language. To change the language: Click on the “profile” icon at the bottom left of the application, and click on Language:

2017-04-20_1121.png

This then will open the selection of the language. Select your language. Note: in this window, Microsoft Team also specify that language will determine the date and time format.

2017-04-20_1104.png

Click Save and Restart to see the changes being applied!

HTH!

 

Tips to Prepare for the Dynamics 365 exam – MB2-717: Sales

2017-04-19_1602

Today, I passed the Microsoft Dynamics 365 for Sales exam (MB2-717). So, I just would like to share the preparation tips that I’ve done to get this certification nailed down. I came from technical background, so this exam is slightly tougher for me to prepare 🙂

Note: As usual, you will not find any question that related to the exam here and I won’t give you any of it. NDA! NDA! NDA!

Skills Measured

Before starting to prepare for the exam, always review the Skills Measured section from the exam link: https://www.microsoft.com/en-us/learning/exam-mb2-717.aspx.

Below is the extract of the topics/measurements based on the official page:

Create a Customer Organizational Structure (20% – 25%)

  • Manage customer records
    • Create and maintain a current customer base organizational structure; identify potential sales opportunities by utilizing core records such as accounts, contacts and customers
  • Manage the sales process
    • Create and maintain sales transactional records; track the sales progression; manage the sales process from lead generation through quote, order, and invoice creation
  • Manage customer communication
    • Create and manage social engagement sources, identify opportunities and generate leads
  • Manage sales literature and competitors
    • Create and maintain a sales literature repository, create an organized methodology for identifying and tracking competitors

Manage Leads and Opportunities (15% – 20%)

  • Manage leads
    • Identify leads and track them throughout the conversion process, reactivate or delete disqualified leads
  • Identify and manage opportunities
    • Identify opportunities to track throughout the sales workflow, create opportunities with a defined status, create records within the opportunity form, assign opportunities to designated sales staff
  • Utilize opportunity functionality
    • Close and document opportunities as won or lost, use Quick Create to add new information, connect opportunities to other record types, apply connections to a data structure
  • Manage opportunity relationships
    • Analyze lost sales opportunities through resolution activities, utilize multiple opportunity views

Manage Relationship and Sales Analysis (10% – 15%)

  • Manage relationship intelligence
    • Provision and configure Relationship Insights to integrate with Exchange, create and prioritize actions and tasks, track interactions, manage sales communication
  • Manage relationship analysis
    • Provision and configure relationship intelligence, create actionable and productivity cards by using Relationship Assistant
  • Integrate email with Dynamics 365 Sales
    • Track interactions with a specific email; manage sales relationships through statistical analysis of email activity, untracked emails and performance activities; manage sales relationships with Email Engagement; use engagement analytics and Auto-capture
  • Manage sales by using sales analysis tools
    • Improve sales tracking by using Advanced Find, editable grids and built-in reports; export data to Excel in both static and dynamic processes; export Excel templates

Manage the Sale Process (10% – 15%)

  • Manage the business process flow
    • Manage the tasks required of each state in the Business Process Flow, create territories and assign them to managers and sales staff, configure currency and exchange rates
  • Manage Products by using the Product Catalog
    • Manage prices lists, discount lists and unit groups; create, maintain and clone products; manage the product lifecycle
  • Manage price structures
    • Create price lists, create discount list models, assign currencies to products
  • Manage product relationships
    • Identify product relationships, differentiate product relationships by family units, customize properties for all products, identify and bundle related products
  • Manage sales transactional records
    • Create price and revenue structures with inclusion of line items, currency rates, exchange rates, and write-in products; manage the quote lifecycle; create and manage quotes, orders, and invoices

Improve Sales Performance (10% – 15%)

  • Manage goals
    • Create manageable and measurable goals, delineate goals by fiscal periods, specify definitions and goal metric records, analyze individual and organizational progress by creating goal hierarchies, use rollup queries
  • Manage visual tools with Sales Analysis
    • Create documents and templates, integrate charts and dashboards

Manage Customer Information (15% – 20%)

  • Operate Dynamics 365 sales functions
    • Identify and define the functional areas of Dynamics 365 Sales, model relationships and records in Microsoft Dynamics 365, access Dynamics 365 Sales through various client access methods, utilize the help center
  • Perform data management
    • Create customers and contacts within 365 Sales, enforce customer relationship by using activity types, use views and global searches
  • Perform lifecycle management
    • Utilize leads, convert leads into customers in the lead life cycle, perform opportunity management, manage cases

Now, below are the sources that I used to prepare for the exam.

Source #1: Dynamics Learning Portal

DLP always been my go-to source to prepare for Dynamics 365/CRM exam. So, for Sales exam, run through these courses:

Source #2: Revision Notes

Again, Neil Parkhurst has provided a good exam revision on Dynamics CRM 2016, the contents here are great. Since the core concepts for Sales has not been changed that much, this article is really recommended!

https://neilparkhurst.com/2016/06/01/mb2-713-certification-microsoft-dynamics-crm-2016-sales-revision-guide/

Source #3: Hands-On

As usual, to prepare for an exam, some hands-on experience is a must.

Try out the Sales-related scenarios, such as Lead qualifications, Opportunity management, Quote, Order, Invoice, Goal, Metric, Rollup Query. Get the understanding of the options to do data analysis: View, Report, Excel, Dashboard, Chart and Power BI.

One thing that I noticed quite interesting for the Skills Measured here for the Sales exam is around the Relationship Insight. At this moment, this feature is only available in Preview for North America region. This is a bit hard for us that are based on the other regions to have hands-on experience.

To prepare on the Relationship Insight topic, Microsoft Dynamics team posted a great blog on this instance https://blogs.msdn.microsoft.com/crm/2016/12/05/now-in-preview-relationship-insights-for-dynamics-365/

Below are the curated links from the above blog post and try to get the understanding of what features do what would be helpful as the preparation for the exam:

HTH!