Thd*_*hdK 3 javascript crm dynamics-crm dynamics-crm-2011
我在两个实体之间有多对多的关系.我知道Dynamics CRM在数据库中为它创建了一个交叉表.我知道如何使用来自该自动创建实体的fetch命令检索记录.
但现在我想使用JavaScript动态地向该表添加新记录.这可能吗?
我试图为这种类型创建一个新记录,但后来我得到了以下错误.
create方法不支持["relationship_entity_name"]类型的实体.
JavaScript SDK在这一点上并不是最清晰的,但它的基础是SDK不允许直接插入到交叉表中.它只允许调用该Associate方法.以下是两个TechNet链接,可能会引导您朝着正确的方向前进.
此外,Avanade在公开提供包含帮助方法的CRM JavaScript库(更新为参考archive.org)方面做得非常出色Associate.
最后,一些示例代码:
function AssociateEntities(moniker1, moniker2, relationshipName) {
var xml;
var resultXml;
xml = "<Execute xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>";
xml += "<Request xsi:type='AssociateEntitiesRequest'>";
xml += "<Moniker1><Id xmlns='http://schemas.microsoft.com/crm/2006/CoreTypes'>" + moniker1[0].id + "</Id>";
xml += "<Name xmlns='http://schemas.microsoft.com/crm/2006/CoreTypes'>" + moniker1[0].entityType + "</Name></Moniker1>";
xml += "<Moniker2><Id xmlns='http://schemas.microsoft.com/crm/2006/CoreTypes'>" + moniker2[0].id + "</Id>";
xml += "<Name xmlns='http://schemas.microsoft.com/crm/2006/CoreTypes'>" + moniker2[0].entityType + "</Name></Moniker2>";
xml += "<RelationshipName>" + relationshipName + "</RelationshipName>";
xml += "</Request></Execute>";
resultXml = CallCrmService(xml, "Execute");
if (resultXml) {
return "success";
}
else {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)