Class 错误:编译错误:不支持sObject类型“KnowledgeArticleVersion”。

Class 错误:编译错误:不支持sObject类型“KnowledgeArticleVersion”。,class,error-handling,apex-code,Class,Error Handling,Apex Code,我得到一个错误,看起来像一个不再存在的对象。当尝试将不相关的Apex触发器部署到生产环境中时,由于此错误,它将不允许我执行此操作。有人见过这个吗?你有什么建议吗 密码 结束代码 错误:编译错误:不支持sObject类型“KnowledgeArticleVersion”。如果试图使用自定义对象,请确保在实体名称后附加“\uuu c”。请参考您的WSDL或描述调用以获取适当的名称。第8行第44列 没有KnowledgeArticleVersion对象,此代码是在我来到这里之前2年多实现的。每当您将任

我得到一个错误,看起来像一个不再存在的对象。当尝试将不相关的Apex触发器部署到生产环境中时,由于此错误,它将不允许我执行此操作。有人见过这个吗?你有什么建议吗

密码 结束代码 错误:编译错误:不支持sObject类型“KnowledgeArticleVersion”。如果试图使用自定义对象,请确保在实体名称后附加“\uuu c”。请参考您的WSDL或描述调用以获取适当的名称。第8行第44列


没有KnowledgeArticleVersion对象,此代码是在我来到这里之前2年多实现的。

每当您将任何代码更改部署到Salesforce的生产实例时,该实例的所有代码都将重新编译,所有测试都将运行

您必须通过删除对不存在的sObject KnowledgeArticleVersion的引用来修复此代码,然后才能部署其他更改。

我遇到了一个类似的问题—完全相同的错误,但它适用于运行Apex类的Bot。我将分享解决方案,以防其他人因同样的权限问题来到这里

您需要确保您的机器人或应用程序具有KnowledgeArticleVersion对象的权限

设置➡ 权限集➡ sfdc.chatbot.service.permset如果是针对您的应用程序,请更改此设置➡ 对象设置

然后:

选择知识

KnowledgeArticleVersion对象是我的第一个选项。第二个知识选项共有0个字段

授予读取、查看所有权限

拯救 回去再试一次。
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);

    }
}