java - 用于将文件上传到 ContentDocument 对象的 JSON 语法和代码

标签 java json salesforce

我正在创建一个应用程序,用于将文件(当前仅限 .pdf)从共享文件夹导入到 Salesforce 环境。我找到了导入 Document 对象所需的 JSON 语法和代码的 Salesforce 文档,但无论出于何种原因,最初设置 Salesforce 实例的人员之前仅将文件上传为 ContentDocument 对象,而不是 Document 对象。

是否有标准的 JSON 代码格式可以直接将 .pdf 上传到 ContentDocument 对象。我所有的搜索查询都会引导我到 Data Loader,它似乎与我分配的任务不匹配。

https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_sobject_insert_update_blob.htm

最佳答案

ContentDocument不能直接创建记录。相反,您创建一个 ContentVersion通过 API 进行记录,Salesforce 会自动创建 ContentDocument ,或者如果您填充 ContentDocumentId,则将该版本添加到现有版本中字段

就记录的位置而言,您正在查看的文档是正确的,它只是没有提供如何在不使用多部分消息的情况下上传的明确示例。只要您保持在限制以下

You can insert or update blob data using a non-multipart message, but you are limited to 50 MB of text data or 37.5 MB of base64–encoded data.

您可以使用非多部分 JSON 请求来执行此操作。

您需要向

发出 POST 请求
<your instance URL>/services/data/v46.0/sobjects/ContentVersion 

使用 JSON 正文

{
    "PathOnClient": <your file's name and extension>,
    "Title": <your desired title>,
    "VersionData": <base64-encoded file contents
}

如果您想直接与记录共享文件,请在 FirstPublishLocationId 中填充记录 ID 。 (这仅适用于文档;您无法将新版本添加到现有文档并以这种方式共享)。

(大部分)就是这样!您可能需要做的唯一另一件事是从 Salesforce 查询创建的记录以获取其关联的 ContentDocumentId如果您需要做更多共享工作。

关于java - 用于将文件上传到 ContentDocument 对象的 JSON 语法和代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57044642/

相关文章:

json - 我在 Swift 4 中使用 JSON Codable 返回 NIL - 尝试从嵌套 JSON 示例返回值

json - 加密json数据

api - Quickbooks 中发生事件后触发 API 调用?

java - 为我的系统选择加密算法的标准是什么

java - 滚动时回收器查看项目淡出动画

ruby - Make error installing ruby​​ gem json v1.8.3 : BFD (GNU Binutils for Debian) 2. 22 内部错误

javascript - 使用 Postman 的 Salesforce 集成 INVALID_SESSION_ID

java - 如何在作为 BufferedImage() 的 JFrame 中添加 JPanel

java - Java中的随机16位数字函数

salesforce - 当没有可用的刷新 token 时,如何刷新或撤销 OAuth2.0 访问/refresh_token?