Quantcast
Channel: Neil Parkhurst's Activities
Viewing all 1616 articles
Browse latest View live

Introducing – The USD Accelerator

$
0
0

The USD Accelerator (in my opinion) is a fantastic tool but what is it and why would you use it??

What is Unified Service Desk?

You may not be aware of Unified Service Desk (USD) and the many advantages it can deliver. USD is designed to work with Dynamics 365, it is a configuration-based framework aimed at building applications which can benefit contact centre agents.

Features such as agent scripting, session management and knowledge base integration all provide a user-friendly interface that can deliver significant business benefits in contact centres. A well implemented USD solution can help drive down your Average Handling Time (AHT) and improve customer satisfaction ratings.

I have repeatedly found that USD can provide significant business benefits to contact centre’s using Dynamics 365.

Unified Service Desk Challenges

Initially USD can be a bit of a mountain to climb!

Being a configuration-based framework means developers can quickly create tailored solutions. But being framework brings some challenges;

  • USD is effectively a blank canvas, meaning an interface needs to be created from scratch.
  • The flexibility of USD means the configuration can be complex, especially to developers new to the required concepts.

The means learning how to configure USD can take developers a considerable amount of time. A challenge which is made harder as being a blank canvas means they have to create everything from scratch.

This makes USD projects look like a difficult / lengthy technical challenge.


Introducing “The USD Accelerator”

Over the last few years I have conducted many demos of Unified Service Desk and completed multiple proof of concept (POC) projects. Not to mention that I have successfully implemented USD in production environments several times. Each time I’ve needed to repeatedly build similar functionality! I have used these experiences to build The USD Accelerator.

I have created a USD configuration that can be applied to many situations. Think of The USD Accelerator as a template solution, meaning a large percentage of the application can be delivered in a very short timescale. You can then focus on “just” building your bespoke elements.

It works with many of the out of the box system entities found in Dynamics 365, including leads, contacts, accounts, cases and opportunities.

It also integrates with many standard features / add-ins such as Field Service, Gamification, Web chat (using CaféX’s Live Assist) and much more.

The design concept includes many options that allow features to be quickly enabled / disabled. The initial configuration can take less than one day. Allowing companies to quickly configure “their template” and then customize as required.

I know this as I’ve completed multiple demonstrations and even production builds using The USD Accelerator.

What Benefits Can I Expect?

The USD Accelerator is designed to help improve the return on investment for your Dynamics 365 project. This is achieved by;

  • Starting from a template rather than a blank canvas will help deliver your demo, POC or production system quicker.
  • Having a template to learn from will help speed the learning curve of your developers.
  • Additionally, the interface has been created from my considerable experience in contact centres meaning you should expect improved user adoption.


How Much Will The USD Accelerator Cost?

Nothing! I am making The USD Accelerator available as a free download. You can download and use it in your projects for free.

All I ask is you give me feedback on how The USD Accelerator helped you. Plus given me your ideas on enhancements so I can try to improve it for others.

However if your developers need training or your project needs support I will be more than happy to discuss ….. neil.parkhurst@npdynamics.com

What next?

Below you will find links to detailed installation instructions and technical details. Follow the links below and you’ll hopefully be up and running in no time at all ….

Download The USD Accelerator

Technical Manual


What If You Need Help?

Implementing solutions in contact centres, even with The USD Accelerator can be a challenging undertaking. I would be happy to discuss your requirements in detail.

If you would like to discuss your specific project please email me at neil.parkhurst@npdynamics.com.

 


The USD Accelerator – Technical Guide, Release History (3_1_0_0)

$
0
0

Overview

The USD Accelerator is a pre-build Unified Service Desk configuration aimed at helping speed your USD project.

I am excited to announce release 3.1. This new release has a focus on the agent experience. Therefore it contains loads of bug fixes and performance enhancements. And additionally many agent focused usability changes.

This post will highlight the enhancements and bug fixes released in version 3_1_0_0 of The USD Accelerator.

Several of the new features and bug fixes will have been created because of feedback received from people using The USD Accelerator. I’d like to express a big thank you for that feedback, please keep it coming!

Note:
This version of The USD Accelerator supports USD version 4.1.1319, the version which is currently generally available. Other versions of USD should work correctly as required!

You can find out more about The USD Accelerator here.

Date4th Jan 2020
Version3_1_0_0
USD VersionUSD 4.1.1319
DescriptionThis new release has a focus on the agent experience.

Therefore it contains loads of bug fixes and performance enhancements. And additionally many agent focused usability changes.

Enhancements
Associated Case Tab
A toolbar button has been added on accounts and contacts that will open an associated view of cases in a separate tab.

Navigation for order entity (and order detail)
The ability to use the order entity has been added into the navigation options.

For example: once enabled the agent can access orders from their “my work” menu.


Note: A USD option called “UseOrder” must be set to “Y” to enable this feature.

Updated Icons for contact, account, lead and case
Icons have been updated to keep the “branding” of The USD Accelerator consistent with the latest styles found in Dynamics 365.

Batch mode added for leads
A batch mode already exists on some entities such as tasks, phone calls and cases. A batch mode has been added to leads. The idea is each time you close a lead session (once in batch mode) the next lead will automatically load. Making it easy to work through a list of leads.

Save icon added to toolbar of “CRM” Pages
It is possible to enable a new toolbar button which gives a save icon in the USD toolbar of “CRM” pages.


Note:
To enable this feature a UII Option of “SaveToolbar” must have a value of “Y”.

First response sent agent script added
An answer has been added to the case agent script which will allow the easy setting of first response sent field.

Tip:
This might be useful is you are using a first response SLA!


Note: To enable this feature a UII option of “FirstResponseSLA” must be set to “Y”.

Query SLA details and show in case overview
When a case is loaded its SLA details are read and shown in the case overview tab.

Addition of case exceeded SLA notification
If a case is opened that has breached an SLA then a warning notification can be displayed.


Note: To enable this feature a UII option called “NotifyCaseSLA” must have a value of “Y”.

Optional release of queue items on session close
When working with queues, if you open a case (etc) that exists on a queue then the worked by field is automatically set. This helps to prevent multiple agents working on the same item.

If the case is resolved then the queueitem will be removed. But if the session is closed and the case hasn’t been resolved we have two options.

When the session closes we can decide to release the queueitem or keep the worked by field set as the current agent.

To release queueitems on the close oif sessions the UII option “ReleaseQueueItem” must be set to “Y”.

Option to disable navigation toolbar
Each tab can have back, forwards and refresh buttons. These can be useful but it might be that you don’t want your agents to have these. (Pressing refresh, for example, can sometimes trigger unexpected behaviour.)


Note: To enable / disable the navigation toolbar options use “NavigationToolbar” UII option. A setting of “Y” will show the toolbar.

Force save of dirty tabs on close of sessions
When sessions are closed agents should ideally have already saved all data!

But a save is forced on close of a session to try to save any data not saved by the agent!

Performance improvements to reminders app
A canvas app to highlight any due (or overdue) call backs was introduced in v3 of The USD Accelerator. However at that time I considered this to be a “preview” feature as it was very slow.

With this release the performance of the reminders function has been significantly improved.

When opening email, use regarding to open. But if blank use to/from
When an email opens we can already open the entity in the regarding field.

If the regarding field is blank the to and from fields of the email will be checked for a contact or account. And that contact or account will automatically open.

Ability to search for cases from CTI search and standard search
The search pages now support opening of cases. (Rather than “just” contact, account and lead.)

When a case is opened, the account or contact defined in the customer field will also open. When in a CTI session the associated phone call will be automatically linked to the customer from the case.

Incorrect customer logic added to omnichannel
If an incorrect customer is opened whilst completing a omnichannel web chat it is now possible to click an incorrect customer button. This will close the current customer and allow a second search to be completed.

Additionally a “non customer” button has been added. If you are using the “non customer” logic this option will show. The idea being that a generic contact might be assigned to many chats if you do not know who the contact is.

Search option added to omnichannel
The search capabilities linked to Omnichannel for Customer Service have been extensively enhanced.

A search tab will give the ability to search accounts or contacts. Plus use of the relevance / category search is supported. Additionally, if you have Paribus Interactive enabled then this can be used to find matches whilst completing a webchat.

Note: Opening contacts / accounts from this search function will automatically link them to the current chat.


Added agent script toolbar button
Agent scripts are contextual and generally speaking the agent will always be on the correct script.

But I have found that they can sometimes want to change the script currently being used. To support this a toolbar button will show on “CRM” forms. Clicking this button will load the agent script that relates to that tab.


Note:
To enable this feature the UII Option “AgentScript_In_Toolbar” must be set to “Y”

Live Assist – search and pop contacts (based on email)
When using Live Assist, when a chat session starts a search is completed using the email of the customer. (This assumes you have a pre-chat survey that captures the email address.)

If a single match is found then that contact will load automatically and be linked to the current chat.

Added create task agent script to account, contact and case
It is now possible to quickly create tasks from agent scripts on accounts, contacts and cases.

In omnichannel, when presence is do not disturb hide the agent dashboard
If the agents presence is set to do not disturb then the agent dashboard for omnichannel will be hidden. (As they don’t want to be disturbed!)
Agent script to add new contact added to omnichannel
When starting an omnichannel chat it is possible to quickly create a new contact from an agent script.

Bug Fixes
A close active tab button was missing from related case tab
Case and potentially other entities weren’t opening from CTI search tab
“My USD Dashboard” wasn’t loading
Performance of contact form load improved by moving actions to dataready event
If tabs are closed, the close associated agent script now also closes
Incorrect navigation bar was showing for USD Settings
Disabled workorder schedule agent script (As this was never used!)
Update notes agent script on cases wasn’t working
Removed work order toolbar button on case (as didn’t work!)
A single quote character in contact name, account name or case title would stop call back creation
Omnichannel close of sessions was incorrectly closing two sessions
Toolbar button shortcut keys not in data.zip (Updated XML schema used to export USD configuration)
And much more!!

MB-200: Microsoft Dynamics 365 Customer Engagement Core – Security

$
0
0

I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around Dynamics 365 security.

You can see below that security roles, users, teams and hierarchy security are mentioned in the implement security section of the exam.

To understand security roles you will need to appreciate several related concepts including business units, users and teams. So I will cover all of these in this post!

Security roles govern what actions a user can complete on a record. You’ll need to appreciate what actions we can control, such as create, delete, assign and share. Plus you’ll need to know what a business unit is and how the units can relate to each other.

Additionally we have multiple approaches to security. For example, access to each record is generally based on an ownership model. For example, I can only read (see) accounts I own. But other options such as hierarchal security exist. Something that maybe useful when you want to grant a sales manager permission to see amend all of the record owned by her team.

Other security requirements might include requirements to restrict access to a single fields or maybe we need to grant access to specific records. (Known as access teams.)

Therefore, I will devote the rest of this post to attempting to give you an overview of the security model. Armed with that knowledge I encourage you to then spend time reviewing how the out of the box security roles are implemented.

Tip: As part of your revision the best way to understand security roles might be to open up some of the out of the box roles and review what actions each would enable.

The options / entities related to security are as follows;

  • Users, allows you to manage users and associate them with business units / teams and roles.
  • Teams, this option lets you define teams and also associate with security roles.
  • Security Roles,
    security roles let you define what access will be provided to teams and users. Roles are created and then one or more are associated with each user / team.
  • Business Units are a fundamental building block in the Dynamics security model. They define the structure of the organization.
  • Field Security
    Profiles
    are used when you need to define specific access rights on individual fields.
  • Hierarchical Security supports a security model based on someone’s hierarchy. Which can either relate to the manager they have defined in their user or positions.
  • Positions define organizational positions which support the hierarchy security model.
  • Access Team Templates support dynamic record sharing. With the members of an access team being given privileges on specific records based on the access team template.

Business Units

The first construct to consider are business units, these allow you to define the structure of your organization. Users, teams and security roles will be linked to business units making them a fundamental building block in the security model.

Below you can see that I have created an example business unit. All of my international sales team will be linked to this business unit. Notice that most of the fields about address (etc) have been left blank. These extra fields are not essential but might be really useful for reference purposes. (However they have no functional use within the security model!)

Business units can have a hierarchy. This might reflect the organizations actual hierarchy but that isn’t always the case. In actual fact the hierarchy is designed to “drive” which users get access to what records. I have created a very simple organizational structure below. With sales and service being split. Plus, sales being further split into UK and US teams.

In Dynamics 365 the above business unit hierarchy looked like this;

Some points about business units you might need to know;

  1. The root business can be renamed.
  2. The root business unit cannot be deleted or disabled.
  3. The root business unit cannot be moved to have a parent business unit.
  4. The name of the root business unit will default to the organization name when the system is first deployed. (But you can change it.)
  5. All child business units have a parent which will either be another child or the root business unit. Meaning the root business unit is always the top of the business unit hierarchy.
  6. The parent business unit on a new business unit will always default to the root but can be changed.
  7. The definition of business units often follows the companies organizational structure but this is not essential. Ideally the business unit structure should mirror whatever is needed to support the security requirements of the organization.
  8. Child business units can be renamed.
  9. Child business units can be disabled.
  10. Child business units can be deleted but only after being disabled.
  11. Any users in a business unit will lose access to the application if the business unit they are assigned to is disabled.
  12. Child business units can be moved under a new parent – If you move the business unit users will move with the business unit.

Tip: The root business unit can be renamed! But historically I have found that the parent business unit field is mandatory. Which makes it impossible to save the change of name. (As the root does not and cannot have a parent business unit.) To resolve this you need to remove business required status on the parent business unit!

Users

Firstly, users will need to be created. This means they must exist as a user within Office 365. Additionally, they must be assigned a Dynamics 365 license.

Once the user signs into Dynamics 365 the security model is used to control what they can access. This is achieved using the manage roles option on the user.

Tip:
As you will soon see the combination of the user’s business unit and security role(s) will govern what access they have.


When creating users, the business unit is a mandatory field and will default to the root business unit. To access Dynamics 365 a user must also be given at least one security role. (Or be assigned to a team that has a security role!)

If you need to change a user’s business unit use the “change business unit” option. If the user owns a large volume of record in Dynamics 365 this process can take a long time! If you move a user from one business unit to another their security roles will be removed. Meaning, having completed a change of business unit, new security roles will need to be added before the user can log into Dynamics 365 again.

Security Roles

Each role is linked to a business unit. The roles then contain many options that govern the access to entities / features for the combination of business unit and user.

Often roles will be inherited from a parent business unit. Meaning when I use the manage roles on a user linked to a child business unit, I still see the roles from the parent business unit. This happens even though I haven’t created any roles specific for the child unit!

Each user can have multiple roles. The Dynamics 365 security model works on a least restrictive security model. Meaning a “sum” of all the roles assigned to the user would be applied.

Each role is made up of several options (actions) for each entity / feature in Dynamics 365. Entities typically have multiple actions covering functions including, create, read, write, delete, append, append to, assign and share.

Each entity can have eight different types of action. (Some are obvious in terms of what they do, some might need a little more thought!)

  • Create
  • Read
  • Write
  • Delete
  • Append – attach this entity to other entities. (Notes for example would need append enabled.)
  • Append To – attach other records to this entity. (Account for example would need “append to” so Notes can be added.)
  • Assign – gives the ability to change the owner of the record, to another team or user.
  • Share – allows someone to share the record out with other users. (This does not change the owner!)

Note: When you share a record you cannot / do not give any more access than you currently have.


The options govern the level of access. (As shown in the key below.) Not selected means the user will not have any access. User access would signify they can only work with records they own. We then have an increasing level of access that gives a greater and greater amount access based on the business unit hierarchy.


Tip:
When we create entities in Dynamics 365 they can be user / team owned or organization wide entities. Organization wide entities only have two access options. (None and organization!)

A detailed definition of these options is given below…


Teams

Teams have several uses in Dynamics 365. Teams are essentially listing or groups of users and can be used to help manage security. Teams may also be useful when creating reports. Additionally, teams can be useful when you wish to share “assets” with a group of users. (Assets could include views, charts, dashboards or records.)

You will find the option to maintain teams in the security area of Dynamics 365 advanced settings.


Business Units and Teams

Each business has a default team. This is a “special” team that cannot be removed. Users are automatically added as they are assigned to the business unit. Below you can see the default team for my International Sales Department. Notice the description highlights the fact that this is a default team.


Team Types

Owner teams are the original / traditional type of team found in Dynamics 365. Owner teams have members and the team can own records. (Assuming they have a security role that grants sufficient permission!) For example, an account might be owned by the “International Sales Team” rather than by an individual user.

Access teams are a special type of team giving record sharing capabilities.

It is important to understand that owner teams can have a security role. Members of the team will inherit the permissions granted by the team’s security role(s). Should you wish records to be owned by the team it must have a role which grants access to whatever entity is to be owned.


Owner Teams

The membership to owner teams can change but tends to be static. Someone joins the team and remains part of that team for all “activities” conducted by the team. An owner team has a finite number of members at any point in time.

Owner teams are useful when reporting on the team as a whole is required. For example, the team could have a goal and be measured as a group against that target.

Owner teams are associated with a business unit. As they will need to be assigned a security role from that business unit. But the members of the team do not have to belong to the same business unit. This is useful when a group of people need to collaborate across business units.


Note:
Also notice that the team has a default queue. (As does a user!) You should probably make yourself aware of them! Queues are a useful construct for managing lists of outstanding work items. You could for example create a queue containing service cases that need attention. And give everyone in the service team access to that queue.

Access Teams – User-Created

User created access teams are used to easily share records with a group of users. They are in many ways very similar to owner teams! As they have members in a very similar way.

Except, user-created access teams do not have roles and cannot own records. Although records can be shared with them without the need to the team owning the record.


Below you can see that I have shared an account record with the access team I created above. And that the team members have been granted read access on the account.


Access Teams – Auto-Created

Auto-Created Access teams are used to share individual records. These access teams do not own records and cannot have roles. They are by implication very fluid / dynamic teams and will be formed or dissolved almost at will.

The number of members, who those members are or even if the team will exist is not a given. Consider an access team used on opportunity to reflect the sales team. It might be the opportunity is very small and an access team is never required for that sale. Or it might be a large potential that needs multiple people involved.

On my opportunity form I’ve added a sub grid in which I list the access team members for the opportunity. Any users added will be part of the access team for that specific opportunity. Giving them all rights to maintain that opportunity. (Based on an access team template.)


Before you can use an access teams on an entity it must be enabled for access teams. To do this you will need to use the customizations option. And under Communication & Collaboration enable the entity for access teams.

Once enabled you CAN disable access teams if required.


Having enabled the entity for access teams you will need to create an access team template. Access team templates are defined in security settings in Dynamics 365.

Below you can see an example of an access team template for the opportunity entity. This is used to grant members of the access team privileges on individual opportunities.

Note: You are limited to 2 team templates per entity.


A sub grid for the team members will need to be added to the entity. Below I have shown the access team I added to my opportunity form. (Again using the Dynamics 365 customizations options.)  Notice that in the data source the records field is set to All Record Types, I have then selected Users as the entity. And I have set the default view to Associated Record Team Members. Then finally I have selected the required access team template opportunity.

If the access team template is changed, the revised permissions will not affect any existing access teams. Only as new records are created will the revised permissions take effect.

If an access team member has the share privileges. When they share the record their access team privileges will be shared. Meaning if someone has share ability but cannot delete a record. The people they share the record with will also not be able to delete it.

Hierarchy Security

The standard security model will fit most situations but we have a further option that might occasionally provide benefit. The concept of hierarchy security is to grant permissions based on someone’s “hierarchal position” in the organization. This could be defined in one of two ways, hierarchy based on reporting lines or positions. You will find the hierarchy and positions options in the advanced settings area.


Hierarchy security leverages settings on the system user entity in Dynamics 365. Each user can have a manager defined. It might be that the manager needs to have access to all the records of their team.


Another concept would be to define positions. Users can then be assigned to those permissions. It might be that anyone who is classed as having the position of “Board Member” would have read access to any data for people in positions “below” them.


Note: It should be understood that hierarchy security is not designed to replace the standard approach. It is supposed to be used in conjunction with the existing security model to give greater flexibility.

The hierarchy structure can span the business units again helping to provide an additional dimension to the security model.

A further concept is depth …. If your hierarchy has many levels, you can define how many layers to go down in the structure. It might be that the National Sales Manager can read and edit any opportunities for his direct reports. But if one of those reports is an area manager, then the National Sales Manager can still read records for the direct reports of the Area Manager. (But can’t change them.)

Note: To be clear, with non-direct reports the manager would only have read access. For direct reports that manager will have read, write, update, append and append to access. Also for the manager to have any access to the records for direct or non-direct reports they must have at least read privilege on the required entity.

These concepts can create a very granular approach. Let’s look at them in more detail. When you first set-up hierarchy security it must be enabled. This is done in the Hierarchy Security option found in the security area of settings.

Once enabled you opt to use this approach based on the manager hierarchy (as defined on system user records) or based on custom positions. I will describe how to create a custom hierarchy in a second! You must use one or the other approach a mixture is not possible.

Next you define how deep the hierarchy should go. A manager will have Create, Read, Update and Delete access to their direct reports. But then this depth option is used to decide how many layers below that they can see. (Note: See as they only have read access as they go deeper in the hierarchy.)

Finally, we select which entities this should apply to. By default, the hierarchy security model applies to all entities. But you can opt to exclude entities. In the example below I have elected to exclude everything except Account, Contact and Opportunity.



To define a custom position hierarchy, you use the positions option that can be found in the security area of CRM under settings. Below you can see I have created a hierarchy of positions as a simple example of how they might be defined.


Hopefully this post has given you a good introduction into the Dynamics 365 security model.

As always, I encourage you to experiment with security roles hands-on. As part of your MB 200 revision I suggest you try creating multiple users and grant them different permissions. Then login as each user to see how this effects what records they can access and what functions they can perform on those records.

Unified Service Desk - Show Custom USD Control

$
0
0

Hi,

I have written a Custom USD Control that doesn't do a whole lot, really it's a proof of concept.

I have a menu with a drop down with some items in it.

What I want to be able to do is to call an Action on these menu items to open up my Custom USD Controls and have them shown in the MainPanel.

I don't want the control to be marked as global because users can show and hide them at will.

I've looked around and haven't found any particular information on how to do this (although I know I am missing something simple).

Any suggestions would be great.

Thank you.

Greg

Omnichannel for Customer Service and Facebook

$
0
0

We can now intergate Dynamics 365 with Facebook messenger using the Omnichannel for Customer Service app.

I have been experimenting with this cool new feature and below you will find a video explaining how it works and how you can configure it ….

 

MB-200: Microsoft Dynamics 365 Customer Engagement Core – 365 Admin Roles

$
0
0

I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around 365 admin roles.

You can see below that we have a section of the exam which covers security. Within this section needing to know about the Dynamics 365 admin roles is highlighted

 .

We have seen in other posts that Dynamics users are created in the 365 admin center then assigned a role in Dynamics 365. Assigning this role governs what features of Dynamics 365 will be available and what access they receive to what records. But within Office 365 we also have a number of administration roles which allow the management of users, subscriptions and services available to the organization as a whole.

You will find the 365 at https://admin.microsoft.com/

I guess one of the most import 365 admin roles of the Global Admin as they have complete access to everything!

Global Administration Role

When creating users they will typically just have a “user” role, meaning they have no access to the admin center. But we can grant one (or more) admin roles. One of the available roles is “Global Admin”.

Global Administrators can perform any management activities in the Office 365 admin center. They are your “top level” administrators. Your global administrators will, by default, also have systems administration privileges in Dynamics 365.

You can see my roles below, notice that I am a global admin.

Tip:
Also below notice that a user can’t change their own roles. (Not even global admins!)

Note:
Global administrators are automatically assigned a systems admin role in Dynamics 365. Importantly this means they can access Dynamics 365 without being assigned a license. BUT, they cannot see any records without a license! Therefore typically they will need a license that will grant them full read-write access in Dynamics 365. If a Global Admin is created without a license their access type in Dynamics 365 would be administrative rather than “read-write”.

Other Administrator Roles

It is also possible to allocate one or more specific admin features to a user. This is useful when you need to grant limited admin capabilities to a user, without having to give them the full power of the global administrator.

There are a number of common admin roles which are always shown whilst maintaining roles. But clicking the “show all by category” option will expand the list revealing numerous other roles.


Learning the key capabilities many of the roles might be a useful part of your revision! Take time to study each role and consider what capabilities and limitations each one would have.

Below you can see a summary of the major admin roles listed above.

RoleDetails
Global AdministratorAssign the Global admin role to users who need global access to most management features and data across Microsoft online services.

Only global admins can:
– Reset passwords for all users
– Add and manage domains

Note: The person who originally signed up for Microsoft online services automatically becomes a Global admin.

Exchange AdminAssign the Exchange admin role to users who need to view and manage your user’s email mailboxes, Office 365 groups, and Exchange Online.

Exchange admins can also:
– Recover deleted items in a user’s mailbox
– Set up “Send As” and “Send on behalf” delegates

Global ReaderAssign the global reader role to users who need to view admin features and settings in admin centers that the global admin can view. The global reader admin can’t edit any settings.
Helpdesk AdminAssign the Helpdesk admin role to users who need to do the following:
– Reset passwords
– Force users to sign out
– Manage service requests
– Monitor service health

Note:
The Helpdesk admin can only help non-admin users and users assigned these roles: Directory reader, Guest inviter, Helpdesk admin, Message center reader, and Reports reader.

Service Support AdminCreates service requests for Azure, Microsoft 365, and Office 365 services, and monitors service health.
SharePoint AdminAssign the SharePoint admin role to users who need to access and manage the SharePoint Online admin center.

SharePoint admins can also:
Create and delete sites
– Manage site collections and global SharePoint settings

Teams AdminAssign the Teams admin role to users who need to access and manage the Teams admin center.

Teams admins can also:
Manage meetings
– Manage conference bridges
– Manage all org-wide settings, including federation, teams upgrade, and teams client settings

User AdminAssign the User admin role to users who need to do the following for all users:
Add users and groups
– Assign licenses
– Manage most users properties
– Create and manage user views
– Update password expiration policies
– Manage service requests
– Monitor service health

The user admin can also do the following actions for users who aren’t admins and for users assigned the following roles: Directory reader, Guest inviter, Helpdesk admin, Message center reader, Reports reader:
– Manage usernames
– Delete and restore users
– Reset passwords
– Force users to sign out
– Update (FIDO) device keys

In addition to the roles above many others exist! I will not attempt to cover all of them here, but a few warrant mention ….

RoleDetails
Billing AdministratorMakes purchases, manages subscriptions, manages service requests, and monitors service health.
Dynamics 365 adminFull access to Microsoft Dynamics 365 Online, manages service requests, monitors service health.
Groups Admin
Assign the groups admin role to users who need to manage all groups settings across admin centers, including the Microsoft 365 Admin Center and Azure Active Directory portal.

Groups admins can:
– Create, edit, delete, and restore Office 365 Groups
– Create and update group creation, expiration, and naming policies
– Create, edit, delete, and restore Azure Active Directory security groups

Office Apps adminAssign the Office Apps admin role to users who need to do the following:
– Use the Office cloud policy service to create and manage cloud-based policies for Office
– Create and manage service requests
– Manage the What’s New content that users see in their Office apps
– Monitor service health

Best Practice

There are some best practice guidelines for handling admin roles within 365 admin that you should be aware of;

Limit the number of global admins– Microsoft recommend having 2 to 4 global admins. You will want more than one global admin but as they have unlimited access they represent a security threat. Therefore having the minimum number possible is a good practice.

Always assign the last permissions possible– admins who need to complete a particular task should be given the ability to do just that task. For example, if you need someone to reset passwords don’t give them the global admin role instead grant them the password admin or helpdesk admin roles.

Require multi-factor authentication– you should ideally configure multi-factor authentication (MFA) for all of your uses. But admins should defeinitely be required to use MFA. This is because even if their passwords are compromised it is useless without the second form of authentication.

Security Groups

When a user is assigned a Dynamics 365 license they then have rights to access all instances (CDS databases) within the tenant.

Note: They do still need to be granted a security role within the instance to access Dynamics 365 records.

It might be that you need to restrict which instances a user can work with. Security groups can be defined in 365 admin and leveraged for this purpose.

First you create a security group in 365 admin and add users. You do this using the “add a group” option in the 365 admin center, shown below;


Now set the group type to be security …..


And give it a name and description as required.


Once your group has been created you can add members (users) into the security group.


Now your security group is created you can open your Dynamics 365 instance in the power platform Dynamics 365 admin center and associate the security group with your instance. Doing this will mean that only users included in the security group can access that CDS database.


A few things to note about security groups:

  • When a security group is associated with an existing environment, all users in the environment that are not members of the group will be disabled.
  • If an environment does not have an associated security group, all users with a license will be created as users and enabled in the environment.
  • If a security group is associated with an environment, only users with licenses that are members of the environment security group will be created as users in the Common Data Service environment.
  • When you assign a security group to an environment, that environment will not show up in home.dynamics.com for users not in the group. (Meaning they won’t even see the environment!)
  • If you do not assign a security group to an environment, the environment will show up in home.dynamics.com for all users even for those who have not been assigned a security role.
  • If you do not specify a security group, all users who have a license, will be added to the new environment.

Hopefully this post has given you a good overview of the admin roles in Office 365 and explained the key points you’ll need to revise for your MB-200 exam.

MB-200: Microsoft Dynamics 365 Customer Engagement Core – Searching

$
0
0

I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around searching.

In the skills measured statement (shown below) under the heading “Perform solutions deployment and testing”, you will see a reference to both the relevance and categorization search features.


We actually have several types of search available to us, including;

  • The “default” search
  • Category Search
  • Relevance Search
  • Advanced Find

Note: The Dynamics 365 /CDS security model will be applied consistently across all search modes. Meaning you can only view records that your security role(s) grant access to.

“Default” Search

By default, on views within the system I can perform simple searching and filtering of records within the view. These searches act on which ever entity you are currently viewing. Multiple columns are searched and all records matching the search are returned in the view.

Multiple fields are searched, exactly which fields are controlled by system administrators. As administrators can edit which columns are “find columns” by customizing the “Quick Find View”.


Next, we have the filter option which is activated by clicking on the funnel icon. The filter allows users to create ad-hoc filters on one or more columns within the view.


Both the default search approach and filtering cannot be considered a “global” search! As they will only search one entity at a time. To search multiple entities simultaneously we would use the category or relevance search options.

Category Search

You access the category (and relevance) search options by clicking the search icon found in the top level navigation bar. (shown below)


Note: If you have the relevance and category search enabled then you may also need to pick the correct search type.

Below you can see that I have used the category search to look for matches for the word “neil”. In my example this has returned matching accounts, contacts, leads, opportunities and more. In fact I may have several pages of entities I could review. (Notice the scroll option at the footer of the screen!)

The columns searched by each entity (as with the default search) can be controlled by a system administrator by making changes to the find columns in the “Quick Find View”. Additionally for each record returned we see three fields, these are the first three columns the administrator included in the quick find view.

Further to this the administrator can control which entities are included in the results returned.

Also notice that the “filter with” option will allow you to focus on a single entity as required.


I hope you can see that the category search is a powerful multiple entity search capability. But it does not apply any “fuzzy” logic when searching. For that we’d need the relevance search.

Relevance Search

If you need this greater flexibility, then the relevance search might be the answer. Once your administrator has configured the relevance search you can access it from the same search icon as the category search. See below that I can swap to the relevance search.

Immediately I hope you notice that results are now displayed as a single list in order of relevance. And on the left-hand side we have several filters. Initially these include record type, owner, modified on date and date created.


By default, the relevance search allows filtering by record type, owner, modified on and created on. But if you select a specific record type additional filtering options (facets) may become available. See below how I have focused on one record type of opportunity and additional facets becomes available, including potential customer, estimated revenue and estimated close date.


Also, notice that I no longer need to add a wild card. Plus, I can search using multiple key words. In my example (below), the categorized search would look for all entities with “datum example” in a single field, which more than likely would return no results. But the relevance search will look for each keyword in any field. Meaning it is a multi-entity, multi-field search. (Notice how the words used to match the records are shown in bold.)


To demonstrate how this differs from the category search I performed the same search using that. My category search returned no results! As none of my entities contains the phrase “datum example” in one field.



The relevance search makes use of Azure Search functions. This provides some additional query characters;

+ … Will search for results that contain both works. Such as Datum+Corporation. Note, the words do not have to be together, but proximity will score higher on relevance.

| … Will search for results that contain either word. Such as Seattle|Remond.

” ” … Used to search for a phrase, so “Datum Corporation” would look for the entire company name.

() … Using the term training+(health|safety) will search for matching records that contain the training and either health or safety, or both.

As with many features I doubt you need to understand the detail of how the relevance search actually works! (Unless you are a developer!) But it maybe important to understand what the relevance search is doing. Relevance search is making use of Azure search functions, meaning your data needs to be synchronised with Azure. This process happens seamlessly in background, but it is worth knowing that changes can take 15 minutes to be reflected in the search results. Also, when you initially enable the relevance search there could be a considerable delay for the initial synchronization with Azure.


As the relevance search uses Azure search capabilities results are scored based on their relevance and this in turn drives the sequence of the results returned.

Plus, using the Azure search means Microsoft Natural Language Analyzer comes into play. Meaning “Lemmetization” (great word!) is used to break words down into their linguistic forms. This sounds complicated, but it simply means that a search for “Run” would also match with words like “Ran”, “Running” and “Runner”.

Setup / Configure Relevance Search

The relevance search is not enabled by default. An administrator must manually enable it. The relevance search needs to be enabled in system settings. (As shown below.)

The relevance search uses Azure, therefore you may need to accept the warning message that your data will be shared externally.

Having enabled the relevance search you can select which entities will be supported by the relevance search. Below you can see that several entities are listed by default but the selected entities can be changed as required. (Don’t forget that if you add a new entity it will take time for the initial data synchronization with Azure Search.)


Facets & Personal Options

As already mentioned you can filter the results of each entity by a number of facets. It is possible for each user to control which facets an entity is filtered by. (This does assume the administrator has already added the fields as columns in the quick find view!)

Within personal options on the general tab the user can pick which search experience they would like to use as their default and also define the facets / filters for each entity.


Below you can see that I have selected my opportunity entity. Notice that the user has the purchase process and purchase timeframe available to them. These are only available as I have added them as columns in the quick find view on the opportunity entity. As five fields are available the user can now select which four they would like to use when filtering opportunities. (There is a limit of four fields!)


As part of your revision for the MB-200 exam I suggest you experiment with the various search options and consider the differences between each option. One good exercise might be to add some columns to a quick find view and see how these effect the category and relevance search options. Enjoy.

Possibility to Export Segment Members?

$
0
0

Hi Dynamics 365 lovers, 

We have eagerly started two Dynamics 365 for Marketing projects now. 

I am encountering one question when working with segments.

Is it possible to export the members of a segment? 

Best regards,

Marijn


prevent save record through Javascript

$
0
0


I use the following condition to check a,b values before save.And I call this function form's onsave Event.

if the field values a == b means i need to save the record.Else I need to show the alert.

if a!= b condition the infinite loop will occur which means the alert message shows continuously .My problem is i need to prevent save record if(a!=b) . I used eventArgs.preventDefault(); but its not working.

Am working in CRM 2016. 

function onsavecall()
{
if(a != b)
{
alert("alert a is not equal to b .so please change value B");
}
else
{
Xrm.Page.data.save.then(function(){
Xrm.Page.data.refresh();
});
}
}

Thanks in Advance

MB-200: Microsoft Dynamics 365 Customer Engagement Core – Subjects

$
0
0

I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around subjects.

You can see below that we have a section of the exam which covers system administration. Within this section configuring subjects is mentioned.

Subjects are a tree of categorisations used to record the subject for cases, knowledge articles and products. Below you can see that I have opened a case and on my case form I can enter a subject. This is done using a picklist that offers me a tree like structure of subjects.

Security Roles

The subject entity is shown under “Core Records”, most security roles will grant read and append to access to the subject entity. You might also need to know that the subject entity is not user owned. Meaning access is either granted or denied at an organisational level.

To maintain the subject tree you will need the correct role. Out of the box the “Customer Service Manager”, “System Administrator” and “System Customizer” security roles will grant the required permissions.

Tip: In my instance “Customer Service Manager” role is called “CSR Manager”. That might be the case for you!

Below you can see the role for my CSR manager, notice they would have full organisational access to the subject entity.

Maintaining the Subject Tree

You can maintain the subject tree from the “Customer Service Hub” application.

Open the customer service hub app and then navigate to the “Service Management” section of the sitemap.

Within the service management area, under the heading of case settings you will find the subjects option.

To add a subject select “Add subject”, a quick create form will open. Simply give your subject a name and select the parent subject. (Or select the box to signify this subject is a root subject and has no parent.)

To edit a subject simply select your subject, click “Edit Subject” and a similar dialog will be shown.

There is also a “Remove Subject” option. Using this will give you a warning that the change cannot be undone. You might need to be aware that you cannot remove a subject that is already associated to a case, product or knowledge article. Effectively meaning that you cannot remove a subject once it has been used.

Alternative Maintenance Approach

We can also maintain the subjects from the advanced settings option. If you load advanced settings and navigate to the “Service Management” option you will find a subjects option. As shown below.

This subjects option presents the same data but using the old style classic web interface. (Rather than the newer Unified Interface introduced at version 9.1 of Dynamics 365.)

Tip:
Being the older style maintenance I assume that in the fullness of time this option might be completely replaced with the newer experience shown earlier. But it exists now (Feb 2020), so I have referenced it in this post!!

Hopefully you agree that subjects is a simple subject but it is one referenced in the skills measured statement of MB 200, so don’t forget to include subjects in your revision!

MB-200: Microsoft Dynamics 365 Customer Engagement Core – Solutions

$
0
0

I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around solutions.

You can see below that we have a section of the exam which covers discovery, planning and analysis, within this section needing to know how to select between managed and unmanaged solutions is mentioned. This statement actually implies quite a large amount of knowledge! As to select between solution types you’d need to appreciate what solutions are, how they are used and all of the differences between their managed and unmanaged versions.

Overview

Solutions in Dynamics 365 are used to package and deploy customizations. Changes are grouped together as a solution, they can then be exported and transported from one environment to another.

The solution will include entities and their assets. The assets include Forms, Views, Charts, Fields, Keys, Relationships (1:N, N:1 and N:N), Messages, Business Rules, Hierarchy Settings and Dashboards. But solutions contain much more than “just” entities. Other options include Web Resources, Workflows, System Dashboards, Connection Roles, Security Roles, SLAs, Apps etc etc. I will discuss more on what can be included later. But for now, it is enough to understand that solutions can include A LOT of different types of components.

Components within a solution can include;

  • Schema components, including entities, fields, relationships and global optionsets.
  • User Interface components, including forms, view charts, dashboards, site map, web resources and ribbons.
  • Analytics, includes dashboards, reports and other visualizations.
  • Process / Code, include processes (e.g. workflows) plus plug-in assemblies.
  • Templates, including email templates, contract templates, KB article templates.
  • Security, including security roles and field security profiles.

Solutions can be unmanaged or managed. Often unmanaged solutions are used in development but as they are deployed (or re-deployed) to production environments managed solutions are used. Managed solutions can be created in-house but they may also be used when adding functionality into the system provided by Microsoft (e.g. Unified Service Desk) or as ISV products. I will explain the differences in a second.

It is best practice to always make changes using solutions as this keeps changes together and makes it possible to track who did what.

Publishers

When you create a solution it will always have a publisher, so let’s look at those before considering how to create a new solution. When we create a solution it must be given a name and you select to either create a new publisher or select an existing one.

Why do we want a publisher? Well having a publisher(s) makes it easy to see which changes have been created by whom. As entities and fields are created their names will be prefixed to show who made the change.

A publisher might be an ISV, a Microsoft Partner or might be an internal team.

You will always have a default publisher; this could be used for internal development. Although personally, I like to avoid using the default publisher! I always create a publisher that reflects the project or organization making the change. Out of the box the default publisher will prefix all newly created fields / entities with new_.

Below you can see I have created a new publisher called “Neil Parkhurst”. The publisher name has been automatically derived from the display name.

Notice that I have set the prefix to np. Below this we can see an example of what a new entity name might look like with this prefix. (np_entity). Also notice that the Option Value Prefix is set to 77,828. Each text item in the optionset has a numeric value. The options value prefix option can be used to decide the values in optionsets for this publisher. (The option value prefix must ne in the range of 10,000 and 99,999)

If you scroll down the publisher form you will see fields to enter contact details of the publisher. These are for reference only but quite useful when the publisher is a 3rd party.

Creating a Solution

In my introduction, I mentioned a concept of the default solution. The default solution effectively an unmanaged solution containing the entire system.

Should you make changes directly in the default solution then the default publisher will be selected. Meaning any new created components will be named using new_. (At least they will be if you don’t change the out of the box prefix.)

I must admit that when I first started using “CRM” I used to make all of my changes directly in the default solution. (Shocking I know!!) These days I don’t consider that good practice nor should you.

Right from the outset I create a solution and then as I create or edit components I add them to my solution. I do this for several reasons. One being that if I try to create a solution after the change is completed I sometimes find it hard to remember all of the assets I’ve touched. But most importantly by creating your changes within the scope of a solution, all of your changes will be prefixed appropriately. (Based on your publisher.)

Below you can see that within make.powerapps.com I have opened the solutions option. Within this I have filtered to show only my unmanaged solution. It is here that we can see the “Default Solution”, along with any other unmanaged solutions.

To create a new unmanaged solution, select the “New Solution” option which is found in top ribbon bar.

As I have already suggested, when I start a new “project” I like to create my solution as the FIRST thing I do before I start making any changes. Below you can see an example solution I have created called “Neil’s Demo Solution”.

Notice the Display Name and Name are mandatory fields. The Name field will default to the display name, with spaces and punctuation removed. When you are creating a new solution you can change the name field. But once created the name field becomes read only.

I have already described the concept of publisher. When creating a solution the publisher is mandatory but will be initially populated with the details of the default publisher. You can see below how I have changed my publisher to “Neil Parkhurst”.

The configuration page is an optional field. This is a link to a web resource that will be a component of the project. This can (optionally) be used to create a html page describing the content of the solution or maybe its release history. (Or anything you feel is important.) For small projects I tend not to create a configuration page and simply type this type of information into the description field. But on larger projects when I might require more information or expect to edit it overtime I always create a configuration page.

Version, this is a mandatory field. I have simply entered 1.0.0.0. The version may auto-increment as you export changes. Plus if you import a solution and a copy ready exists you will get a message warning message which will quote this version number.

The version number can be upto four numbers separated by decimals. (e.g. 2.1.0.440) Generally this is used to reflect a major.minor.build.revision format. But alternatively you could adopt other standards such as year.month.day.revision. You also see the version number appended to the zip file name when you export the solution.

Having created a solution, you will want to start adding components. Those components can be existing or new. And can be of “any” component type. Including entities, option sets, site map, web resources, processes etc etc.

If you add a new entity you will be prompted for its name and such like. But if you add an existing entity you will get a different dialog to allow the selection of all or specific assets. Below you can see I am adding the account entity into my solution. At this point I want to select what components to add into my solution. I always suggest that it is bad practice to simply add all the assets of an existing entity into your solution, as I much prefer to only add the components that will be changed by this solution.

Tip: If you really want to add all components for an entity there is an add all components option. I just don’t use it!!

As explained, when I add a system entity I like to select the specific views, charts or forms (etc) that need to be changed. One advantage of this is that it reduces the chance of any conflicts with changes others may make.

Below you can see I have selected just the main account form.

Exporting a Solution

Once you have finished your changes you will want to be able to export the solution. (For example, So that it can be moved from your development instance into production.)

Exporting a solution is easy, simply select the solution and click the Export button.

When you do this you will asked to publish the customizations. It is important to note that only published customizations will be exported.

We also have a check for issues option. You aren’t forced to check solutions for issues but using the solution checker should be considered a good practice as it will help highlight any potential issues in your changes.

Next you will enter a version number for your solution. (This will auto increment but can be changed manually as required.)

It is here that you will select to export your unmanaged solution as either unmanaged ore managed. Notice that managed is the recommended option, this is because typically outside of your development environment the solutions would be imported in a managed state. (I will cover more about the reasons for this later in this post!)

After a pause your solution will be saved. A solution file is simply a zip file that you can then move to another environment. The fact the solution is a zip file is useful as the files created are generally pretty small and therefore easy to ship around. Also these files can be stored meaning you have a reference of what was exported when.

Importing a Solution

Having looked at how to export a solution the next logical step is to consider how it will be imported. As part of my exam revision I have actually created two trials. (You might want to do the same.) This means I can create solutions in one trial and them import them into another trial. I’ve found this approach really useful when experimenting with how solutions work.

Once you have logged into your target environment, simply select the import option.

Now browse for a solutions file.

Notice the naming convention on my solution file. As by looking at the name we can tell the solution version and also if is a managed or unmanaged solution.

Sometimes you might be prompted at this point! Say you are importing a new version of an existing solution you will get a prompt warning that you are going to replace version “1.0.0.0” (say) with version “1.0.0.1”. Check this information and click next to continue, assuming you are happy.

IF the solution new or unmanaged, you will simply progress to starting the import at this stage. Although you will get a friendly warning when importing an unmanaged solution as the changes cannot be uninstalled.

Before actually starting the Import you can select the “View solution package details” option, this will show you the components included in the solution and give you details of the publisher.

If the solution your importing is a upgrade to a managed solution you may have a decision to make!

Firstly you will decide how to import the solution. The options being upgrade, stage for upgrade and update.

Upgrade Option

With the upgrade option any existing patches are rolled up and the orginal solution will be removed after the upgrade. This process is recommended as the result should be that the resulting solution will accurately match the solution being imported. (As removing the original version will delete any components no longer in the new solution.)

The upgrade option is the recommend approach and the approach you should therefore most often use!

When we look at the solution history (shown below) we can actually see that the new solution is imported as an upgrade and then the old solution removed. This is a two step process but both steps are automatically completed by the upgrade option.

Stage for Upgrade

The stage for upgrade option effectively lets you complete the two step process of the upgrade as separate steps. Initially your new solution is imported by the old one is not removed. After the import is completed you will see both solutions. Below you can see that I have imported version “3” of my solution but version “2” is also still present.

Once I am happy the import has worked as expected I can go to the original solution and apply the upgrade. This will then remove the original solution and roll up any patches. Finally resulting in the imported solution accurately matching the exported one.

After the process has completed the solution history will show both steps. Meaning this was a manual two-step process but the end result was the same as using the upgrade process.

Update

Our final option is update. This isn’t the recommended approach!

An update simply replaces the current version of the solution with your new version. This does mean any components no longer in the new solution will not be deleted. Therefore you could end up with some inconsistencies!

Overwrite / Maintain

Below you can see that scrolling the screen down will uncover options to “Maintain Customizations” or “Overwrite”. Maintain is the recommended option, so let’s consider that first. It is possible that someone else has made unmanaged changes in the environment you are about to alter. The maintain option will try to retain any existing unmanaged changes. If there is a conflicts an existing change it will be retained and the imported one not applied.

Overwrite however would do the reverse, it effectively forces an overwrite of the new solution.

When we are thinking about a production environment, if managed correctly this type of issue should never apply. As nobody would ever make uncontrolled changes direct on a live server. But unfortunately, that is just a theory! In the real world I have often found that support guys have “fixed” a few bugs direct on the live server outside of any reasonable controls.

You will see a progress bar displayed as the solution imports. The time this takes will vary depending on the size of the solution. But typically the process only takes a few minutes.

Once completed you will get a message telling you if the import was successful. (or not!)

Tip: If you do happen to get any errors with the import the download log file option might be very useful to help you diagnose the issue.

After my solution import is completed my changes will have applied and I can also open the solution as required. If my solution was imported in an unmanaged state I could open the solution and continue to make changes. If in a managed state I will see a message that I cannot directly edit the components with the solution.

Solution History

You may find the solution history option useful. In the ribbon bar of the solutions area you will find the “see history” option.


The solution history option lets you see which solutions have been imported and if the import was successful or not. Usefully we can see details of solution upgrades that will have been completed automatically as well as manually imported solutions. If something unexpectedly changes in your environment this view is really useful to see who has applied what changes!


Managed v Unmanaged Solutions

Some points about differences between managed and unmanaged solutions;

  • The default solution is always an unmanaged solution. But other solutions can be managed to unmanaged.
  • Unmanaged solutions can be changed.
  • Unmanaged solutions cannot be removed. (Meaning if we delete an unmanaged solution just the solution is removed all of the assets contained in the solution would remain.)
  • Unmanaged solutions can be exported as managed solutions.
  • Deleting an unmanaged solution has no effect on the components it contains, the delete simply removes the solution.
  • Managed solutions can be removed, a process that removes the solution and its components.
  • Managed solutions cannot be exported.
  • When importing a managed solution, you can opt to maintain or overwrite any unmanaged changes.
  • Importing an unmanaged solution always overwrites.

You always work with unmanaged solutions in development environments. But as you progress into controlled environments for user acceptance testing and production then managed solutions are often the recommended approach.

Patch Management

Patch management helps make applying revisions to existing solutions easier. One or more patches to a solution can be created from a solution and later rolled up (merged) back into the main solution.

Patches can be created from unmanaged solutions and applied to managed or unmanaged solutions. But unmanaged patches should not be used for production purposes.

Patches are only created from the parent solution. A parent solution can have multiple patches but a patch cannot have a patch. Each patch can only have one parent.

Because patches are dependent on the parent solution you can only import a patch if the parent is already present.

A patch version must always have the same major/minor version number as the parent solution. But the build / revision number must be higher. (e.g. A patch for a solution with a version set to 1.0 would be 1.0.1.0) If more than one patch is created subsequent patches will have a higher version. (So in the example just given a second patch to the parent solution 1.0 would become 1.0.2.0)

To create a patch, you select the parent solution and select the “Clone As Patch” option.

A dialog is then given to confirm the version number. Notice how automatically the build number of my “major.minor.build.revision” version number is incremented.

Exporting a patch is pretty much the same process as exporting a solution. As is importing them, expect they need to be imported in order. As it is not possible to import a patch with a lower version number than currently deployed.

At some point you will want to roll the patches up to me able to create a new major / minor version of a project. To do this you use the “Clone Solution” option. You can see below that I have selected the “Clone Solution” option from my patched solution.

It will allow the creation of a new solution with an incremented major/minor version number. (Notice below now the version number updates.) When this new solution is created the patches will no longer be seen in the list of solutions. The new solution with the incremented version can then be exported.

After I import the new solution as an upgrade the previous patch versions will all be rolled up and I will be left with one final solution.

This might sound complicated but if you test patches you will find the process is actually pretty straight forward. I do recommend that part of your revision include creating solutions and repeatedly applying upgrades and patches to observe the behavior.

It is possible to delete and uninstall a managed parent solution. Doing so will uninstall the patches to the parent solution in reverse order. It is also possible to delete / uninstall an individual managed patch.

It is also possible to delete an unmanaged patch. But this will be simply removing the patch not the underlying changes to components.

To repeat:
It is not advised that unmanaged patches be applied to or removed from a production environment.

Solution Layers

A note about solution layering may be useful! Because if we import multiple managed and unmanaged solutions we may need to understand what the final import on the user experience will be.

Managed and unmanaged solutions can “interact” with the underlying system solution. As these are imported layers of solutions will be created. Meaning you may need to understand how one solution “interacts” with another to create the final application behavior that will be observed by your end users.

The diagram below depicts this concept!

The system solution (shown in red) this represents the default application behavior.

Managed solutions are installed on top of the system solution. They can modify components found in the system solution or can include new components. Managed solutions can be layered on top of each other, as long as the managed solution enabled customization of its components.

Unmanaged solutions sit above managed solutions. (Don’t forget you create a managed solution by exporting an unmanaged solution.)

I suggest you study the diagram above in detail to appreciate the relationships between these layers of managed and unmanaged solutions. The top level (in yellow) represents the components the users will actually observe. I hope you can see that when a component is in all layers the one to be seen by a user will be from the top level.

 As always please include plenty of hands-on time in your preparation! I suggest you create various combinations of unmanaged and manages solutions. And don’t forget to try upgrading them. Hopefully this post has given you multiple pointers for the MB 200 certification. 

Free Dynamics 365 Training – Please circulate!

$
0
0

We are all being adversely effected by the Coronavirus, unfortunately many people may find themselves out of work or with theirs jobs at risk. As normality returns significant numbers of people could need to seek new jobs. For someone, unfortunately, returning to their old careers may be difficult.

But whilst this is happening the IT industry continues to have a major skills shortage.

With this landscape in mind now might be an excellent opportunity for you to consider learning a new skill. I’m a Dynamics 365 consultant with many years’ experience and I can honestly say it is a fascinating product to work with. Being a low code / no code environment you can learn everything needed without being a technical geek.

I am considering how I might play my small part to help with this Coronavirus emergency …. I’m a Microsoft MVP and Microsoft Certified Trainer. I’m not a key worker who can offer essential immediate help. But just maybe I can help you learn a new skill that when normality returns could prove useful. And if you are stuck at home learning a new skill might be a positive distraction!

I plan to organise free online training to help people learn Dynamics 365. As a Microsoft Certified Trainer my intention will be to present a training course for the MB-200 exam. It will then be up to you if you want to progress to the exam or not! MB-200 is the core exam for anyone wanting to learn about Dynamics 365 and a great starting point for your Dynamics 365 career.

I am looking for a small group of people who might benefit from learning this new skill.

I’m based in the UK so you would need to be able to attend online training in the UK time zone. (The training will be in English!)

The full course normally takes around 5 days when given a class room. As face to face learning isn’t an option I plan to run this as an online course. I do have a day job! But I can free up one day per week for the next five weeks. Meaning I can present parts of the MB-200 course each Friday for the next 5 weeks.

If you know someone who would benefit please forward my details to them or if you feel this might something you’ll benefit from please reach out. Please send me your name and email address plus a few details about yourself. Numbers will be limited! I may therefore need to select people who will find this training the most transformational. My email address is neil.parkhurst@npdynamics.com

Assuming I receive a positive and quick response, the first session will be Friday 27th March.

FYI:

I am looking for people who want to start a new career in Dynamics 365! If you are already a Dynamics consultant looking to update your existing certifications then this might not be for you. (Sorry!) But if you have suddenly found yourself out of work or are just worried about your current position, then this free training might be perfect for you.

Additional call to action:

I am reasonably well followed on LinkedIn and Twitter but I assume most of my followers are already working with Microsoft technologies. If you read this and know someone who might benefit please forward my details!

neil.parkhurst@npdynamics.com

CRM Dynamics - what certifications and how to train?

$
0
0

Hi, everybody. I am a freelance consultant/project manager and have been implementing CRM Dynamics since 2011. I have no IT education, but worked as project manager, consultant, trainer, administrator and even basic developer on CRM projects. However, I would like to get certified. My knowledge of CRM is patchy - I know some things in detail, but then I don't know other areas. I want to get certified in order to win more CRM projects and manage CRM work more effectively - sometimes I don't have CRM Developer available, so I want to be able to replace him if required for small jobs. 

Could you advice me what certifications I should look at, how I should prepare myself for certification, how long it would take? I have experience with CRM Dynamics 2011, 2015 and 2016 (currently working)

Thanks a lot

Field Service in Internet Explorer

$
0
0

I have recently installed a trial version of Field Service to support a customer demo.

Everything is working as expected, expect the scheduleboard starts to load in Internet Explorer 11 and then hangs with just Loading being displayed on the screen.

But when I try in Edge or Chrome it loads fine.

I have added CRM to trusted sites in IE options but that didn't help.

Is anyone aware of any specific IE options that relate to Field Service. (Or any known issues that could cause this.)

CRM2016 - USD 2.0 download not working

$
0
0

I am trying to download USD 2.0 (CRM2016) version.

Yesterday I could only find references to USD 1. TechNet seems to reference USD 2.0 now. But links to download aren't displaying the page to download.

Is this the same for everyone? Or does anyone know the correct link to download?

I do have the preview version, as working for Gold Partner. But am hoping the final release version may have some differences. 


MB-200: Microsoft Power Platform + Dynamics 365 Core – Data Management

$
0
0

I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Power Platform + Dynamics 365 Core exam. (aka MB-200) In this post I will look at concepts around data management.

There is a section of the MB-200 skills measured statement which mentions data, we have a section of the exam headed “Manage entities and data”. Within this section there is a further heading of “Manage data”. Here we can see the need to be aware of how to complete several tasks including bulk deletion of duplicate detection.

Data management options allow you to define duplicate detection rules, import data, manage bulk deletion jobs etc. In the following notes I will provide a summary of each of these features.

You can access the data management options from the settings area of the Power Platform admin center. (https://admin.powerplatform.microsoft.com/)

It is also possible to access some or all of the data management options from advanced settings (although I recommend you use the power platform admin center as that will provide a more modern UI experience.);

The available options include;

  • Add ready-to-use business processes
  • Announcements
  • Auto numbering
  • Automatic record creation policies
  • Bulk deletion
  • Data import wizard
  • Data maps
  • Duplicate detection jobs
  • Duplicate detection rules
  • Duplicate detection settings
  • Export field translations
  • Import field translations
  • Imports
  • Sample data
  • Data Encryption

In the rest of this post I will provide a summary of each of these features. I strongly recommend that as part of your revision you try each one out for yourself. (Do not rely on theory alone when preparing for the MB 200 exam!)

Add Ready-to-Use Business Processes

Another option “add ready-to-use business processes” allows the expansion of the number of business processes that are available out of the box. It might be that you create all of your processes from scratch or it might be this option is used to give templates or starting points for business processes with the system. Running this option on my trial Dynamics 365 online environment created the following business processes. Notice that they have all been added in a draft status and would need to be activated before being used.

Announcements

The announcements option allows you to create companywide announcements.

Note:
I should flag that announcements are a deprecated feature so we should assume they will be removed from the product at some point in the future. I have only mentioned the announcement feature here for completeness!

Auto numbering

The auto-numbering option allows you to control how certain out of the box auto number fields behave.

The entities enabled for this style of auto numbering include contracts, cases, quotes, orders, invoices, campaigns, articles, categories and knowledge articles.

You can control the length of the suffix to be applied and the prefix. (The suffix can be 4,5 or 6 characters long.)


Automatic Record Creation Policies

The automatic record creation policies option allows you to maintain details of an record creation rules.

There maybe several use cases for record creation rules. But one common example might be to create a case whenever an email is received onto a particular email queue.

Each rule will monitor a particular activity type and queue. You can then specify multiple rules to define how to create or update records when an activity “arrives”.

Tip: You can find out more information about record creation rules here.

Bulk Record Deletion

Bulk record deletion is an option I use very often in Dynamics 365! Using the standard interface you can delete individual records or all those selected in a view. As a view can only contain a maximum of 250 rows then bulk deletion is useful when you need to remove larger data volumes. It is also possible to schedule deletion jobs.

The concept of bulk deletions is also very useful for managing the size of your database. Maybe you don’t need disqualified leads that are older than a certain amount or maybe you want to delete any notes with large attachments after a period of time. Jobs can be created to complete this type of task that might be very beneficial in controlling the growth of your CDS instance.

Bulk delete jobs are created using a wizard. You first define a selection criteria. Below you can see an example, in which I am looking for all emails more than 6 months.

Once you have selected the criteria you can opt to run the job immediately, schedule it and also define a frequency in terms of “n” days.

Imports & Data Import Wizard

A key feature is the ability to import data from other systems. The import option lest you see the status of current imports and to review an audit of past imports. The data maps option allows you to create data maps to make importing data easier.

The data imports and data imports wizard option actually both load the same screen! You can access the data import wizard from the imports option.

You can also view the status of your imports. Opening the import jobs allows you to view any errors!

Data Maps

When we import data the details can be stored as a data map. This is a useful option if the import needs to be repeated multiple times, as any mapping of columns can be saved and re-used.

Duplicate Detection Settings, Duplicate Detection Rules and Duplicate Detection Jobs

These three duplicate detection options let you define rules that are run as records are created in the Dynamics 365 database. These help you spot and resolve duplicates at source. Duplicate detection jobs are an option that uses these rules to review the current data to help identify potential duplicates in the existing data.

We first define the duplicate detect settings. These are global settings to decide when to enable detection. Options include;

  • When a record is created or updated
  • When Dynamics 365 for Outlook goes from offline to online
  • During data imports

By default all of these options are enabled.

Tip: Under normal circumstances maybe you will leave all of these options enabled. But whilst migrating large data volumes there maybe some advantage in disabling duplicate detection. (But if you disable it, don’t forget to re-enable!)

Duplicate detection rules allow us to define what constitutes a duplicate. Several rules will exist out of the box and you can create more or amend these as required. Notice that each rule will have a status of published or unpublished. Meaning you could selectively enable / disable individual rules if required. (For example, if your marketing team was due to import tens of thousands of leads you might want to opt to disable just lead duplicate detection during this process.)

You can see a simple example below that will be triggered if two accounts have the same name. (This is an out of the box rule called “Accounts with the same Account Name”.

Tip: Each rule will require publishing to make it take effect. And you will need to “unpublish” the rule to make changes.

Notice that rules can exclude inactive records as required. And also be case-sensitive.

Once the detect rule has been created, if a user creates a potential duplicate a warning message will be given. Clicking save would continue with the creation of the duplicate, or clicking cancel will allow them to make any required changes.

We can also configure and run duplicate detection jobs to create a list of possible duplicates. The process of creating a duplicate detection job is made really simple by a duplicate detection wizard. The steps involve selecting an entity, filtering the records to be checked and then deciding when to run the job.

Firstly you create a new duplicate detection job and define the records to be checked. Below you can see I have selected all accounts.

Having selected the records for our duplicate detection job we can define how it will run. It may be a one off job or we can use the “run this job after every” option to define a frequency. Plus trigger sending an email when the job completes.

You can now submit the job, it will run in background at the time / frequency you selected.

Once the duplicate detection job has completed we can use its “view duplicates” option to review any potential issues. Selecting each of the duplicate records we can see a list of potential duplicates. And then take required action. Such as deleting, deactivating or merging the duplicate.

Export Field Translations and Import Field Translations

These options can be used to export and import localised language translations for field and entity names in Dynamics 365. To use these options you will need to have installed appropriate language packs first.

Note: You can also export / import translations for your product names and properties.

I have created a post which explains the translation process in detail. You can view that post here.

Sample Data

One useful option in data management is the option to enable and disable sample data. It is really handy when testing or demonstrating a solution to be able to use this option to quickly create a sample dataset to work with.

Tip: If the sample data is already installed you will get a message flagging this. And an option to remove it!

Data Encryption

Microsoft Dynamics 365 uses standard Microsoft SQL Server cell level encryption for a set of default entity attributes that contain sensitive information, such as user names and email passwords.

This feature can help organizations meet FIPS 140-2 compliance.

For Microsoft Dynamics 365 (online) and Dynamics 365 (on-premises), all new and upgraded organizations use data encryption by default. Data encryption can’t be turned off.

Tip: The Federal Information Processing Standard 140-2 (FIPS 140-2) is an information technology security accreditation program for validating that the cryptographic modules produced by private sector companies meet well-defined security standards.) You read about FIPS compliance here.

I have covered loads of important features in this post, all at a high level! Your learning and prep for MB 200 will be greatly aided by experimenting with these features. Enjoy.

Birmingham D365UG – May 2020 Event

$
0
0

Our next Birmingham Dynamics 365 User Group will start at the normal time at 6:30pm on Wednesday May 13th. But unlike normal this will be a virtual event.

The downside of being a virtual event is you won’t be able to sample of famous free buffet!!

But on the upside we have a fantastic line-up of speakers. And being a virtual event means people outside of the Birmingham area will be very welcome. Although spaces will be limited so please register now to avoid disappointment.

Covid-19 and the lock-down is no doubt effecting all of us. Many of the companies we work for will be struggling, resulting in challenging times. In challenging times attending user group meetings becomes even more essential. Talking with like-minded souls and hearing about the latest features is massively important.

All of our talks will be highly relevant and entertaining …. but I would especially like to call out Alison Mulligan’s presentation. Alison will talk with us about how to plan your career path in the Power Platform, that has to be a must see presentation in these challenging times.

Please register now to secure your free place ….

You can register now on D365UG here.

Or alternatively you can register on meetup.com here.

Our speakers will include ….

Alison Mulligan

Career Development in the Power Platform

How to plan your career path in the Power Platform arena. This session will include (time permitting) how to map out your career progression, how to negotiate your progression in your current role and how to manage your own development

 

Feridun Kadir

Back-to-Basics: Security in the Dynamics 365 Platform

In this session you will learn about the security model in the Dynamics 365 platform (for model-driven apps). The session is aimed at those who are new to administering security in D365 but those who want a refresher are welcome.

The areas Feridun will cover include Users, Security Roles, Privileges, Access Levels, Business Units, Teams, Access Teams for Sharing, Hierarchy Security and Field Level Security.


Matt Beard

Top Data Quality Tips & How to Implement Them

Data Quality doesn’t have to be hard and with years of experience in the industry, learn from people who found out the hard way what does and doesn’t work. Tips across the Power Platform and everyone should have at least one thing to take away and try at home!

Don’t forget please register now to secure your free place ….

You can register now on D365UG here.

Or alternatively you can register on meetup.com here.

JavaScript: openEntityForm (phonecall)

$
0
0

I have used openEntityForm before, to great effect! Now I need to have a ribbon button that opens a phone call.

I am struggling to workout what code to use to pass in the "to" and "regarding" fields.

I have tried variations around ....

var param = {};

param["regardingobjectid"] = ---an ID----

param["regardingobjectidname"] = ---- a name ----

param["regardingobjecttype"] = "opportunity";

Xrm.Utility.openEntityForm("phonecall",null, param);

I have tried similar code but just passed a simple field (phone number) and that works. So I seem to have something wrong on lookup fields.

Can someone please give correct code to set the "to", "from" and "regarding" fields? In my case I need to set the "to" to the contact from an opportunity and the regarding to be an opportunity.

How to pause an ' SLA'

$
0
0

I have defined advanced SLA in dynamics 365 . when i change the status of a case to ' on hold ". The SLA counter doesn't stop. 

So my question is how I can pause /resume an SLA in dynamics 365 services. 

Rollup field calculation not working

$
0
0

Hi,

I am trying to use a rollup field for the first time. I have a Case entity and it's child entity 'Expenses'. Each expense record has a currency field which in turn is a calculated field. This field calculates total amount of the expense record.

So, I need my rollup field to calculate the total of each expense record(Calculated field). I know that rollup fields can't reference a calculated field and So I've created a hidden currency field on expense record and added a script to copy the calculated value. And then, used that hidden field for calculating rollup value on Case form.

But nothing happens on the case form when I created a couple of expense records. The rollup field(on case Form) always remains blank, I did press refresh button.  The calculation itself is fairly simple. Just the sum of all the expense amounts. What could be the reason.. please guide me through this.

Thanks for any help.

Viewing all 1616 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>