【问题标题】:Count same values in 1 record计算 1 条记录中的相同值
【发布时间】:2022-01-08 23:18:59
【问题描述】:

谷歌了很多,但找不到适合我的问题的方向或代码...

问题:

在 Salesforce Apex 中,我想计算对象内 1 条记录中的相同值。

示例记录

ID |列名1 |列名2 |列名3 |列名4

01 |值错误 |价值就是好 |值错误 |值正常

如果记录有超过 1 个“ValueWrong”值,则必须将其标记为不完整。这就是为什么我需要在记录中计算(相同的)值,以制作该公式。

希望你能帮我解决这个问题。

【问题讨论】:

    标签: salesforce apex


    【解决方案1】:

    对于这个解决方案,我假设列名实际上不是以连续数字结尾的名称,而是任意命名的。

    由于您使用的是 Apex,因此您可以使用一个辅助变量来计算 ValueWrong 的出现次数。 在insertupdate 上使用触发器(之前或之后取决于您的用例),以确定ValueWrong 的出现次数。

    Number count = record.Columnname1 == 'ValueWrong' ? 1 : 0;;
    count += record.Columnname2 == 'ValueWrong' ? 1 : 0;
    count += record.Columnname3 == 'ValueWrong' ? 1 : 0;
    count += record.Columnname4 == 'ValueWrong' ? 1 : 0;
    
    if (count > 1) {
      // Mark as incomplete
    }
    

    或者,如果您想检查所有字段并且它们的名称是未知的。使用类似another answer 中的内容:

    SObjectType type = Schema.getGlobalDescribe().get('YourObject');
    Map<String, Schema.SObjectField> fieldsMap = type.getDescribe().fields.getMap();
    

    您可以使用它来动态迭代所有字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      • 2019-09-26
      • 1970-01-01
      • 1970-01-01
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多