Xrm.Navigation.openForm set lookup field automatically from the previous form

1.4k views Asked by At

I added a new button inside my "Parcours" form that takes me to another form "Question" with a Xrm.Navigation.openForm

enter image description here

The "Question" form has a lookup field from "Parcours" that I want to populate set automatically from the previous form like this for example :

enter image description here

This is my code for my button, I want to detect the ID of the parcours automatically and set it in the new "Question" form

function NavigateQuestion(){
    var entityFormOptions = {};
entityFormOptions["entityName"] = "zs_question";
var formParameters = {};

// Set lookup column
formParameters["zs_parcours"] = ""; // I want to put the ID here from the previous form.
formParameters["zs_parcoursname"] = ""; // Name of the parcours.
formParameters["zs_parcourstype"] = "zs_parcours"; // Table name. 

Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
    function (success) {
        console.log(success);
        console.log(formParameters);
    },
    function (error) {
        console.log(error);
    });


}

1

There are 1 answers

0
Arun Vinoth-Precog Tech - MVP On

You should be able to get the values and assign from the current record form itself.

Make sure to pass the formContext for latest client API methods (I put the syntax in commented code section).

// Set lookup column
formParameters["zs_parcours"] = Xrm.Page.data.entity.getId(); // or by using form context -- formContext.data.entity.getId();
formParameters["zs_parcoursname"] = Xrm.Page.getAttribute("zs_name").getValue(); // or by using form context -- formContext.getAttribute("zs_name").getValue();
formParameters["zs_parcourstype"] = "zs_parcours";