2011-09-09 3 views
2

2つのエンティティ間に多対多の関係があります。私はDynamics CRMがデータベースのそれのための交差テーブルを作成することを知っています。そして、私はその自動作成されたエンティティからフェッチコマンドでレコードを取得する方法を知っています。2つのレコードをJavaScriptとn:mの関係でリンクする方法

しかし、JavaScriptを使用して、そのテーブルに新しいレコードを動的に追加したいと思います。これは可能ですか?

このタイプの新しいレコードを作成しようとしましたが、次のエラーが発生しました。

createメソッドは、["relationship_entity_name"]タイプのエンティティをサポートしていません。

答えて

8

JavaScript SDKはこの時点では最も明瞭ではありませんが、SDKの基本は交差テーブルに直接挿入できないことです。それはAssociateメソッドへの呼び出しのみを許可します。以下は2つのTechNetリンクで、正しい方向にあなたを導くことができます。

さらに、アバナードはAssociateヘルパーメソッドが含まれてCRM JavaScript library (updated to reference archive.org)を公開するには素晴らしい仕事をしました。

最後に、いくつかのサンプルコード:

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; 
    } 
} 
+0

+1。私はアバナードのリンクに+2を与えることができたらいいのに –

+0

ありがとう!実際には、SDKにはそれほど多くはありません。しかし、あなたはこれをとてもうまく解決しました!問題が解決しました! – ThdK

関連する問題