- 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-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-14-2016 04:21 AM
Yes working well now . How to change true false values to some alert ("Please insert unique values");
false are now coming through return false and return true right ?
But I have some other requirements related with this will disturb you frequently
I hope you dont mind to help .
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-14-2016 04:36 AM
Also, to change your alert message in Catalog Client script, change as:
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();
alert(ga.getAnswer());//Remove this line
if(ga.getAnswer() == 'false') {
alert('Please insert unique values');
return false;
}
}
Thats not a problem. You can always use this platform to get your queries answered.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-14-2016 04:38 AM
Also, If you want to learn some scripting, please refer:
Examples of synchronous GlideAjax
Examples of asynchronous GlideAjax https://docs.servicenow.com/bundle/helsinki-servicenow-platform/page/script/server-scripting/referen...
These might be helpful.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-14-2016 04:43 AM
Thanks a lot I will surely practice coding and scripting from these links.
Thanks for your help.
On Oct 14, 2016 5:09 PM, "deepakgarg" <community-no-reply@servicenow.com>