Dynamics 365 CustomerAddress实体ParentId属性及地址关联规则问询
Dynamics 365 CustomerAddress 实体技术问题解答
问题1:实体中名为ParentId的属性存储的是AccountId还是ContactId?
ParentId是多态查找类型字段,可同时存储Account或Contact的主键ID- 可通过同实体下的
ParentIdType属性判断关联的父实体类型:值为1代表关联Account(客户),值为2代表关联Contact(联系人)
问题2:若上述属性存储对应主体ID,当我创建地址详情完全相同的另一个Account或Contact记录时,是否会因ParentId不同而自动生成新的CustomerAddress记录?
- 是,系统默认逻辑下会生成全新的CustomerAddress记录
- Dynamics 365自带的地址关联逻辑为从属绑定,仅校验关联父记录的唯一性,不会校验地址内容的重复性,只要关联的ParentId不同,哪怕地址字段值完全一致,也会生成独立的地址记录
问题3:若Account实体中存储的是AddressId,同一地址是否可被多个Account甚至Contact复用?
- 系统默认逻辑下不支持
- 原生CustomerAddress实体的
ParentId为必填字段,且单条地址记录仅能绑定一个父主体,无法同时关联多个Account或Contact
问题4:能否实现Account1与Account2、或Account1与Contact2共用同一地址?
- 可以通过自定义开发实现,推荐两种方案:
- 方案1(优先推荐):新建自定义独立地址实体,将Account、Contact实体上的地址关联字段改为指向该自定义实体,通过一对多或多对多关系即可实现多主体共用同一条地址记录,不会影响系统原生CustomerAddress逻辑
- 方案2:修改原生CustomerAddress实体配置,将
ParentId改为非必填字段,同时新增CustomerAddress与Account、Contact的多对多关系,该方案改造成本低但可能影响系统自带的地址计算、同步逻辑,需充分测试后使用
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

