批处理过程与自定义对象同步机会联系角色

时间:2012-02-06 13:19:10

标签: salesforce apex-code

由于机会联系角色没有编写触发器的选项,我使用批处理将其与我的自定义对象同步。

Opp和OpportunityContactRole与oppid相关,Project和customobj与projectid相关

Project和Opp与oppid有关。项目已经找到了对象。

我的问题是

  1. 如果它只是从opportunitycontactRole插入到一个空的自定义对象中,那么我可以循环遍历所有的opportunitycontactRole并为customobj创建一个新记录,并从oppid和projectid的地图中用projectid替换oppid。但是,如果已经存在记录,并且只有对联系人进行了更改,那么我将如何检查和更新它?此外,如果在customobj中有一些记录,我会被困在如何去做
  2. 任何指针都会很有帮助

1 个答案:

答案 0 :(得分:0)

好的..我自己找到了解决方案......以防万一有人有类似的要求。

在customobject中创建一个新字段以保存联系人角色的ID

遍历所有活动项目, 从那里捕获所有的对手到一套 将所有项目ID捕获到另一个集合中 使用oppid和项目ID将所有项目捕获到地图中

循环遍历customobject中所有来自projectid集的项目的记录 将所有contactrole id捕获到集合中 创建contactroleid和customobject的地图并在那里添加记录(Mapcontactrole)

遍历所有oppcontactrole,以获取在oppidset中捕获的所有opps 检查mapcontactrole中是否存在contactroleid 如果是,请检查字段是否有任何更改,如果有更改则进行更新 并将此记录添加到customobject的新列表中 其他 将其添加到自定义对象列表

upsert新的customobject列表