Knowledge Author cannot edit a field that has ownership group even though it is in the property

purdue
Kilo Sage

Hello,

 

We have the following knowledge properties enabled, but knowledge authors are not able to edit ownership group without checking out.  Ownership Group can edit without checking out.   We need the same thing for knowledge author.  Any assistance is appreciated.

Thanks,

Chadfields.pngownership group.png

I noticed this acl is blocking.   

acl.png

1 ACCEPTED SOLUTION

You will have to add your own logic to override that method in the KBCommon script include. Copy that method from KBCommonSNC and add in KBCommon script include. Change the logic in the body to what you desire. my PDI is not available at this time to advise further.

 

Or create a Support case.

 

From my PDI, the function in KBCommon script include:

 

var KBCommon = Class.create();
KBCommon.prototype = Object.extendsObject(KBCommonSNC, {

	/**
	 * Is it a multi update form.
	 *
     * @Param GlideRecord: kb_knowledge
	 **/
	isMultipleKnowledgeUpdate: function(knowledgeGR) {
		try{
			if(RP){
			var url = RP.getReferringURL();
			var sys_action = RP.getParameterValue('sys_action');
			var sysparm_multiple = RP.getParameterValue('sysparm_multiple');
		
			return url && url != null && !gs.nil(url) && (url.startsWith('kb_knowledge_update.do') || url.startsWith('kb_knowledge_base_update.do')) && sys_action == 'sysverb_multiple_update' && sysparm_multiple == 'true';
			}
		} catch(err) {
			//gs.log("Warning: KBCommon.isMultipleKnowledgeUpdate(" + err.lineNumber + "): " + err.name + " - " + err.message);
		}
		return false;
	},

    type: 'KBCommon'
});

good luck

View solution in original post

4 REPLIES 4

purdue
Kilo Sage

Hello,

I think is going to be a big lift as it looks like KBKnowledgeSNC needs to be modified.   Not sure how to do this assuming would need to copy all the code from SNC to customer one then change the acl.  But I have never done this curious if anyone has.

Thanks,

Chad

Bert_c1
Kilo Patron

That method can be overridden in the KBCommon script include. by defining the '

isMultipleKnowledgeUpdate' function there with the desired logic. The OOB function is in the KBCommonSNC script include.

I don't see where to update the logic.

var url = RP.getReferringURL();
var sys_action = RP.getParameterValue('sys_action');
var sysparm_multiple = RP.getParameterValue('sysparm_multiple');
 
return url && url != null && !gs.nil(url) && (url.startsWith('kb_knowledge_update.do') || url.startsWith('kb_knowledge_base_update.do')) && sys_action == 'sysverb_multiple_update' && sysparm_multiple == 'true';

You will have to add your own logic to override that method in the KBCommon script include. Copy that method from KBCommonSNC and add in KBCommon script include. Change the logic in the body to what you desire. my PDI is not available at this time to advise further.

 

Or create a Support case.

 

From my PDI, the function in KBCommon script include:

 

var KBCommon = Class.create();
KBCommon.prototype = Object.extendsObject(KBCommonSNC, {

	/**
	 * Is it a multi update form.
	 *
     * @Param GlideRecord: kb_knowledge
	 **/
	isMultipleKnowledgeUpdate: function(knowledgeGR) {
		try{
			if(RP){
			var url = RP.getReferringURL();
			var sys_action = RP.getParameterValue('sys_action');
			var sysparm_multiple = RP.getParameterValue('sysparm_multiple');
		
			return url && url != null && !gs.nil(url) && (url.startsWith('kb_knowledge_update.do') || url.startsWith('kb_knowledge_base_update.do')) && sys_action == 'sysverb_multiple_update' && sysparm_multiple == 'true';
			}
		} catch(err) {
			//gs.log("Warning: KBCommon.isMultipleKnowledgeUpdate(" + err.lineNumber + "): " + err.name + " - " + err.message);
		}
		return false;
	},

    type: 'KBCommon'
});

good luck