【问题标题】:Using CRM WebAPI to execute GetAllTimeZonesWithDisplayName function使用 CRM Web API 执行 GetAllTimeZonesWith DisplayName 函数
【发布时间】:2017-10-13 09:58:08
【问题描述】:

我正在尝试执行GetAllTimeZonesWithDisplayName 函数来检索当前用户的时区;但是我遇到了一些困难

我一直在关注这个blog,但似乎发生了一些变化。根据作者的说法,我应该可以去:

/api/data/v8.2/GetAllTimeZonesWithDisplayName(LocaleId=1033)

但这会导致如下错误:

{   
  "error":
  {
    "code":"",
    "message":"Resource not found for the segment 'GetAllTimeZonesWithDisplayName'.",
    "innererror":{
      "message":"Resource not found for the segment 'GetAllTimeZonesWithDisplayName'.",
      "type":"Microsoft.OData.Core.UriParser.ODataUnrecognizedPathException"
      ,"stacktrace":...
    }
  } 
}

所以我查看了元数据(/api/data/v8.2/$metadata),我可以看到这个方法需要两个参数(我认为)

<Function Name="GetAllTimeZonesWithDisplayName" IsBound="true">
  <Parameter Name="entityset" Type="Collection(mscrm.timezonedefinition)" Nullable="false"/> 
  <Parameter Name="LocaleId" Type="Edm.Int32" Nullable="false"/> 
  <ReturnType Type="Collection(mscrm.crmbaseentity)" Nullable="false"/> 
</Function>

但我不知道entityset参数需要什么,而且MSDN documentation中似乎没有列出

【问题讨论】:

    标签: javascript dynamics-crm dynamics-crm-365


    【解决方案1】:

    根据元数据,该函数绑定到一个实体集Parameter Name="entityset" Type="Collection(mscrm.timezonedefinition)" Nullable="false"/&gt;,这意味着您应该从该集合中启动它。而且,我不知道为什么,绑定函数的使用需要完整的函数名,所以结果将是:

    /api/data/v8.2/timezonedefinitions/Microsoft.Dynamics.CRM.GetAllTimeZonesWithDisplayName(LocaleId=1033)

    【讨论】:

    • 我不太明白你说“你应该从系列开始”是什么意思,你能详细说明一下吗?
    • 哦,我明白了:/api/data/v8.2/TIMEZONEDEFININITIONS/Microsoft.Dynamics.CRM.GetAllTimeZonesWithDisplayName(LocaleId=1033)
    • 正确,正是我在答案中发布的网址
    • 是的,当我最初阅读您的答案时,我没有注意到差异。再次感谢!
    猜你喜欢
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 2021-04-03
    • 2016-11-24
    • 1970-01-01
    • 2019-04-28
    相关资源
    最近更新 更多