【问题标题】:mule: Capturing failed Salesforce Upsert record after batch commit in batch processingmule:在批处理中批量提交后捕获失败的 Salesforce Upsert 记录
【发布时间】:2017-12-21 17:20:04
【问题描述】:

我必须将大量数据插入到销售人员的机会中。在第一个批处理步骤中使用了批处理提交。 Upsert Bulk 的结果是 Upsert Result 的列表,包含 success,id,error,fields。

遍历这个结果,检查失败的记录(成功为假),现在我想将错误和原始有效负载发送到电子邮件。

  1. 如何将失败的 upsert 结果与原始有效负载相关联?
  2. 批量提交后输入负载的顺序是否在输出中保持?

示例:输入有效负载:[rec1,rec2,rec3] UpsertResult[success:true,success:false errors:invalid field,success:true]

我想发送一封电子邮件说 rec2 由于错误无效字段而失败。

任何帮助将不胜感激。

【问题讨论】:

    标签: mule


    【解决方案1】:

    salesforce 操作结果的顺序将保持与输入顺序相同。 在批处理步骤之前,将输入存储在 Hashmap 中,其中 Id 作为键,整个输入作为值。 在批处理步骤之后,迭代结果并在结果状态为 false 时收集 Id。

    现在您可以通过传递 Id 轻松地从 hashmap 中检索失败的 Id 数据。 代码sn -p

    def inputPayloadForReprocess =[];

    //建立重新处理错误记录的逻辑 for(int i=0; i if(payload.get(i).toString().contains("success='false'")){ //检查salesforce故障

        inputPayloadForReprocess.add(message.getInvocationProperty("storePayload").get(i));
        break;
    }
    

    }

    【讨论】:

      猜你喜欢
      • 2016-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-18
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      • 2014-07-17
      相关资源
      最近更新 更多