1

我想创建一个触发器和/或类来计算 Salesforce.com 中长文本字段中的换行数。

如果我将调试消息更改为将 commentsLength 写入自定义字段,此逻辑是否有效?

public with sharing class TaskCommentsCount {
Integer commentsLength = 0;

for(Task t : [Select Comments From Task]){
List<String> lines = t.Comments.split('\n');
commentsLength += lines.size();
}

system.debug('Comments lines: ' + commentsLength);

}
4

2 回答 2

1

你的触发器/班级多大了?今年某个时候(Spring'13 发布?)String该类获得了重大升级,我们现在有了countMatches()方法。

也许您只需要升级 API 版本就可以在触发器中使用它。

于 2013-12-18T18:32:31.603 回答
0

我假设您将更改此逻辑以在触发器中工作。

从逻辑上讲,您的拆分应该可以工作,但您需要稍微重新架构它以处理批量事务。您最好的选择可能是使用“插入前,更新前”。然后,您的伪代码将是:

Loop over Trigger.new
  Split on \n
  Set comment_length field to size of collection

通过使用 before,您实际上不必显式地进行后续保存调用,只要您正在处理 Trigger.new 中的元素。此上下文还允许您处理具有 1 个以上任务的触发器。

于 2013-12-18T18:16:30.740 回答