为了保持与现有客户的向后兼容性,我必须能够处理Salesforce中的附件和文件。基本上,一些客户需要能够在我们的社区门户中插入文件和其他附件。我想在用户不知道他们要插入哪一个的情况下执行此操作。
我认为最简单的方法就是不使用当前用于上传的顶点页面。然后,在附件触发器中,我可以确定(应在某处使用标记)附件是否应保留或更改为文件(ContentVersion)。如果应该是文件;然后我将创建所有必要的记录ContentVersion,ContentDocumentLink,然后跳过附件。但是,我想不出一种方法来阻止附件的插入而不会对用户产生错误。我真的不想让附件插入,然后在插入后触发器中将其删除,因为这似乎有很多开销。
使用触发器意味着我可以处理社区用户可以在其中添加文件的多个地方。否则,我将不得不在所有位置进行更改,以确定要插入的记录类型。
所以毕竟,主要的问题是是否有一种方法可以在没有addError方法的情况下停止插入记录?
答案 0 :(得分:0)
不,没有。您不能停止在触发器中插入Attachment
记录,而不会强制整个事务或保存点区域的回滚,这将包括您的Attachment触发器为添加Content对象而执行的任何DML。
我看到的唯一选择是按照您的描述执行删除操作,或者更改前端代码以直接插入内容记录而不是附件。