Creating empty XRM Environment in PowerApps

Good one !!

There was a one of the seminar on the same topic in CRM Saturday-Sydney by Guy Riddle.  It was awesome. As well, I was looking for that process, and this is the one.   Thanks !!

Continue reading “Creating empty XRM Environment in PowerApps”

10 Things in Microsoft Flow that isn’t in Azure Logic Apps

Reshared blog, here is the original one.

Sorry about the catchy headline.  I will start by saying I am perfectly ready to see a response post containing 20 things in Azure Logic Apps that we wish are in Microsoft Flow.  The point of this post isn’t about whether one product is better than another product, it is simply to highlight the very-intentional design differences and how as users we have access to both and should make our choice accordingly.

If a comparison must be made, then I think in reality, they are better seen as two siblings – LogicApps is the big sibling with more features, Flow piggybacks LogicApps, but itself has several unique tricks and sometimes, features do move between them.  I love both teams & products.

To best describe Flow to an Azure / Logic Apps person, Flow is Logic Apps + power-user / human workflow-focused workloads, combined with a mobile experience and better in-product integration.  As a result, it caters to a whole different set of scenarios that Logic Apps isn’t focused on.

1. Resource-Owned Flows

Continue reading “10 Things in Microsoft Flow that isn’t in Azure Logic Apps”

Document creation in MSD 365

Many times we need to create document in MSD CRM and or MSD 365, ex. Quote. In earlier CRM version it was not available out of the box. But as part of MSD CRM 2016 and MSD 365 its has been introduced out of the box, in few clicks we cam create document or automate the process with the help of out of box workflow.  Continue reading “Document creation in MSD 365”

What’s new for Customer Engagement developer documentation in version 9.0


With the release of Dynamics 365 (online), version 9.0, there are a lot of changes in our developer documentation:

Continue reading “What’s new for Customer Engagement developer documentation in version 9.0”

Configure the schedule board for resource availability

Resource Scheduling1
Get the correct resource

The Dynamics 365 for Field Service schedule board provides an overview of resource availability and bookings you can make. Before you use the schedule board, it is important to set up the views and filters to your preference.

Applicable to Dynamics 365 (online) ==> Field Service, version 9.x


To use the schedule board booking functionality, geocoding, and location services, you need to turn on maps.

  1. From the main menu, click Resource Scheduling > Administration.
  2. Click Scheduling parameters.
  3. Open the record and scroll down to the Resource Scheduling Optimization section.
  4. On the Connect to Maps field, choose Yes.
  5. Accept the terms and save the record.

Continue reading “Configure the schedule board for resource availability”

Schedule anything with Universal Resource Scheduling

This slideshow requires JavaScript.

Schedule anything in Dynamics 365 using Universal Resource Scheduling. You can enable scheduling for any entity including custom entities.

For example, you can enable scheduling for the opportunity form and schedule marketing visits for your opportunities. You can also do this for the case form and schedule time to work on cases.

This is applicable for Sales, Customer Service, Field Service, Project Service Automation Continue reading “Schedule anything with Universal Resource Scheduling”

Colourful MSD 365 Views/Grid

new things

Many times client ask to make views colourful based on some condition in MSD 365.

In earlier MSD CRM version, it was big and totally unsupported change. But now we can do the same thing in a supported way.

Here we need to create JavaScript library for this single function, as it won’t work if the same library has any other function (it’s strange, but happened with me). Well, here are the steps for it

  1. Create attribute or use existing option set, e.g. priority
    1. Option set text: Low, value: 15
    2. Option set text: Normal, value: 14
    3. Option set text: Critical, value: 12
    4. Option set text: Blocker, value: 11
    5. …and so on…
  2. Get colour images of 16X16 for each type e.g.
    1. Option set text: Low ==> Image: soft_Low
    2. Option set text: Normal ==> Image: soft_Normal
    3. Option set text: Critical ==> Image: soft_Critical
    4. Option set text: Blocker ==> Image: soft_Blocker
    5. …and so on…
    6. please no that its should be fine with all image type but i tried with PNG only 
  3. Create a JavaScript library in system keep below function
  4. Register this function on the view ==> Attribute (Priority). Here is the post for how to execute JavaScript on MSD 365 views.
  5. It will look like below …

colourful view

6. well, here is JavaScript function for your reference ….

//exe on incident view
function displayIconTooltip(rowData, userLCID) {

//alert(“..yes, its View Script..!!”);
var str = JSON.parse(rowData);
var col_data = str.soft_priority_Value; // this is the attribute name from system
var imgName = “”;
var tooltip = “{” + col_data + “}”;

switch (col_data) {
case 16: //it is optionset value
imgName = “img_VeryLow”;  // it’s image name from system
tooltip = “Very Low”;
case 15:
imgName = “img_Low”;
tooltip = “Low”;
case 14:
imgName = “img_Normal”;
tooltip = “Normal”;
case 13:
imgName = “img_High”;
tooltip = “High”;
case 12:
imgName = “img_Critical”;
tooltip = “Critical”;

case 11:
imgName = “img_Blocker”;
tooltip = “Blocker”;

imgName = ” “;
tooltip = “N/A”;

var resultarray = [imgName, tooltip];
return resultarray;


7. This same configuartion will work for MSD Gris as well..

color grid


  1. Please note that this function will execute on each record one by one, so it may affect the performance.
  2. This configuration won’t work for Editable Grid.





JavaScript execution on View

new things

While working on MSD CRM or MSD 365, developer have to work with JavaScript and need to do a various thing with it on either of system.

Well, writing and executing it on forms it very straight forward but what about executing it on any View and do some stuff?

Doing this in earlier version was very big task and it was completely unsupported way.  But now Microsoft introduced it in supported way and its JavaScript configuration for views is as simple as JavaScript configuration for forms.

Well, this is exciting, here is the way for that configuration,

  1. open the view, where you want do some stuff with JS
  2. double click or click on ‘Change Properties’ button after selection of particulate column, ref below screen shot…..
  3. js on view 1
  4. here you can see new thing on the pop-up
    1. Web Resource lookup
    2. Function name text box
  5. Ref below screen shot…..
  6. js on view 2
  7. Browse you web resource for the system
  8. Provide you function name to execute on the view.
  9. Ref below screen shot…..
  10. js on view 3
  11. That’s it.

Thanks!! 🙂

Deprecation in Customer Engagement in Dynamics 365


Many changes are done in new update of Dynamics 365, here are those  Continue reading “Deprecation in Customer Engagement in Dynamics 365”

Important changes coming in Dynamics 365 Customer Engagement

The announcements and deprecations described in this topic apply to Dynamics 365 Customer Engagement as of the July 2017 update. Administrators and IT professionals should use this information to prepare for future releases of Dynamics 365. Customer Engagement refers to the applications that make up the CRM portion of Dynamics 365, which includes the Sales, Customer Service, Field Service, and Project Service Automation applications.+

“Deprecated” means we intend to remove the feature or capability from a future major release of Dynamics 365. The feature or capability will continue to work and is fully supported until it is officially removed. This deprecation notification can span a few years. After removal, the feature or capability will no longer work. We are notifying you now so you have sufficient time to plan and update your code before the feature or capability is removed.+

For information on past deprecations, see:+


Dynamics 365 for Outlook (Outlook client) is deprecated

Dynamics 365 App for Outlook, introduced with Dynamics CRM 2016 (version 8.0), is our most up-to-date offering for pairing Dynamics 365 with Microsoft Outlook. With Dynamics 365 App for Outlook, you can see contextual information from Dynamics 365 right inside your Outlook Inbox. With a single click, you can link an Outlook email message or appointment to a specific Dynamics 365 record. Dynamics 365 App for Outlook works together with server-side sync.+

As such, the legacy Outlook add-in—Dynamics 365 for Outlook—is deprecated with the July 2017 update for Dynamics 365 (online) and will be removed in a future major release. This deprecation includes Offline mode and synchronization in Dynamics 365 for Outlook.+

More information:+


Service scheduling in Dynamics 365 for Customer Service is deprecated

The Unified Resource Scheduling solution is included with Dynamics 365 for Field Service. With this solution, you can automatically set up the system to schedule multiple booking requirements on a recurring basis. This minimizes overall travel time and maximizes efficient use of all resources. It takes many constraints into account, such as resource availability, skills required, working hours, duration, and time windows to optimize the schedule.+

The existing service scheduling functionality using the Service activity is deprecated and will be removed in a future major release. Service scheduling features will be included in the Unified Resource Scheduling solution. This solution integrates seamlessly with Dynamics 365, and will work with Dynamics 365 for Customer Service. The Unified Resource Scheduling solution will provide feature parity with the existing service scheduling feature.+

Existing service scheduling users will be provided advance notice for a timebound migration to the new service-scheduling capabilities.+

More information: Help & Training: Use Resource Scheduling Optimization to schedule multiple booking requirements on a recurring basis+

Dialogs are deprecated

You can use a Dialog process to create an interactive step-by-step data entry form that requires user input to start and run to completion. When you start the dialog process, a wizard-like interface is presented; users make selections or enter data as they progress through each page of the wizard.+

Dialogs are deprecated and are replaced by mobile task flows (available as of the December 2016 update), and business process flows. Both task flows and business process flows will continue to evolve to make the transition easier.+

Usage of Parature knowledgebase as the Dynamics 365 knowledge management solution is deprecated

Usage of Parature from Microsoft knowledgebase as the Dynamics 365 knowledge management solution is deprecated. This feature is replaced by Knowledge Management features in Dynamics 365.+

The Knowledge Solution setting in the Knowledge Base Management Settingsdialog box, which provides a connection between Dynamics 365 and Parature from Microsoft, will be removed in a future major release of Dynamics 365.+

Knowledge Base Management Settings dialog +

Project Service Finder app is deprecated

The Project Service Finder App, available for use with Dynamics 365 for Project Service Automation, is deprecated. The legacy application will be supported for associated legacy Project Service Automation releases in accordance with Microsoft’s Modern Lifecycle Policy. The functionality available through this app will be available in a future release of Dynamics 365 in the Dynamics 365 for Project Service Automation application.+

Contracts, Contract Line Items, and Contract Templates entities are deprecated

The Contracts, Contract Line Items, and Contract Templates entities are deprecated and will be removed in a future major release of Dynamics 365. This functionality has been replaced by entitlements in Dynamics 365 for Customer Service.+

Standard SLAs in Dynamics 365 for Customer Service are deprecated

Standard service level agreements (SLA Type field is set to Standard) are deprecated and will be removed in a future major release of Dynamics 365. Standard SLAs are replaced by enhanced SLAs. More information: TechNet: Enhanced service level agreements+

Relationship Roles are deprecated

Relationship Roles (Settings>Business Management>Relationship Roles) are deprecated and will be removed in a future major release of Dynamics 365. This feature is replaced by Connection Roles. More information: Help and Training: Create connections to view relationships between records.+

Mail Merge is deprecated

In Dynamics CRM 2016 (version 8.0), we introduced server-side document generation using Word and Excel templates. You can use these templates to provide standardized documents or customized data analysis for your organization.+

Mail merge from previous versions is deprecated. This includes the mail-merge Word add-in as well as mail-merge templates (Settings>Templates>Mail Merge Templates).+

More information: Help & Training: Create Word and Excel templates from Dynamics 365 data+

Announcements are deprecated

Announcements (Settings>Administration>Announcements) are deprecated and will be removed in a future major release of Dynamics 365.+

Ready-to-use business processes available through Add Ready to Use Business Processes setting are deprecated

Ready-to-use business processes available through the Add Ready-to-Use Business Processes setting (Settings>Data Management>Add Ready-to-Use Business Processes) are deprecated and will be removed in a future major release of Dynamics 365. You can find ready-to-use business processes on Microsoft AppSource.+

Some client APIs are deprecated

The following client APIs are deprecated in the current release to reorganize the Xrm client API object model to better align with the need of using the same client scripts without having to change them based on the context or the client (web client or the new Unified Interface) where they run. You should plan to use the new client APIs mentioned in the Replacement Client API column instead of the deprecated ones. The deprecated client APIs will continue to be available and supported until they are officially removed from a future major release of Dynamics 365.+

Deprecated Client API Replacement Client API Comments
Xrm.Page Forms: ExecutionContext.getFormContext Commands: Xrm.Page is the primary form context. If a script is run on a secondary context (grid row, quick form, related entity) then Xrm.Page will be for the wrong form context. By using alternate methods of getting the form context we allow the same script to be used without modification in all contexts.
Send it as the PrimaryControl parameter
Xrm.Page.context Xrm.Utility.getGlobalContext Allows access to the global context without going through the form context.
Xrm.Page.context.getQueryStringParameters The API will make retrieval of non-entity bound data consistent across entity forms, metadata-driven dialogs, and task-based flows. The data will be a combination of custom values sent using the query string and what was specified in the parameters in the openForm(), openQuickCreate(), or openDialog methods.
Xrm.Page.context.getTimeZoneOffsetMinutes globalContext.userSettings.getTimeZoneOffsetMinutes Moved to globalContext.userSettings
Xrm.Page.context.getUserId globalContext.userSettings.userId Moved to globalContext.userSettings
Xrm.Page.context.getUserLcid globalContext.userSetings.languageId Moved to globalContext.userSettings
Xrm.Page.context.getUserName globalContext.userSettings.userName Moved to globalContext.userSettings
Xrm.Page.context.getUserRoles globalContext.userSettings.securityRoles Moved to globalContext.userSettings
Xrm.Page.context.getIsAutoSaveEnabled globalContext.organizationSettings.isAutoSaveEnabled Moved to globalContext.organizationSettings
Xrm.Page.context.getOrgLcid globalContext.organizationSettings.languageId Moved to globalContext.organizationSettings
Xrm.Page.context.getOrgUniqueName globalContext.organizationSettings.uniqueName Moved to globalContext.organizationSettings Use the saveOptions object instead of the string parameter. No change in the method, but use “typename” instead of type for lookup attributes.
GridRow.getData GridRow is essentially a form context. This change unifies the interface of GridRow with formContext.
GridRowData.getEntity GridRowData.entity GridRowData is form data. This change unifies the interface of GridRowData with formContextData.
Xrm.Mobile.offline Xrm.WebApi.offline Moved the offline-related methods under Xrm.WebApi.offline
parent.Xrm Earlier: An HTML web resource may interact with the Xrm.Page or Xrm.Utility objects within the form by using parent.Xrm.Page or parent.Xrm.Utility. Now: parent.Xrm.* will work if the HTML web resource is loaded in a form container. For other places, such as loading an HTML web resource as part of the SiteMap, parent.Xrm.* won’t work.
addOnKeyPress Use a custom control built using the new custom control framework
removeOnKeyPress Use a custom control built using the new custom control framework
showAutoComplete Use a custom control and corresponding UI
hideAutoComplete Use a custom control and corresponding UI
Xrm.Utility.alertDialog Xrm.Navigation.openAlertDialog The new signature is consistent with other APIs (openForm) and takes a new set of parameters for flexibility.
Xrm.Utility.confirmDialog Xrm.Navigation.openConfirmDialog() The new signature is consistent with other APIs (openForm) and takes a new set of parameters for flexibility.
Xrm.Utility.isActivityType Xrm.Utility.getEntityMetadata The isActivityType method is synchronous so it was suitable for ribbon rules. However, the replacement method, getEntityMetadata, is asynchronous, and is not suitable for ribbon rules.
Xrm.Utility.openEntityForm Xrm.Navigation.openForm Moving navigation actions to Xrm.Navigation
Xrm.Utility.openQuickCreate Xrm.Navigation.openForm Moving navigation actions to Xrm.Navigation
Xrm.Utility.openWebResource Xrm.Navigation.openWebResource Moving navigation actions to Xrm.Navigation Note: This API returns VOID in Unified Interface.

EntityMetadata.IsInteractionCentricEnabled property is deprecated

All entities supported in the Unified Interface are now enabled for the interactive experience in the new Customer Service Hub app. This implies that the EntityMetadata.IsInteractionCentricEnabled property, which indicates whether an entity can be enabled for interactive experience, is no longer relevant. The corresponding setting for this property in the Customization tool, Enable for interactive experience, is removed in the current release, and the EntityMetadata.IsInteractionCentricEnabled property will be removed from the future version of Dynamics 365 SDK for Customer Engagement.+

Silverlight (XAP) web resource is deprecated

The Silverlight (XAP) web resource is deprecated on the web client, and is not supported on the new Unified Interface introduced in the July 2017 update for Dynamics 365 (online). Instead of Silverlight web resources, you must use custom controls created using the Custom Control Framework (CCF) or HTML web resources with HTML5 to create UI components to visualize and interact with data. The ability to use CCF to create custom controls is introduced as a preview feature in this release.

Continue reading “Important changes coming in Dynamics 365 Customer Engagement”