Make fields read-only on RITM based on 1 task closure in sc_Task

Priyanka145
Tera Contributor

Hi All,

I need to make few fields read-only on RITM based on 1 sc_task closure. There are totally 5 tasks, but I want to make the fields read-only after 2nd task. Kindly suggest the way to proceed 

I only have short description name unique for all the sc_Tasks

1 ACCEPTED SOLUTION

You can write a display BR on RITM Table which queries sc_task table and store the value in scratchpad and use the same scratchpad in your client script.

1.Make sure your BR Trigger conditions apply for this catalog item.

code:

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

    var grScTask = new GlideRecord('sc_task');
grScTask.addEncodedQuery("short_description=shortdescription_value^request_item="+current.sys_id"^state=3"); //modify short description value.
grScTask.query();
if(grScTask.next()) {
   g_scratchpad.task_completed= 'true'; 
else
  g_scratchpad.task_completed= 'false';



})(current, previous);

You can use g_scratchpad.task_completed value in your client script and make variables read-only/editable.


alert("scratcpad value"+g_scratchpad.task_completed value);//testing purpose.
if(g_scratchpad.task_completed value == 'true')
{
//do something
}
else
{
//do something
}

check below links for similar requirrements

https://community.servicenow.com/community?id=community_question&sys_id=ca0e12bbdb89701414d6fb243996...

 


Mark it helpful if this helps you to understand. Accept solution if this give you the answer you're looking for
Kind Regards,
Rohila V
2022-25 ServiceNow Community MVP

View solution in original post

11 REPLIES 11

Hi priyanka

use this to get the request item sysid.

gs.addErrorMessage("RITM is " + current.request_item); 

Mark it helpful if this helps you to understand. Accept solution if this give you the answer you're looking for
Kind Regards,
Rohila V
2022-25 ServiceNow Community MVP

Thanks,  am able to get it with gs.addErrorMessage("RITM is " + current.sys_id); 

Now, The number of records returning is 0, but it should show as 1.

 var grScTask = new GlideRecord('sc_task');
 grScTask.addEncodedQuery("short_description=Categorization task (project1 and project2)^request_item='+current.sys_id'^state=3");
    gs.log("RITM sys id is " +current.sys_id);
grScTask.query();
gs.log("count is "+grScTask.getRowCount());    //returning 0 here even if state is closed
if(grScTask.next()) {
   g_scratchpad.task_completed= 'true';     
gs.log("completed is true");
}
else{
  g_scratchpad.task_completed= 'false';
    gs.log("completed is false");
}

It is going to false in the log, even after the sc_Task where short description('Categorization task (project1 and project2)) is closed complete

Kindly guide me here please. If I just give encoded query without requst_item='+current.sys_id, I am getting count as 30
and g_scratchpadtask_completed as true.

Hi Priyanka

I missed a + symbol in above query, try below line.

grScTask.addEncodedQuery("short_description=Categorization task (project1 and project2)^request_item="+current.sys_id+"^state=3");

updated code:

var grScTask = new GlideRecord('sc_task');
grScTask.addEncodedQuery("short_description=Categorization task (project1 and project2)^request_item="+current.sys_id+"^state=3");
gs.log("RITM sys id is " + current.sys_id);
grScTask.query();
gs.log("count is " + grScTask.getRowCount()); //returning 0 here even if state is closed
if (grScTask.next()) {
    g_scratchpad.task_completed = 'true';
    gs.log("completed is true");
} else {
    g_scratchpad.task_completed = 'false';
    gs.log("completed is false");
}

Mark it helpful if this helps you to understand. Accept solution if this give you the answer you're looking for
Kind Regards,
Rohila V
2022-25 ServiceNow Community MVP

Did you get chance to check my answer?

 

If your issue is resolved now.

 

If yes, can you please mark appropriate response as correct for others who may have a similar question in the future and close this unresolved thread.

 

If not, please let us know if you need any other help


Mark it helpful if this helps you to understand. Accept solution if this give you the answer you're looking for
Kind Regards,
Rohila V
2022-25 ServiceNow Community MVP

Thankyou, Yes it worked well. I just applied and tested it today