- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-13-2016 08:48 PM
Hi ,
I am looking for a code to save 2 values in the Virtual Machine CI form (cmdb_ci_vm table). Form will have fields VMname1 , IPAddress1 Similarly VMname2 , IpAddress2 ,VMname3 IpAddress3 and have to save the data filled in these fields in a table similarly with same field names.
If any of these user entered data repeats then it should throw an error .
VMname or IPAddress should not be duplicated.
Do guide me what to do.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-14-2016 03:55 AM
Now, update your script include to:
var CheckVMDuplicate = Class.create();
CheckVMDuplicate.prototype = Object.extendsObject(AbstractAjaxProcessor, {
checkDuplicate : function() {
var s1 = this.getParameter('sysparm_s1');
var s2 = this.getParameter('sysparm_s2');
var s3 = this.getParameter('sysparm_s3');
var gr = new GlideRecord('u_vm_info');//your table name u_vm_info
var gc = gr.addQuery('u_vm1', s1);//Make sure your field names are VM1, VM2, VM3. not titles.
gc.addOrCondition('u_vm2', s1);
gc.addOrCondition('u_vm3', s1);
if(s2 != '') {
gc.addOrCondition('u_vm1', s2);
gc.addOrCondition('u_vm2', s2);
gc.addOrCondition('u_vm3', s2);
}
if(s3 != '') {
gc.addOrCondition('u_vm1', s3);
gc.addOrCondition('u_vm2', s3);
gc.addOrCondition('u_vm3', s3);
}
gr.query();
if(gr.next())
return false;
gr.initialize(); | ||
gr.u_vm1 = s1; | ||
gr.u_vm2 = s2; | ||
gr.u_vm3 = s3; | ||
gr.insert(); |
return true;
},
type: 'CheckVMDuplicate'
});
Add these lines, it will insert the values in the table also.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-21-2016 01:29 AM
Hi aastha,
Change your client script to:
function onSubmit() {
//Type appropriate comment here, and begin script below
var num = g_form.getValue('number_of_vms');
var s1 = g_form.getValue('vm_name');
var s2 = g_form.getValue('vm_name2');
var s3 = g_form.getValue('vm_name3');
var ga = new GlideAjax('CheckVMDuplicate');
ga.addParam('sysparm_name', 'checkDuplicate');
if(num == 1 && s1 == '') {
alert('value is empty / duplicate values');
return false;
}
else if(num == 2 && (s1 == '' || s2 == '' || s1 == s2)) {
alert('value is empty / duplicate values');
return false;
}
else if(num == 3 && (s1 == '' || s2 == '' || s3 == '' || s1 == s2 || s2 == s3 || s1 == s3)) {
alert('value is empty / duplicate values');
return false;
}
ga.addParam('sysparm_s1', s1);
ga.addParam('sysparm_s2', s2);
ga.addParam('sysparm_s3', s3);
ga.getXMLWait();
var res = ga.requestObject.responseXML.getElementsByTagName("result")[0];
if(res.getAttribute('f1') == 'false') {
alert('Duplicate value in s1');
return false;
}
if(res.getAttribute('f2') == 'false') {
alert('Duplicate value in s2');
return false;
}
if(res.getAttribute('f3') == 'false') {
alert('Duplicate value in s3');
return false;
}
}
Let me know the results, if that works for you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-21-2016 01:56 AM
yes this works now deepakgarg
I want urgent help on this one as well.
On RITM state = closed complete
Now I have to save VM Name values when RITM state = closed complete and Catalog = Server provisioning.
It should take VMName1 , VMName2 , VMName 3 from the RITM catalog variables and it should store on same table u_vm_info.
But if again that RITM ticket is updated it should not store the same VMname values .
Please reply on this post On RITM state = closed complete with the correct code