saleforce中关联关系的理解(一)
来源:互联网 发布:西安九索数据年终奖 编辑:程序博客网 时间:2024/06/03 09:31
在salesforce中有个特殊的用户,就是__r,无论实在apex代码还是在soql语句中,都可以使用__r关联出关联对象中的字段出来。在获取数据的时候十分方便。
今天要介绍在apex class中的一种用用法。
例如在一个场景下,在某医药公司的CRM系统中,需要通过导入数据批量创建一批医生和科室,并且需要将医生所属的科室关联在一起。在这个场景下,需要创建一个新的医生(Person Account),和医生所属的科室(Account)。医生和科室都是Account,只是RecordType不同,并且都有External Id作为唯一的系统标识。编写代码如下:
trigger DCRAfterUpdateInsert on DCR__c (after update,after insert) { List<Account> newDepAccounts = new List<Account>(); List<Account> newHCPAccounts = new List<Account>();Id depRecordtypeId = sobject.account.....;//get dep recordtype idId hcpRecordtypeId = sobject.account.....;//get hcp recordtype id for(DCR__c tempDcr : trigger.new) { //new dep account,required field must not emptynewDepAccounts.add(new Account(Account_External_Id__c = tempDcr.Dep_Externla_Id__c,recordtypeid = depRecordtypeId,Name = tempDcr.DepName));// new HCP Account newHCPAccount = new Account();newHCPAccount.LastName = tempDcr.HCP_LastName__c;newHCPAccount.recordtypeid = hcpRecordtypeId;newHCPAccount.Account_External_Id__c = tempDcr.HCP_External_Id__c;newHCPAccount.DEP_Account__r = new Account(Account_External_Id__c = tempDcr.Dep_Externla_Id__c);//hcp references dep newHCPAccounts.add(newHCPAccount); } if(newDepAccounts.size() > 0 ) upsert newAccounts Account_External_Id__c; if(newHCPAccounts.size() > 0 ) upsert newCases Account_External_Id__c;}
这种方式是最简便的方式,有如下几点需要注意:
1.depAccount 和HCPAccount 插入的顺序不能颠倒。否则报错。“INVALID_FIELD, Foreign key external ID: testAccount not found for field Account_External_Id__c in entity Account”
2.__r后面赋值的时候,new Account(此处只能对External Id类型的赋值。),否则保存,如对Name赋值:"INVALID_FIELD,Name is not an External ID or indexex field for Account"
0 0
- saleforce中关联关系的理解(一)
- saleforce中ActionFunction和SupportFunction的区别
- Hibernate中关联关系:多对一的学习
- 数据库弱关联关系的理解
- 关联映射的关系(多对一)
- hibernate 中关联关系映射中inverse 和cascade的理解
- 多对一单向关联关系理解与实践
- 62、saleforce的schedule
- Hibernate中关联关系的CRUD(增删改查)
- Hibernate 映射实体关联关系(一)
- Hibernate关联关系映射(多对一关联映射)
- java中一对多,多对一的关联关系的实现
- hibernate中一对多多对一关系设计的理解(讲得好)
- UML中类的关系:关联关系、聚合关系、依赖关系、泛化关系、实现关系
- Hibernate 中 一对多、多对一、 关联关系的 配置
- hibernate中关联关系的映射
- MySQL中删除表的关联关系
- Hibernate中关联关系的配置
- JS判断移动设备最佳方法 并实现跳转至手机版网页
- C# 程序等待延迟执行
- android之旅22 多媒体编程1: 图片处理
- Java Day7
- Kali下masscan的使用
- saleforce中关联关系的理解(一)
- 编写高质量的JS代码(变量的声明和for循环)
- php常量介绍以及一些简单用法
- 我使用过的Linux命令之kill - 终止进程/发送信号
- ViewPager Transform 使用详解
- BZOJ 2705 - 经典问题 欧拉函数
- 修改了一个YUV/RGB播放器
- 奇葩的生意才会赚钱
- 哈希题目