Please check below marco script and please let me know my mistake
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-31-2024 05:17 AM
Hello everyone
i am writting some marco code for catalog form and we are facing one issue when new_installation is yes and find my computer is false on that time we need to set provising mode to automatic but why it's going to register. i checked my end but no luck please check anyone and let me know my mistake.
else if(parms.field.name== 'new_installation'){
if (parms.newValue == 'Yes') {
alert('the test '+parms.newValue);
$scope.page.g_form.setValue('regularization','false');
if ($scope.page.g_form.getValue('find_computer')=='false')
$scope.page.g_form.setValue('provisioning_mode','automatic');
else
$scope.page.g_form.setValue('provisioning_mode','manual');
} else {
$scope.page.g_form.setValue('regularization','true');
$scope.page.g_form.setValue('provisioning_mode','register');
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-31-2024 05:26 AM - edited 01-31-2024 05:26 AM
Hi @mani55
sorry, bot nothing makes sense here. You write anything about "macros" but your code is weird as it is not Jelly code and seems to be a mixture of server-side and client-side AngularJS code in a Service Portal.
And only providing a small piece of the code without the context is not helpful.
Maik
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-31-2024 05:38 PM
Yeah it's widget script and mixture of both server side and client side code
client controller
function($scope,$rootScope,$window) {
var c = this;
var field;
$scope.onLoad=function(){
$scope.data.cat_sys_id = $scope.page.g_form.getUniqueValue();
$scope.data.user = $scope.page.g_form.getValue('requested_for');
$scope.data.hostname = $scope.page.g_form.getValue('hostname');
$scope.data.userDisplay = $scope.page.g_form.getDisplayValue('requested_for');
//$scope.page.g_form.setValue('hostname',$scope.page.g_form.getValue('computers'));
$scope.page.g_form.setValue('did_found_computer','true');
if ($scope.page.g_form.getValue('provisioning_mode')!='register')
$scope.page.g_form.setValue('provisioning_mode','automatic');
c.server.update().then(function(res){debugger
$scope.message($scope.data.found);
//checking if user already has an active item
/*if(res.hasUserActiveItem) {
$scope.page.g_form.clearValue('hostname');
var exisitngItemMsg ='This request cannot be processed because '+$scope.data.userDisplay+ ' already has an active ' + res.asset;
$scope.page.g_form.showFieldMsg('hostname', exisitngItemMsg, 'error', true);
//$scope.page.g_form.setValue('requested_for', '');
}*/
$rootScope.$on("field.change", function(evt, parms) {
if (parms.field.name== 'hostname') {
$scope.check(parms.newValue);
}
else if (parms.field.name=='computers'){
//$scope.page.g_form.setValue('hostname',$scope.page.g_form.getValue('computers'));
$scope.page.g_form.setValue('hostname',$scope.page.g_form.getDisplayValue('computers'));
}
else if(parms.field.name== 'new_installation'){
if (parms.newValue == 'Yes') {
alert('the test '+parms.newValue);
$scope.page.g_form.setValue('regularization','false');
if ($scope.page.g_form.getValue('find_computer')=='false')
$scope.page.g_form.setValue('provisioning_mode','automatic');
else
$scope.page.g_form.setValue('provisioning_mode','manual');
} else {
$scope.page.g_form.setValue('regularization','true');
$scope.page.g_form.setValue('provisioning_mode','register');
}
}
else if(parms.field.name == 'find_computer'){
if (parms.newValue == 'false') {
$scope.page.g_form.setValue('did_found_computer','true');
if ($scope.page.g_form.getValue('provisioning_mode')!='register')
$scope.page.g_form.setValue('provisioning_mode','automatic');
} else {
$scope.page.g_form.setValue('did_found_computer','false');
if ($scope.page.g_form.getValue('provisioning_mode')!='register')
$scope.page.g_form.setValue('provisioning_mode','manual');
}
} else if(parms.field.name == 'requested_for') {
$scope.check(parms.newValue);
}
else if(parms.field.name =='i_accept_and_agree') {
var check_box = $scope.page.g_form.getValue('i_accept_and_agree');
if(check_box == 'false') {
$scope.page.g_form.setMandatory('i_accept_and_agree','true');
$scope.page.g_form.addErrorMessage('Please accept Terms of Agreement to proceed');
}
else if(check_box == 'true') {
$scope.page.g_form.setMandatory('i_accept_and_agree','false');
}
}
});
/*var check_box = $scope.page.g_form.getValue('i_accept_and_agree');
if(check_box == 'false') {
$scope.page.g_form.addErrorMessage('Please accept Terms of Agreement to proceed');
} */
})
}
$scope.check=function(newvalue){
c.server.get({
hostname: $scope.page.g_form.getValue('hostname'),
cat_sys_id : $scope.data.cat_sys_id,
user : $scope.page.g_form.getValue('requested_for')
}).then(function(response){
$scope.data.found = response.data.found;
$scope.data.type = response.data.type;
$scope.data.query = response.data.query;
$scope.data.ciquery = response.data.ciquery;
$scope.data.service = response.data.service;
$scope.data.hostname = $scope.page.g_form.getValue('hostname');
$scope.data.curHost = response.data.curHost;
$scope.data.base_url = response.data.base_url;
$scope.data.hasUserActiveItem = response.data.hasUserActiveItem;
$scope.data.asset = response.data.asset;
$scope.data.userDisplay = $scope.page.g_form.getDisplayValue('requested_for');
$scope.message($scope.data.found, $scope.data.type);
var hostname = $scope.data.hostname;
if($scope.data.hasUserActiveItem) {
$scope.page.g_form.setValue('hostname','');
$scope.page.g_form.setValue('computers','');
var exisitngItemMsg = 'This request cannot be processed because user already has an active item';
//var exisitngItemMsg = 'This request cannot be processed because the hostname '+ hostname + ' already as an active ' + $scope.data.asset;
$scope.page.g_form.showFieldMsg('hostname', exisitngItemMsg, 'error');
}
$window.setTimeout(function(){
var sys_id_of_kb = gs.getProperty('cap.kb.sys_id');
if($scope.showLink){
//var element = $scope.page.g_form.getFormElement("bg-danger")[0];
var element = $window.document.getElementsByClassName("bg-danger")[0];
var newEl = $window.document.createElement("a");
var link = $window.document.createTextNode("To know more about Move/Deploy Software KB0010374");
newEl.appendChild(link);
newEl.title = "To know more about Move/Deploy Software (KB0010374)";
newEl.href = "https://"+ $scope.data.base_url +".service-now.com"+ "/kb_view.do?sys_kb_id=" + sys_id_of_kb;
newEl.target = '_blank';
newEl.style.color = 'blue';
$window.console.log('new element', newEl);
element.appendChild(newEl);
}
}, 10);
});
}
$scope.message = function(bool, type)
{
if (bool && type) {
var msg1 ='This request cannot be processed because '+$scope.data.userDisplay+ ' already has an active ' +$scope.data.service+ ' with hostname : '+$scope.data.hostname;
var msg2 = $scope.data.userDisplay + " already has an active " +$scope.data.service+ " with hostname: "+$scope.data.curHost+ " if you do not want 2 services you can use Move/Deploy software. ";
var message = type == 'sameHostName' ? msg1 : msg2;
$scope.showLink = message == msg2 ? true : false;
$window.document.getElementById('submit').disabled = (type == 'sameHostName') ? true : false;
$scope.page.g_form.showFieldMsg('hostname', message, 'error');
$scope.page.g_form.setValue('asset_service_already', 'true');
} else {
$scope.page.g_form.hideFieldMsg('hostname', true);
$scope.page.g_form.setValue('asset_service_already', 'false');
}
}
}
server side:
(function() {
data.found = false;
data.base_url = gs.getProperty('instance_name');
var grItem = new GlideRecord('sc_cat_item');
grItem.get(input.cat_sys_id);
var sd = grItem.short_description.getDisplayValue();
//var query = 'install_status!=7^install_status!=11^model=' + grItem.model + '^assigned_to=' + input.user;
var queryproject = 'install_status!=7^install_status!=11^model.short_descriptionINSFW031,SFW034,SFW043,SFW088,SFW098,SFW099' + '^assigned_to=' + input.user;
//data.query = query;
if (sd == 'SFW031' || sd == 'SFW034' || sd == 'SFW043' || sd == 'SFW088' || sd == 'SFW098' || sd == 'SFW099') {
queryAlmService(queryproject);
} else if (sd == 'SFW053') {
queryproject = 'install_status!=7^install_status!=11^model.short_descriptionINSFW053' + '^assigned_to=' + input.user;
queryAlmService(queryproject);
} else if (sd == 'SFW003') {
queryproject = 'install_status!=7^install_status!=11^model.short_descriptionINSFW003' + '^assigned_to=' + input.user;
queryAlmService(queryproject);
}
else if (sd == 'SFW091') {
queryproject = 'install_status!=7^install_status!=11^model.short_descriptionINSFW003' + '^assigned_to=' + input.user;
queryAlmService(queryproject);
}else if (sd == 'SFW031' || sd == 'SFW030' || sd == 'SFW036' || sd == 'SFW106') {
queryproject = 'install_status!=7^install_status!=11^model.short_descriptionINSFW030,SFW036,SFW106' + '^assigned_to=' + input.user;
queryAlmService(queryproject);
} else if (sd == 'SFW104' || sd == 'SFW105' || sd == 'SFW028' || sd == 'SFW029') {
queryproject = 'install_status!=7^install_status!=11^model.short_descriptionINSFW104,SFW105,SFW028,SFW029' + '^assigned_to=' + input.user;
queryAlmService(queryproject);
} else if (sd == 'SFW130') {
//queryproject = 'install_status!=7^install_status!=11^model.short_description=SFW130' + '^assigned_to=' + input.user;
queryproject = 'u_itaas_asset_number.model.short_description=SFW130^u_itaas_asset_number.install_statusNOT IN11,7' + '^u_hostname=' + input.hostname;
checkIfUserHasActiveItem(queryproject);
}
data.query = queryproject;
/**
*query u_alm_service @Param queryproject
*/
function queryAlmService(queryproject) {
var grService = new GlideRecord('u_alm_service');
grService.addEncodedQuery(queryproject);
grService.query();
while (grService.next()) {
var ciquery_1 = 'asset=' + grService.sys_id + '^u_hostname=' + input.hostname;
queryCiTable(ciquery_1, 'sameHostName', grService);
var ciquery_2 = 'asset=' + grService.sys_id + '^u_hostname!=' + input.hostname;
queryCiTable(ciquery_2, 'diffHostName', grService);
}
}
function queryCiTable(query, type, grService) {
//var ciquery = 'asset=' + grService.sys_id + '^u_hostname!=' + input.hostname;
var grCI = new GlideRecord('u_cmdb_ci_service_spkg');
data.ciquery = query;
grCI.addEncodedQuery(query);
grCI.query();
while (grCI.next()) {
data.found = true;
data.type = type;
data.curHost = grCI.u_hostname + '';
data.service = grService.u_number + '';
data.userDisplay = grService.getDisplayValue('assigned_to');
break;
}
}
/*function checkIfUserHasActiveItem(queryproject) {
var grService = new GlideRecord('u_alm_service');
grService.addEncodedQuery(queryproject);
grService.query();
while (grService.next()) {
data.hasUserActiveItem = true;
data.asset = grService.u_number +'';
}
}*/
function checkIfUserHasActiveItem(queryproject) {
var grService = new GlideRecord('u_cmdb_ci_service_spkg');
grService.addEncodedQuery(queryproject);
grService.query();
while (grService.next()) {
data.hasUserActiveItem = true;
data.host = grService.u_hostname+'';
data.asset = grService.u_itaas_asset_number.u_number+'';
}
}
})();