如何使用JavaScript和:m关系链接两个记录

Thd*_*hdK 3 javascript crm dynamics-crm dynamics-crm-2011

我在两个实体之间有多对多的关系.我知道Dynamics CRM在数据库中为它创建了一个交叉表.我知道如何使用来自该自动创建实体的fetch命令检索记录.

但现在我想使用JavaScript动态地向该表添加新记录.这可能吗?

我试图为这种类型创建一个新记录,但后来我得到了以下错误.

create方法不支持["relationship_entity_name"]类型的实体.

Pet*_*eed 9

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)