Summary
You can move articles from one knowledge base to another while changing the category matching the target knowledge base.
Release
All releases.
Instructions
This is an example and should be modified to support other migration scenarios.
- Navigate to Knowledge >Administration > Knowledge Bases.
- Click on a knowledge base Title to open a knowledge base.
- Right click the header bar and select Copy sys_id.
- Copy and paste the sys_id to a text file.
- Navigate to Knowledge >Administration > Knowledge Bases.
- Click on a knowledge base Title to open a knowledge base.
- Open an article that already has the desired category in the target knowledge base.
- Click the information icon next to the Category field.
- Right click the header bar and choose Copy sys_id.
- Copy and paste the sys_id into a notepad.
- Navigate to System Definition > Scripts – Background.
- Paste the following script into Run script (JavaScript executed on server) textbox:
-
- Replace TARGET_KB_SYS_ID with the sys_id copied in step 4
- Replace TARGET_KB_CATEGORY with the sys_id copied in step 10
var TARGET_KB_SYS_ID = 'a7e8a78bff0221009b20ffffffffff17';
var TARGET_KB_CATEGORY = '4008ed12ff0131009b20ffffffffffef';
var KB_ARTICLES_TO_MOVE = [
"KB0000009", //sample KB numbers
"KB0000006"
];
for (var i = 0; i < KB_ARTICLES_TO_MOVE.length; i++) {
moveKBArticle(KB_ARTICLES_TO_MOVE[i]);
}
function moveKBArticle(kbNumber) {
var kb = new GlideRecord('kb_knowledge');
kb.autoSysFields(false);
kb.setWorkflow(false);
kb.addQuery('number', kbNumber);
kb.query();
if (kb.next()) {
kb.kb_knowledge_base = TARGET_KB_SYS_ID;
kb.kb_category = TARGET_KB_CATEGORY;
kb.update();
gs.info('Moved ' + kbNumber + ' to Knowledge Base ' + TARGET_KB_SYS_ID);
} else {
gs.info('Did not find ' + kbNumber);
}
}
Related Links
Note that extra care needs to be taken when the Knowledge Management Article Versioning feature is active as all versions of an article would need to be moved.