更新ContentVersion对象的VersionData字段时出错

时间:2017-11-10 15:03:49

标签: salesforce visualforce apex

当我更新contentversion对象的versiondata字段时,它会抛出此错误: 当IsMajorVersion为true时,您无法设置VersionData:[]

但IsMajorVersion字段也不可写。

有没有人有任何关于如何更新contentversion的versiondata字段的解决方案?或者任何解决方法? Previsouly我能够更新这个字段,但遗憾的是它现在无法正常工作。

非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。 我的解决方案是首先从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');
    }