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

Do Team Members have access to Field services?

$
0
0

Hi guys.

What are really the opportunities for a Team Member in Dynamics 365?

I have read they have read access in most of the apps in Dynamics 365? They can also report time and expenses, take out a few reports ( If I'm not mistaken? ).

Since the cost difference is so huge between Enterprise and Team Member, what are the difference in functionality? I know that Microsoft are some what unsure With Team Member and access to Field Services.. But have they figured it out?


How to learn Dynamics CRM coding from scratch ?

$
0
0

Hi Everyone,

I am having 2 years of experience as a Functional Consultant. I am also willing to learn Dynamics CRM Code related stuff  such as JS, Plugin, Services & etc. but I don't have any technical background ! What You think, is it possible for someone like me having zero Technical background to learn Dynamics CRM Code related stuff ? or is it a bad idea which I should drop & focus to gather more knowledge in CRM domain as a Functional Consultant only ?  If you think this is possible then how can one start to start learning code related stuff from very scratch ? & to what extent one learn. 

I want to learn Technical stuff in order to understand client's requirement in a better manner which can help me to contribute to "solutioning" by discussing the same with a technical team in a confident way. 

Thanks !

Microsoft Unified Service Desk Error - Object Reference not set to an instance of an object

$
0
0

Error :

We are facing below error in our USD application due to which user are not able to login the USD

Please find the text generated from two log files related to this issue.

Log File 1

Microsoft.Xrm.Tooling.CrmConnectControl    Error    2    07-12-2016 11:23:28  Error Message: Failed to Encrypt Configuration File!
Source    : mscorlib
Method    : WinIOError
Date    : 07-12-2016
Time    : 11:23:28
Error    : Recovery policy configured for this system contains invalid recovery certificate.
Stack Trace    : at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.File.Encrypt(String path)
   at Microsoft.Xrm.Tooling.CrmConnectControl.CrmConnectionManager.LoadConfigFromFile(Boolean readLocalFirst)
======================================================================================================================

Microsoft.Xrm.Tooling.CrmConnectControl    Error    2    07-12-2016 11:23:28  Error Message: SaveConfigToFile() - fail - C:\Users\biplob.roy\AppData\Roaming\Microsoft\usd\Default_USD
Source    : Microsoft.Xrm.Tooling.CrmConnectControl
Method    : SaveConfigToFile
Date    : 07-12-2016
Time    : 11:23:28
Error    : Object reference not set to an instance of an object.
Stack Trace    : at Microsoft.Xrm.Tooling.CrmConnectControl.CrmConnectionManager.SaveConfigToFile(Dictionary`2 configToSave)
======================================================================================================================

Microsoft.Xrm.Tooling.CrmConnectControl    Error    2    07-12-2016 11:23:28  Error Message: Exception logged by the CRM Connector control:
Source    : Not Provided
Method    : Not Provided
Date    : 07-12-2016
Time    : 11:23:28
Error    : A CRM server name is required.
Parameter name: CrmServerName
Stack Trace    : Not Provided
======================================================================================================================

Microsoft.Xrm.Tooling.CrmConnectControl    Error    2    07-12-2016 11:24:19  Error Message: Failed to Encrypt Configuration File!
Source    : mscorlib
Method    : WinIOError
Date    : 07-12-2016
Time    : 11:24:19
Error    : Recovery policy configured for this system contains invalid recovery certificate.
Stack Trace    : at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.File.Encrypt(String path)
   at Microsoft.Xrm.Tooling.CrmConnectControl.CrmConnectionManager.SaveConfigToFile(Dictionary`2 configToSave)
======================================================================================================================

Microsoft.Xrm.Tooling.WebResourceUtility    Error    2    07-12-2016 11:26:01  Web Resource Xml file not found, Looking for : msdyusd_EnglishBase
Microsoft.Crm.UnifiedServiceDesk    Error    2    07-12-2016 11:28:18  Package parts missing while downloading USD Module ( TEC_USDExternal.zip )
Microsoft.Xrm.Tooling.WebResourceUtility    Error    2    07-12-2016 11:36:19  Web Resource Xml file not found, Looking for : msdyusd_EnglishBase
Microsoft.Crm.UnifiedServiceDesk    Error    2    07-12-2016 11:38:10  Package parts missing while downloading USD Module ( TEC_USDExternal.zip )
Microsoft.Xrm.Tooling.WebResourceUtility    Error    2    07-12-2016 11:47:32  Web Resource Xml file not found, Looking for : msdyusd_EnglishBase
Microsoft.Xrm.Tooling.Connector.CrmServiceClient    Error    2    07-12-2016 11:48:19  Source    : mscorlib
Method    : HandleReturnMessage
Date    : 07-12-2016
Time    : 11:48:19
Error    : Message: The value passed for ConditionOperator.In is empty
ErrorCode: -2147220989
Trace:
Stack Trace    : Server stack trace:
   at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at Microsoft.Xrm.Sdk.IOrganizationService.Execute(OrganizationRequest request)
   at Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.ExecuteCore(OrganizationRequest request)
   at Microsoft.Xrm.Tooling.Connector.CrmServiceClient.CrmCommand_Execute(OrganizationRequest req, String errorStringCheck)
======================================================================================================================
Inner Exception Level 1    :
==OrganizationServiceFault Info=======================================================================================
Error    : The value passed for ConditionOperator.In is empty
Time    : 07-12-2016 06:18:19
ErrorCode    : -2147220989
Date    : 07-12-2016
Time    : 11:48:19
Trace    : Not Provided
======================================================================================================================
Inner Exception Level 2    :
==OrganizationServiceFault Info=======================================================================================
Error    : System.ArgumentException: The value passed for ConditionOperator.In is empty
Time    : 07-12-2016 06:18:19
ErrorCode    : -2147220970
Date    : 07-12-2016
Time    : 11:48:19
Trace    : Not Provided
======================================================================================================================
Log File 2

Microsoft.Crm.UnifiedServiceDesk    Error    2    07-12-2016 14:23:10  The Microsoft Dynamics CRM Unified Service Desk solution isn't installed on the selected CRM organization Amicus.

07-12-2016 11:28:23: Hosted Application Factory: The hosted application "Religare Connection Manager" couldn't be created. Contact your administrator.
Microsoft.Uii.Common.TypeProvider.TypeProviderException: The instance couldn't be created. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Microsoft.Uii.AifServices.AifServiceContainer.AddService[T](Type type, T service)
   at Microsoft.Crm.UnifiedServiceDesk.InteractionControl.CrmUtilControl.AddServiceToPool(Object oData)
   at Microsoft.Crm.UnifiedServiceDesk.InteractionControl.CrmUtilControl..ctor(Guid appID, String appName, String appInit)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   at System.Activator.CreateInstance(Type type, Object[] args)
   at Microsoft.Uii.Common.TypeProvider.TypeProvider.CreateInstance(TypeInfo typeInfo, Object[] args)
   --- End of inner exception stack trace ---
   at Microsoft.Uii.Common.TypeProvider.TypeProvider.CreateInstance(TypeInfo typeInfo, Object[] args)
   at Microsoft.Uii.Common.TypeProvider.TypeProvider.CreateInstance[T](TypeInfo typeInfo, Object[] args)
   at Microsoft.Uii.Csr.HostedAppLauncher.CreateWinFormApplication(ApplicationRecord app, WorkItem workItem)
   at Microsoft.Uii.Csr.HostedAppLauncher.CreateApplication(ApplicationRecord app, WorkItem workItem)
   at Microsoft.Uii.Csr.HostedAppFactory.CreateApplication(ApplicationRecord appRecord, WorkItem workItem)

Please help us to resolve this issue.

Regards,

Vaneet Kumar

Microsoft USD Application Issue : Leave this page or stay on this page error pop up

$
0
0

Error: Leave this page or stay on this page error pop up: This is again a random error which user face while working on CRM records via USD applications.

I had added following links: *.dynamics.com, *.live.com, *.microsoft.com to trusted sites but issue is not resolved completely still user face this error on random basis, may be its wrong to put it a USD specific issue.

Regards,

Vaneet Kumar

Microsoft Dynamics 365, Business edition

$
0
0
Get help on your Microsoft Dynamics 365, Business edition solutions from qualified experts in the forums, read blogs and how-to articles.

Birmingham CRM User Group News

$
0
0

Last month I attended the first meeting of the Birmingham CRM User Group. The meeting felt small but also had the vibe of a significant first step towards something larger.

We can now announce that we’ve made an important step. Our little group is now a local group linked to CRMUG UK.

We’re very excited about this news, as this will bring many benefits. I’m assuming everyone will know of the CRMUG, but for those that don’t a little background might help.

You can find out all about CRMUG by looking on their website. https://www.crmug.com/home/welcome

CRMUG is a group run by users, for users. The idea for the Dynamics CRM User Group (CRMUG) grew from the vision of a few Microsoft Dynamics® users – to connect with other users and learn firsthand the best way to leverage the software they used every day. From that initial vision to the official founding of the Dynamics CRM User Group (CRMUG), and continuing today, the mission has never wavered: to maximize the value to individuals and companies using Dynamics CRM. The vision being to engage every individual and company using Microsoft Dynamics CRM in value-added networking and knowledge sharing and to be the single most important communication channel for Microsoft to seek guidance on future development of Dynamics CRM.

We are now very busy planning our next meeting, this will be the first official event for CRMUG UK in Birmingham. It will be held in the evening of Wednesday 1st February, coffee and networking opportunities will start at 6:30pm. From 7pm there will be a chance to participate in some lively CRM related discussions with other CRM users, admins and developers.

The venue is confirmed as Greater Birmingham Chamber of Commerce, 75 Harborne Road, Birmingham, B15 3DH.

We haven’t confirmed the speakers for 1st Feb yet. If you have any topic suggestions or if  presenting interests you, please get in touch.

We will release details of the intended agenda / speakers over the coming weeks.

Registration for 1st Feb is now open. You can do it here, on the CRMUG website! The events are and will remain FREE to attend, so please register.

 Don’t miss out, click here to add this event to your Outlook calendar.


Filed under: CRMUG Tagged: CRMUG, User Group

Accounts error when loading in Outlook client, off line mode

$
0
0

I have a problem with Outlook offline mode (CRM2016 Update 1 Online, using CRM2016 Outlook client).

Contacts and custom entities are working correctly. They show off line and can be edited. Including inserting / updating notes!

But as the account form loads we get the following error and the form never displays.

Does anyone have suggestions as to possible causes?

Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: System.Web.HttpUnhandledException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #4F4BA701Detail:

<OrganizationServiceFault xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/xrm/2011/Contracts">

  <ErrorCode>-2147220970</ErrorCode>

  <ErrorDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic" />

  <Message>System.Web.HttpUnhandledException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #4F4BA701</Message>

  <Timestamp>2016-12-19T11:52:23.4854284Z</Timestamp>

  <InnerFault>

    <ErrorCode>-2147220970</ErrorCode>

    <ErrorDetails xmlns:d3p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic" />

    <Message>There was a problem while trying to set value for "SelectDefaultLanguage" parameter of the control with ID = notescontrol

One of the following may have caused this exception:

1). The property does not exist on the control or it is not public.

2). The property is not writable.

3). The property is not marked with the CrmControlParameter attribute.</Message>

    <Timestamp>2016-12-19T11:52:23.4854284Z</Timestamp>

    <InnerFault i:nil="true" />

    <TraceText i:nil="true" />

  </InnerFault>

  <TraceText i:nil="true" />

</OrganizationServiceFault>

Update invoice using Dynamics CRM workflow when its status reason is changed to Canceled

$
0
0

I have activated workflow that kept an eye on the status reason, as soon as status reason is set to Canceled the workflow sets Process execution time to Canceled Date (Custom date field). But it seems not working and from System jobs it shows that The object cannot be updated because it is read-only.


Any suggestion?


Calculate Age in CRM

$
0
0

Hi.

I play around with the new CRM Online 2015(calculated field) and try to Calculate Age that base on birthdate but could not find out.

Could you please give me an advise? Thanks!

CRM 2016 - Unified Service Desk - Multiple Pages

$
0
0

When the option "Allow Multiple Pages" in a CRM Page hosted control is selected, pages start to be openned in the same tab with the ability to switch between pages from a dropdown...but there is a problem with the multiple pages…the list of pages could end up having duplicate pages…which happens if you browse to the page multiple times…looks like USD is not capable of finding the page (with same entity type – name) and refreshing it…I also didn’t find a way to find a page and close it as we have only CloseActive and that may not be the page we are trying to reload. if anyone has a solution for this it would be greatly appreciated…’cause I’ve been looking for a while now and didn’t find anything on the subject. thanks!!

Task Flows

$
0
0

In Microsoft Dynamics 365 we have two types of Business Process Flows available, the “classic” ones we’ve had for sometime and the slightly newer concept of task flows. Task flows are utilised within the mobile client and are quite different to other business flows. In this post, I will review how task flows work and how they compare to “classic” business process flows.

Task flows have a different focus to business flows. Task flows are aimed at helping people complete smaller goals that maybe specific to their personal interactions with a customer, rather than being part of a larger company wide process.

Task flows offer guided processes to mobile users, they differ from other business processes in some significant ways, including;

  • Task flows are at a user level, meaning each process becomes unique to a user. This differs from business flows, as with those there is a concept of a stage. And the stage within a particular process is common to all users.
  • Task flows are concurrent, meaning multiple users can be running different task flows on the same record at the same time.
  • Task flows can have editable controls from multiple entities. Meaning you can edit information from multiple entities on the same page. With business flows this isn’t possible as each stage relates to a single entity.
  • Conditional branching is more flexible as it can be applied to the primary entity and any n:1 related entity. Whereas in business flows you can only branch based on the entity in the previous stage.

Note: Prior to Dynamics 365 Task flows existed but were in preview. This meant they couldn’t be included in solutions and weren’t role based. Task flows are now part of the core application and you can include them in solutions and enable for specific roles.

Using Task Flows

Before looking at how to configure task flows, let’s see one in action. Dynamics 365 ships with a few examples task flows, one of which is called “After meeting”. A common task for a mobile user will be to either create or update the details of meetings as they happen.

See below how I have used the task flow icon to show the task flows available to me.

Dynamics 365 user can also select one to two task flows from the new “My Workspace” area of the mobile client. See below that I can select “After Meeting” or “Update Contact”.

Users can decide which two task flows are shown here directly from the settings for their mobile app. (As shown below.)

Having selected “After Meeting”, a panel opens on the right-hand screen for the primary entity of the task flow. In this example, appointment. Here I can select an existing appointment or use the “+” icon to create a new one.

In the right panel the user is then given a useful dialog in which they can record the meeting detail. Notice how the fields are logically grouped under headings of Summary, Attendees and Notes.

Also, notice the “Next” button at the bottom of the screen.

In this example clicking next will do different things depending on the specific meeting. If the meeting was regarding an account, the user will confirm the account details. But if it was regarding an opportunity the next option would allow them to update the related opportunity. In my example the appointment is regarding an account, so clicking next gave me the following screen. I could then complete the task flow by selecting done or I could use the back button to return to the appointment to make further edits.

Viewing Task Flows in Settings

Task flows are maintained in the processes area of settings. (Just like business process flows.) Task flows and business flows both have the same category of “business process flow”. Out of the box it might not be immediately obvious which are which! This is simply resolved by creating a personal view that includes an additional column called “Business Process Type”.

Creating Task Flows

To create a task flow, first ensure the primary entity you want to work is enabled for business process flows and available for mobile access. You can see below that both of these options are selected in the properties on the entity.

Important Note:
I have shown the “After Meeting” task flow in this blog post. It is not possible to create other task flows on appointment! You can amend the out of the box “After Meeting” task flow but you can only have one task flow on appointment. (You can have multiple task flows on other custom or system entities.)

You create task flows in the same way as business flows. Meaning you load the processes options in settings (or from your solution) and select new. By default, the business process flow will be a classic one. To create a task flow simply select the mobile only option. (shown below).

If you are familiar with creating business process flows in Dynamics 365 you’ll find the process flow designer operates in a very similar manner. The main difference is no concept of stages exists! As an example I’ve shown the out of the box “After Meeting” task flow below.

Page

All task flows will have at least one page. A page is simply a container for the fields, labels and section labels. In the example above notice that the first page has been called “Verify Meeting Details” and that it contains multiple labels and fields as required.

To add additional pages simply drag a page into your task flow. In the example above you can see different pages for each type of regarding entity. The navigation to these pages is controlled by conditions. (More on those in a second!)

Composition

A page can include field, labels and section labels. You add these by simply dragging them into appropriate positions on your page.


Section labels are show as coloured headings, labels are black text and fields are entry fields. To demonstrate this I’ve shown one of each below.


When we add a field, several properties are defined. Including its name, source and the data field. The source can be the primary entity or any N:1 entity.

A maximum of 100 fields can be added to any task flow page. (Hopefully this will be more than enough for any mobile user!)

Tip:
It might be worth considering a limitation at this point. Say the task flow is for an appointment, when the appointment is regarding an account we can edit fields from the account. Including the primary contact field. But we cannot go any deeper. By this I mean we could not include any fields from the primary contact. (Such as job title etc.)


Conditions

Conditions allow us to add conditional branching into task flows. Typically, this will be to control which page is displayed next. A condition can be applied to any field on the primary or regarding entities included in the task flow. The details of the condition are entered in the properties tab.


Other Capabilities

From the ribbon bar on task flows we can do a number of functions, including

  • Update, this option will update the current task flow. Update will save your change and make it live. (Users will need to re-load the mobile client for the change to take effect.)
  • Validate, the task flow will be validated when you update. But you can also use this option to check your work whilst creating the task flow.
  • Deactivate, if you want to stop the task flow from running use this option.
  • Business rules, you can use business rules with task flows. These can be very useful to optionally hide / show fields, conditionally make fields mandatory etc.
  • Enable Security Roles, by default your task flow will be available to all roles. But it is possible to control which users can use this task flow by using the enable security roles option.

I hope this post has given you a good overview of task flows. Task flows are a simple feature but one that can add many benefits for mobile users. Enjoy. J


Filed under: Dynamics 365 Tagged: Microsoft Dynamics 365

Interactive Service Hub and USD

$
0
0

Hi Experts,

Currently we are using USD (Unified Service Desk) for agents, Is Interactive Service Hub is replacement for USD?. 

Can we use Interactive Service Hub for agent facing application?.

Thanks,

Microsoft Project and Project Service Automation (PSA)

$
0
0

With Microsoft Dynamics 365 we now have the “Project Service Automation” App. (PSA for short!) This is great but what if you are more familiar with updating plans directly in Microsoft Project? In this post, I will look at the capabilities of the newly released Project Service add-in for Microsoft Project.

Download & Install the Add-in

Firstly, you’ll need to download and install the Microsoft Project add-in. You can download the add-in from the link shown below.

https://www.microsoft.com/en-us/download/details.aspx?id=54299&WT.mc_id=rss_alldownloads_all

When you download the add-in you’ll need to select either the 32 or 64 bit version. Obviously, you’ll need to select the one that matches your version of MSOffice / Microsoft Project.

Once the download is completed you can run the installer you’ve downloaded. This is a pretty standard process, simply clicking next etc!

Connecting

When you open a blank Microsoft Project plan you should now notice that a “Project Services” option has been added to the toolbar.

Your first task will be to use the connect option to link up with your instance of Microsoft Dynamics 365. Clicking connect will prompt you for the url of your Dynamics organisation.

You’ll then need to enter your credentials to log into Microsoft Dynamics 365.

And then there will be a short pause whilst it connects! (Despite the screen shot below saying “Not Responding”, this process only actually takes a couple of seconds!)

Assuming this process has worked correctly the “Publish” and “Read” icons will now be enabled and you’ll be read to start using the add-in.

Incidentally, if you do need to alter your login details you can use the “Clear saved credentials” option, which you can find in settings.

Using the Add-In

You can simply download a copy of your plan from PSA in to project, if required. You can also link a Microsoft Project to allow you to maintain it in Microsoft Project and see your changes directly in Dynamics 365. And you can even load you plan into SharePoint linked to your PSA plan.

I have been experimenting with the different ways I can use this project add-in, I will describe some of them below.

Read Project Plan into Microsoft Project

The first option I tested was the ability to simply read an existing PSA plan into Microsoft Project. For this you simply open the Read option and select “PSA Project”.

You will then be presented with a list of projects that exist in PSA.

Notice that there is an option to link the project plan to Project Service Automation. I will discuss more about the implications of this later in this post.

But to simply read a copy of the plan into Microsoft Project, just select a project and click Open.

Creating a new project plan

I have found it really useful to create plans in Microsoft Project and then once I’d entered the main details entered upload them into PSA. I am guessing that many Project Managers, familiar with Microsoft Project, will find this a useful approach to creating a plan.

Simply start off creating a project plan. I did mine without resources initially, as I’d build the team in PSA later!

Below you can see that I have created a simple plan and next I use the “New PSA Project” option to create my plan in Dynamics 365.

Next I give the plan a name and optionally associate it with a specific customer.

Notice that the link project plan option is selected. If I simple wanted to use Microsoft Project to cerate the plan I could leave this option unselected. But in my case I want to resource the plan using PSA resources and also maybe make amendments, so I have opted to link the plan.

Having clicked Publish you can see that Microsoft Project “talks” to PSA and creates the plan.

After a few seconds, back in Dynamics 365, I can see my newly created project plan.

Create a team in PSA, then use in Microsoft Project

Having created my draft project plan in PSA, I wanted to build a project team.To do that, it felt most natural (to me) to build the team in Dynamics 365.

Below you can see that I have added several team members to my project.

FYI:
Notice that I have been also added as Project Manager. This happened automatically, I guess as I created the plan!

Having created my team in Dynamics 365, I returned to my plan in Microsoft Project. After refreshing my plan I was able to add the resources from my team onto tasks with Microsoft Project.

Once I’d finished assigning resources to tasks in Microsoft Project I used the publish icon, from the Project Service tab. After a short pause, I returned to Dynamics 365 to see that PSA now contained the resource allocations.

Amending a project plan in Microsoft Project

When amending a plan, you need to first consider if it is linked or not.

Once a Microsoft project plan is linked to PSA you cannot edit the work breakdown structure in PSA. (As all changes will need to be made in Microsoft Project.)

You can unlink plans as required using “Unlink” option in the Project Service tab.

Tip:
Having unlinked a project plan, if you wished to link again you can use the Read option and select to link. But be aware that any changes entered in Microsoft Project whilst unlinked would be overwritten.

Whilst a project is linked, clicking publish will write any changes made in Microsoft Project back to PSA.

Upload a Microsoft Project file into SharePoint

A really neat feature is the addition of SharePoint / Office Groups integration. I think it will be very common to want to access any related Microsoft Project plans directly from Dynamics 365.

NOTE:Before using this option, you will need to ensure that SharePoint integration has been enabled and document management enabled for the Project entity.

But once enabled simply use the Upload option.

You will get the following prompt, say “Yes”!

Then back in PSA, you can see that my Microsoft Project file is now available in the documents option.

Summary

I hope you can see that it is easy to read, created and amend plans in Microsoft Project. Plus the ability to resource plans is a neat feature. As is the ability to quickly load your plan into SharePoint.

I did find some challenges when using the “Find Resources” option with Microsoft Project. But I found the best way around that (for me) was to build my project team in PSA. (As I have described above.) I also found that actuals recorded in PSA didn’t seem to show in Microsoft Project. But I’d probably be using Microsoft Project to initially build the plan and then I’d use the timesheet functions in PSA to record progress. So this didn’t worry me!

All in all, I found the Microsoft Project add-in to be a useful addition to PSA. One that will hopefully make the process of creating and updating plans much faster and user friendly. Enjoy.
J


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

Dynamics 365 – Editable Grids

$
0
0

Editable grids were a major part of the latest Dynamics 365 release, in this post I will look at their capabilities and show you how to configure in your application.

You may be aware that 2016 release of Dynamics CRM included the ability to enable custom controls for tablets and phones. Including mobile friendly input controls like linear sliders, arc knobs, flip switches etc. If you aren’t aware of these custom controls …. I created this video to highlight their capabilities.

This post will be one of two! In this first post I will describe the basics of editable grids, including how to use them and how to configure them. Then in a second post I will dive a little deeper looking at how to customize their behaviour with JavaScript.

Using Editable Grids

The following features are supported with editable grids;

  • In line editing
  • Sorting
  • Grouping
  • Filtering
  • Pagination
  • Calculated and Rollup Fields
  • Run time resize/move columns
  • Auto Save / Manual Save
  • Toggle between read only and editable grid
  • Filtered lookups
  • Chart panel interaction
  • Command bar interaction
  • Business Rules (Including, show error messages, set field value, set business required, set default value, lock or unlock)
  • JavaScript (I will dive deeper into this in my next post!)

The best way to show you editable grids in action is to demonstrate them with a video.

Enable Editable Grids

I’ve already mentioned 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. (I will describe these later in this post.) But just adding the grid like this is enough to get it working!

Enable on sub-grids

It’s also possible to enable editable sub-grids on forms. The process is similar to enabling them on “home” grids. Simply navigate to the sub-grid control on the form in customizations, then use the controls option.

You can use the “Add Control….” link as already shown, or if the entity is already enabled for sub grids you and created an editable grid using the settings for the home views as a template.

Once added the options for sub grids are identical to those on the home grids.

Group By

A new addition in editable grids is the ability to group results. This feature is enabled by default but can be turned off when required. (Although generally speaking I imagine you’ll leave this feature enabled!)

Below you can see that I can group opportunities by any column on the grid.

To disable grouping simply “tweak” the properties on the editable grid control. Selecting the “edit” icon shown below will allow you to enable / disable grouping.

Notice that this is simply an option to enable or disable the grouping. I don’t have any capability to select which columns are available in the group by drop down.

Lookup Views

Lookups on grids can be filtered to only show related record. It is also possible to enable users to override this filtering if required. The example below will show only related contacts in the primary contact field on account.

Selecting the “edit” icon lets us control the properties …

Note:
Filtering lookups is by view! When you first select the “Add Lookup” option you’ll need to select the view this lookup will be applied to. Meaning you can have different logic on different views. The example screen shots below related to the “Active Accounts” view, whilst the lookup example below will be applied to the “My Active Accounts” view. This is great in terms of flexibility but if you have the same column repeated on many views you will need to add the lookup option is all of your views.

Nested Grids

Firstly, I should remind you that nested grids only apply to the mobile client. (At least in the current release of Dynamics 365!)

Tip:
It is actually possible to define a nested grid but only have the editable grid available to the web client. This doesn’t create an error but also doesn’t achieve anything!

When defining a nested grid, we have two options to edit! (See below)

The first option we define is to set which entity to open and which view to use. Meaning we can only have one type of nested grid!

Consider accounts, it might be useful to have a nested view of opportunities. In another circumstances a nested view of cases might be more helpful. You can do either but you can’t do both at the same time!

Having defined the entity and view to see in our nested grid we use the “Nested grid parent ID” option to define the binding between our primary entity and the nested entity. In the example of opportunities for accounts, we’d bind to the “parentaccountid” field on the opportunity.

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
    • 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 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!)

I love these new editable grids! In my next post I will build on this information and explain some further concepts, around using JavaScript.
J


Filed under: Dynamics 365 Tagged: Dynamics 365, Microsoft Dynamics 365

Dynamics 365 – Editable Grids JavaScript Example

$
0
0

In an earlier post, I described how to use and configure editable grids in Dynamics 365. In this post I intend to dive a little deeper to look at how to add JavaScript.

If you missed my earlier post, you can view it here.

Note:
Before I start to explain JavaScript, I want to point out that entity level business rules will apply to editable grids. The example I’ll give here could probably have been achieved with a business rule. In fact, my preferred approach will be business rules. But at some point, you’ll find something that can’t be achieved with “just” a business rule. That is when you’ll need to turn to JavaScript.

When working with editable grids we have three events available to us that JavaScript can be linked to ….

  • OnRecordSelect
  • OnChange
  • OnSave

Hopefully the meaning of these events is pretty self-explanatory!

How to add code to editable grid events

In my previous post, I explained how to enable editable grids. Once you have a grid enabled you can then link JavaScript! In customizations, I have opened my entity and added the “Editable Grid” control, now notice that I have an events tab on my entity.

You can see below that under form libraries I have added a JavaScript file. In my simple example I will run some JavaScript on the opportunity entity. So, I called the form library “OpportunityJavaScript”.

Having created the JavaScript web resource, I need to associate functions to field / events on the editable grid. (Note: We’ll look at what the code for those functions looks like a little later in this post!)

In the event handlers, I have selected the field that I want to work with. In my simple example I have used the probability field. Next I have selected the event. Options include “OnChange”, “OnSave” and “OnRecordSelect”. I have gone for “OnChange”.

Finally, I used the “Add” icon to say what function from what library I wanted to run.

Notice that I have called my function “Grid_And_Form”! There is a reason for this. In my example I have some simple code that will make the probability 80% if the user enters anything higher than 80. (We can never be 100% sure we’ll win an opportunity!)

I wanted my code to run on the form and also on the editable grid. (I expect this requirement will be quite common.)

I hate repeating code. Partly out of wanting to follow good coding practice but mainly because like lots of developers I am very lazy, I only want to do anything once. Therefore, I’ve structured my code to work both with the editable grid and the form. (More on that later. J)

One important point is that to make my code common to the grid and form I need to know the execution context. So, I must set the “Pass execution context as first parameter”.

My Simple Code

I’ve already mentioned that you can’t use Xrm.Page commands on editable grids. In my example I’ll want to set the probability value. On the form something like Xrm.Page.getAttribute(“closeprobability”).setValue(80) would do the trick. But this won’t work on editable grids.

Instead I need to use a new method that has been released with Dynamics 365 (getFormContext).

getFormContext returns a reference for either the form (Xrm.Page) or the editable grid (GridRow). Meaning we can now have code that will work in both situations.

function Grid_And_Form(executionContext) {
    var entityObject = executionContext.getFormContext().data.entity;
    var probAttr = entityObject.attributes.getByName("closeprobability");
    var prob = probAttr.getValue();
    if (prob >= 80) {
        probAttr.setValue(80);
    }  // End if
} // End function

This same code called from the form and the grid worked perfectly. (Not forgetting to select the option to pass execution context.)

NOTE: I have found one combination that gave an error! This same JavaScript worked on the web client and mobile client. (Which was nice!) Until I tried to edit an opportunity in a nested grid from account. I suspect this might be a product issue that will hopefully be resolved soon.

Granted this is a simple example but I hope you can easily adapt it to your purposes. Enjoy.
J


Filed under: Dynamics 365 Tagged: Dynamics 365, Javascript, Microsoft Dynamics 365

CRM 2016 (On-prem) FieldOne/Field Service Account Relationships

$
0
0

Can I implement a many to many relationship between Billing Accounts and Service Accounts?

 

Due to numerous billing scenarios I would like to have a many to many relationship between customer accounts and service accounts. Based on having a single Service Account for each physical address that a customer may have and change the Billing Account to reflect the billing scenario for a particular Case/Work order. Is this possible?

Set Lookup value in USD Action Call ?

$
0
0

Hi ,

I need to set the lookup value during the Creation of Case in Action Call for USD.

LogicalName=incident

customerid=EntityReference([[$Context.InitialEntity]],[[$Context.Id]])

customeridname=[[$Context.firstname]] [[$Context.lastname]]

new_contactid=EntityReference([[$Context.InitialEntity]],[[$Context.Id]])

new_contactidname=[[$Context.firstname]] [[$Context.lastname]]

new_contactid value is not setting , above customerid is working and setting value in the lookup which is already prewritten in the Action Call.

I need to copy the contact lookup from the USD context but it is not working for new_contactid. Any USD Expert know the scriptlet to Set the lookup value in USD ?

New Year’s Eve 2016

$
0
0

Its New Year’s Eve!

A perfect time to review 2016 and ponder what 2017 has in store.

Almost exactly 12 months ago, I published a post listing my top ten blog posts for 2015. Back then I’d been writing my CRM blog for about 4 months and was pretty happy with how it was going. I’d clocked up just over 7,000 views. At the time, I was very happy with that.

I was happy with 7,000 views in 2015. In 2016 my blog has achieved over 210,000 views. (I’m hoping for 500,000+ in 2017!)

During 2016 my blog has been viewed in 148 countries. The geographical spread maybe an indication on where Dynamics 365 and USD are being used. Unsurprisingly the United States is in number one slot. With India, UK, Australia and Canada not far behind. Interestingly if I sum up the totals for European countries, Europe almost doubles the total for the United States. Countries like Spain, Germany, Netherlands and France all score well.

In 2015 I published 139 blog posts. In 2016 I managed 279 blog posts. (Roughly 23 per month.) Out of those 414 posts what have been my top posts in 2016?

PositionPostComment
1MB2-712 Revision GuideBy far my most popular post!
2MB2-713 Revision GuideRevision guide again! This time for the Sales exam.
3USD – The BookMy ever-changing guide to USD. A lot of my time goes into this, so I’m glad to see it high in the “charts”.
4MB2-714 Revision GuideYet another revision guide! This time for the customer service exam.
5MB2-712 – Introduction
6Business Process Flows – JavaScript
7JavaScript – Prevent Save
8MB2-712 – Configuring CRM
9USD – CTI Generic Listener
10Open Forms from JavaScript

Obviously becoming an MVP has been the high spot of my year. Getting the award from Microsoft has really given me an incentive to do more in 2017. Thankyou Microsoft.

So, what does 2017 have in store?

I’m committed to continuing my blog in 2017. Although, I’m also starting to get involved with various other activities. This additional “work” will no doubt cut into my spare time, so expect fewer posts per month in 2017.

I originally created my blog to help me learn about CRM and to also share my knowledge. Creating blog posts continues to be a major part of my own personal development!

With Microsoft launching Dynamics 365, I’m sure I’ll have lots of new things to learn and blog about in 2017.

I would like to end this post by saying a massive thankyou to anyone who regularly reads my blog.

Happy New Year.
J


Filed under: Uncategorized

In Field service Quantity OnHand in product not populating

$
0
0

Hi 

I am new to Dynamics CRM. I have used Field service in my project. In the field service product there is a field called quantity on hand.  I have used inventory adjustment and populating the Quantity onHand in product inventory. But product entity quantity onhand is not populating those value.

How should I synch product inventory quantity on hand to quantity on hand product

Viewing all 1616 articles
Browse latest View live