- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-26-2023 02:00 AM - edited 10-26-2023 02:02 AM
Hello,
I'm trying to fill up those filed in the article knowledge task record by script in a scheduled job.
I managed to fill all the necessary filed expect those that I underlined in yellow.
I cheeked in the logs and the sys_id for assignment group and also for the article and everything looked normal
this is the script and I will share also the log's
any suggestions ?
thanks
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-26-2023 02:19 AM
We need to generate the Knowledge Feedback [kb_feedback] first to be able to generate Knowledge Feedback Task [kb_feedback_task].
Have a look to the below OOTB Business Rule. You can do mimic that.
Name: Knowledge Feedback Task Creation
URL: https://<instance_name>/sys_script.do?sys_id=3cf9004d67101300d358bb2d07415a62
So based on the existing business rule, we don't need to script to generate the KFT. You just need to generate the Knowledge Feedback only, the rule will do the rest.
Sample below.
var query = 'sys_id=409de43187032100deddb882a2e3ecd9'; //replace to your query
var grKnowledge = new GlideRecord('kb_knowledge');
grKnowledge.addEncodedQuery(query);
grKnowledge.query();
while(grKnowledge.next()){
var grKnowledgeFeedback = new GlideRecord('kb_feedback');
grKnowledgeFeedback.initialize();
grKnowledgeFeedback.reason = 4; //Other
grKnowledgeFeedback.comments = 'This article will be expired next month';
grKnowledgeFeedback.user = gs.getUserID(); //The current user
grKnowledgeFeedback.article = grKnowledge.getUniqueValue();
grKnowledgeFeedback.insert();
}
Let me know if it works for you.
Cheers,
Tai Vu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-26-2023 02:19 AM
We need to generate the Knowledge Feedback [kb_feedback] first to be able to generate Knowledge Feedback Task [kb_feedback_task].
Have a look to the below OOTB Business Rule. You can do mimic that.
Name: Knowledge Feedback Task Creation
URL: https://<instance_name>/sys_script.do?sys_id=3cf9004d67101300d358bb2d07415a62
So based on the existing business rule, we don't need to script to generate the KFT. You just need to generate the Knowledge Feedback only, the rule will do the rest.
Sample below.
var query = 'sys_id=409de43187032100deddb882a2e3ecd9'; //replace to your query
var grKnowledge = new GlideRecord('kb_knowledge');
grKnowledge.addEncodedQuery(query);
grKnowledge.query();
while(grKnowledge.next()){
var grKnowledgeFeedback = new GlideRecord('kb_feedback');
grKnowledgeFeedback.initialize();
grKnowledgeFeedback.reason = 4; //Other
grKnowledgeFeedback.comments = 'This article will be expired next month';
grKnowledgeFeedback.user = gs.getUserID(); //The current user
grKnowledgeFeedback.article = grKnowledge.getUniqueValue();
grKnowledgeFeedback.insert();
}
Let me know if it works for you.
Cheers,
Tai Vu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-26-2023 02:36 AM
Thanks a lot it worked !
also I will attach here if anyone got the same problem the extra code that I added on your code for changing in the feedback task record
new KBKnowledge().notifyForExpiringArticles();
var gr = new GlideRecord('kb_knowledge');
gr.addEncodedQuery('workflow_stateINpublished^kb_knowledge_base.active=true^valid_toONNext month@javascript:gs.beginningOfNextMonth()@javascript:gs.endOfNextMonth()');
gr.query();
while (gr.next()) {
var grKnowledgeFeedback = new GlideRecord('kb_feedback');
grKnowledgeFeedback.initialize();
grKnowledgeFeedback.reason = 4; //Other
grKnowledgeFeedback.comments = 'This article will be expired next month';
grKnowledgeFeedback.user = gs.getUserID(); //The current user
grKnowledgeFeedback.article = gr.getUniqueValue();
grKnowledgeFeedback.insert();
var fr = new GlideRecord('kb_feedback_task');
fr.query('feedback', grKnowledgeFeedback.sys_id);
fr.query();
if (fr.next()) {
gs.log("Article sys_id " + grKnowledgeFeedback.sys_id);
fr.u_task_type_origin = 5;
fr.feedback_task_type = 5;
fr.update();
}
}
basically I also quarry the feedback task record and made some changes there
once again thank you