如果您导航到帐户/联系人/自定义对象,我们会有相关列表“相关内容”(如果启用了内容并且相关列表已添加到页面布局中)。
我的问题是这些“相关内容”记录是否已存储?在哪个对象?
使用apex我可以将文件上传到内容版本,但无法创建或找到存储“相关内容”信息的对象。
更新
尝试创建一个显示在帐户“相关内容”部分的链接,但没有成功。收到错误“插入失败。第0行出现第一个异常;第一个错误:FIELD_INTEGRITY_EXCEPTION,您无法通过api创建此类实体的链接:[LinkedEntityId]”
有什么想法吗?
ContentVersion cv = new ContentVersion(
versionData = EncodingUtil.Base64Decode(base64BlobValue),
Title = fileName,
PathOnClient = '/'+fileName,
FirstPublishLocationId = '058900000009KcL'
);
insert cv;
//fetch ContentDocumentId
cv = [Select Id,ContentDocumentId from ContentVersion where Id = :cv.Id];
insert new ContentDocumentLink(LinkedEntityId=parentId,ContentDocumentId=cv.ContentDocumentId,ShareType='V');
**使用案例**
用例是允许用户直接从对象详细信息页面附加内容,例如,帐户将有按钮说“附加内容”,这将带来上传内容页面,一旦上传(我将创建内容版本记录 - 这发生得非常好,没有错误)然后我需要将上传的内容与帐户(来自哪个请求)相关联,即创建“相关内容”记录(这里我遇到困难,尝试创建contentdocumentlink记录,但它的错误输出)。
用例只需点击一下即可将内容附加到帐户或机会,而不是用户转到内容的长时间当前流程,首先在那里上传,然后返回到帐户/ opty并再次搜索内容,然后将其附加到帐户/接触。
答案 0 :(得分:2)
如您所知,内容存储在ContentDocument
对象中,链接存储在ContentDocumentLink
表中。
我发现http://workbench.developerforce.com对于找出这些关系非常有用。
答案 1 :(得分:1)
请参阅用户文档中的ContentDocumentLink specification,LinkedEntityId
代表:
ID of the linked object. Can include Chatter users, groups, records
(any that support Chatter feed tracking including custom objects),
and Salesforce CRM Content libraries.
我认为基于该解释,您可以仅为基于Chatter的对象字段创建ContentDocumentLink,而不是为常规sObject记录或自定义对象等创建
。