How to populate values in the multi row variable set variables without click on the "Add" button

Shantharao
Kilo Sage

How to populate values in the multi row variable set variables without click on the "Add" button

5 REPLIES 5

Anubhav24
Mega Sage
Mega Sage

Hi @Shantharao ,

Please be more specific , do you want to populate on page load and based on what conditions only then anyone can help you out here.

Please mark correct/helpful if my response helped you.

Shantharao_0-1732699171785.png

On Selection of Requested for variable, I want to auto populate the multi row variable set info as highlighted in the above screenshot, any hardcoded values also fine for me

Pooja2998
Mega Sage

Hello @Shantharao ,

You can use this Onload Client Script on catalog item to add default value:


function onLoad() {
var mrvs_data = {};
mrvs_data = setMRVStier1(1);
var oDetails = mrvs_data;
for (var sKey in oDetails) {
if (sKey == "set_row") { //add your Variable set Name
g_form.setValue(sKey, JSON.stringify(oDetails[sKey]));
}
}
}

function setMRVStier1(num) {
var obj = {};
var obj2 = {};
var obj3 = {};
var objArr = [];
for (var i = 1; i <= num; i++) {
obj = {
"name": "Test1", // variable Name and value
"phone_number": "123456789"
};
obj2 = {
"name": "User",
"phone_number": "2345678970"
};
obj3 = {
"name": "user2",
"phone_number": "1234567890"
};

objArr.push(obj, obj2,obj3);
}

return {
"set_row": objArr
};
}

function clearRows(sysIdMRWS) {
TableVariableService.removeAllRows(sysIdMRWS);
}

And also you can hide the ADD and Remove Button:
function onLoad() {
var vset = g_form.getField("set_row");
vset.max_rows_size = 6;
var htmlDoc = false;
setTimeout(function() {
disableButtons();
}, 6000);
}

function disableButtons() {
var my_var = g_form.getField("set_row");
my_var.max_rows_size = 0;
var btn = this.document.getElementsByClassName("btn btn-default");
for (i = 0; i < btn.length; i++) {
if (btn[i].innerText == 'Remove All') {
btn[i].style.display = 'None';
}
}

var btn = this.document.getElementsByClassName("btn-primary");
for (i = 0; i < btn.length; i++) {
if (btn[i].innerText == 'Add') {
btn[i].style.display = 'None';
}
}

// hide all x buttons
var y = this.document.getElementsByClassName("wrapper-xs fa fa-close");
var j;
for (j = 0; j < y.length; j++) {

y[j].style.display = 'none';

}

var btn = this.document.getElementsByClassName("wrapper-xs fa fa-close");
for (i = 0; i < btn.length; i++) {
btn[i].style.display = 'none';
}
}


Variable set:

Pooja2998_0-1732690934011.png


Result:

Pooja2998_1-1732691016003.png


If the above information helps you, Kindly mark it as Helpful and Accept the solution.
Regards,
Pooja.

 

 

I have used but didn't working as expected, the Object info not populating in the rows in the MRVS

function onLoad() {
    var mrvs_data = {};
    mrvs_data = setMRVStier1(1);
    var oDetails = mrvs_data;
    for (var sKey in oDetails) {
        if (sKey == "mrvs") { //add your Variable set Name
            g_form.setValue(sKey, JSON.stringify(oDetails[sKey]));
        }
    }
}

function setMRVStier1(num) {
    var obj = {};
    var obj2 = {};
    var obj3 = {};
    var objArr = [];
    for (var i = 1; i <= num; i++) {
        obj = {
            "manager": "Test1", // variable Name and value
            "phone_number": "123456789",
            "email": "test@gmail.com"
        };
        obj2 = {
            "manager": "User",
            "phone_number": "2345678970",
            "email": "test1@gmail.com"
        };
        obj3 = {
            "manager": "user2",
            "phone_number": "1234567890",
            "email": "test2@gmail.com"
        };

        objArr.push(obj, obj2, obj3);
        g_form.addInfoMessage("objArr=>"+objArr + " objArr join=>"+JSON.stringify(objArr));
    }

    return {
        "set_row": objArr
    };
}