2016-04-05 28 views
1

'u çağırırken, yeni Web API'lerini çağırırken Microsoft's documentation'u takip ediyorum, ancak doğru parametreleri iletirken sorun yaşıyorum.CRM 2016 Web API'sı sorunu, IncrementKnowledgeArticleViewCount

ancak ben bir ilişkisiz fonksiyonu üzerine bir GET yoluyla geçmek konusunda herhangi bir belge bulamıyor, meselenin bir EntityType olması gerekiyordu Source parametresi ile olduğunu düşünüyorum.

Beni doğru yöne yönlendiren var mı?

ps. ViewDate parametre Yaptığım separately

Call geçirilecek etti:

http://hostname:5555/WPK/api/data/v8.0/IncrementKnowledgeArticleViewCount(Source= '67322227-C8F7-E511-810C-005056B608D3', ViewDate = @ p1, Yer = 1, Kont = ? 1) 'p1 = '2016-04-04T17: 00: 00Z'

hata iletisini verdi:

{ "Mesaj": "nesne türü döküm edilemiyor 'EdmValidCoreModelPrimitiveType' 'Microsoft.OData.Edm.IEdmStructuredType' için gereklidir.", "ExceptionMessage": "nesne türü döküm edilemiyor 'EdmValidCoreModelPrimitiveType' için 'Microsoft.OData.Edm.IEdmStructuredType'. "," ExceptionType "yazın: " System.InvalidCastException "," StackTrace ":" Microsoft.Crm.Extensibility.OData.CrmODataPathHandler.Parse (IEdmModel model, String serviceRoot, String odataPath) \ r \ n System.Web.OData.Routing.ODataPathRouteConstraint.Match (HttpRequestMessage isteği, IHttpRoute rotası, String parametresiName, IDictionary'2 değerleri, HttpRouteDirection routeDirection) \ r \ n at System.Web.Http.Routing.HttpRoute.ProcessConstraint (HttpRequestMessage istek, nesne kısıtlama String parameterName, HttpRouteValueDictionary değerleri HttpRouteDirection routeDirection) \ r \ n System.Web.Http.Routing.HttpRoute.ProcessConstraints (en HttpRequestMessage isteği HttpRouteValueDictionary değerleri HttpRouteDirection routeDirection) \ r \ n System.Web.Http.Routing.HttpRoute.GetRouteData (string virtualPathRoot de, HttpRequestMessage istek) \ r \ n, en System.Web.Http.WebHost.Routing .HttpWebRoute.GetRouteData (HttpContextBase httpContext) "," ErrorCode ": 500}

+0

OData sorgusunu ayrıştırırken bir CRM sunucusu hatası gibi görünüyor. Microsoft'a bildirmelisiniz. –

cevap

0

Kaynak parametresinin bir OData varlık referansı olarak geçirilmesi gerekir.

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

aşağıdaki bu yöntemin kullanımını gösteren istek/yanıt olduğunu: öylesine gibi

:

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" 
    } 

Sadece okumak için bu biraz daha kolay hale getirmek için, burada kodlanmamış 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 

Bu durumu kapatmak için belgeler yakın zamanda güncelleştirildi.Bkz. Use Web API functions > Pass reference to an entity to a function