Это немного нелогично, но для загрузки файла вам нужно загрузить ContentVersion
запись. Если поле родительского поиска (ContentDocumentId
) будет пустым - оно автоматически создаст для вас родительский ContentDocument
.
Примеры загрузки можно найти здесь: https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_sobject_insert_update_blob.htm
(я уже ответил, что для вас, не так ли? :))
Таким образом, единственное отличие будет в том, что вы хотите установить OwnerId
, возможно, также CreatedById
как этот пользователь. Вы можете установить владельца всегда, пока владелец является активным пользователем. «Создано», «Последнее изменение» - это поля аудита, обычно не редактируемые. Если владелец неактивен или вы действительно хотите установить «Создано» - вы можете. Но у вас есть только один выстрел, поля аудита могут быть установлены только при вставке. После этого каждое обновление управляется SF. Проверьте Справка , если вам нужна дополнительная информация по этому вопросу.
Теперь ... это не всегда необходимо. Хорошо, вы создадите файл заново, но все ссылки на него (из других записей, из постов болтовни, из библиотек) будут потеряны. Это в ContentDOcumentLink
, и если вы удаляете документ - они каскадно удаляются. Возможно, у вас нет информации или разрешений для воссоздания всех ссылок.
Ваша первая линия защиты - проверка возможности восстановления файла из корзины. Это не может быть сделано в чистом REST API, но вы можете использовать SF SOAP API или написать сервис Apex, который попытается сделать это за вас. См. https://salesforce.stackexchange.com/questions/117370/how-can-a-record-be-undeleted-using-the-rest-api для подсказок.