【发布时间】:2020-11-26 12:10:03
【问题描述】:
我在 Order 对象上创建了一个触发器。 Order 和 Order 产品对象中都有一个称为 pacing 的字段。当订单中的 Pacing 更新时,我也在使用以下代码更新 Order Products 中与该特定订单相关的 Pacing 字段。
if(ord.Pacing__c != oldOrd.Pacing__c) {
changedPacing.put(ord.Id, ord);
pacingMapVal.put(ord.Id, oldOrd.Pacing__c);
}
if(changedPacing.size() > 0) {
OrderToOrderProductAutomation.updateLineItemRecord(changedPacing, null, null, null, pacingMapVal);
}
if(pacingArgMapVal != null && pacingArgMapVal.size() > 0) {
List<OrderItem> updates = new List<OrderItem>();
for (OrderItem detail : [SELECT Id, OrderId, Customer_Success_Manager__c, Line_Item_Start_Date__c, Line_Item_End_Date__c, Pacing__c
FROM OrderItem
WHERE OrderId IN :ordersListMap.keySet()]) {
Order oso = ordersListMap.get(detail.OrderId);
String pacing = oso.Pacing__c;
if (detail.Pacing__c == pacingArgMapVal.get(detail.OrderId)) {
detail.Pacing__c = pacing;
updates.add(detail);
}
}
update updates;
}
我创建了流程构建器,每当特定 6 个字段按顺序更新时,它会在名为 History__c 的自定义对象中创建一条记录,包括使用流程构建器调用流程。
现在每当我更新节奏时。在历史对象中创建了 3 个相同的记录。当我评论我的触发代码时,会按预期创建一个历史记录。谁能告诉我为什么会发生这种情况以及我该如何解决这个问题。
注意:Order Object 中有 3 个汇总字段,用于 Order Product 对象。
这就是我的流程构建器条件的样子。
【问题讨论】:
标签: recursion salesforce apex processbuilder custom-object