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

MB2-717 Certification: (Microsoft Dynamics for Sales) – Transactional Entities (Quotes)

$
0
0

As I prepare for my Dynamics 365 certification in sales (MB2-717), I am creating blog posts based on my revision. I hope that collectively these posts may prove useful to anyone also preparing for the MB2-717 exam. This time I will cover the concepts around the quotes.

Quotes are one of a set of transactional entities we have when progressing sales. The full set includes quotes, orders and invoices.

Quotes are often required as a record of prices offered to a customer. (aka an estimate or proposal.) They can be created in their own right but often a quotation will be generated in relationship to an opportunity.

The Quote Lifecycle

  1. Draft
  • When quotes are first created they start off in a draft status.
  • Draft quotes can be maintained.
  • Draft quotes need to be activated before progressing.
  1. Active
  • Active quotes have (theoretically) been presented to the customer.
  • Active quotes can be printed.
  • Active quotes are read-only.
  • Orders can be created from an active quote.
  • Active quotes can be marked as won or lost.
  • Active quotes can be revised, returning them to a draft status.
  1. Won
  • Status changes to won when a quote is accepted.
  • Won quotes are read-only.
  1. Closed
  • Quotes can be closed because they have been lost, cancelled or revised.
  • Closed quotes are read only.
  • Closed quotes can be revised, which creates a new version of the quote in a draft status.
  • You cannot revise a closed quotation if an active or draft version of that quote already exists. (Meaning there is only ever one “live” version of a quotation.)

The “status” of a quotation is derived by looking at two status fields on the quote. Status (stateCode) and Status Reason (statuscode). Each status field can have one or more status reasons. The realtionship between these fields is shown below.

Status (statecode)Status Reason (statuscode)Comment
DraftIn ProgressCan be changed
ActiveIn Progress or OpenRead-only but can be won or closed. Or revised.
WonWonRead-only. Once would be associated with an order.
ClosedLost, Canceled or RevisedRead-only but can be revised if no draft or active versions of the quote currently exist.

In the following notes I will cover the steps involved in creating quotes, revising quotes, winning quotes and closing quotations.

Creating Quotes

Below you can see I have opened an opportunity, I have already added a number of products to the opportunity. Giving me an estimated revenue of £21,303.50. I am now ready to create a quotation to present to the customer. To do this I scroll down to the quotes sub-grid on the opportunity and select “+”.


Doing so generates a draft quotation containing all of the line items I added in the opportunity.


Tip:  If you create a quotation outside of the opportunity you can use the “GET PRODUCTS” ribbon button to pull in the products from an existing opportunity. Or use the Get Products option as you add new existing or write-in products to the sub-grid of products on the opportunity.

The “LOOK UP ADDRESS” option is for adding ship to or bill to addresses to the quote. The look up option allows the selection of pre-created address details against the customer. Or alternatively you can simply manually enter any required addresses onto the quotation.

Tip:A quote must have a price list. The price list will come from the opportunity. But if you create a quote outside of the opportunity you will need to remember to set the price list.

Having created the quotation based on the products from your opportunity you can revise prices, discounts, freight on the quotation as required. It may be important to know that any increases / decreases in the quotation value do not alter the estimated revenue value on the opportunity. If the opportunity value needs to change then the products on the opportunity must be adjusted. (or the estimated revenue manually edited if it has been user provided on the opportunity.)


The total tax amount is calculated based on the tax recorded on the line items on the quote. To edit it you need to edit the individual tax amount on each product on the quote. It might be worth knowing that each line item could also have differing delivery information. (Including delivery date and ship to address.)

I can now edit the quote and before selecting the ACTIVATE QUOTE option. The active quote becomes read-only and I would then print the details and present to the customer.

Revising a Quote

Often as customer may query something on the quotation. You then would revise the active quote. Doing so will close the active quote and create a new version in draft mode. Notice that the Revision ID automatically increments with each revision.

Tip: You cannot revise a quote that was previously revised! You would need to revise the latest version each time.


As quotes are revised activities are created to keep track of the alterations. Below you can see that by looking in the social pane on my opportunity I can see that a quotation was closed as it was due to be revised. (The status reason on the closed quote will be “revised”.)

Once I have made the required changed the quotation would need to be activated again when ready to present / re-present to the customer.

In the opportunity quotes sub-grid I can see all of the quotations. Below you can see that I have revised my quotation a couple of times, eventually ending with an active quote with a revised lower price.


Create an order from a quote

Let’s assume the customer accepts my quotation and wants to place an order. (Aka I mark the quote as won.) Now the quotation can be opened and the CREATE ORDER button selected.


Selecting CREATE ORDER will present the following dialog. The quotation is going to be updated to be won. Also I get an option to also close the opportunity. If I do so I can select to use the price from the quote being won or enter an actual revenue amount manually.

It is also possible to not update the opportunity. In a simple example (like this) winning the quotation would typically mean the end of the opportunity, so you’d close it as “won”. But in some circumstances the opportunity may stay open as the quote in question may only represent part of a larger deal.


Once OK has been clicked the newly created order record is loaded. (I’ll discuss orders in a later post!)

Back on my opportunity I can see that activities have been added. One states that the opportunity was won and another signifies that the opportunity has been closed.

Additionally other fields on the opportunity will have been updated. Including setting the actual close date, actual revenue won and setting the probability to 100%.

Note: The actual revenue will typically have been set to the value of the won quotation. You may have noticed that there is also an option when creating the order to manually enter the actual revenue on the opportunity if required.

My quotation will have had its status changed to won and a similar activity logged against the quote to track the event.

Closing A Quote

Maybe you don’t win the order or maybe the customer simply decides they’re no longer interested. Or maybe even your sales manager decides to pull out of the deal as it isn’t right for your company. In all of these circumstances you’d want to close the quotation.

Open, an active quote and select the CLOSE QUOTE option.

Similar to winning a quotation a dialog appears having selected the CLOSE QUOTE option. First you’d set the status reason. To “Lost”, “Revised” or “Canceled”.

You then need to decide what to do next, you may wish to leave the opportunity open and create another draft quotation. Maybe your offer could be re-thought and re-presented to the customer. In this circumstance select the “Create a revised quote” option.

Alternatively the quote and maybe the entire opportunity is dead. In this circumstance you’d select “Do not revise this quote”. And optionally select to close the opportunity. As it may also be dead!


If you select to close the associated opportunity a further dialog will be displayed giving the user a chance to record the reason the opportunity was lost the revenue and competitor.


As with winning an opportunity relevant activities will be created against the quote and opportunity to record this change in events.

It is possible to revise a closed quotation. Maybe a customer rejects a quotation so you mark it as lost. Only to have the customer return in a few weeks with a renewed interest.

I hope this post will have helped you revised for the MB2-717 exam.


USD – Switch Agent Scripts

$
0
0

I recently received a great question about agents scripts and I love answering Unified Service Desk questions! This time the question was about a requirement to switch agents scripts. Here is my answer.

The question I received is shown below;

So essentially this person has multiple agent scripts and as tabs are selected wants to automatically show the agent script that relates to the selected tab. This seemed quite a logical thing to want to achieve, when looking at my case I’d like to see the agent script that relates to answers associated to the case. But if I also had an opportunity open then the agent script should automatically switch to be focused on opportunity when the user clicks on the opportunity tab.

I did manage to achieve this effect, although there were a couple of minor things to be aware of. In the rest of this post I will explain how I answered this problem;

The simple steps involved are;

  1. Create a SelectedAppChanged event, if you don’t already have one.
  2. Create some Agent Script GotoTask actions.
  3. Associate the GotoTask actions with SelectedAppChanged event.

Step One – Create a SelectedAppChanged event

You will have a hosted control of type “PanelLayout”. Mine is called “Main Layout”. Other common names might be “Custom Panel Layout” etc.

Find your panel layout hosted control and open its associated events view. You need to check you have an event called “SelectedAppChanged”. If you do great. If you don’t simple click “ADD NEW EVENT” and create one.

Step Two – Create some Agent Script GotoTask actions

Next you will need an action to load each of the agent scripts you want to enable this automatic switching feature on. You can see below that I decided to apply this logic to four of my tabs. Account, Contact, Case and Opportunity.

You will no doubt have a different naming convention to me, so may need to take that into account.

My hosted control for accounts is called “Account”, cases is called “Cases” etc. (Fairly typical.)

My agent script for accounts is called “Account – Agent Script”, cases is called “Case – Agent Script” etc.

Knowing this let’s look at one of my actions in a little more detail. I will use my action for the account hosted control as an example, I hope you can see how these might vary for each tab.

Field Details
NameAgent Scripting – Goto Task (Account, When Selected)
Hosted ControlAgent Scripting
ActionGotoTask
DataAccount – Agent Script

Obviously the name you have here will probably be different to mine. But this is simply the name of the script I want to show when my Account tab is selected.

Condition“[[Selection]+]”==”Account” && “[[Agent Scripting.msdyusd_name]+]”!=”Account – Agent Script”

This condition (importantly) checks two things.

  • Firstly we use the “Selection” parameter to know if the tab currently selected is the Account tab.
  • Secondly I check that the current agent script isn’t already the one the GotoTask is trying to load. This second check is actually really important! As without this I found that Unified Service Desk was actually crashing as my tabs loaded!

Step Three – Associate the GotoTask actions with SelectedAppChanged event

The final step was to simply add my actions to the SelectedAppChanges event. You can see below that I added all four of my actions.

Hopefully I have managed to answer the question and maybe given you an idea on how to enhance your agent scripts.

Help with dashboard. Remove Yammer in my personal wall.

$
0
0

Hi Team! I want to create a dashboard with a standard personal wall.

As you in the picture i have yammer there too.

how do i remove it?

This is how i want it to look like.

Ensuring Owner of Child Records is same as Parent Owner

$
0
0

This may seem an obvious question, but I'm a bit stumped.

Our Admin Team create an Account record, which on creation is allocated to the person who created the record.  Then The Admin Team type over their name and replace the Owner field with the name of the sales person who manages that Account.

The Admin Team then create new customised child records, but the owner of the record is automatically the Admin person's name not the Owner of the (Parent) Account, as we would want.  They have to keep overtyping their name in the child record with the name of the sales person who is the Owner of the parent Account record.

I know I can re-assign a record and all child records are changed automatically, but is there a way all child records of the Account record, when they are created are automatically owned by the sales person who deals with this account and not the Admin Team member who created the child record.

The cascading parental relationship does not seem applicable (i.e. it does not work for me), or perhaps I don't understand it,

Any guidance on how to make the child record owner always be the Account (parent) record owner would be appreciated.

Thanks in anticipation.

Jimbo

Jim

MB2-717 Certification: (Microsoft Dynamics for Sales) – Transactional Entities (Orders)

$
0
0

As I prepare for my Dynamics 365 certification in sales (MB2-717), I am creating blog posts based on my revision. I hope that collectively these posts may prove useful to anyone also preparing for the MB2-717 exam. This time I will cover the concepts around the orders.

Previously I have covered creating a lead and progressing that to an opportunity, then I’ve looked at how to associate quotes to the opportunity. So now it makes sense to turn my attention to the next logical step in the process, orders.

An order is created when a customer confirms their purchase of a given product or service. (e.g. they accept a quote.) Orders can be created by “winning” quotes.

It is also possible to create an order without a quotation or even an opportunity. Out of the box, for example, the navigation gives the ability to create opportunities from an account. But it is a simple customization to add quotes, orders and opportunities to the account’s navigation. This approach means it is easy to tailor Dynamics 365 to match whatever sales cycle a particular company follows. The customization of Dynamics 365 is beyond the scope of the MB2-717 exam, so it should be enough just to know this tailoring is possible.

Possible states for an order include;

  • Active (open)– orders start off with a status of active.
  • Fulfilled– a fulfilled order can be marked as complete or partial. (Think of a fulfilled order as a delivered order.) Once the order has been fulfilled it becomes read-only.
  • Canceled -an open or fulfilled order can have its state changed to cancelled. A cancelled order cannot be re-opened.

An order can be invoiced whilst active or open. As you may decide to generate an invoice before or after delivery.

Like quotes we have a concept of status (statecode) and status reason (Statuscode). The table below shows the relationship between these two fields and all the possible status / status reason combinations.

Status (statecode)Status Reason (statuscode)
ActiveNew, Pending or On hold
SubmittedIn Progress
CanceledNo Money
FulfilledComplete, Partial
InvoicedInvoiced

Notice that I have shown two addition order states! Submitted and Invoiced. I have included these as they do exist as possible options for the status (statecode) field. However out of the box these are not used!

Tip:
You can add / customize status reason values. (Although customization will be beyond the scope of the MB2-717 exam.) For example, you may wish add additional reason why an order can have a status of “Canceled”.

Creating Orders

Orders can be created by marking a quotation as won or created directly without the need for an opportunity or a quote.

Note: The quotation will need to be in an active state, you cannot create an order from a draft quotation.

If the order is created from scratch then all of the fields such as price lists, products, currency (etc.) found on the opportunity / quote will need to be entered.

Below you can see a quotation, on the quotation I have selected CREATE ORDER. A dialog is displayed that will confirm the details and at the same time mark the quote as won. If your quotation is linked to an opportunity there will be an option to close the opportunity. And set the actual revenue value on the opportunity to the quota value or for you to manually enter an alternative value.


Clicking ok, will close the quotation as won, create an order and open the newly created order. Notice that the order form looks very similar to the quotation. Although there are some extra fields such as requested delivery date and date fulfilled.

Notice that my newly created order has a status of active and status reason of “new”. Out of the box I could change the status reason to “pending” or “On hold”. This might be used to illustrate that the order isn’t yet fulfilled (delivered) but it is being processed.


The pricing on the order will initially reflect the prices from the quotation. It might be that price increases have been applied since the quotation was created. In this circumstance you can select the USE CURRENT PRICING option to refresh the order prices based on the current price list item details. Once this has been done other amendments can also be made to discounts at this point or additional products added. Once the pricing is considered final the LOCK PRICING option can then be used to fix them.


Tip: Other amendments might be required at this point such as confirming ship to / bill to address details.


The RECALCULATE button is important, changes to line items on the order will not automatically be applied to the order total until the order is saved. Clicking the recalculate button will force the order total to be recalculated with saving the order.

Fulfill an Order

When an order is completed (i.e. delivered), the FULFILL ORDER button is used. Doing so will present a dialog similar to the one below. Clicking “Fulfill” will now change the order status to fulfilled and the status reason to complete. Also the order becomes read only at this point.


Cancel an Order

Cancelling an order is a very similar process to fulfilment! Except order status changes to Canceled. An order can be cancelled at any point, even after fulfilment. Once cancelled the order cannot be re-opened. Meaning if you accidently cancelled an order a new order would need to be created!

Out of the box when cancelling an order, you only have option one status reason option “No Money”. A common customization will be to adjust the reasons here to provide options applicable to your organisation. For example: In some sales situations the customer has the right to a 14 day cooling off period. You might want a specific status reason for cancelling orders during the 14 day window.


Create Invoice

Before or after the order is fulfil the CREATE INVOICE button can be used to create and open the invoice. I will cover the full detail about invoices in a future post.


Hopefully this post has helped with your revision for the MB2-717 exam.

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. 

Context Values not being populated for the first time in USD

$
0
0

Hi All,

For the very first time when I open a Policy record in our USD, we see that $context information is empty, for some reason the name and other values doesn't come in; because of which the tab name, session lines information is absent. However, for the successive records this problem doesn't arise. We are unable to find the reason, any pointers would be of great help. Thanks in advance.

CRM integration with hosted telephony (VoIP)

$
0
0

Hi all

We have a new phone system using VoIP with the handset Yealink T23G. We would like to integrate this with our Microsoft Dynamics CRM so that users would be able to at least:

- Record call activity 

- Create new leads/opportunities from calls

- Add call activity to an existing opportunity/lead

- Click-to-call

So far we have looked on forums and have tested Tenfold, Camrivox's Flexor and will be testing Dynamics Telephony but just wanted to know if you have tried any other vendors and what your thoughts are on them? Ideally we would like to use a vendor that is easy to integrate (like a web-browser plugin) or if any of you have created custom APIs to link phones to CRM, feel free to let us know as well!

Thanks all 


MB2-715 Exam material

$
0
0

Hi guys,

I am trying to find exam study material or practice tests for MB2-715 exam. Can anyone help me please?

Thank you

MB2-717 Certification: (Microsoft Dynamics for Sales) – Transactional Entities (Invoices)

$
0
0

As I prepare for my Dynamics 365 certification in sales (MB2-717), I am creating blog posts based on my revision. I hope that collectively these posts may prove useful to anyone also preparing for the MB2-717 exam. This time I will cover invoices.

My last few posts have concentrated on sales order processing and related transactional entities looking at how an opportunity results in a quote and then how the quote can turn into an order. In this post I will finish this process by looking at the final step of invoicing. I will also cover a few topics common to all transactional entities, such as automatic reference number creation and links between the entities.

What is an invoice? Typically, you can simply think of an invoice as a request for payment. Often invoices will be created following fulfilled of orders. However, like all the transactional records in the sales process you can also generate an invoice directly without the need of an order.

In my experience it is quite common for companies to skip the invoice creation step in Dynamics 365. Why, when invoicing is obviously an important business process? Well, the reason is that “CRM” is not designed to be a full accounting system. In some circumstances it might be appropriate to generate the invoices in “Dynamics 365 Customer Engagement” but then integrate those records into a separate ERP / accounting package. (Such as Dynamics AX.)

Invoices, like quotes and orders have multiple states,

  • Active– all invoices will start off in an open (active) state. Active invoices initially have a status reason of “New”. Active invoices can be maintained. The status reason (out of the box) has several options at this stage. These can be used to reflect the current state of the active invoice. Obviously these can be customized as required.
    • Partially Shipped
    • Billed
    • Booked (Applies to services)
    • Installed (Applies to services)
  • Cancelled – active and paid invoices can be cancelled. Out of the box only one status reason of canceled is available at this point. Canceled invoices become read only and cannot be re-opened.
  • Paid – paid invoices can have one of two status reasons. Paid, completed and paid partial. Once flagged as paid (partial or completed) the invoice becomes read only. To set the invoice to this status use the “CONFIRM INVOICE” button in the toolbar.
Status (Statecode)Status Reason (Statuscode)
ActiveNew, Partially shipped, Billed

Book and Installed (Applies to use of services with PSA and Field Service)

CancelledCancelled
PaidComplete, Paid Partial

As with the other transactional records invoices can be created manually. When this is done the full details would need to be entered. Including price list, currency, product lines, discounts and so on.

Or an invoice can be automatically created from a sales order. When an invoice is automatically created from an order the invoice value will be for the total order value. It is however worth knowing that each order could be related to multiple invoices. Maybe a staged payment is involved etc. However to implement this process either the invoice values would need to be adjusted manually or customizations created to reflect the processes specific to each business.

We can create an invoice manually by entering all the details. Or use the CREATE INVOICE button from an order.


Pricing Options

As with orders you can use the USE CURRENT PRICING option to refresh the prices on the invoice. Setting them to the ones in the current price list. In many organisations we might expect this to be used infrequently as in most companies the price on the order will be the price invoiced.

Again like orders, it is possible to lock prices so no further changes will impact the invoice total.

The invoice total is updated when the invoice is saved or you can use the RECALCULATE button to force the totals to be refreshed.


Paid Invoice

Selecting the INVOICE PAID option will trigger the dialog shown below. Once OK is selected the invoice will become read only.

Note:
Even a paid invoice can be cancelled. You might do this very rarely but it could be useful if the invoice was created in error.


Cancel Invoice

Selecting the CANCEL INVOICE option will give the following dialog. Out of the box the only status reasons is “canceled”. It might be that each organisation will want to customization this, maybe cancelled reasons might include “Company no longer trading”, “Created in Error”, etc.

Transactional Entity Numbering

Each invoice, quote or order is given a unique ID. This is automatically generated by the system when the quote, order or invoice is first created. The prefix used and length of the number can be controlled. You will find an auto-numbering configuration option in settings / administration.

Below you can see that the auto-numbering option gives me the ability to control the prefix and suffix length. (Suffice can be 4,5 or 6 characters long.)


Links Between Transactional Entities

If the full sales cycle is followed using Dynamics 365 one benefit is that the transaction records are linked. A good revision task will be to experiment with the out of the box navigation options between opportunity, quote, order and invoice. Some example include;

  • On the opportunity we have a sub grid of quotes. As each opportunity can have multiple quotes.
  • The quote has an associated view of orders. (Accessible from the ribbon bar.) As each quote can have multiple orders.
  • Each order has a lookup to quotation in the SALES INFORMATION section of its form, as each quotation can relate to one order.
  • The order has an associated view of invoices. (Accessible from the ribbon bar.) As each order can have multiple invoices.)

Commonly all of the entities contain a SALES INFORMATION section that will allow linking back to the originating opportunity.

I hope this post has built on my earlier posts regarding quotes and orders, and hopefully it has helped with your revision for the MB2-717 exam.

USD - how to Execute an Actioncall before Opening the record from Search results

$
0
0

I have a multisearch page, when I select a Contact from Multi Search Hosted Control, the contact will open in New Tab.

Now, based on a Bool value on that record,

If it is No, I want to close the Opened Hosted Control, before displaying the data in that tab to agent and have to Open a Notification Popup.

If the bool value is yes, then I can open that record in the new Hosted Control.

If I attach this Action call in BrowserDocumentComplete, then Agent can see the data for a while.

Can you please help me where to attach this action call (to close the hosted control based on data) before agent can see the data?

Help with dashboard. Remove Yammer in my personal wall.

$
0
0

Hi Team! I want to create a dashboard with a standard personal wall.

As you in the picture i have yammer there too.

how do i remove it?

This is how i want it to look like.

JS to reload parent on subgrid change - different for 2016?

$
0
0

I'm using the Dynamics CRM 2016 Workflow Tools Solution to automatically update a rollup field on a parent record when child records are added.  This seems to work fine, but when I'm working in the child subgrid from the parent form, the new rollup value doesn't show up until I manually reload the page.

When I tried this out a while ago on CRM 2015, I was able to put in some JS to refresh the page - something like this:

http://andreaswijayablog.blogspot.ca/2011/08/refresh-form-after-subgrid-changes-or.html

However, this and other variations I've found and tried no longer seem to work on 2016.  I've tried what seem to be the updated functions/methods:

function Form_onLoad() {
    setTimeout("SubGridRefresh();", 2500);
}
 
function SubGridRefresh() {
    var grid = Xrm.Page.getControl("MySubGrid");
    if (grid) {
        grid.addOnLoad(ReloadForm);
    }
}
 
function ReloadForm() {
    Xrm.Page.data.refresh(true);
}


And no luck.  It gets to the ReloadForm function, but the rollup field still doesn't refresh til I reload manually.  Also tried this code for the reload:

    var id = Xrm.Page.data.entity.getId();
    Xrm.Page.data.save();
    Xrm.Utility.openEntityForm("myEntity", id);


This does reload the page, but it does it even if I try to go to the second page of the subgrid, which makes it not useful at all.

Any thoughts on how I can accomplish this?  (Specifically, the reload when subgrid data is updated.)

USD : Creating a replacement parameter for each session

$
0
0

Hi, Can we create a replacement parameter for a session, which can hold some temporary value, based on which some actions cannot be called again and again?

MB2-717 Certification: (Microsoft Dynamics for Sales) – Advanced Find

$
0
0

As I prepare for my Dynamics 365 certification in sales (MB2-717), I am creating blog posts based on my revision. I hope that collectively these posts may prove useful to anyone also preparing for the MB2-717 exam. This time I will describe the advanced find function.

You can see the section of the skills measured statement that mentions advanced find below;

Advanced find is a feature that allows users to quickly create ad-hoc queries within Dynamics 365. These can then be saved as personal views and shared with other users and teams. Being able to query data in is obviously important for all business functions! For sales it may have relevance when trying to review the status or opportunities or identify potential leads etc.

A saved advanced find is known as a personal view. There are two types of views in Dynamics 365, system views are created by developers anfd are available to all users. Personal views show under the “my views” heading and are available to to person who created the view and anyone the view has been shared with.

Security

When sharing and creating views / advanced finds you should be aware that the Dynamcis 365 security model applies. You can only query records that you have been given access to see. And if you share the view you are sharing the query not the records included in the query. By this I mean that if you and your college can only see your own opportunities, sharing a view with your college would give them a view of their opportunnities.

Whilst mentioning security ….. you might need to be aware that all users will have the ability to created advanced find queries. (On the records they have been granted access to!) However, users are granted or denied the ability to maintain save views in their security role. Meaning whilst everyone can use advanced find the ability to save and share the queries as personal views can be restricted.

Below you can see that on my sales manager securitry role the manager has access to create, read, write, delete, append, append to, assign an share their own saved views. This is the maximum access allowed on saved views. You cannot (for example) delete a personal view you don’t own.

I have seen many circumstances when the abiltity to create and share views is restricted. For example, in a contact center you may want all of the teams members to only work with one common set of views.

System Views v My Views

Below you can see that on opportunities I have many system views. I have also created a personal view with advanced find. This saved advanced find shows under the “My Views” heading. Notice I have several options under the “My Views” heading, including the ability to create a personal view (which loads advanced find) or save the currently applied filters to create a view.

You can also access advanced find from the icon in the ribbon bar;

Create an advanced find

When you select the advanced find option you’ll be presented with a dialog like the one shown below.

Notice the “Look for” drop down. Here you select the entity you’d like to query. Next, we have the “Use Saved View” drop down showing the system and personal views available for the entity selected in the “Look for” drop down.

Selecting an entity and optionally an existing saved view will load that view. You can then edit the query.

Another tip I always suggest to new users is to be aware that the “Look for” and “Use Saved View” fields will default to the current view. So often it is useful to load the entity / view that most closely resembles the query you’d like to perform before opening advanced find.

Having selected our entity and optionally selected a saved view, we can build the query detail. You can see below that in the query detail I have added several conditions. In my example I am looking for opportunities that I have lost in the last three months.

Notice that each line in the query is made up of three parts. First, we have the field in question, such as status, owner etc. Next, we have the operator. The operators available to us will differ depending on the data type of the selected field. Commonly we will have operators like equals, contains data, does not contain data. Then additionally each data type may have some “special” operators. With dates, for example, I can select an operator to looked for dates in the last “n” months. The third part of the query line is the data you wish to filter with. Sometimes this third section isn’t needed! Looking for an owner as the current user or selecting all records that contain or don’t contain data would not need any additional filtering information!

Tip:
As part of your revision I suggest you experiment with actually creating some advanced finds. Use different data types and learn what capabilities are available to filter on each.

Having built your query, you can click the “Results” button to display the matching records. (As shown below.) It will be common to click back onto the “ADVANCED FIND” tab alter your query and then click results again. By doing this we can jump between the query and the results making changes until the desired outcome is achieved.

And / Or

So I have shown you a quick example of a fairly simple query. But we can make queries much more complicated! Below I have shown a query that find certain opportunities that I have lost in the last three months or ones won by anyone with a revenue above £1,000.

You’ll need to experiemnt with creating complex queries as part of your revision! But I hope you can appreiciate that by using the “Group AND” and “Group OR” buttons we can build potentially complex queries quite quickly.

One tip I have in building complex queries is to be aware of how we can select groups and rows by clicking the down arrow. (Highlighted below.) This is really useful when you want to apply an AND or OR operator to multiple rows. Another tip is to be aware that by default query lines will be using the AND logic. (So in many circumstances you only need add the OR operator!)


Related Entities

When selecting the fields to include in the query, you will first see a list of all the searchable fields from the entity being queried. However you you scroll down to the bottum of the list you’ll be able to pick related entities. For example, opportunities may have a related contact.

Having selected the seleted entity you can then select fields from that entity to further filter the results. For example, I might want to only include contacts from Birmingham.


Not In

From time to time you might need to search for the absence of a related entity. With all versions of CRM / Dynamics 365 prior to V9.0 this was not possible. But at version 9.0 a new capability was added.

Note:
I am not confident this feature will be metioned in the MB2-717 exam! As I believe the exam was first published when v8.2 was the latest version. But I have mentioned it here for completeness and because I obvioulsy can’t be 100% sure what questions might come up!

Se can see below that I have selected “Does Not Contain Data” on the related entity. In my example below, I want to fiond all accounts that do’t have an opportunity. Changing the filter on the related entity to “Does Not Contact Data” has allowed me to achieve this.

Tip:
You can not add further filtering on a related entity once the “Does Not Contain Data” option has been selected. Meaning some limitations do still exist. Say my accounts have every mixture possible of won, lost or no opportunties. A single query to return only accounts with no opportunities or only lost opportunities would not be possible.

Edit columns

Having created your query, you may wish to tailor how the results are displayed. The “Edit Columns” button lets us achieve this.

Selecting any column allowa us to then use the arrows (under Common Tasks heading) to move the position of the column.

Additionally we have several other options;

  • Configure Sorting
    • Here we can pick upto two columns to order the results.
    • If no columns are selected the first column in the view will be the primary sorty column.
    • Only columns from the primary entity can be used for sorting. (Columns shown from related entities cannot be used for sorting.)
  • Add Columns
    • Used to add columns into the view.
    • Will default to offering columns from the “Record Type” of the primary entity.
    • You can change the record type to select columns from any lookup entity. (AKA Parent entity.) For example, account number from the account entity.
    • You can not select columns from child entities. Say the opportunity is linked to multiple quotes, you can’t select columns from the quotes.
  • Change Properties
    • The primary purpose of the change properties option is to alter the column width.
    • Column width is only variable in increments of a set number of pixels. So 25px, 50px and so on. Upto a maximum of 300px.
    • Some lookup fields can be enabled for presence.
    • Advanced options the linking a web resource and function to a column in a view. (I won’t detail this here as I believe this feature would be beyond the scope of the MB2-717 exam.
  • Remove
    • Used to remove columns from views.


Save / Share Views

Once your query have been completed you can use the save or save as option to name and save the view.

Then the saved views option can be opened to show a list of all saved queries for the currently selected entity. (Tip: You can use the “Record Type” button to quickly swap to another entity if required.

It will be possible to select a veiw and then preform several functions. Including deleting the saved veiw, assigning it to another user and sharing.

By default any saved personal view is only going to be available to the person who created it. The share option allows us to share the views with other users and teams. Having used the “Add User/Team” option to share with the required users and teams we can select exactoy what acces to give them.

Below I have shared my view with a team and a user. I have given the team just Read access. Meaning member of the team can use my view but they cannot change it.

I have given my user the additional ability to Write and Share the view. But they have not been given the ability to delete my view or assign it to another user.

Note:
The append privilage is greyed out as it is not applicable to the sharing of saved views.


Fetch XML

You may notice a button called “Download Fetch XML”. I doubt this is covered in the scope of the MB2-717 exam but again I have included a reference to it for completeness.

The advanced find dialog is actually building some code in background that is used to query the Dynamics 365 database. This code is known as Fetch XML. The download Fetch XML button maybe useful for developers if they want to obtain a copy of exactly how the advanced find is retrieving the data.


I hope I have demonstrated that Advanced Find is a pretty powerful query tool. In my opinion the best way to fully appreiciate its capabilities to experiemnt with it. Therefore I strongly recommend plenty of hands on time during your revision for the MB2-717 exam. Enjoy!


USD – Unified Client Interface

$
0
0

With the release of version 3.3 of Unified Service Desk we now have support for the Unified Client Interface (UCI). I have started to experiment with this! In this post I will try to give you an overview of some of the key points I have found which you might want to be aware of.

Firstly I would like to point out that currently (at USD v3.3) ….. UCI for Unified Service Desk is a preview feature. What does this mean???? Well, Microsoft are simply saying that the feature is pretty new and likely to change. It is therefore possible you may find the odd issue. Additionally preview features could be enhanced or even potentially removed from future versions. Meaning their use is not recommended for production implementations. But generally you can use them for demonstrations and proof of concept work. I have known some companies to use preview features in production environments but doing so would be completely at your own risk.

I have no magic insight into Microsoft’s plans. But I’m reasonably confident that we’ll see a production version of the Unified Client Interface in a USD. As UCI is the intended new standard interface for all of Dynamics 365, hence why I would expect to see full support in USD in due course. (Disclaimer …. this is just my personal opinion and in no way a formal Microsoft policy!)

There has a Microsoft sample package for the Unified Client Interface that you might want to try. It will give you a good idea of what UCI might look like and also it might be useful to review how certain things work! Just run the packagedeployer and select the UCI sample application when installing USD.

Apps

The Unified Client Interface is dependent on Apps. Users must always first open an applicable UCI app. With previous versions of USD we had no concept of an app. Meaning the first new feature for me to describe is the addition of a app picker to Unified Service Desk.

The new App picker is not enabled by default. To enable it you’ll need to alter your UnifiedServiceDesk.exe XML Configuration file. This can be found in the programs directory of your Unified Service Desk client. Below you can see my programs files directory and the UnifiedServiceDesk.exe file within it.

You will need to edit this file, that can be done simply with notepad. (other editors are available!) Scroll down the file until you find the “” section. Then you’ll need to add the line of code shown in red below. This will enable the app selector.

  <appSettings>
    <add key="LoadSessions" value="false"/>
    <add key="enableJava" value="false"/>
    <add key="SupportUri" value="http://go.microsoft.com/fwlink/?LinkID=330917"/>
    <add key="emailSupportUri" value="N/A"/>
    <add key="MaxCrmConnectionTimeOutMinutes" value="20"/>   
    <add key="SelectAppModule" value="true"/>    </appSettings>

Now you have enabled the app selector, when you enter credentials into USD an additional screen will be displayed., Having picked your organisation you will be able to pick an app. Obviously if you are using UCI you’ll need to pick an appropriate Unified Interface app!

Once you load a USD configuration (that works with the Unified Client Interface) you’ll end up with an interface that looks something like the one shown below. Notice the tabs have been given a slightly different style and also that the look of agent scripts has been refreshed. The screen shot below is from my USD configuration but you’ll find that the Microsoft sample package has a similar look and feel.

Hosted Control Type

The introduction of the Unified Client Interface means we have a new hosted control type. Below you can see the hosted control I use for my account tab. Notice that the component type is “Unified Interface Page”. (When previously it would have been CRM Page.)

Tip:
I have found that you can’t just alter the component type on an existing CRM Page hosted control! You’ll need to create a new hosted control for any tabs you’d like to display as the Unified Client Interface. I guess the reason being that a Unified Interface Page hosted control has a few different actions / events. (More on those in a second!)

Events

Below you can see the events I have by default on a Unified Interface Page hosted control. These differ slightly to the events you might be familiar with from the CRM Page hosted controls.

I am still experimenting with Unified Interface Page hosted controls! (But I will document the differences I have observed so far below.)

PageReady

Importantly we no longer have the commonly used BrowserDocumentComplete event! It has been replaced by PageReady.

PageReady behaves in the same way as BrowserDocumentComplete, in that it is triggered once the form has loaded.

DataReady

Not forgetting that we also have a DataReady event, this event is triggered as soon as the replacement parameters are available when a form is loaded. We did have this event with the CRM Page hosted controls but had to be added manually. I believe it gets created by default with Unified Interface Page hosted controls.

NavigationRequested

I believe NavigationRequested is triggered each time we try to “pop” a record in a tab. I hesitated to use the word pop! As you might need to understand that the Unified Client Interface only generates In Place routes, no pop up occurs. (I will mention this again when reviewing window navigation rules!)

Uii Actions

By default the Unified Interface Page does not have the following actions, which would be present on CRM Page hosted controls;

  • DisableToolbarButton
  • EnableToolbarButton
  • LoadArea
  • lookupinfo
  • ReRoute
  • ToggleNavigation
  • ToggleRibbon
  • WaitForComplete
  • WaitForData

I haven’t yet tested to see if any of there uii actions can be added manually!

The following actions are added;

  • New – As far as I can tell so far, the New action seems to be the same as the New_CRM_Page action. (In that it loads new pages.)
  • Open – Open is the same as Open_CRM_Page, as it opens existing records.
  • SetVisualProperty – I’ve not used this on a Unified Interface Page, yet!

RunXrmCommands

RunXrmCommand actions are different with the Unified Client Interface. I have already documented the differences in this post.

Essentially we can no longer use JavaScript that includes Xrm.Page with the Unified Client Interface. The new approach to RunXrmCommands allows us to specify a webresource and function to run. This approach allows the context to be passed into your JavaScript function. (Therefore removing the need for Xrm.Page commands!)

Window Navigation Rules

Window navigation rules are slightly different with the Unified Client Interface! With the standard web client in CRM Page hosted controls we often have a pop up route. (Popups commonly occur when opening a new record, meaning I often have a window navigation rule which creates a new session when a popup occurs from a search tab etc.)

With UCI we get no popup routes, all routes are “In Place” routes. The implication of this is that you might need to review your approach to window navigation rules. I actually think this could be a benefit as with CRM Page hosted controls we typically created two navigation rules, one for the Popup route and another for the In Place route. Having just one route therefore means we can have less navigation rules.

Enhanced look and feel

Whilst converting my configuration to work with the Unified Client Interface I found it really useful to review how various actions / hosted controls are defined in Microsoft’s sample package. This was very true when understanding the approach needed to implement the enhanced screen layout show in my screen shot at the start of this post.

Assuming you might also want to clone this style, I will provide a few tips below…..

Firstly, the panel layout isn’t the standard one. Notice that the Panel type is XAML. I won’t include a copy of the XAML here. As all I did was copy and paste if from the Microsoft sample package.

Next you will find three actions that need to exist on the DeskTopReady event of your Global Manager. These are;

  • Set UCI Custom Theme Normal Contrast
  • Set UCI Custom Theme Tabs
  • Set UCI Custom Theme Toolbars

I won’t list the details for each of these actions here! Simply as your quickest approach will be to load the sample package and cut and paste the details for each action from there! Each action is a SetTheme action that includes some XAML code to correctly format the tabs / toolbars etc. (Depending on your requirements you may find you need to edit this XAML!!)

Hopefully this post has includes a few useful tips around the new Unified Interface Client support. I am really enoying working with the new interface and I’m looking forward to when I can implement it in a production environment.

MB2-717 Certification: (Microsoft Dynamics for Sales) – Built-in Reports

$
0
0

As I prepare for my Dynamics 365 certification in sales (MB2-717), I am creating blog posts based on my revision. I hope that collectively these posts may prove useful to anyone also preparing for the MB2-717 exam. In this post I will focus on built in reports.

You can see an extract of the skills measured statement below including a reference to built-in reporting in the “Manage sales by using sales analysis tools” section of the exam.


Built in Reports

Microsoft Dynamics 365 contains multiple out of the box reports. Access to these can be found in the reporting option in the sales area.


A similar option is available in the sitemap navigation for service, marketing and project service! Therefore reports can cover all aspects of Dynamics 365 but many of them have a sales focus. Below is a list of the sales related out of the box reports. (I have removed marketing and service specific reports.)

NameDescription
Account DistributionIdentify patterns in top revenue-generating accounts.
Account OverviewView a one-page overview of an account.
Account SummaryView a chronological summary of an account.
Competitor Win LossCompare how your sales team performs against competitors.
InvoiceView an invoice and its line items.
Invoice StatusView your accounts receivable.
Lead Source EffectivenessCompare your lead sources.
Neglected AccountsIdentify accounts that have not been contacted recently.
Neglected LeadsIdentify leads that have not been contacted.
OrderView an order and its line items.
Products By AccountView products that are used by an account.
Products By ContactView products that are used by a contact.
Progress against goalsView progress against goals
QuoteView a quote and its line items.
Sales HistoryUnderstand past sales performance.
Sales PipelineView anticipated potential sales.

Selecting a report will initially provide a dialog to allow the report content to be filtered. Below is an example of the sales pipeline report;


Clicking run report will then generate a report and display the results. Once the report is displayed you can further filter and group the data. For example, with the sales pipeline report I can filter by sales process, group by date, rating, sales stage (etc) and opt to display estimated revenue or weighted revenue.

 

Reported can also be exported as XML files, CSV files, PDF, MTHML, Excel, Tiff or Word. Or you could just print it!

You should remember that when running reports, the Dynamics 365 security model will still apply, each report will only ever contain data that can be accessed using your role. A sales manager (for example) might be able to report on his team. Whilst an individual sales person will remain limited to just their own opportunities / accounts.

Another approach to running reports is to navigate to the entity and select the report from a list view. Below you can see that I have selected the “My Active Accounts” view and I can run the account overview, account summary and products by account on the selected accounts. Or I can run the sales history report against all accounts.


Running the Account Overview report with one account selected initially presents the dialog below.


Once an option is selected the report is generated and displayed as it was when run from the reports option. As I opted to run the record against all applicable records I can page from account to account. My report is shown below. Although notice that the counter initially says 1 of 2?, the question mark is because the total number of records isn’t known to the report but does update as you page forward.


A third method to access reports exists. Here you can see that I have opened an individual order and I can run the “Order” report directly from the order form.


My test order looked like this ……

In addition to the out of the box reports, users can create additional reports using the report wizard or developers can create reports tailored exactly to the company’s requirements. The creation of custom reports will not be covered in the MB2-717 exam! I believe it should be enough just to know that creating custom reports is available.

Hopefully this post has given you an insight into the out of the box reports available in Dynamics 365. As part of you prep for the MB2-717 I encourage you to run multiple actual reports! You should become familiar with what reports are available, how they can be run and what export options exist.

Unified Service Desk client error - No applications are configured for your use

$
0
0

I've downloaded the latest USD version for CRM and copied the PackageDeployer (v. 3.3.0.929) on our CRM server. Then I ran the setup of the PackageDeployer and choose to install the package Unified Service Desk - New Environment.

I also installed the USD client (Dynamics365-USD-3.3.0.931-amd64.exe) on my laptop and connected to our CRM on-premise organization. 

Now when I want open the USD I get the following error:
APPLICATION_HOST_ERR_NO_CONFIGURED_APPS: No applications are configured for your use.

 

The USD log has the following errors:

Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Error 2 01/05/2018 14:28:38  Message: Exception 0x33BC0111:
Source : Not Provided
Method : Not Provided
Time : 14:28:38
Date : 01/05/2018
Error : A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread.
Stack Trace : Not Provided
======================================================================================================================
Inner Exception Level 1 :
Source : Not Provided
Method : Not Provided
Time : 14:28:38
Date : 01/05/2018
Error : Response status code does not indicate success: 500 (Internal Server Error).
Stack Trace : Not Provided
======================================================================================================================

Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Information 8 01/05/2018 14:28:39  Time Elapsed in Monitoring Hung Process :0
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Information 8 01/05/2018 14:28:40  Time Elapsed in Monitoring Hung Process :0
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Information 8 01/05/2018 14:28:40  Unified Service Desk process terminated with exit code 0 at 05/01/2018 14:28:40. Terminating usdmp.
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Error 2 01/05/2018 14:28:40  Message: Exception 0x33BC0120:
Source : mscorlib
Method : WinIOError
Time : 14:28:40
Date : 01/05/2018
Error : Could not find a part of the path 'C:\Users\breedveld\AppData\Local\Microsoft\UnifiedServiceDesk\USDProcessInformation.dat'.
Stack Trace : at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
   at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
   at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding)
   at System.IO.File.WriteAllLines(String path, IEnumerable`1 contents)
   at Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor.Program.OnUsdProcessExit(Object sender, EventArgs e)
======================================================================================================================

Microsoft.Crm.UnifiedServiceDesk.Diagnostics Information 8 01/05/2018 14:28:40  Stopping Diagnostic tool
Microsoft.Crm.UnifiedServiceDesk.Diagnostics Information 8 01/05/2018 14:28:40  Stopped Diagnostic tool
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Information 8 01/05/2018 14:28:40  Monitoring Process terminated with exit code 0 .
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Information 8 01/05/2018 14:28:40  Monitoring Process terminated with exit code 1 .
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Error 2 01/05/2018 14:28:40  Exception 0x33BC0116:Unknown exception occurred in the namedpipeserver object.

MB2-717 Certification: (Microsoft Dynamics for Sales) – Relationship Assistant

$
0
0

As I prepare for my Dynamics 365 certification in sales (MB2-717), I am creating blog posts based on my revision. I hope that collectively these posts may prove useful to anyone also preparing for the MB2-717 exam. In this post I will focus on the relationship assistant.

I have already commented about the number of times the word relationship is mentioned in the skills measured statement of MB2-717! With this in mind I’d like to examine one key area of relationship management / analysis, the relationship assistant. You can see the skills measured statement which mentioned the relationship assistant below;

The relationship assistant is one tool within a collection of solutions that help to provide insight into your relationships with customers and prospects. The idea being to help organisations spot “trends” or “patterns” in customer behaviour and then influence the customer experience based on these insights. The aim here is to help users take action with the right customer at the right time. One simple example might be alerting a user to the fact that a sales opportunity is reaching its expected close date.

What is the relationship assistant?

The relationship assistant is designed to analyse data and provide contextual information in real time. It does this by presenting configurable “cards” to users. Each card will highlight something connected with a specific interaction with a customer.

We see “cards” in several places in Dynamics 365, including on the wall. This will commonly be shown on a dashboard or accessible via the “What’s new option”.

Below you can see my assistant with a couple of cards. This first one refers to an email that contains a potential lead. Clicking “OPEN EMAIL” will open this directly in Outlook. With the task that is shown I can complete the task directly from the relationship assistant or alternatively I can click on the task subject to open the associated record in Dynamics 365.

Below you can see an example of where I have added the relationship assistant to a dashboard;

Additionally cards can be seen in the assistant tab of the social pane directly on Dynamics 365 entities.

Additionally from the relationship assistant I have icons to refresh the information, send feedback to Microsoft on the assistant and customize what cards are shown.

 Tip:Notice that each card has an alarm clock icon. Clicking this will snooze the card for 12 hours.

Configure The Relationship Assistant (And other relationship insights)

Customer relationship insights (and therefore the relationship assistant) is not enabled by default. You will need to be a Dynamics 365 admin user to enable relationship insights. Options include customer insights, the relationship assistant and email engagement options.

You will find the Intelligence configuration option in the settings area of Dynamics 365;

It not already enabled you will need to accept the terms and then configure some or all of the options.

Below you can see that I have accepted the privacy notice and now I can configure the relationship assistant, enable email engagement and configure connection insights. Meaning all of the embedded intelligence options can be enabled and configured from one screen. Some of the features will need additional configuration, I’ll expand on that for the relationship assistant below.

There are two types of cards that can be enabled for the relationship assistant, base cards and advanced cards.

The base cards have a number of options, all of which are enabled by default but you can disable them as required. Based cards include options for warn if an open activity is due today or if an opportunity is approaching or passed its close date. I can even enable warnings for custom activities that are due.

Tip: Additional detail on the purpose of each card maybe available by hovering over the details icon. (As shown below.)


Advanced cards are not enabled by default. You may need to be aware that some options such as email engagement cards require the use of Microsoft exchange. Under each heading you can expand the options available and config / enable / disable as required. As an example I have highlighted one advanced option below. Here we can see that a card will be shown when an email concerning an open opportunity has a negative sentiment.


I won’t cover all of the options in this post, I therefore suggest your revision includes you reviewing the options available here! But to give a flavour of advanced options I have listed a few examples;

Email Cards from Exchange

  • Opportunity at Risk KTG model – shows a card when a related email contains a phrase that suggests the opportunity might be at risk.
  • Opportunity at Risk sentiment – shows a card when a related email contains a strong negative sentiment about an opportunity.
  • Stake holder recommendation – flags when an email is received from someone not identified as a stake holder on the opportunity.
  • Competitor mentioned – triggers a card if a competitor is mentioned in an email.

Note:
There is an option to perform some actions automatically without showing a card. For example, we could automatically add stake holders to opportunities instead of recommending they be added.

Relationship analytic cards

  • No activity with opportunity – show a card it no activity record against an opportunity after “n” days.
  • No activity with account – will remind if no activity against an account after “n” days.

Email engagement cards

  • Email opened – notify when a followed email is opened.

Tip:
Email engagement and relationship assistant may both need to be enabled / configured for some features.

Productivity cards

  • Upcoming meeting – will give a notification for upcoming meetings.
  • Relevant NEWS – see relevant news articles for an account.

“Today” Cards

  • Today’s top records – shows a list of records that need to be worked on today.

Note:
Privileges required to access relationship insight features are automatically enabled for all out of the box security roles. But maybe initially disabled in custom roles.

Whilst most options for the relationship are maintained at an organisation level by a system administrator, it is also possible for users to access their personal options and configure their experience with the relationship assistant.

I hope this post has given you some insight into the relationship assistant. I know for my revision I’m going to be spending time trying to see which of these I can make trigger to help me better understand the results. (I suggest you also do that.) I doubt that will always be easy!! As sometimes additional email setup maybe needed or possibly my tests have to run for several days to see that an opportunity has had no activity etc, etc.

I am yet to take the MB2-717 exam. (These really are my revision notes!!) But I have spoken to several people who have passed the exam and they have mentioned they’d wished they’d spent more time revising customer insights / relationship assistant!!!!

 

MB2-717 Certification: (Microsoft Dynamics for Sales) – Editable Grids

$
0
0

As I prepare for my Dynamics 365 certification in sales (MB2-717), I am creating blog posts based on my revision. I hope that collectively these posts may prove useful to anyone also preparing for the MB2-717 exam. In this post I will focus on editable grids.

You can see below that editable grids are referenced in the skills measured statement under the heading of “manage sales by using sales analysis tools”.


Editable grids provide “rich” editing capability directly inline whilst viewing a grid of data. Both on main grids and on the sub-grids found on entity forms. Data is saved as you navigate around the grid or at regular intervals. (As would normally happen with the auto-save feature in Dynamics 365!) Additionally, users can click the save icon on the grid as required.

Editable grids can be used on system and custom entities. Although often you will find that a system administrator / customizer will need to enable an entity to use editable grids. (Note:
Editable grids are not enabled by default!)

Field security applies on editable grids, as it does on “CRM” forms. The use of editable grids therefore honours the Dynamics 365 security model.

Editable grids can be used in the full web client for Dynamics 365 and within the mobile application.


Using Editable Grids 

Editable grids support many features! Some of the features you might need to be aware of include;

  • In-line editing
  • Sorting
  • Grouping
  • Filtering
  • Show As
  • Runtime move and resize of columns

In-line editing

In-line editing allows us to edit data right in the grid! In-line editing supports rich editing of text fields, values, lookup fields, pick lists etc. Below you can see below how we can edit a pick list field directly in the grid.

Also notice the locked symbol on my email field. This field is locked / read-only as it comes from a related entity. You cannot edit a related entity directly in the grid.


You cannot edit a records owner directly in the grid. This is done by using the assign button in the command bar.

It is also not possible to edit a records status directly in the grid. To do this you need to use the options in the command bar not change the status in the grid.

Sorting

I can sort columns by clicking on the column heading. Users can click on any column heading to sort by that column, an arrow shows in the tab heading to say if it being sorted in ascending or descending order.

You can only sort by one column! Unless you are using the group open. As the column used for the grouping and one other column can then be used. (As shown below as I am grouping by rating and additionally sorting by estimated revenue.


Grouping

Grouping is an option that allows me to group the data being viewed by any column in the view.


Filtering

Filter results to view a subset as required. The format of the filter will differ slightly depending on the field type. For example, with a pick list we get the ability to “tick” which options to show. And (as shown below) with number fields we can use logic like “is greater than” etc. Notice below that my filter can have up to two parts and I can apply an “And” or “Or” condition to the second part of the filter.


Show As

We also have a show as option which allows users to turn th editable feature off / on.


Runtime move and resize of columns

User can move and resize columns at runtime. This is done by simply dragging the fields as required.

Enable Editable Grids

As already mentioned editable grids are not enabled by default. An administrator or customizer must enable them. This is a simple process but “probably” beyond the scope of the MB2-717 exam.

However, if you’d like to research how to do this you can see information able enabling edit grids in this post.

You might not be expected to understand the detail on customizing editable grids, but I would expect that we will need to understand the concept of enabling them. Additionally, as editable grids aren’t enabled by default you might need to enable at least one to gain some hands on practice!

Editable grids are a custom control, you therefore enable them in a similar way as you would for other custom controls.

In customizations navigate to the required entity. Then select the “Controls” tab and the “Add Control…” link.


Next select “Editable Grid” and click Add.


Now you’ll need to select which clients you wish to enable editable grids on. Below you can see that I have selected the web client and the tablet client.

Tip: There are some additional properties on editable grids that you may wish to edit. But just adding the grid like this is enough to get it working!


Limitations / Considerations 

Some things to consider with editable grids, include;

  • Read-only fields on the form aren’t read-only! Making a field read-only on a form, only applies to that form. Often a better approach is to use a field level security. (Or use JavaScript!)
  • Editable Grid version of a sub grid takes up more space than the read only grid (especially if you enable the Group By feature).  Allow for a larger sub grid to make sure your users see the same amount of data they used to.
  • Enabling editable grids on a home grid is a global setting!
  • Enabling editing on a sub grid is a per sub grid basis meaning that every sub grid on every form and dashboard must have their editable setting enabled individually.
  • Some fields are not editable in the editable grid:
    • Fields from related entities
    • State, StateCode
    • Customer fields (e.g., on an Opportunity or Case)
    • Composite fields (e.g. composite address or name fields)
    • Party List fields (e.g., the To field on an Email)
    • Field Level Secure fields (if your field security profile prevents you from editing the field)
  • Nested editable grids only apply to the mobile client.
  • Editable Grids support JavaScript for home grid and sub-grids, for OnRecordSelect, OnSave, OnChange events.
  • Editable Grids support entity level business rules for ….
    • Show error message
    • Set field value
    • Set business required
    • Set default value
    • Lock or unlock field
  • JavaScript, Xrm.Page is used to reference objects on the CRM forms this approach doesn’t work with editable grids. (My next post will explain how to construct your JavaScript!)

Understanding how to make good use of editable grids is really important for the MB2-717 exam your best approach to understanding them will be some hands on practice. Enjoy.

Viewing all 1616 articles
Browse latest View live


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