2016-04-05 21 views
1

Microsoft's documentationに新しいWeb APIを呼び出す際に従っていますが、正しいパラメータを渡す際に問題が発生しています。IncrementKnowledgeArticleViewCountを呼び出すときのCRM 2016 Web APIの問題

私は問題はしかし、私は結合していない機能にGETを経由して、それに合格する方法上の任意のドキュメントを見つけることができない、EntityTypeであることを意味するSourceパラメータであると思います。

誰でも正しい方向に向けることができますか?

ps。 ViewDateパラメータは、私が作っていseparately

コールに渡さなければなりません:

http://hostname:5555/WPK/api/data/v8.0/IncrementKnowledgeArticleViewCount(Source= '67322227-C8F7-E511-810C-005056B608D3'、ViewDate = @ P1、場所= 1、カウント= ?1)@ P1 = '2016-04-04T17:00:00Z'

エラーメッセージが返さ:

{「メッセージ」:「『EdmValidCoreModelPrimitiveType』タイプ のオブジェクトをキャストすることができない 『Microsoft.OData.Edm.IEdmStructuredType』と入力する。」、「ExceptionMessage」: に「タイプのオブジェクトをキャストすることができません 『EdmValidCoreModelPrimitiveType』を「タイプ:Microsoft.OData.Edm.IEdmStructuredType」。「System.InvalidCastException」、「StackTrace」:文字列odataPath)\ r \ nで System.Web.OData.Routing.ODataPathRouteConstraint.Match(HttpRequestMessage 要求、IHttpRouteルート、String parameterName、IDictionary`2値、 HttpRouteDirection routeDirection)\ r \ n at System.Web.Http.Routing.HttpRoute.ProcessConstraint(HttpRequestMessage 要求、オブジェクト制約は、文字列ParameterNameが、 HttpRouteValueDictionary値、HttpRouteDirection routeDirection)\ R \ nは System.Web.Http.Routing.HttpRoute.ProcessConstraints(AT HttpRequestMessage 要求、HttpRouteValueDictionary値、HttpRouteDirection routeDirection)\ R \ nは System.Web.Http.Routing.HttpRoute.GetRouteData(文字列virtualPathRootで、 HttpRequestMessageリクエスト)\ R \ nにおける System.Web.Http.WebHost.Routing .HttpWebRoute.GetRouteData(HttpContextBase httpContext) "、" ErrorCode ":500}

+0

ODataクエリの解析中にCRMサーバーのバグのように見えます。 Microsoftに報告する必要があります。 –

答えて

0

sourceパラメータは、ODataエンティティ参照として渡す必要があります。

{"@odata.id":"knowledgearticles(da2500aa-2068-e611-8118-00155d011200)"} 

次は、この方法の使用を示す要求/応答である:

GET < org uri >/api/data/v8.1/IncrementKnowledgeArticleViewCount([email protected],[email protected],[email protected],[email protected])[email protected]=%7B%[email protected]%22:%22knowledgearticles(da2500aa-2068-e611-8118-00155d011200)%22%7D&@p2=2016-08-22T04:26.59Z&@p3=1&@p4=10 HTTP/1.1 
    Accept: application/json 
    Content-Type: application/json; charset=utf-8 
    OData-MaxVersion: 4.0 
    OData-Version: 4.0 

    HTTP/1.1 200 OK 
    Cache-Control: no-cache 
    Pragma: no-cache 
    Content-Type: application/json; odata.metadata=minimal 
    OData-Version: 4.0 

    { 
     "@odata.context":"< org uri >/api/data/v8.1/$metadata#knowledgearticleviews/Microsoft.Dynamics.CRM.crmbaseentity/$entity", 
     "@odata.type":"#Microsoft.Dynamics.CRM.knowledgearticleviews", 
     "knowledgearticleviewsid":"e32500aa-2068-e611-8118-00155d011200" 
    } 

ただ、ここでは、読むために、これは少し楽にするためには、エンコードされていないURLです:

ので、同様
< org uri >/api/data/v8.1/IncrementKnowledgeArticleViewCount([email protected],[email protected],[email protected],[email protected])[email protected]={"@odata.id":"knowledgearticles(da2500aa-2068-e611-8118-00155d011200)"}&@p2=2016-08-22T04:26.59Z&@p3=1&@p4=10 

この状況をカバーするように、ドキュメントが最近更新されました。Use Web API functions > Pass reference to an entity to a function

関連する問題