You need to sign in to do that
Don't have an account?
Francesco Sciuto
IsVisivleInPkb flag for Knowledge Articles always false in public VF page
I have created a VF to display Knowledge Base articles for anonymous access. In this page I render a login request if the flag IsVisibleInPkb is false, otherwise I display the Knowledge article. The issue is that even for articles where I am sure the flag IsVisibleInPkb is set to true, it returns false when the VF page is rendered. How can it be possible?
Attached the VF page:
And the Debug Logs for request coming from Guest users:
35.0 APEX_CODE,FINEST;APEX_PROFILING,FINEST;CALLOUT,FINEST;DB,FINEST;SYSTEM,FINEST;VALIDATION,FINEST;VISUALFORCE,FINEST;WORKFLOW,FINEST
13:39:52.058 (58723671)|EXECUTION_STARTED
13:39:52.058 (58775224)|CODE_UNIT_STARTED|[EXTERNAL]|06633000000950o|VF: /apex/CommunitiesPCSArticles
13:39:52.066 (66031866)|VF_EVALUATE_FORMULA_BEGIN|06633000000950o|#{!PCS__kav.IsVisibleInPkb}
13:39:52.076 (76821166)|VF_EVALUATE_FORMULA_END
13:39:52.082 (82477353)|VF_EVALUATE_FORMULA_BEGIN|06633000000950o|#{!PCS__kav.IsVisibleInPkb}
13:39:52.082 (82625784)|VF_EVALUATE_FORMULA_END
13:39:52.082 (82656579)|VF_EVALUATE_FORMULA_BEGIN|06633000000950o|#{!PCS__kav.IsVisibleInPkb}
13:39:52.082 (82791731)|VF_EVALUATE_FORMULA_END
13:39:52.082 (82823593)|VF_EVALUATE_FORMULA_BEGIN|06633000000950o|#{!PCS__kav.IsVisibleInPkb}
13:39:52.082 (82962752)|VF_EVALUATE_FORMULA_END
13:39:52.083 (83060972)|VF_EVALUATE_FORMULA_BEGIN|06633000000950o|#{!PCS__kav.IsVisibleInPkb}
13:39:52.083 (83191161)|VF_EVALUATE_FORMULA_END
13:39:52.083 (83266219)|VF_EVALUATE_FORMULA_BEGIN|06633000000950o|#{!PCS__kav.IsVisibleInPkb}
13:39:52.083 (83404682)|VF_EVALUATE_FORMULA_END
13:39:52.083 (83433809)|VF_EVALUATE_FORMULA_BEGIN|06633000000950o|#{!PCS__kav.IsVisibleInPkb}
13:39:52.083 (83594070)|VF_EVALUATE_FORMULA_END
13:39:52.086 (86849930)|VF_EVALUATE_FORMULA_BEGIN|06633000000950o|#{!PCS__kav.IsVisibleInPkb}
13:39:52.086 (86976895)|VF_EVALUATE_FORMULA_END
13:39:52.088 (88697567)|CUMULATIVE_LIMIT_USAGE
13:39:52.088 (88697567)|LIMIT_USAGE_FOR_NS|(default)|
Attached the VF page:
<apex:page standardController="PCS__kav"> <apex:outputPanel rendered="{!!PCS__kav.IsVisibleInPkb}"> <apex:outputText styleClass="communitiesWarningMessage" value="Sorry you cannot view this article, please login" /> </apex:outputPanel> <apex:outputPanel rendered="{!PCS__kav.IsVisibleInPkb}"> <div class="bPageTitle"> <div class="ptBody"> <h1 class="pageType noSecondHeader">{!PCS__kav.Title}</h1> </div> </div> <apex:pageblock title="Description"> <div class="knowledgeTabPanel-body"> <div> <div class="pbSubsection"> <table class="detailList" border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <th class="labelCol vfLabelColTextWrap first last " scope="row">Problem</th> <td class="data2Col first last "> <apex:outputText value="{!PCS__kav.Problem__c}" escape="false"/> </td> </tr> </tbody> </table> </div> </div> <div> <div class="pbSubsection"> <table class="detailList" border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <th class="labelCol vfLabelColTextWrap first last " scope="row">Solution</th> <td class="data2Col first last "> <apex:outputText value="{!PCS__kav.Solution__c}" escape="false"/> </td> </tr> </tbody> </table> </div> </div> </div> </apex:pageblock> </apex:outputPanel> </apex:page>
And the Debug Logs for request coming from Guest users:
35.0 APEX_CODE,FINEST;APEX_PROFILING,FINEST;CALLOUT,FINEST;DB,FINEST;SYSTEM,FINEST;VALIDATION,FINEST;VISUALFORCE,FINEST;WORKFLOW,FINEST
13:39:52.058 (58723671)|EXECUTION_STARTED
13:39:52.058 (58775224)|CODE_UNIT_STARTED|[EXTERNAL]|06633000000950o|VF: /apex/CommunitiesPCSArticles
13:39:52.066 (66031866)|VF_EVALUATE_FORMULA_BEGIN|06633000000950o|#{!PCS__kav.IsVisibleInPkb}
13:39:52.076 (76821166)|VF_EVALUATE_FORMULA_END
13:39:52.082 (82477353)|VF_EVALUATE_FORMULA_BEGIN|06633000000950o|#{!PCS__kav.IsVisibleInPkb}
13:39:52.082 (82625784)|VF_EVALUATE_FORMULA_END
13:39:52.082 (82656579)|VF_EVALUATE_FORMULA_BEGIN|06633000000950o|#{!PCS__kav.IsVisibleInPkb}
13:39:52.082 (82791731)|VF_EVALUATE_FORMULA_END
13:39:52.082 (82823593)|VF_EVALUATE_FORMULA_BEGIN|06633000000950o|#{!PCS__kav.IsVisibleInPkb}
13:39:52.082 (82962752)|VF_EVALUATE_FORMULA_END
13:39:52.083 (83060972)|VF_EVALUATE_FORMULA_BEGIN|06633000000950o|#{!PCS__kav.IsVisibleInPkb}
13:39:52.083 (83191161)|VF_EVALUATE_FORMULA_END
13:39:52.083 (83266219)|VF_EVALUATE_FORMULA_BEGIN|06633000000950o|#{!PCS__kav.IsVisibleInPkb}
13:39:52.083 (83404682)|VF_EVALUATE_FORMULA_END
13:39:52.083 (83433809)|VF_EVALUATE_FORMULA_BEGIN|06633000000950o|#{!PCS__kav.IsVisibleInPkb}
13:39:52.083 (83594070)|VF_EVALUATE_FORMULA_END
13:39:52.086 (86849930)|VF_EVALUATE_FORMULA_BEGIN|06633000000950o|#{!PCS__kav.IsVisibleInPkb}
13:39:52.086 (86976895)|VF_EVALUATE_FORMULA_END
13:39:52.088 (88697567)|CUMULATIVE_LIMIT_USAGE
13:39:52.088 (88697567)|LIMIT_USAGE_FOR_NS|(default)|
If you output {!PCS__kav.IsVisibleInPkb} before the outputPanel, does it show true or false?
You could try using rendered="{!IF(PCS__kav.IsVisibleInPkb,true,false)}" as I've seen issues where simply using the boolean fields results in some unexepcted errors.
Also, the Site Guest User / Public Access Settings may need permission to view knowledge articles in order for your Visualforce page to render properly, but I'm not 100% on that.