Skip to main content

Dynamics 365 Open Quick Create Form and Save/Refresh calling record


If you are working in a scenario where you have to open Quick Create Form through JavaScript and save/refresh the calling record after the quick create form has been saved, you have few choices.

In this article I will show you how you can leverage the async and await operators in JavaScript to solve this scenario.
First thing let’s try to define async and await
Async: - pretty much a function that returns a promise
Await: - makes JavaScript wait until the promise has been settled.
First thing let’s define the function that is going to Open Quick Create Form
function QuickCreate() {
    var entityFormOptions = {};
    entityFormOptions["entityName"] = "contact";
    entityFormOptions["useQuickCreateForm"] = true;

    // Set default values for the Contact form
    var formParameters = {};
    formParameters["firstname"] = "Sample";
    formParameters["lastname"] = "Contact";
    formParameters["fullname"] = "Sample Contact";
    formParameters["emailaddress1"] = "contact@adventure-works.com";
    formParameters["jobtitle"] = "Sr. Marketing Manager";
    formParameters["donotemail"] = "1";
    formParameters["description"] = "Default values for this record were set programmatically.";

    // Open the form.
    return Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
        function (success) {
            console.log(success);
            return success
        },
        function (error) {
            console.log(error);
            return null;
        });}

Next we are going to define the function that is going to consume the QuickCreate() and see how we can use the JavaScript operators

async function ConsumeQuickCreate (formContext) {
    //here you can define which fields you want to update after the quick create has saved
    formContext.getAttribute("statuscode").setValue("set your value here");
    var success = await QuickCreate();
    if (success) formContext.data.refresh(save);
}


As you have noticed in the code above formContext.data.refresh(save); is not going to be executed until the QuickCreate() function has return a value.

Thanks For reading 

Comments

  1. I have to comment on my own post just to say the above code want work on IE 11 for the simple reason that IE 11 does not support ECMAScript 6.
    In case of IE 11 you have to use callback.

    ReplyDelete

Post a Comment

Popular posts from this blog

How to use Formatted Values in Power Automate Flow Dynamics 365

  How to use Formatted Values in Power Automate Flow Dynamics 365   If you have been working on Power Automate for Dynamics 365 you might have been wandering how you can access a lookup Formatted Value or Option Set formatted values. You can use the following format to access: body(‘{Action Name}’)?[‘{fieldname} @OData.Community.Display.V1. FormattedValue’] You just have to be mindful in Dynamics 365 lookup field name they do not translate to the proper field name, you might have to and an “_” as a prefix and “_value” as a postfix, I will leave that to you.

Azure DevOps Fork Repos between two Organization

  Azure DevOps Fork Repos between two Organization This weekend I embarked on a topic a bit foreign to myself, on the surface seemed a bit simple. The idea is to fork my Azure DevOps Repo to a different organization and push changes between them. Bad news DevOps doesn’t allow to fork Repos to a different organization, you have only the capability to fork to a different Projects within the same Organization. I’m pretty much sure there are so many other ways to solve this issue, but this is the one that I found to be easy to implement. Import Repo to the new Organization Remember here you have to generate a personal token to be able to import the Repo you have to be a member of the new organization as well This might take a few minutes depending on the size of your project, once its complete you will receive a confirmation email, or just refresh it after few minutes So far all looks good, you can clone the solution in your new Organizati...

XMLHttpRequest vs Xrm.WebApi

  XMLHttpRequest vs Xrm.WebApi If you have written JavaScript code for Dynamics 365 you have seen the use of XMLHttpRequest or Xrm.WebApi to make server-side calls. The question is which one is the right one to use? So, let’s analyze the two types of calls. XMLHtttpRequest 1.        Synchronous a.        Sample Code var req = new XMLHttpRequest(); req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/accounts", false ); 2.        Asynchronous a.        Sample Code var req = new XMLHttpRequest(); req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/accounts", true ); So, passing true parameter is going to make asynchronous call while passing it false is going to make a Synchronous call. Xrm.WebApi 1.        Asynchronous a.        There is...