Announcements
No record found.
I duplicated the default Form for KB articles to customize layout a bit and fields. However, the Reason for rejection slide out dialog is not triggered when changing the Review status to Rejected. It works in the Default form.
I've looked at events and triggers etc but cannot find where this functionality is to be able to replicate it. We also have 2 approval steps, so would like that to work there as well.
Hi HangryMapache,
I created a custom form as you did and it also not works for me. Then I find the code in the library(msdyncrm_/KnowledgeManagement/KnowledgeArticle/KnowledgeArticleMainSystemLibrary.js) which is used to open this dialog. So I created an onchange event on Review field and hide the Review field on the form. And it could work for me now.
Form Setting:
Onchange code:
function onchange(eventContext) { alert(1); var formContext = KnowledgeManagement.KnowledgeArticleUtility.getFormContext(eventContext), reviewState = formContext.data.entity.attributes.get(KnowledgeManagement.Review),reviewOptionSetPreviousSelection=null; if (reviewState.getValue() == KnowledgeManagement.KnowledgeArticleReviewState.Rejected) { var primaryAuthorLookupAttribute = formContext.getAttribute(KnowledgeManagement.PrimaryAuthorId), guidForPrimaryAuthorId = ""; if (primaryAuthorLookupAttribute) { var primaryAuthorLookupAttributeValue = primaryAuthorLookupAttribute.getValue(); if (primaryAuthorLookupAttributeValue && primaryAuthorLookupAttributeValue.length > 0) guidForPrimaryAuthorId = primaryAuthorLookupAttributeValue[0].id } var options = { height: 500, width: 400, position: 2 }, dialogParams = {}; dialogParams[KnowledgeManagement.ParamEntityId] = formContext.data.entity.getId(); dialogParams[KnowledgeManagement.ParamLastButtonClicked] = KnowledgeManagement.DialogOkId; dialogParams[KnowledgeManagement.ParamPrimaryAuthorId] = guidForPrimaryAuthorId; dialogParams[KnowledgeManagement.ParamReview] = reviewState.getValue(); Xrm.Navigation.openDialog(KnowledgeManagement.RejectKnowledgeArticleDialog, options, dialogParams).then(function(successParameter) { var reviewState = formContext.getAttribute(KnowledgeManagement.Review); if (reviewState) if (successParameter.parameters[KnowledgeManagement.ParamLastButtonClicked] == KnowledgeManagement.DialogOkId) reviewOptionSetPreviousSelection = reviewState.getValue(); else reviewState.setValue(reviewOptionSetPreviousSelection) }, null) } else if (reviewState.getValue() == KnowledgeManagement.KnowledgeArticleReviewState.Approved) { var onApproveDialogCancelCallback = function() { var reviewOptionSet = reviewState; reviewOptionSet.setValue(reviewOptionSetPreviousSelection) }, onApproveDialogOkCallback = function(response) { var reviewOptionSet = reviewState; reviewOptionSetPreviousSelection = reviewOptionSet.getValue() }; KnowledgeManagement.KnowledgeArticle.CommandActions.approveArticle(formContext, onApproveDialogOkCallback, onApproveDialogCancelCallback) } else reviewOptionSetPreviousSelection = reviewState.getValue()};
Result:
Under review
Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.
Congratulations to our 2026 Super Stars!
Thanks to all of our 2025 Community Spotlight stars!
These are the community rock stars!
Stay up to date on forum activity by subscribing.
NeerajPawar 31
Tom_Gioielli 30 Super User 2026 Season 1
Eugen Podkorytov 14