因此,Dynamics CRM 中的连接提供了一种将事物链接在一起的通用方式。
Connections 实体在内部具有 Record1Id 属性和 Record2Id 属性等。
当您通过 UI 创建连接时,CRM 实际上“在数据库的 Connection 表中创建了两个条目。每个条目都允许您从原始记录或相关记录中搜索相关记录。 ”
也就是说,如果您连接 A 和 B,它会将两行保存到(幕后)表中:
- Record1Id = A 和 Record2Id = B 的一个
- 一个 Record1Id = B 和 Record2Id = A
这是为了使搜索连接更容易。如果您对连接进行高级查找,则只需“单向”进行搜索。
所以我的问题是:
当您通过 API(后期绑定)创建连接时,如下所示:
Entity connection = new Entity("connection");
connection["record1id"] = new EntityReference("contact", someContactId);
connection["record1objecttypecode"] = new OptionSetValue(2);
connection["record1roleid"] = new EntityReference("connectionrole", someConnectionRoleId);
connection["record2id"] = new EntityReference("incident", someCaseId);
connection["record2objecttypecode"] = new OptionSetValue(122);
connection["record2roleid"] = new EntityReference("connectionrole", someOtherConnectionRoleId);
var newId = service.Create(connection);
...像上面那样“单向”创建它们是否足够,然后在幕后 CRM 将在两个方向上创建连接?
...或者您是否需要在两个方向上手动创建它们?(通过保存两次并交换 record1id record2id 值等)
或者,换句话说,用于连接的 CRM API 是否封装了“它实际上在幕后的两个连接”功能,还是您需要自己手动处理?