1

我收到一个关于看起来不再存在的对象的错误。当尝试将不相关的 Apex 触发器部署到生产中时,由于此错误,它不会让我这样做。有人见过这个吗?你有什么建议吗?

代码

public with sharing class KnowledgeArticleViewerController {
    public KnowledgeArticleVersion article {get; set;}
    private Id articleId;

    public KnowledgeArticleViewerController(ApexPages.standardController stdController) {
        articleId = ApexPages.currentPage().getParameters().get('id');

        List<KnowledgeArticleVersion> articles = [SELECT Id,Title FROM KnowledgeArticleVersion WHERE PublishStatus = 'Online'];

        ApexPages.addMessage( new ApexPages.Message(ApexPages.Severity.ERROR, 'Got article ids: ' + articles.get(0).Id 
         + ' ' + articles.get(1).Id + ' ' + articles.get(2).Id) );

        article = articles.get(0);

    }
}

结束代码

错误:编译错误:不支持 sObject 类型“KnowledgeArticleVersion”。如果您尝试使用自定义对象,请务必在实体名称后附加“__c”。请参考您的 WSDL 或相应名称的描述调用。在第 8 行第 44 列

没有KnowledgeArticleVersion对象,这段代码是在我到达这里之前 2 年以上实现的。

4

1 回答 1

0

我有一个类似的问题(完全相同的错误),但它是针对运行 Apex 类的 Bot 的。我将分享解决方案,以防其他人因同样的权​​限问题来到这里。


您需要确保您的 Bot(或应用程序)拥有该KnowledgeArticleVersion对象的权限。

设置权限集sfdc.chatbot.service.permset(如果它是为您的应用程序更改)➡对象设置

然后:

  • 选择Knowledge

    KnowledgeArticleVersion对象在(我的Knowledge第一个选项。第二个Knowledge选项有 0 Total Fields

  • 授予权限Read_View All

  • 节省
  • 回去再试一次。
于 2020-02-20T18:28:36.037 回答