如何使用Javascript对Account以外的实体执行CRUD操作

时间:2011-04-26 22:49:44

标签: javascript web-services odata dynamics-crm-2011

我一直在使用this link作为参考,通过使用javascript调用CRM网络服务来执行基本的CRUD操作。

该链接包含一个示例,说明如何在帐户实体上执行CRUD操作。在此示例中调用XMLHttpRequest对象的open函数时,第二个参数将设置为特定于帐户实体的内容。

以下是一个例子:

createAccountReq.open("POST", ODataPath + "/AccountSet", true);

我没有看到关于URL的这一部分应该为其他OOB实体或自定义实体设置的参考。

有人请指出我正确的方向吗?我假设这些信息在SDK中,但我似乎无法找到它。

2 个答案:

答案 0 :(得分:2)

这可以帮助您了解检索操作的外观:http://crm2011odatatool.codeplex.com/

一旦你有机会玩弄它,那么你需要做的就是更改Set名称和属性名称。需要注意的一件重要事情是,您应该使用实体和属性的模式名称,而不是逻辑名称。逻辑名称始终全部为小写,模式名称​​可以全部为小写但通常具有大写字母。当您使用上面的odata工具时,您应该能够轻松地看到它。

最后,this page与您的链接相似,但略有不同。确保单击JScript代码部分。

答案 1 :(得分:1)

当您访问根URL时,Web服务遵循枚举所有可用资源的standard OData pattern。 CRM返回所有可能实体的XML列表。然后,您可以将任何这些实体集附加到URL以查询实体。

例如,访问https://<CRM Server>/XRMServices/2011/OrganizationData.svc/会给您类似的内容:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<service xml:base="https://<CRM Server>/XRMServices/2011/OrganizationData.svc/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns="http://www.w3.org/2007/app">
  <workspace>
    <atom:title>Default</atom:title>
    <collection href="SdkMessageRequestFieldSet">
      <atom:title>SdkMessageRequestFieldSet</atom:title>
    </collection>
    <collection href="ListMemberSet">
      <atom:title>ListMemberSet</atom:title>
    </collection>
    <collection href="ContactQuotesSet">
      <atom:title>ContactQuotesSet</atom:title>
    </collection>
    ...

修改 如果要检索有关实体本身的元数据,请查看标题为"Retrieve Entity Metadata using JScript"的MSDN文章。它提到了一个包含在SDK中的JavaScript库,它允许您向组织元数据服务发送SOAP请求以检索所有实体详细信息,如LogicalName和DisplayName。