current.setAbortAction(true) is not working

aashishdasari
Tera Expert

Hi All,

I have written a business rule which needs to terminate when the condition is true. But it is not terminating.

Need help in solving the issue

Script is:

(function executeRule(current, previous /*null when async*/) {

// Add your code here

gs.log("Aashish Dasari:"+current.sys_id);

var apprenda=new GlideRecord('u_apprenda_demo_id_pwd');

apprenda.addQuery('sys_id',current.sys_id);

apprenda.query();

while(apprenda.next())

{

gs.log("Demo ID State:"+apprenda.u_demo_state);

var Encrypter = new GlideEncrypter();

              var decrypted = Encrypter.decrypt(apprenda.u_demo_password);  

              var decryptedString=decrypted+'';

gs.log("Tenant Name:"+apprenda.u_demo_tenant_name+"Tenant Alias:"+apprenda.u_demo_tenant_alias+"User ID:"+apprenda.u_demo_userid+"Password:"+decryptedString);

var alias_name=apprenda.u_demo_tenant_alias;

var alias=alias_name.replace('demo','');

var apprenda_clean_up=new Apprenda_Clean_Up();

              var apprenda_token=apprenda_clean_up.getSessionToken(decryptedString,apprenda.u_demo_tenant_alias,apprenda.u_demo_userid);

if(apprenda_token==null)

{

var gr=new GlideRecord('incident');

    gr.initialize();

    gr.impact=1;

gr.urgency=1;

    gr.category='request';

    gr.assignment_group='3f5216c34f84ea00b161e8128110c7b6';

    gr.short_description='Apprenda Reset failed for the Demo Account of   '+apprenda.u_demo_userid;

    gr.description='Token was not retrieved for the user   '+apprenda.u_demo_userid;

    var url = "u_apprenda_demo_id_pwd.do?sys_id="+current.sys_id;

                              gr.comments ="Link to :[code]<a href='"+url+"'>Apprenda Demo ID</a>[/code]";

    gr.insert();

    current.setAbortAction(true);

}

}

})(current, previous);

find_real_file.png

3 REPLIES 3

SanjivMeher
Kilo Patron
Kilo Patron

Hi Aashish,



You are doing abort after completing all the action. You need to add a condition, when you want to abort it.



Please mark this response as correct or helpful if it assisted you with your question.

(function executeRule(current, previous /*null when async*/) {




// Add your code here


gs.log("Aashish Dasari:"+current.sys_id);


var apprenda=new GlideRecord('u_apprenda_demo_id_pwd');


apprenda.addQuery('sys_id',current.sys_id);


apprenda.query();


while(apprenda.next())


{


gs.log("Demo ID State:"+apprenda.u_demo_state);


var Encrypter = new GlideEncrypter();


              var decrypted = Encrypter.decrypt(apprenda.u_demo_password);  


              var decryptedString=decrypted+'';


gs.log("Tenant Name:"+apprenda.u_demo_tenant_name+"Tenant Alias:"+apprenda.u_demo_tenant_alias+"User ID:"+apprenda.u_demo_userid+"Password:"+decryptedString);


var alias_name=apprenda.u_demo_tenant_alias;


var alias=alias_name.replace('demo','');


var apprenda_clean_up=new Apprenda_Clean_Up();


              var apprenda_token=apprenda_clean_up.getSessionToken(decryptedString,apprenda.u_demo_tenant_alias,apprenda.u_demo_userid);


if(apprenda_token==null)


{


var gr=new GlideRecord('incident');


    gr.initialize();


    gr.impact=1;


gr.urgency=1;


    gr.category='request';


    gr.assignment_group='3f5216c34f84ea00b161e8128110c7b6';


    gr.short_description='Apprenda Reset failed for the Demo Account of   '+apprenda.u_demo_userid;


    gr.description='Token was not retrieved for the user   '+apprenda.u_demo_userid;


    var url = "u_apprenda_demo_id_pwd.do?sys_id="+current.sys_id;


                              gr.comments ="Link to :[code]<a href='"+url+"'>Apprenda Demo ID</a>[/code]";


    gr.insert();


    current.setAbortAction(true);


}


var responseObj =apprenda_clean_up.getApplications(apprenda_token);//Data to get the Application Data


var response=JSON.parse(responseObj);//Cpnvert to the Data into JSON


gs.log(response);


if(response==null)


{


var inc=new GlideRecord('incident');


    inc.initialize();


    inc.impact=1;


inc.urgency=1;


    inc.category='request';


    inc.assignment_group='3f5216c34f84ea00b161e8128110c7b6';


    inc.short_description='Apprenda Reset failed for the Demo Account of   '+apprenda.u_demo_userid;


    inc.description='Applications was not retrieved for the user   '+apprenda.u_demo_userid;


    var url_apprenda = "u_apprenda_demo_id_pwd.do?sys_id="+current.sys_id;


                              inc.comments ="Link to :[code]<a href='"+url_apprenda+"'>Apprenda Demo ID</a>[/code]";


    inc.insert();


    current.setAbortAction(true);


}


for(var i =0; i<response.length; i++)//Parse through the JSON Data


{


var apprenda_delete_http=apprenda_clean_up.deleteApplication(apprenda_token,response[i].alias);


                            if(apprenda_delete_http!='204')


{


var inc1=new GlideRecord('incident');


inc1.initialize();


inc1.impact=1;


inc1.urgency=1;


inc1.category='request';


inc1.assignment_group='3f5216c34f84ea00b161e8128110c7b6';


inc1.short_description='Apprenda Reset failed for the Demo Account of   '+apprenda.u_demo_userid;


inc1.description='Delete Applications was not Successful for the user   '+apprenda.u_demo_userid;


var url_delete = "u_apprenda_demo_id_pwd.do?sys_id="+current.sys_id;


inc1.comments ="Link to :[code]<a href='"+url_delete+"'>Apprenda Demo ID</a>[/code]";


inc1.insert();


current.setAbortAction(true);


}


}


var apprenda_create_http=apprenda_clean_up.createApplication(apprenda_token,'TimeCardPII','timecardpii'+alias,'TimeCard application for the user:'+apprenda.u_demo_tenant_name);


if(apprenda_create_http!='201')


{


var inc2=new GlideRecord('incident');


inc2.initialize();


inc2.impact=1;


inc2.urgency=1;


inc2.category='request';


inc2.assignment_group='3f5216c34f84ea00b161e8128110c7b6';


inc2.short_description='Apprenda Reset failed for the Demo Account of   '+apprenda.u_demo_userid;


inc2.description='Create Application was not Successful for the user   '+apprenda.u_demo_userid;


var url_create = "u_apprenda_demo_id_pwd.do?sys_id="+current.sys_id;


inc2.comments ="Link to :[code]<a href='"+url_create+"'>Apprenda Demo ID</a>[/code]";


inc2.insert();


current.setAbortAction(true);


}


var apprenda_upload_http=apprenda_clean_up.uploadApplication('v1',apprenda_token,'timecardpii'+alias);


if(apprenda_upload_http!='200')


{


var inc3=new GlideRecord('incident');


inc3.initialize();


inc3.impact=1;


inc3.urgency=1;


inc3.category='request';


inc3.assignment_group='3f5216c34f84ea00b161e8128110c7b6';


inc3.short_description='Apprenda Reset failed for the Demo Account of   '+apprenda.u_demo_userid;


inc3.description='Upload Application was not Successful for the user   '+apprenda.u_demo_userid;


var url_upload = "u_apprenda_demo_id_pwd.do?sys_id="+current.sys_id;


inc3.comments ="Link to :[code]<a href='"+url_upload+"'>Apprenda Demo ID</a>[/code]";


inc3.insert();


current.setAbortAction(true);


}


var apprenda_setpii_http=apprenda_clean_up.setPII('timecardpii'+alias,'v1',apprenda_token);


if(apprenda_setpii_http!='200')


{


var inc4=new GlideRecord('incident');


inc4.initialize();


inc4.impact=1;


inc4.urgency=1;


inc4.category='request';


inc4.assignment_group='3f5216c34f84ea00b161e8128110c7b6';


inc4.short_description='Apprenda Reset failed for the Demo Account of   '+apprenda.u_demo_userid;


inc4.description='SetPII Application was not Successful for the user   '+apprenda.u_demo_userid;


var url_setpii = "u_apprenda_demo_id_pwd.do?sys_id="+current.sys_id;


inc4.comments ="Link to :[code]<a href='"+url_setpii+"'>Apprenda Demo ID</a>[/code]";


inc4.insert();


current.setAbortAction(true);


}


var apprenda_settplatform_http=apprenda_clean_up.setPlatform('v1',apprenda_token,'timecardpii'+alias);


if(apprenda_settplatform_http!='200')


{


var inc5=new GlideRecord('incident');


inc5.initialize();


inc5.impact=1;


inc5.urgency=1;


inc5.category='request';


inc5.assignment_group='3f5216c34f84ea00b161e8128110c7b6';


inc5.short_description='Apprenda Reset failed for the Demo Account of   '+apprenda.u_demo_userid;


inc5.description='SetPlatform Application was not Successful for the user   '+apprenda.u_demo_userid;


var url_setplatform= "u_apprenda_demo_id_pwd.do?sys_id="+current.sys_id;


inc5.comments ="Link to :[code]<a href='"+url_setplatform+"'>Apprenda Demo ID</a>[/code]";


inc5.insert();


current.setAbortAction(true);


}


var apprenda_setsession_http=apprenda_clean_up.setSessionReplication(apprenda_token,'timecardpii'+alias,'v1');


if(apprenda_setsession_http!='204')


{


var inc6=new GlideRecord('incident');


inc6.initialize();


inc6.impact=1;


inc6.urgency=1;


inc6.category='request';


inc6.assignment_group='3f5216c34f84ea00b161e8128110c7b6';


inc6.short_description='Apprenda Reset failed for the Demo Account of   '+apprenda.u_demo_userid;


inc6.description='SetSession Application was not Successful for the user   '+apprenda.u_demo_userid;


var url_setsession= "u_apprenda_demo_id_pwd.do?sys_id="+current.sys_id;


inc6.comments ="Link to :[code]<a href='"+url_setsession+"'>Apprenda Demo ID</a>[/code]";


inc6.insert();


current.setAbortAction(true);


}


var apprenda_prmoto_http=apprenda_clean_up.promotoApplication('timecardpii'+alias,'v1',apprenda_token);


if(apprenda_prmoto_http!='202')


{


var inc7=new GlideRecord('incident');


inc7.initialize();


inc7.impact=1;


inc7.urgency=1;


inc7.category='request';


inc7.assignment_group='3f5216c34f84ea00b161e8128110c7b6';


inc7.short_description='Apprenda Reset failed for the Demo Account of   '+apprenda.u_demo_userid;


inc7.description='Promoto Application was not Successful for the user   '+apprenda.u_demo_userid;


var url_promoto= "u_apprenda_demo_id_pwd.do?sys_id="+current.sys_id;


inc7.comments ="Link to :[code]<a href='"+url_promoto+"'>Apprenda Demo ID</a>[/code]";


inc7.insert();


current.setAbortAction(true);


}


gs.log("Demo ID State:"+apprenda.u_demo_state);


var start = new GlideDateTime();


              gs.log(start.getDisplayValue());


var end= new GlideDateTime();


end=start.getDisplayValue();


end.addSeconds(1000);


current.u_demo_expiration_date=end;


gs.log("Demo ID State:"+apprenda.u_demo_state);


}


})(current, previous);



Hi Sunil,


This is the full business rule


I want to terminate the business rule if it satifies the condition where in it has to create a Incident and terminate.


You dont even need setabortaction. You can work with if else condition, so that it doesnt enter other condition.


Set Abort Action will also give you an error, Invalid Update. You should use break; instead



Please mark this response as correct or helpful if it assisted you with your question.