Inserting, Updating & Related Records

DEX455 - Apex 中的数据操作:sObject 与 DML 完全指南

📄 第 170 页 🎬 视频课程

课程章节介绍

好,我们来看看这段内容。它讲的是在Salesforce里,如果两个对象之间已经有了关系,比如客户和订单,或者是父对象和子对象,那怎么往里面插入新的相关记录。 简单说,你可以在插入新记录时,通过一个叫“外卡ID”的东西,把它和已有的记录关联起来。这个“外卡ID”其实就是一种外部标识,可以让系统认出这条记录该跟谁连上。 要注意的是,当你用一次操作同时处理父记录和子记录的时候,子记录上关联父记录的那些字段,没法顺便就更新了父记录的其他字段。如果你想改父记录字段的内容,必须再用一次单独的操作。这是规则,不然系统会报错。 还有一种更灵活的做法,就是利用父记录上自定义的“外部ID字段”来添加关联的子记录。这样你就不一定非要拿到那个长长的系统ID,只要知道这个外部ID,就能把关系建立起来。 更有意思的是,如果你要一次性创建父记录和它的一系列子记录,比如创建一个新客户,同时创建它的好几个联系人和订单,可以在一条语句里完成,只要你把父记录放在数组里子记录的前面,而且支持的最深层数是十层。也就是说,父子链可以嵌套,但最深到第十层为止。 概括起来就是:有关系时,关联靠外卡ID或外部ID;一次操作不能跨层级更新父记录;批量创建时顺序要对、深度有限。这样讲,能理解吧?

关键词

Apex Salesforce Developer Guide