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

Relationship behavior on entities

$
0
0

Greetings,

Here is the situation: I have three entities: Accounts, Orders and Orders Items. Accounts submit orders and the from the order items we add the order items.

I would like to have order items related to orders and the orders related to the account in a way that you would also relate the order item to the parent account.

What is the way to go to that?

I changed the N-1 Relationship of the lookup field between the Order and Account and the N-1 Relationship between the Order Item and the Order, both of them are setup as parental, but it does not seem to work because I see the records on the sub-grids I have created on the forms and I have set them up to show only related records.

Am I doing something wrong?

Any help is welcome.


PSA – Complete Guide

$
0
0

Recently I’ve been creating a series of blog posts that describe the features of Project Service Automation (PSA) for Microsoft’s Dynamics 365. In this post, I will list all of my posts, eventually creating a complete guide to PSA. (So please check back as I will continue to add to this collection!)

Introduction

ItemDetails
PSA OverviewAn overview of PSA.
The Sales CycleAn overview of the sales cycle for PSA, including the importance of opportunities and quotes.

Sales Cycle Detail

ItemDetails
OpportunitiesIn this post, I explain the role of the opportunity entity in a PSA project and also how it relates to cost and sales price lists.
Quotes (High Level Estimates)A description of how quotes are created from opportunities. And also, how quote lines are used to enter the customer budget and then how details can be associated to build a high-level estimate.
Quotes (Estimates Projects)How to create a project to build a detailed estimate.
Project ContractA description of how we create a project contract from a quotation and progress the draft contract to a confirmed contract.
Cost Price ListsAn explanation of cost price lists in PSA. (Including organizational units.)
Sales Price ListsAn explanation of sales price lists in PSA.
Quantity FactorsQuantity factors can be used in the product catalog to define properties that impact the total quantity.

Resource Management

ItemDetails
Resource ManagementHow to find and book resources for a project.
Centralised Resource ManagementHow to utilise resource management in a centralised scenario when the Project Manager will need to request resources from a Resource Manager.
Team ConceptsAn overview of the concepts behind project teams.
Generate Project TeamsHow to automatically get PSA to show how many resources and of what roles are needed to deliver the project.
Resource UtilizationHow to set targets and report on resource utilization.
Project FinderA description of how resources can use the project finder app to search for and apply for work.

Project Management

ItemDetails
MS Project and PSADetails on how MSProject integrations with Project Service Automation.
TimesheetsHow to enter timesheets and approve to update project actuals.

Filed under: Project Service Automation (PSA) Tagged: Dynamics 365, Project Service Automation

PSA – Timesheets

$
0
0

This post is part of a series I’m creating connected with Project Service Automation (PSA) for Microsoft Dynamics 365. This time I will consider how to enter time against a project.

Recording time against a project is obviously an important activity. And once the team members have recorded their time a project manager or line manager may need to review the details and approve before the time is billed to customers.

Time can be recorded via the mobile client or using the standard web application.

You should be aware that time recording like this only applies to resources that are CRM users. (Meaning that out of the box, resources that are contacts / accounts cannot log actuals against a project in this manner.)

In the web client, we use the Time entries option, as shown below;

Tip:
Similar functionality can also be found in the mobile client by using its time entries option.

In the web client, when I first open time entries a view similar to the one below is shown. Then pressing “+” will allow me to add a time entry.

The time entry will look something like the details shown below. Here I record the amount of time I have record against the particular project and task for that day.

Once I have saved my time, as you can see below it is shown in the time entry grid as an orange block. This reflects that the time is currently in a draft mode.

Also, notice that the default type of time entry is “work”. Other types such as holiday and absence can be recorded. These show in a different colour.

The entries tab on the right hand side of the screen allows me to see a breakdown of the time entered. So as a user I could confirm I have entered the correctly amount of time for the week / day in question.

Once I’m happy that all my time has been entered, I use the SUBMIT button to send these entries to the project manager for approval. Notice below that all of the draft entries have been selected by default but I could opt to “untick” individual items if some weren’t ready to be send to the project manager.

Tip:
When you submit absence or vacation details these need to be approved by your line manager. A user’s line manager is set on the Dynamics 365 system user record.

If the team member submits some work (or absence) for approval incorrectly then the recall option can be used to change the item back to draft, so it can be amended. It should however be noted that you can only do this whilst the task is in a submitted state. Once approved by the project manager it cannot be changed.

In many circumstances, you may find that your weekly working pattern is very similar. If this is the case the “copy from” option maybe a useful tool. It allows you to copy a previous weeks details into the current week. Then the details can be amended before being submitted for approval.

Approvals

Once submitted the project manager or line manager will need to approve the work or absence. For this navigate to the approval section of Project Service.

The project manager will use the time entries for approval view, to approve work. But the person’s line manager will use the “Absence / Vacations to approval” view. Below you can see the time entries for approval view used by the project manager.

The project manager can open the time entry details to review the details and then use the Approve button to accept the details entered. Doing so will increment the actual time recorded on the project and on the task. And therefore, also contribute towards billing of the customer.

Below you can see that on the work breakdown structure for the project a colour bar highlights actual activity against a task.

Over the years I have used several different solutions for recording my time against projects! I have found the approach taken in Project Service to be very simple and user friendly.
J


Filed under: Project Service Automation (PSA) Tagged: Dynamics 365, Project Service Automation

Plugin for making field compulsory

$
0
0

I would like to create plugin so that when the form is submitted, specific fields can be made required. If the fields are not filled, the form cannot be submitted. Can anyone show me the steps of creating such a plugin? Thank you!!!!!!

USD - Can I set the Main Menu as the default Agent Script that will be triggered in a session?

Dynamics 365 issues with Field Service Mobile App

$
0
0

Whenever I try to open any of my bookings which have been scheduled, the app gets closed unexpectedly. Expected behavior would have been me being able to view the details about the current booking. I have tested apps on both the platforms including IOS and Android. Apps are an important part of field service as they are needed by field technicians to view various bookings they have been scheduled to. 

Any help. suggestions would be highly appreciated.

HTML Name

CRMUG – USD Overview

$
0
0

I was recently asked to write a blog post for a special interest group at CRMUG. In it I provide an overview of Unified Service Desk (or USD for short). USD is a powerful Dynamics 365 tool but one that is often overlooked or misunderstood.

If you are part of CRMUG you can also sign up for a webinar in which you can gain more of a introduction to Unified Service Desk and also see a live demo. Plus there will be a Q&A session afterwards. You can register now on the CRMUG web site. It is on Tuesday 7th Feb 2017, 1pm – 2pm (EST) …. Or 6pm if you are from the UK like me.

You can register here.

Before I dive into USD I’d like to introduce myself …. My name is Neil Parkhurst, my career in IT started back in the 1980s. Since 2008 my focus has been Dynamics CRM, now known as Dynamics 365. I’ve been working with USD since early 2014 and I’ve delivered several projects using it. I often blog about USD and highly recommend it. I became a Microsoft MVP in October 2016, I believe, in part, as recognition of my efforts with Unified Service Desk.

To help give my ramblings some focus I’ve asked myself several questions, which I’ll then try to address in turn. Collectively these answers will hopefully provide a solid introduction to USD.

  1. What is USD?
  2. Who is USD for?
  3. Why not “just” use the standard web client?
  4. How does USD work?
  5. What do I configure?
  6. How do I get started with USD?

What is USD?

Describing USD is surprisingly hard. Unified Service Desk is a configuration framework that is built upon the User Interface Integration (UII) frame work. It’s an evolution of an earlier product known as the Customer Care Accelerator (CCA).

Clear??? Probably not, let me address this question in a slightly more user focused manner.

USD is an add-in to Dynamics 365 that provides the ability to quickly create desktop applications, these may be purely CRM applications or may integrate numerous line of business systems within one “container”. This is cool as it means users can then control all of their work across multiple applications from one interface.

USD achieves this by making use of sessions. A session is simply a collection of related tabs. Each tab can contain a CRM page, web page or other applications outside of Dynamics 365.

USD also supports the orchestration of business processes, making use of automation capabilities and agent scripts to aid potentially complex business processes. This might involve automatically loading multiple applications (tabs) or it might involve using agent scripts to provide contextual questions and answers to speed handling of customer queries.

Who is USD for?

You will often see Unified Service Desk described as a tool for quickly building applications for call centres. It is very true that features like telephony integration, session management and agent scripting are very important in call centre environments.

But, don’t be mistaken, USD can provide benefits to any desktop user.

Contact Centre agents face some specific challenges often related to the volume and complexity of tasks they need to perform. They need to quickly obtain a 360 view of the customer to be able to efficiently handle any potential query. Plus, they may need to handle multiple interactions at the same time.

Your customer facing contact centre guys will benefit from USD but many users in back office functions also face these same situations.

A real-world example might help here …. I implemented USD in a company providing savings and investment products. The contact centre was staffed by people who responded to customer queries on the phone or from other channels such as questions raised on the company’s website. These customer service agents would log the contact with the customer in CRM (using USD). And would create cases for any requests that couldn’t be fully completed on the telephone.

In the back-office admin staff would be allocated these cases and opened them up in USD. Opening a case would automatically also open the customer record and multiple legacy policy management applications. Opening the policy management systems in USD meant we could automate the authentication process and also instantly navigate to the customer’s policy. This saved time and avoided errors, as previously operators had to manually jump from application to application re-querying the same customer in each.

In my example I hope you can see that we had two types of users, those that were customer facing in the contact centre but also admin teams who rarely contacted the customer but also gained significant benefit from USD.

Why not “just” use Dynamics 365?

Of course, much of what I’ve described can be completed using “just” Dynamics 365. But you’ll need to extend Dynamics with bespoke or ISV provided solutions.

Implementing some features like agent scripting or session management can be a costly development task. I know this as I worked on one project when a .net developer tried to replicate just some of the basic USD features, he gave up after 6 weeks and never delivered a working solution. Whilst using USD, with no programming skills, I created the same functionality in a couple of days.

Therefore, USD provides a framework to reduce the development complexity and therefore reduce costs. And as a by-product deliver changes into the business faster.

How does USD work?

USD is a client side application, by this I mean it runs on the desktop. But that doesn’t mean the configuration and maintenance of USD is conducted at a desktop level. (Something that could present an admin nightmare for large organisations.)

When we install USD a couple of solutions get added into your Dynamics 365 instance. Doing this creates several entities. All of the configuration of USD is then simply meta data held in these entities. It is often the case that entire applications can be created with minimal code.

This configuration information is automatically cached to the local clients as the users open USD. One of the advantages of USD being a client side application is that it opens up options for connecting to telephony systems and legacy line of business applications at a client level. Something that might not be possible from purely server side “code”.

When advanced changes are needed, code can be used to extend the capabilities of USD by creating your own hosted controls or adapters, these might be required to support automation of legacy applications etc. Even these extensions can be loaded into the database as a zip file. And just like the other configuration data your executable code is automatically cached to the USD client.

What do I configure?

Having a framework helps to reduce development costs and also makes future maintenance simpler. This configuration being data based means a large reduction in the amount of code, creating the ability to quick change the solution.

I have already explained that much of the USD configuration is simply data. This data describes the hosted controls (objects), actions and events that make up your application.

Plus, then we can additionally define things like toolbars or agent scripts. And trigger our actions from selecting a button on a toolbar or an answer in an agent script.

Another configuration feature is “Window Navigation Rules”. These are the rules for when and how to open tabs. For example, when I click on a contact from a search screen, as session should open containing that contact. But when I click on a contact from the account form the contact tab should open within my current session.

Initially, people who configure USD have to learn quite a few terms / concepts. But once learnt all of the configuration can be complete really quickly.

How do I get started?

You’ll first need to confirm that you’re CRM / Dynamics 365 license includes Unified Service Desk. If you are on the old-style CRM licenses, then you’ll need a Professional or Enterprise licenses. Or with Dynamics 365 you’ll need an Enterprise Application License for Sales or Service. (Or an Enterprise Plan.)

You can download USD from the Microsoft here. One nice thing you’ll find is that when you run the server install routine you’ll get an option to install a sample USD solution. (I’ve shown one below.) Installing the sample application is a great way to get started. The sample application will allow you to get up and running quickly. I’ ve also found it very useful to look at its configuration to help learn how “stuff” works.

USD is a powerful and flexible configuration framework, meaning you will have to invest some effort into learning how to configure it. This process is helped by various blogs and training guides. (Some of which I created!)

Microsoft walkthroughs– Microsoft have published a number of step by step guides that will help you get started with USD.

My training videos– I have created a number of training videos, collectively they will show you how to build a complete working application. I’m certainly no Stephen Spielberg but they might help.

Microsoft blog– Microsoft have an official blog which includes some great posts on USD, many written by the USD product team.

USD – The Book– In my “book” I’ve collected together all of my blog posts about USD. Many of my posts will include step by step guides on how to implement particular features.

After the initial learning curve, I think you’ll really enjoy using Unified Service Desk, let me know how you get on. I love hearing about people’s experiences with USD. Thanks Neil. J



Filed under: CRMUG, Uncategorized Tagged: CRMUG, Unified Service Desk

Problem Creating SLA record for custom entity

$
0
0

Hi everybody when i try to create SLA just for a specific custom entitiy the field "applicable from" which should show all datetime fields on the entitiy only shows  yes\no options, and when i  save i got error "Attribute 'applicablefrom' cannot be NULL".  it's for a specific entity while other entities (including custom) works fine

thank in advence.

Tal

Join Us at Summit EMEA 2017

$
0
0


I am proud to be the speaker for three presentations at the EMEA summit, you will not be surprised to hear that the main one will be about USD.

Summit EMEA 2017 will be held 4-6 April at the RAI Amsterdam. Summit EMEA provides Microsoft Dynamics users with best-in-class education on how to maximise the performance of Microsoft CRM, Dynamics AX, Dynamics NAV, and Power BI products. This event welcomes IT executives and end users from organizations using Microsoft Dynamics for learning and collaboration in a trustworthy environment.

 This community-driven conference features special access to Microsoft leadership and a diverse array of interactive training workshops led by experts and users. Session topics include:

  • BI & Reporting
  • CRM Cloud Extensions
  • Developer
  • Leadership & User Adoption
  • Microsoft Dynamics 365
  • Power User
  • User Showcase
  • Partner Solutions Showcase

Sessions are currently available online. View session details, descriptions, and speaker information.

Interested in Power BI? There will also be three full days of Power BI sessions available to attendees. View Power BI sessions.

This event is brought to you by AXUG, CRMUG, NAVUG, and PBIUG. These User Groups are the world’s most influential communities of Dynamics users, business leaders, IT professionals, developers, and partners – with members sharing a common goal to maximize and advance the performance of their Dynamics investment.

Register today! Begin your conference registration.


Filed under: CRMUG Tagged: CRMUG

Dynamics CRM Online Field service

$
0
0

Hi

I have a scenario where machines belonging to individual customers are all based under one site.  The invoice may either go to the site owner or the customer themselves. Has anyone else come across this scenario, and what is the best way to handle it as a parent child relationship, ie Accounts/contacts, or maybe customer assets group within an individual location?

Thanks

Unified Service Desk (USD) - get parameter values from url

$
0
0

Hi there USD people!

I'm currently buildig a USD solution for one of our customers. It is going well so far but there is one thing that I cannot seem to get right: parsing parameters from a url.

What I want to do:

I want the user to be able to select a CRM record from a list (a case from a list of cases from an associated view), and I want to store the id for that selected case in the session so that I associate the current activity with that case. 

What I tried to do:

I tried to create a window navigation rule, so that when a case is selected (either by clicking the link or doubleclicking the case), I can do a FetchXml based on the selected search. However, the action data that I get looks like this:  "url"="myorg.crm4.dynamics.com/main.aspx;extraqs=%3fetc%3d112%26id%3d%257bE08AF044-F9E9-E611-80F8-5065F38A4A21%257d&histKey=192025612&newWindow=true&pagetype=entityrecord".

I just want to parse the Id from this url. I know that it should be possible to do this, because when creating a new session for example, USD knows which Contact or Account I selected. I tried I lot of combinations to use as a replacement paramets ([[Id]], [[incident.Id]], etc. etc.).

I hope I explained myself clearly. Would really appreciate if someone knows the answer to this.

Have a nice day :)

Workflow to send email to Manager on idle lead

$
0
0

Hi Team

We are using Dynamics CRM Online to manage the leads. I'm trying to setup a workflow where, if a lead is not followed up/modified or in other words has been idle for last 5 days, an email should be sent to a specific person. However, I can get it to work. Can anyone suggest an easy way to achieve this.

Thanks

Rishi.

USD – Show Buttons Based on Security Role

$
0
0

I was recently asked a question about showing toolbar buttons in Unified Service Desk (USD) for Dynamics 365, the question was “Is it possible to hide / show buttons based on a user’s security role?“. In this post I will attempt to answer this question.

By way of an example, imagine this scenario, say you want to hide the debug toolbar button to all user except anyone with the system administrator or system customizer roles.

The steps involved are;

  1. Create a Search
  2. Create a DoSearch action
  3. Create two SaveSetting actions
  4. Add actions to DeskTopReady
  5. Add conditions to the toolbar buttons

Note: I am assuming you already have a toolbar button that loads the debugger!

Step One – Create a Search

First of all I needed to run a search to see if the current user had either the system customizer or system administrator roles. For this I used the “Entity Searches” option in USD.

I created an entity search that looked like this ….

My entity search contained the following fetch XML.

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false"><entity name="role"><attribute name="name"/><attribute name="businessunitid"/><attribute name="roleid"/><order descending="false" attribute="name"/><filter type="and"><filter type="or"><condition attribute="name" value="system administrator" operator="eq"/><condition attribute="name" value="system customizer" operator="eq"/></filter></filter><link-entity name="systemuserroles" intersect="true" visible="false" to="roleid" from="roleid"><link-entity name="systemuser" to="systemuserid" from="systemuserid" alias="al"><filter type="and"><condition attribute="systemuserid" operator="eq-userid"/></filter></link-entity></link-entity></entity></fetch>

Tip: If you wish to adapt this, an easy way to generate the fetch XML is to create an advanced find and then use the “Download Fetch XML” button.

FieldDetails
NameSecurityRole
Entityrole

This is is schema name of the entity that hold system roles, you will need to add this as an entity to be USD by USD!

Fetch XMLYou could just cut and paste the XML I have shown above!

Step Two – Create a DoSearch Action

Having created my search, I needed a DoSearch action. As shown below;

FieldDetails
NameCRM Global Manager – Do Search (SecurityRole)
Order7

You could use a different order number! But it will need to be lower than the SaveSetting actions we’ll create in the next step.

Hosted ControlCRM Global Manager
ActionDoSearch
Dataname=SecurityRole

global=true

maxcount=1

Step Three – Create Two SaveSetting actions

It would have been possible for me to reference the results of the DoSearch in all my conditions. But I felt a more elegant approach would be to save a setting that will contain “True” or “False”. For this I created two actions, one for the false and one to the true. My actions looked like this;

For the False option I created ….

For the True option I created …

FieldDetails
NameCRM Global Manager – Save Setting (SystemAdmin True)

And

CRM Global Manager – Save Setting (SystemAdmin True)

Order8

You could use a different order number! But it will need to be higher than the DoSearch action we created in step two.

Hosted ControlCRM Global Manager
ActionSaveSetting
Dataname=SystemAdmin

value=True

Or

name=SystemAdmin

value=False

Condition“[[$Return.CRM Global Manager – Do Search (Security Role)]g]”!=”0″

Or

“[[$Return.CRM Global Manager – Do Search (Security Role)]g]”==”0”

Here I am basically triggering the true action if the DoSeach returned data or the false action if the user doesn’t have the required role.

Step Four – Add Actions to DeskTopReady

I now need to trigger my search and save of setting when USD loads, so for this I add the actions to the DeskTopReady event of Global Manager. Below you can see that I have added the three actions to the DeskTopReady event of my global manager.

Before I show the conditions we need to add, let’s have a quick look what is happening inside USD. Once USD loads we will do a search and save a setting. That setting is available as a replacement parameter. You can see below that I have a SystemAdmin parameter in my data parameters. I can then reference this parameter in conditions using [[$Settings.SystemAdmin]].

Step Five- Add condition to the Toolbar Button

Now we have the setting stored it can be used anywhere that I want to restrict access to anyone but the system administrators. For example, I have added an enable condition to my toolbar button used to access the debugger.

The enabled condition of “[[$Settings.SystemAdmin]]”==”True” will ensure the button is only enabled if the current user has the system administrator or system customizer role.

I hope you can see that this approach could be adapted for other roles / buttons within your application. Enjoy.
J


Filed under: USD - Configuration Tagged: Dynamics 365, Unified Service Desk

PSA – Expense Recording

$
0
0

This post is part of a series I’m creating connected with Project Service Automation (PSA) for Microsoft Dynamics 365. This time I will consider how to record expenses against a project.

In previous post I have explained time recording against a project, you can view that post here.

Expenses can be recorded via the mobile client or using the standard web application.

You should be aware that expense recording like this only applies to resources that are CRM users. (Meaning that out of the box, resources that are contacts / accounts cannot log expenses against a project in this manner.)

In the web client, we use the expenses option, as shown below;


Tip:
Similar functionality can also be found in the mobile client by using its expense option.

In the web client, when I first open expenses a view similar to the end shown below is shown. I can use the “+” option on a given day or use the “New” button to log expenses. (Note: The calendar view here and the filtering / navigation options are very similar to those we observed with time entries.)

Tip:
I use the “+” button to record expenses for a given day, maybe typically some date in the past. And I use the “NEW” option to record expense for today.

Having clicked the “+” button I will see a dialog similar to the one below. Here I can record the details of the expense. Including the value, currency, project and category of expense.

Also, notice the “Add Receipt” button. This allow me to add one or more attachments (receipts) to the expense claim.

Below you can see that I have added expenses for a hotel and meals. Notice that each type of expense is colour coded and also includes a icon to denote the type of expense.

Also, notice that I get a useful summary of expenses on the right hand side of the screen. Including totals by category in a pie chart.

As with time entries I can swap to a grid view which might sometimes make entry of expense details quicker.

Approval Process

As with time entries expense details need to be submitted and then approved by the project manager. Clicking the “SUBMIT” button will give me a dialog similar to the one shown below and I can opt to submit some or all of my expenses.

Tip:
Above I submitted two expense claims linked to my project and a third what was a generic claim for some books. The expense claim for the books still needs to be approved but instead of the approval being assigned to the project manager it is assigned to my line manager. (As defined in the system user record of CRM.)

Project Managers and Line Managers can use the project approvals option (shown below) to view and approve time and expense claims.

In the approvals option I can view and then accept or reject the expense claims.

Notice if I open the expense entry I can control the billing type and sales price. So that each claim could be made chargeable, non-chargeable etc.

If the manager rejects a claim, the will be able to record a reason. Back in the expenses option the team member can amend and then submit again. They may, for example, have miss attaching a receipt.

Once the project manager has approved the expenses, back on the project under “Actuals” they will be able to see all approved time and expense details. With associated costs.

I hope you can see that there is a lot of commonality between time entries and expense entries. If you think about it both processes are actually quite similar, as both are about recording actual values against the project.
J


Filed under: Project Service Automation (PSA) Tagged: Dynamics 365, Project Service Automation

Campaign Activities

$
0
0

Hello,

I recently created a marketing campaign and distributed campaign activities (phone calls) to a member of my team. I had anticipated that this would create tasks for him to call each of the leads in the campaign. Does this not happen or did I do something incorrect?

He can see the campaign and list but had I not told him it was there he wouldn't have known.

Thanks

Helen. 

Dynamics CRM Online Field service

$
0
0

Hi

I have a scenario where machines belonging to individual customers are all based under one site.  The invoice may either go to the site owner or the customer themselves. Has anyone else come across this scenario, and what is the best way to handle it as a parent child relationship, ie Accounts/contacts, or maybe customer assets group within an individual location?

Thanks

USD – Configuration Option

$
0
0

In this post, I will describe “Configurations” in Unified Service Desk (USD) for Dynamics 365 and when you would want to use them. And importantly when not to use them!

A configuration in Unified Service Desk is a set of hosted controls, actions, events etc. Each set of these USD assets is called a configuration. You can then assign a configuration to a user.

Let’s imagine our contact centre is made up of two distinct teams. One team looks after incoming calls from existing customers. This first team would need functionality to manage customer service requests. The second team might make cold calls to leads to try to sell our latest and greatest product. These two groups of users may require significantly different functionality (and agent scripting) within USD. The Configuration option gives us a construct capable of handling this situation.

The first important point to understand is that using configurations in Unified Service Desk is optional, you don’t have to use them! In fact, I would avoid them unless you have a clear requirement to maintain multiple configurations. Why? Well, the upside is I can have differing functionality by user. The downside creating multiple configurations is we’ll increase the ongoing testing and maintenance overhead.

In some scenarios, you may simply want to hide / show a few options to certain users. For example, a supervisor many need access to a few extra buttons or maybe only your administrators should have access to the debug option. In these situations, I would look to use user options or even query the users CRM role. I describe how to achieve this here.

If, however your requirements are more varied / complex then configurations come into play.

Each configuration can be made up of a number of assets, including;

  • Hosted Controls
  • Events
  • Action Calls
  • Toolbars
  • Window Navigation Rules
  • Entity Searches
  • Session Lines
  • Agent Scripts
  • Scriptlets
  • Customizations files
  • Forms
  • Options

Configuration Example

I personally think understanding how something works is often best achieved by looking at a working example! I will therefore create two simple configurations.

Configuration One

User will be given a search toolbar that will show active accounts. Opening an account will start an account session. On an account if I click a contact the contact will open in a tab within the account session.

Configuration Two

This will be very similar to configuration one but these users will be given a search toolbar that will show contacts. Opening a contact will start a contact session. And if the account has an associated account, clicking on an account will open that as a tab within the contact session.

I hope you can see that these are two simple configurations but will differ in some significant ways.

Note: I am going to assume you already have an advanced understanding of USD. I am not therefore going describe the detail of how my actions, navigation rules etc operate.

Configuration one will be my default configuration. Each user can be assigned to a configuration but if no configuration is defined they will inherit the default.

As I describe how I created each configuration I will point out a few tips along the way!

My first configuration is shown below. Notice that it is selected as my default. The default option is actually set using the set as default button in the toolbar.

Hosted Controls– notice that I have included all of the hosted controls that are required. This includes some “system” / “essential” ones that must always be present, such as Global Manager, Panel Layout and Connection Manager. What you are seeing here is that each configuration must include all of the required assets not just the ones you have customized.

Events– here I have listed all of the events that have specific actions associated with them. In my very simple example I just included DeskTopReady as in both configurations I decided to load the user CRM home page in a tab when USD opens. (Plus, maximize the screen.)

At this point I would like to mention a challenge! When I use the “+” button to add events I can see a list of the possible events to add but this can be confusing. Even my simple configuration contains multiple CRM Pages, each one will have a set of events with the same name. Every CRM Page, for example, will have an ActiveClosed event. Meaning you could very quickly get confused as to which is which. The screen below shows USD’s out of the box behaviour.

To solve this “irritation” I opened the event entity in customizations and made a change to its lookup view.!

You can see below that I have added the hosted application field to the lookup view. After you have done this make sure you select “Publish all”.

Now when I search for events I can see their associated hosted control. Meaning I could tell which events related to which hosted control. Much simpler to use!

Action Calls, next I listed all of the action calls that applied in my configuration. So, I had actions to search for accounts, navigate to the CRM home page etc.

I continued this theme with my first configuration adding toolbars, windows navigations rules, session lines and options. I didn’t add any entity searches, agent scripts or scriptlets. Simply because my example was simple! But I hope you can see that you could continue to add as many assets as required. Having differing agent scripts maybe something you’d commonly want to achieve with configurations.

Cloning my Configuration

Once I had created and tested my default configuration, I realised that my second configuration would have a lot of commonality to my first. So, cloning the first one and then making changes seemed like a good idea. Luckily Microsoft provide us with a clone option!

So, I opened my Configuration One and used the Clone option from the toolbar.

Having cloned my configuration USD created me a new one called “Configuration One – Copy”. I could now start the process of amending this configuration. (My first task was to rename it from “Configuration One – Copy” to “Configuration Two”.

Altering my Configuration

I can now set about changing my newly created configuration. As mentioned much of my configuration will remain the same and I will share many of the assets in configuration one and configuration two.

In my hosted controls and events sections of the configuration, I made no changes. I could reuse all of this. And in actions I simply removed the old search action I had and inserted a new one. As now I’d want to search by contact instead of account.

Next I remove the main toolbar I did have and created a new one that would include a different search button. One that this time would call my action to search for contacts. I found neither of my window navigation rules were appropriate so I removed both of them and added two new ones.

The final change in my simple solution was to remove the session line I’d created to name the account session and insert a new one to name my contact session.

You may recall the “Configuration One” was defined as my default configuration. Meaning all users would get this unless we state otherwise. You can see in the Users sub-grid at the top of my configuration which users have been assigned this configuration. You can add users to the configuration directly from the configuration form. Or by opening the user’s systemuser record and amending the USD configuration lookup.

Finally, I re-loaded UD and tested my new configuration. I could now search for contacts and had all of the alternative behaviour required.

So, what do I think of configurations???? I admit I have some reservations about the complexity they introduce. For example, I would want to try to re-use assets as much as possible. But in doing so, it would create a need to re-test each configuration separately after a change. BUT, if you need significantly different functionality between users they do offer some significant capabilities.

When using configurations, I would advise all changes to be made via the configurations screens. I actually quite seeing all my assets in one place. The reason I say this is if you navigate to the “standard” USD screens you will see all the assets across all the configurations. Imagine looking at a full list of window navigation rules, many could conflict with each other. So, to avoid confusion, you’ll want to view them in the context of a specific configuration.

In summary configurations, in my opinion should be avoided if possible! But when you do need them they are a big bonus.
J


Filed under: USD - Configuration Tagged: Unified Service Desk

Dynamics CRM Certification

$
0
0

Hello All:

I'm currently planning to pursue Microsoft Dynamics CRM certification, however, before I become totally 

amerce into the certification studies I would like to review the following challenges:

- study material availability (this would include but, not limited to) DVD videos or online training

- access to Microsoft Dynamics software (ie Virtual Lab) or  software purchase

- associated cost of the study material & certification exams

- certifications exams to pursue

Any other relevant info would also be appreciated, this may include the most in-demand Dynamics certification.

Appox time to complete certification?

Is there a better channel to pursue Dynamics certification, etc, etc.  Hopefully the above info will help to make a prudent decision.

Thanks

BK

how Create PhoneCall Activity in background on unified service desk ?

$
0
0

hi i try scriptlet but it not working

its posible to add phonecall activity from actioncall or scriptlet in background ?

my senario is i have incoming call from lync SDK i detect it and i want create one phone call activity and add from field value from all my result account contac lead from fetchxml on windows navigation rules

sry for my bad EN

Best Regard
Mani

Viewing all 1616 articles
Browse latest View live


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