Salesforce Apex:计算文本字段中的换行符数

时间:2013-12-17 21:47:02

标签: triggers salesforce apex-code soql apex

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

如果我更改调试消息而不是将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);

}

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

逻辑上,您的拆分应该有效,但您需要稍微重新架构以处理批量交易。你最好的选择可能是“在插入之前,在更新之前”。然后,您的伪代码将是:

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

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