- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-02-2019 09:34 PM
I have written insert or update Async Business rule on one Table? I have to test that business rule is working fine or not ? How can i do this?
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-02-2019 09:46 PM
Hi Rajesh,
Please can you go once this Link :
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-03-2019 03:27 AM
what is the exact output of the below insert or update Before business rule
Condition: current.u_hours_requested.changes() && !current.u_hours_requested.nil() && (['-5','14'].indexOf(current.state+'')>=0 || (current.state == '11' && current.u_approval_level == 'Not Required'))
Script:
setApprovalLevel();
function setApprovalLevel() {
//If the State == Approved but the Approval level == 'Not Required', set it back to 'Pending'
//The update to the Hours requested may dictate a different approval level
if (current.state == '11' && current.u_approval_level == 'Not Required') {
current.state = '-5';
}
// STRY1653748 -- CSAT Approval should have Geo Finance Approver as ONLY approver for Specific CSAT Reason Types
var csUtil = new PS_CSATRequestUtil();
var geoFinApp = csUtil.requireGFinApproval(current.getValue('u_reason_type'));
if(geoFinApp){
var cApp = new GlideRecord("u_csat_app_matrix");
cApp.get('u_approval_level', 'GF');
current.u_approval_level = cApp.u_approval_level;
current.u_approver= getGeoFinApprover(current);
}else{
var cam = new GlideRecord("u_csat_app_matrix");
//JJ 12/04 - STRY0922996
var requestedHours = current.u_hours_requested;
if (!current.u_parent_csat_request.nil()) {
requestedHours = requestedHours + current.u_parent_csat_request.u_total_hours_approved;
}
//EO - STRY0922996
cam.addQuery("u_min_hours", "<=", requestedHours);
cam.addQuery("u_max_hours",">=", requestedHours);
cam.orderBy("u_order");
cam.query();
//gs.addErrorMessage('SQL:>' + cam.getEncodedQuery() + 'cam.getRowCount():' + cam.getRowCount());
if (cam.getRowCount() == 1) {
cam.next();
current.u_approval_level = cam.u_approval_level;
current.u_approval_limit = cam.u_max_hours;
if (cam.u_approval_level == 'Not Required') {
current.u_approver = '';
current.state = '11'; //Approved
}
else if (!cam.u_approver.nil()) {
current.u_approver = cam.u_approver;
}
else {
current.u_approver=getApprover(current,cam);
if (!current.u_approver||current.u_approver==0){
current.u_approver = '';
gs.addInfoMessage("ERROR: Unable to find a PS manager assigned to this Account's Sales Territory (" + current.u_account.u_account_territory.getDisplayValue() + ") . Final approver could not be set, please contact PSOperations@servicenow.com for assistance.");
}
}
}else { //Hours requested is above the last limit, requires CFO and SVP approval
while (cam.next()) {
current.u_approval_level = cam.u_approval_level;
current.u_approver = cam.u_approver;
current.u_approval_limit = requestedHours;
}
}
}
}
function getApprover(csatRec,cam){
var deployment;
var deploymentExists = true;
if(!csatRec.u_deployment.nil())
deployment = csatRec.u_deployment;
else if(!csatRec.u_csat_deployment.nil())
deployment = csatRec.u_csat_deployment;
else
deploymentExists = false;
if(deploymentExists)
{
var psTerritory = csatRec.u_account.u_account_territory;
if(cam.u_approval_level == 'GEO'){
if (deployment.nil()==false && deployment.u_ps_territory.nil() == false&&!deployment.u_ps_territory.u_geo_customer_delivery_leader.nil()) {
return deployment.u_ps_territory.u_geo_customer_delivery_leader;
}else{
return getPSRequestApprover(psTerritory, "GEO");
}
}
if(cam.u_approval_level == 'DIR'){
if (deployment.nil()==false && deployment.u_ps_territory.nil() == false &&!deployment.u_ps_territory.u_area.u_manager.nil()){
return deployment.u_ps_territory.u_area.u_manager;
}else{
return getPSRequestApprover(psTerritory, "DIR");
}
}
if(cam.u_approval_level == 'REG'){
if(deployment.nil()==false && deployment.u_ps_territory.nil() == false&&!deployment.u_ps_territory.u_delivery_manager.nil()){
return deployment.u_ps_territory.u_delivery_manager;
}else{
return getPSRequestApprover(psTerritory, "REG");
}
}
if(cam.u_approval_level == 'EM'){
if(deployment.nil()==false&& deployment.u_engagement_manager.nil()==false){
return deployment.u_engagement_manager;
}
}
}
return 0;
}
function getGeoFinApprover(csatRec){
var deployment;
var deploymentExists = true;
if(!csatRec.u_deployment.nil())
deployment = csatRec.u_deployment;
else if(!csatRec.u_csat_deployment.nil())
deployment = csatRec.u_csat_deployment;
else
deploymentExists = false;
if(deploymentExists){
var user = 0;
if(deployment.u_ps_territory && deployment.u_ps_territory.u_ps_deal_desk)
user = deployment.u_ps_territory.u_ps_deal_desk;
return user;
}
return 0;
}