我在一个看起来不再存在的对象上得到一个错误。当试图将不相关的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);
}
}
结束代码
错误:编译错误:不支持对象类型"KnowledgeArticleVersion"。如果您试图使用自定义对象,请确保在实体名称后附加'__c'。请参考您的WSDL或描述调用以获取适当的名称。在第8行第44列
没有KnowledgeArticleVersion
对象,这个代码是在我来到这里之前两年多实现的。
我也遇到过类似的问题(完全相同的错误),但这是针对运行Apex类的Bot。我会分享解决方案,以防其他人来这里处理同样的权限问题
您需要确保您的Bot(或应用程序)具有KnowledgeArticleVersion
对象的权限。
设置➡ 权限集➡sfdc.chatbot.service.permset
(如果是为您的应用程序更改此项)➡ 对象设置
然后:
-
选择
Knowledge
KnowledgeArticleVersion
对象在Knowledge
下(对我来说是第一个选项。第二个Knowledge
选项有0个总字段) -
授予
Read
、View All
权限 - 保存
- 请返回并重试