【问题标题】:Error while updating VersionData field of ContentVersion object更新 ContentVersion 对象的 VersionData 字段时出错
【发布时间】:2017-11-10 15:03:48
【问题描述】:
当我更新 contentversion 对象的 versiondata 字段时,它会抛出这个错误:
IsMajorVersion 为 true 时不能设置 VersionData。:[]
但是 IsMajorVersion 字段也是不可写的。
有没有人知道如何更新 contentversion 的 versiondata 字段?或者有什么解决方法?
以前我能够更新此字段,但不幸的是它现在无法正常工作。
任何帮助将不胜感激。
谢谢
【问题讨论】:
标签:
salesforce
visualforce
apex
【解决方案1】:
我遇到了同样的问题。
我的解决方案是首先从salesforce apex 创建文件,将majorversion 设置为false,然后进行更新。
这是一个编写 TEXT 文件的示例
请记住,如果它不是文本(例如,如果它是 PDF),那么您给它的字符串必须是 b64 编码的
public string write_file(string filename, string file_txt){
ContentVersion f = new ContentVersion();
list <ContentVersion> flist =
[select id, title, ContentSize, PathOnClient, VersionData
from ContentVersion
where title = : filename
and FileExtension = 'txt'
and isMajorVersion = false
limit 1
];
if ( flist.size() > 0 ){
f = flist[0];
f.VersionData = blob.valueOf(file_txt);
update f;
}else{
f.title = filename;
f.PathOnClient = filename + '.txt';
f.VersionData = blob.valueOf(file_txt);
f.IsMajorVersion = false;
insert f;
}
return('OK');
}