JS: How to get the originating record reference in the form script of the Quick Create Form
Sep16

JS: How to get the originating record reference in the form script of the Quick Create Form

Just imagine that you need to define the context in which “Quick Create Form” was opened and depending on the context – to do some additional operations. In this short post I provide supported code you can use to define it. Create JavaScript webresource and add following code inside: [crayon-5f61756fa4e98564993926/] Add this webresource to the … Continue Reading Andrew Butenko’s Article on their blog JS:...

Read More
PCF: Adding external handlers to controls
Aug31

PCF: Adding external handlers to controls

After I published the initial version of my PCF Control Toolkit I was asked how I was able to use external JS files possible in one of the controls. In this post, I decided to provide follow along steps to enable the same possibility in controls you develop and demonstrate the approach on the example … Continue Reading Andrew Butenko’s Article on their blog PCF: Adding external handlers to controls After I published the...

Read More
Development of custom Html/JS Webresources with help of modern frameworks
Apr22

Development of custom Html/JS Webresources with help of modern frameworks

As you may know, Dialogs have been deprecated and are going away. I have a few customers who’ve asked me to replace their existing dialogs with something that would allow them to get the same result without loses in functionality. Microsoft recommends 2 techniques to replace Dialogs – BPF and Canvas Apps (embedded or opened … Continue Reading Andrew Butenko’s Article on their blog Development of custom Html/JS...

Read More
Populate Regarding and Activity Party Fields in the UCI Interface
Apr17

Populate Regarding and Activity Party Fields in the UCI Interface

There are a few different approaches developers used to prepopulate the “Regarding” and “Activity Party” fields of activities: The “Microsoft” way – the way the Classic UI worked to prepopulate fields – usage of undocumented parameters passed through the url and different variations around it. From Microsoft’s perspective this approach is unsupported. I’ve published 2…...

Read More
Open proper form based on record’s data – UCI way
Apr14

Open proper form based on record’s data – UCI way

A cool feature of the 2011 CRM version was the possibility to have multiple forms for the same entity. That feature is awesome but it has one drawback – it’s not possible to create some kind of dependency between the form to use in the context of data. Among developers, there were a few ways … Continue Reading Andrew Butenko’s Article on their blog Open proper form based on record’s data – UCI way A...

Read More
What’s new in D365 2020 Wave 1 release for front-end developers
Mar09

What’s new in D365 2020 Wave 1 release for front-end developers

There are a lot of different blog posts and video reviews of features available as a part of the Dynamics 365 2020 Wave 1 release. I played with this release a bit and found 2 client-side code enhancements that can be interesting (or even useful) for developers. I wrote that Xrm.Navigation.navigateTo can be used to … Continue Reading Andrew Butenko’s Article on their blog What’s new in D365 2020 Wave 1 release for...

Read More
Xrm.Navigation.navigateTo – gotchas, tricks and limitations
Dec23

Xrm.Navigation.navigateTo – gotchas, tricks and limitations

Here are ways that were used by developers to show Modal Dialogs: Xrm.Internal.openDialog Alert.js Custom Dialogs that used different frameworks like jQuery UI Dialog or similar But the main and common issue of options available was that those approaches can’t be considered as supported. And it stayed the same for years until Microsoft introduced Xrm.Navigation.navigateTo … Continue Reading Andrew Butenko’s Article...

Read More
Xrm.Utility.lookupObjects: Episode 3: The UCI strikes back
Oct21

Xrm.Utility.lookupObjects: Episode 3: The UCI strikes back

Today was the last day of the North America UGSummit. It was my 3rd UGSummit and I’m already prepared to pack my bags to travel to next year’s UGSummit in Nashville, TN. I like it a lot for many reasons – reconnecting with my MVP Family, thought-provoking sessions, networking, and the “CRMUG Medics” booth. For … Continue Reading Andrew Butenko’s Article on their blog Xrm.Utility.lookupObjects:...

Read More
Refreshing the ribbon – form vs grid – Andrew Butenko’s Blog
Apr16

Refreshing the ribbon – form vs grid – Andrew Butenko’s Blog

So today my colleague experienced issue refreshing grid of the grid. According to SDK formContext.ui.refreshRibbon had to to the trick but it did not work. After some digging and googling I found an answer – there is a global function using which it is possible to refresh the grid – refreshRibbon so here is tip for you: Use formContext.ui.refreshRibbon();

Read More
Installing D365CE 9.0 – step by step instruction – Andrew Butenko’s Blog
Jan09

Installing D365CE 9.0 – step by step instruction – Andrew Butenko’s Blog

Microsoft released on-premise version of Dynamics 365 for Customer Engagement a month ago. In this post I share experience I got during installation. I used “single-box” server where I installed Windows Server 2016 with AD Controller, DNS and WebServer roles and SQL Server 2016 SP2. Don’t use this approach in productive environment because it’s not supported to install D365CE… Continue Reading Andrew Butenko’s Article on...

Read More
How to make 9.0 Classic Client a bit cleaner – 2 – Andrew Butenko’s Blog
Jan08

How to make 9.0 Classic Client a bit cleaner – 2 – Andrew Butenko’s Blog

In one of my previous posts I played with layout of new WebClient. Idea of this post I got from question was asked on CrmUG forum – is it possible to remove big gray areas under sections? I played a bit and found a way: Add following code to run on form load and that should do the trick. function reformatForm() { try… Continue Reading Andrew Butenko’s Article on their blog

Read More
Show ribbon button depending on Application running – Andrew Butenko’s Blog
Jan07

Show ribbon button depending on Application running – Andrew Butenko’s Blog

Several days back I saw an email from Steve Mordue MVP asking if it is possible to filter ribbon elements based on application like it’s implemented for entities, views and forms. Answer was that at the moment there is no easy way to do it. In this post I will help Steve to resolve his issue using JavaScript and Ribbon Workbench. First of all to define what application is running

Read More
My YouTube channel – Andrew Butenko’s Blog
Dec26

My YouTube channel – Andrew Butenko’s Blog

Leave a Reply Cancel reply Your email address will not be published. Required fields are marked * Comment Name: * Email * Website Notify me of follow-up comments by email.Notify me of new posts by email. Continue Reading Andrew Butenko’s Article on their blog

Read More
How to use Xrm.Utility.getResourceString in Html WebResources – Andrew Butenko’s Blog
Dec18

How to use Xrm.Utility.getResourceString in Html WebResources – Andrew Butenko’s Blog

I saw several threads on community forums that state “Xrm.Utility.getResourceString” functionality doesn’t work in Html webresources. I decided to spend some time digging to find out why it doesn’t work and how to make it work. During investigation I found out that Html window missed several objects that were available on regular entity form. Unfortunately… Continue Reading Andrew Butenko’s Article on their...

Read More
Data migration from ground to cloud – my experience – Andrew Butenko’s Blog
Dec14

Data migration from ground to cloud – my experience – Andrew Butenko’s Blog

During last 12 month I participated in several migration projects from ground to cloud. In this post I will share my experience migrating customizations and data. First recommendation – if your instance is eligible for FastTrack – don’t even think regarding other options. There will be no need to develop migration packages, map users, original data audit logs will stay in-place,… Continue Reading Andrew Butenko’s Article...

Read More
Html Webresource, Classic UI vs UCI – story of broken functionality
Dec07

Html Webresource, Classic UI vs UCI – story of broken functionality

This morning started for me from bug I found really interesting. Product (custom visualization of data we did using Html/JS webresource developed for customer) didn’t work as it should on the UCI. The same time everything worked fine on the Classic UI Client. My investigation led to scary fact – OOB Api (even in your … Continue Reading Andrew Butenko’s Article on their blog Html Webresource, Classic UI vs UCI...

Read More
HowTo send record Url pointing to specific Model Driven Apps
Dec05

HowTo send record Url pointing to specific Model Driven Apps

Model Driven Apps were released as a part of 8.2 release (and were called just Apps that time). It’s really cool feature that allows you to build role-tailored applications that have functionality required for specific role. What is available through UI unfortunately is not available through workflows – there is no possibility to define specific … Continue Reading Andrew Butenko’s Article on their blog HowTo...

Read More
How to Retrieve Duplicates using WebApi
Dec03

How to Retrieve Duplicates using WebApi

In this post I provide 2 ways to retrieve duplicates – using plain JS way and with usage of Xrm.WebApi namespace that was introduced as a part of 9.0 release. So here is plain JS: [crayon-5d16ad0646a97950720616/] And here is Xrm.WebApi version: [crayon-5d16ad0646a9d889705896/]   Continue Reading Andrew Butenko’s Article on their blog How to Retrieve Duplicates using WebApi In this post I provide 2 ways to retrieve...

Read More
Showing ribbon button based on the result of async operation – Andrew Butenko’s Blog
Nov13

Showing ribbon button based on the result of async operation – Andrew Butenko’s Blog

var AccountRibbon = (function () {     //this variable stores if async operation was already completed    var isAsyncOperationCompleted = false;    //this variable stores the result – if button enabled or not    var isButtonEnabled = false;     function IsButtonEnabled(formContext) {        //If async operation was already completed I just return the result of it

Read More
Pass DateTime parameters to set field record values – Andrew Butenko’s Blog
Nov08

Pass DateTime parameters to set field record values – Andrew Butenko’s Blog

Today I got requirement to open new record form with prepopulated DateTime field. This article describes how to pre-set Date field: The following sample sets the Est. Close Date field for a new opportunity to January 31, 2011. The unencoded value for the extraqs parameter is “estimatedclosedate=01/31/11”. No single word about time component. Luckily I found a way to make it work…. Continue Reading Andrew Butenko’s Article...

Read More

How to make 9.0 Classic Client a bit cleaner – Andrew Butenko’s Blog

At the moment I do migration for one of customers from 8.2 ground to 9.0 cloud. I migrated all the customizations and customer was not satisfied with layout of updated classic 9.0 client. The biggest complain was related to huge whitespaces around fields. Just compare the same default forms of account entity 8.2 on the left and 9.0 classic UI on the right: Obviously there was no… Continue Reading Andrew Butenko’s Article...

Read More
How to share record with user using WebApi – Andrew Butenko’s Blog
Nov01

How to share record with user using WebApi – Andrew Butenko’s Blog

var target = { “accountid”: “ACAAB842-21C7-E811-A96F-000D3A16A41E”, //put <other record type>id and Guid of record to share here “@odata.type”: “Microsoft.Dynamics.CRM.account” //replace account with other record type}; var principalAccess = { “Principal”: { “systemuserid”: “d272654b-57f5-4564-8d0b-36d0d4c426c4”, //put teamid here and Guid of...

Read More
How to call QuerySchedule using WebApi – Andrew Butenko’s Blog
Jul11

How to call QuerySchedule using WebApi – Andrew Butenko’s Blog

var context; if (typeof GetGlobalContext === “function”) {    context = GetGlobalContext();} else {    context = Xrm.Page.context;} var start = new Date(); //Put Start datetime here var end = new Date(); //Put End datetime hereend.setDate(end.getDate() + 1); var requestUrl = “/api/data/v8.2/QuerySchedule(ResourceId=@p1,Start=@p2,End=@p3,TimeCodes=@p4)”;requestUrl += “?@p1=” +

Read More
How to Add Item to Campaign using WebApi – Andrew Butenko’s Blog
Jun21
Read More
Email Invoice in PDF format – Andrew Butenko’s Blog
May03
Read More
Cloning record with related records with no code – Andrew Butenko’s Blog
Apr26
Read More
Copying of N-N related records with no code using UWT – Andrew Butenko’s Blog
Apr26
Read More
Copying of N-N related records with no code – Andrew Butenko’s Blog
Apr26

Copying of N-N related records with no code – Andrew Butenko’s Blog

In this post I will provide instructions how you can copy N-N related records using latest release of Ultimate Workflow Toolkit without any code. Let’s consider typical scenario – qualification of Lead. Both Lead and Account have N-N relationship with entity Industry. When user wants to qualify Lead – Industries that are related to it have to be copied into Account that is created… Continue Reading Andrew Butenko’s Article...

Read More
Ultimate Workflow Toolkit v1.5.0.0 – Andrew Butenko’s Blog
Mar20
Read More
How to generate Excel Template from code – Andrew Butenko’s Blog
Mar19
Read More
How to use SendEmailFromTemplate action with JavaScript and WebApi – Andrew Butenko’s Blog
Mar02
Read More
How to Add records to Marketing List using WebApi – Andrew Butenko’s Blog
Mar01
Read More
How to fix connectivity issues between SSDT + Report Authoring Extension and Dynamics 365 – Andrew Butenko’s Blog
Feb14
Read More
Ultimate Workflow Toolkit v1.4.0.0 – all you want to do with Multiselect Optionsets in Workflows – Andrew Butenko’s Blog
Dec03
Read More
lookupObjects – closer look – Andrew Butenko’s Blog
Nov22
Read More
What’s new in clientside for devs besides Xrm.WebApi – Andrew Butenko’s Blog
Nov21
Read More