Looking for PowerObjects? Don’t worry, you’re in the right place! We’ve been part of HCL for several years, and we’ve now taken the final step in our acquisition journey: moving our website to the HCL domain. Nothing else is changing – we are still fanatically focused on Microsoft Business Applications!

PowerObjects Blog 

for Microsoft Business Applications

|

Use a Dialog Process in Microsoft Dynamics CRM to replace the Case Resolution Form

Post Author: Joe D365 |

One of the few elements of Microsoft Dynamics CRM 2011 that is not customizable is the Case Resolution form. It is also not accessible via workflow. If more case resolution information needed to be captured it typically needs to be entered on the case form and perhaps some JavaScript to dynamically set field requirements. Then when the user clicks to resolve the case they are prompted again.

In a recent implementation the user required the resolution to be populated on the case but didn't want to have to re-enter or copy and paste to the case resolution form.

MSCRM and Javascript

The out-of-the-box form has a text field for the resolution that was too minimal in many instances

One solution to this resolution conundrum is to create a Dialog to capture the information and replace the functionality of the 'Resolve Case' button.

I created a dialog that prompts for a 'Resolution'

In the next step I updated the Case, populating the Resolution on the case from the prompt response

Final step changes the status of the case to resolved

Now from a Case, click on the 'Dialogs' button and select the new Dialog

Respond to the prompt and complete the dialog

The dialog process populates the response in the designated field and the resolves the case

That's great, but let's take it another step and replace the function of the out-of-the-box 'Resolve Case' button.

Next I created a web resource for the JavaScript we'll use to launch the Dialog

The JavaScript opens a window and accepts the parameters we'll send from the ribbon customization

I also added a line to close the case record.

I also captured the GUID of the workflow. (Simply open the dialog, Ctrl+N reopens with the url)

Next create a solution, add the Case entity and export and extract the xml

Locate the Ribbon section and add a custom action. In my case I'm replacing the action of the existing Resolve Case button. If you want to add a custom button check out this blog post

Here is the code. The important element is the JavaScriptFunction – here I call the web resource and for the first parameter paste in the GUID of the Dialog:
































Save the customization and reimport into CRM

The button on the case form looks the same to the user but instead of the case resolution form the Case Resolution Dialog is launched.

Happy CRM'ing!

Joe CRM
By Joe D365
Joe D365 is a Microsoft Dynamics 365 superhero who runs on pure Dynamics adrenaline. As the face of PowerObjects, Joe D365’s mission is to reveal innovative ways to use Dynamics 365 and bring the application to more businesses and organizations around the world.

14 comments on “Use a Dialog Process in Microsoft Dynamics CRM to replace the Case Resolution Form”

  1. This Solution is working fine but what about those cases which have open activity attached with them.It is not prompting any massege for it and dialog is unable to close the case.

    Any help..

    1. Hi Becky/Manish,
      Yeah - so open activities need to first be closed in order to resolve the case. A simple plugin could do this. What we have done before is have this plugin be triggered from a new field such as po_closeAnyOpenActivities. Then the dialgo checks this checkbox, plugin runs, then it can continue to close the case.

  2. I'm interested in keeping the "Resolution Type" select list and adding another couple fields. It seems that adding a select list populated with "Status Reasons" aka "Resolution Type" to a custom dialog is not trivial. Any hints?

  3. Could you please provide the java script in the script view rathen than a screen shot of the jsscript because I can t read it. I would also be interested in the open activity plug in instructions as well.
    Thanks for your help.

  4. here is the workable version of script:

    function ResolveCaseDialog (dialogID, typeName, recordId)
    {

    //Load modal
    var serverUri = Mscrm.CrmUri.create("/cs/dialog/rundialog.aspx");

    window.showModalDialog(serverUri + '?DialogId=' + dialogID + '&EntityName=' + typeName + '&ObjectId=' + recordId, null, 'dialogWidth: 615px; dialogHeight: 480px; resizable: yes; status: yes, scrollbars:yes');

    //Reload form
    window.location.reload(true);
    Xrm.Page.data.entity.save("saveandclose");

    }

    I replaced
    'width = 615, height=600,resizable=1,status=1,scrollbars=1');
    WITH
    ‘dialogWidth: 615px; dialogHeight: 480px; resizable: yes; status: yes, scrollbars:yes;’
    because dialog was shown too small

  5. you can also replace the functionality of the grin ribbon resolve button by adding the following

  6. This is certainly an interesting option for customizing the experience for the user. Do the steps above also work for CRM 2013?

    1. Hi there - in crm 201120132015 the steps are basically the same. Let us know if you try this and it does not work in your 2013 environment.

      1. Thanks for the response. I actually went through this process yesterday and looks like the only issue I'm having is the ability to set the response in the resolution field. I don't see "resolution" as one of the fields available to update in the case entity.

      2. Thanks for the response. I actually went through this process yesterday and looks like the only issue I'm having is the ability to set the response in the resolution field. I don't see "resolution" as one of the fields available to update in the case entity.

      3. Has anyone else had luck with this solution in CRM2013? If so, please reply and let me know how you got around updating the resolution text without having to create a custom field on the case entity. Setting the status works fine, but we really need to be able to set the resolution text.

  7. Window.ShowModalDialog is not supported by Chrome. Please provide alternative to this. Thanks in Advance.

  8. Hi Joe,
    Chrome doesn't support "window.showModalDialog" anymore. Do you have an update on this?

    Regards
    Mahmood

PowerObjects Recommends