function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Francesco SciutoFrancesco 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:
 
<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)|


 
James LoghryJames Loghry

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.