5

如果您导航到帐户/联系人/自定义对象,我们确实有一个相关列表“相关内容”(如果启用了内容并将相关列表添加到页面布局中)。

我的问题是这些“相关内容”记录是否存储?在哪个对象?

使用 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');

** 用例 **

用例是允许用户直接从对象详细信息页面附加内容,例如说帐户将有按钮说附加内容,这将带来上传内容页面,一旦上传(我将创建 contentversion 记录 - 这很完美,没有错误)然后我需要将上传的内容与帐户相关联(从哪个请求发起),即创建“相关内容”记录(在这里我遇到了困难,试图创建 contentdocumentlink 记录但它出错了)。

该用例只需单击一下即可将内容附加到帐户或机会,而不是当前的漫长过程,即用户转到内容,先上传到那里,然后返回帐户/选项并再次搜索内容,然后将其附加到帐户/联系人。

4

2 回答 2

2

如您所知,内容存储在ContentDocument对象中,链接存储在ContentDocumentLink表中。

我发现http://workbench.developerforce.com对于弄清这些关系非常有用。

于 2012-07-09T14:03:24.323 回答
1

请参阅用户文档中的ContentDocumentLink 规范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 记录或自定义 sobjects等。

于 2012-07-26T21:29:20.687 回答