Knowledge article task

eyal abu hamad
Mega Sage

Hello,
I'm trying to fill up those filed in the article knowledge task record by script in a scheduled job.

eyalabuhamad_0-1698310930740.png

 

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

eyalabuhamad_1-1698310752571.png

this is the script and I will share also the log's

eyalabuhamad_2-1698310805706.png

any suggestions ?
thanks

1 ACCEPTED SOLUTION

Tai Vu
Kilo Patron
Kilo Patron

Hi @eyal abu hamad 

 

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

View solution in original post

2 REPLIES 2

Tai Vu
Kilo Patron
Kilo Patron

Hi @eyal abu hamad 

 

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

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&colon;gs.beginningOfNextMonth()@javascript&colon;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