"Related Content"存储在哪个对象中/如何从Apex创建"Related Content"记录



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

我的问题是,这些"相关内容"记录是否已存储?在哪个对象中?

使用apex,我可以将文件上传到内容版本,但无法创建或找到存储"相关内容"信息的对象。

更新

尝试创建一个链接以显示在帐户的"相关内容"部分,但没有成功。收到错误"Insert失败。行0上的第一个异常;第一个错误:FIELD_IINTEGRITY_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记录,但它出错了)。

用例只是点击一下将内容附加到帐户或机会,而不是长时间的当前过程,用户先转到内容,然后上传到那里,然后返回到帐户/opty,再次搜索内容,然后将其附加到帐户/联系人。

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

我发现http://workbench.developerforce.com对于弄清楚这些关系真的很有用。

请参阅用户文档中的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记录或自定义sObject等创建。

最新更新