0

MS CRM 2011—で新しい OrganizationService エンドポイントを使用しています/XRMServices/2011/Organization.svc

Fetch古いコマンドには対応していないようです。fetchXMLそして、メソッドに渡すことで、クエリを引き続き使用できることがわかりましたRetrieveMultiple

C# では単純に見えます。

string expression = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
<entity name='systemuser'>
<attribute name='businessunitid' />
<attribute name='systemuserid' />
<order attribute='businessunitid' descending='false' />
<filter type='and'>
<condition attribute='systemuserid' operator='eq-userid' />
</filter>
<link-entity name='businessunit' from='businessunitid' to='businessunitid' alias='ah'>
<attribute name='name' />
</link-entity>
</entity>
</fetch>";

FetchExpression fetch = new FetchExpression(expression);
// let's assume GetOrganisationService will return correct instance of IOrganizationService
IOrganizationService service = GetOrganisationService();
EntityCollection result = service.RetrieveMultiple(fetch);

しかし、JavaScript から同じことを実行する必要があります。この場合、正しいクエリを作成する方法がよくわかりません。

明らかに、それは何らかの方法でfetchXML変換する必要がありますが、インターネットとSDK全体をブラッシングしましたが、それを行う方法を見つけることができません.SOAP

どうすればこの種のリクエストを入れることができますか:

<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
<entity name='systemuser'>
<attribute name='businessunitid' />
<attribute name='systemuserid' />
<order attribute='businessunitid' descending='false' />
<filter type='and'>
<condition attribute='systemuserid' operator='eq-userid' />
</filter>
<link-entity name='businessunit' from='businessunitid' to='businessunitid' alias='ah'>
<attribute name='name' />
</link-entity>
</entity>
</fetch>

次のSOAPメッセージの中に?

<soap:Body>
<RetrieveMultiple xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>
<query xmlns:q1='http://schemas.microsoft.com/crm/2006/Query' xsi:type='q1:QueryExpression'>

Some magic here

</RetrieveMultiple>
</soap:Body>
4

2 に答える 2

1

そのようなものを手作業で構築する必要はありません。XrmServiceToolkitのようなすべての SOAP 処理を処理でき、実際の FetchXml を提供するだけで済むサード パーティ ライブラリがあります。結果は既に JavaScript オブジェクトに解決されて返されます。

于 2013-03-28T14:48:57.010 に答える
1

JavaScript から SOAP 経由で複数の SOAP Retrieve をすべて設定するために必要なコードはかなり冗長です。

クエリは十分に単純です... OData レスト コールを使用しない理由はありますか?

于 2013-03-27T18:49:48.197 に答える