मैं डायनेमिक्स सीआरएम वेब एपीआई की खोज कर रहा हूं और एक वेबहुक पंजीकृत करने का प्रयास कर रहा हूं जो तब ट्रिगर होगा जब इकाइयां (जैसे संपर्क/खाते) अपडेट/बनाई गई हों। मैं प्लगइन पंजीकरण उपकरण का उपयोग करके इस सेटअप को बनाने में सक्षम हूं लेकिन मैं अपने वर्कफ़्लो से टूल को बाहर करना चाहता हूं। यदि संभव हो तो मैं वेबहुक और वेब एपीआई के माध्यम से कदम पंजीकृत करना चाहता हूं। मैं निम्नलिखित समापन बिंदु पर POST अनुरोध का उपयोग करके सफलतापूर्वक एक वेबहुक पंजीकृत करने में सक्षम हूं:

/api/data/v9.0/serviceendpoints

निम्नलिखित शरीर के साथ:

{
    "name":"Test Webhook",
    "url":"http://somewebhookendpoint.somedomain.com",
    "contract":8,
    "authtype":4,
    "authvalue":"args"
}

हालांकि, जब एक sdkmessageprocessingstep (जो मुझे लगता है कि कदम मैं इस वेबहुक के तहत बनाने की कोशिश कर रहा हूं) बनाने का प्रयास कर रहा हूं, तो मुझे 400 Bad Request त्रुटियां मिल रही हैं। यह अनुरोध निकाय है जिसे मैं sdkmessageprocessingstep create endpoint (api/data/v9.0/sdkmessageprocessingsteps) पर भेज रहा हूं

{
        "name":"Test for Step Creation",
        "stage":40,
        "rank":1,
        "eventhandlerid":"04e08d50-e63b-eb11-a813-000d3a0a7552",
        "sdkmessageid":"9ebdbb1b-ea3e-db11-86a7-000a3a5473e8",
        "sdkmessagefilterid": "c2c5bb1b-ea3e-db11-86a7-000a3a5473e8",
        "supporteddeployment":0,
        "description":"TEST FOR STEP CREATION #1"
}

लेकिन इस अनुरोध को पारित करने पर, मुझे निम्न त्रुटि मिल रही है (जो यह निर्दिष्ट करती है कि मैं उचित प्रारूप में sdkmessageid नहीं भेज रहा हूं)।

{
    "error": {
        "code": "0x0",
        "message": "An error occurred while validating input parameters: Microsoft.OData.ODataException: A 'PrimitiveValue' node with non-null value was found when trying to read the value of the property 'sdkmessageid'; however, a 'StartArray' node, a 'StartObject' node, or a 'PrimitiveValue' node with null value was expected.\r\n   at Microsoft.OData.JsonLight.ODataJsonLightPropertyAndValueDeserializer.ValidateExpandedNestedResourceInfoPropertyValue(IJsonReader jsonReader, Nullable`1 isCollection, String propertyName)\r\n   at Microsoft.OData.JsonLight.ODataJsonLightResourceDeserializer.ReadPropertyWithValue(IODataJsonLightReaderResourceState resourceState, String propertyName, Boolean isDeltaResourceSet)\r\n   at Microsoft.OData.JsonLight.ODataJsonLightResourceDeserializer.<>c__DisplayClass9_0.<ReadResourceContent>b__0(PropertyParsingResult propertyParsingResult, String propertyName)\r\n   at Microsoft.OData.JsonLight.ODataJsonLightDeserializer.ProcessProperty(PropertyAndAnnotationCollector propertyAndAnnotationCollector, Func`2 readPropertyAnnotationValue, Action`2 handleProperty)\r\n   at Microsoft.OData.JsonLight.ODataJsonLightResourceDeserializer.ReadResourceContent(IODataJsonLightReaderResourceState resourceState)\r\n   at Microsoft.OData.JsonLight.ODataJsonLightReader.StartReadingResource()\r\n   at Microsoft.OData.JsonLight.ODataJsonLightReader.ReadResourceSetItemStart(PropertyAndAnnotationCollector propertyAndAnnotationCollector, SelectedPropertiesNode selectedProperties)\r\n   at Microsoft.OData.JsonLight.ODataJsonLightReader.ReadAtStartImplementationSynchronously(PropertyAndAnnotationCollector propertyAndAnnotationCollector)\r\n   at Microsoft.OData.ODataReaderCore.ReadImplementation()\r\n   at Microsoft.OData.ODataReaderCore.InterceptException[T](Func`1 action)\r\n   at System.Web.OData.Formatter.Deserialization.ODataReaderExtensions.ReadResourceOrResourceSet(ODataReader reader)\r\n   at System.Web.OData.Formatter.Deserialization.ODataResourceDeserializer.Read(ODataMessageReader messageReader, Type type, ODataDeserializerContext readContext)\r\n   at System.Web.OData.Formatter.ODataMediaTypeFormatter.ReadFromStream(Type type, Stream readStream, HttpContent content, IFormatterLogger formatterLogger)"
    }
}

मुझे यकीन नहीं है कि eventhandlerid,sdkmessageid & sdkmessagefilterid को कैसे पास किया जाना चाहिए। मैंने इसे एक वस्तु के रूप में पारित करने का प्रयास किया - इस तरह:

{
        "name":"test through json",
        "stage":40,
        "rank":1,
        "EventHandler":{"@id":"04e08d50-e63b-eb11-a813-000d3a0a7552"},
        "SdkMessage":{"@id":"9ebdbb1b-ea3e-db11-86a7-000a3a5473e8"},
        "SdkMessageFilter": {"@id":"c2c5bb1b-ea3e-db11-86a7-000a3a5473e8"},
        "description":"TEST through JSON #1"
}

लेकिन कोई फायदा नहीं हुआ (@ को हटाना भी काम नहीं करता है)। प्रतिक्रिया यह निर्दिष्ट करती है कि मैंने कुछ गलत पैरामीटर पारित किए हैं:

{
    "error": {
        "code": "0x0",
        "message": "An error occurred while validating input parameters: Microsoft.OData.ODataException: Does not support untyped value in non-open type.\r\n   at System.Web.OData.Formatter.Deserialization.DeserializationHelpers.ApplyProperty(ODataProperty property, IEdmStructuredTypeReference resourceType, Object resource, ODataDeserializerProvider deserializerProvider, ODataDeserializerContext readContext)\r\n   at System.Web.OData.Formatter.Deserialization.ODataResourceDeserializer.ApplyStructuralProperties(Object resource, ODataResourceWrapper resourceWrapper, IEdmStructuredTypeReference structuredType, ODataDeserializerContext readContext)\r\n   at Microsoft.Crm.Extensibility.CrmODataEntityDeserializer.ApplyStructuralProperties(Object resource, ODataResourceWrapper resourceWrapper, IEdmStructuredTypeReference structuredType, ODataDeserializerContext readContext)\r\n   at System.Web.OData.Formatter.Deserialization.ODataResourceDeserializer.ReadResource(ODataResourceWrapper resourceWrapper, IEdmStructuredTypeReference structuredType, ODataDeserializerContext readContext)\r\n   at System.Web.OData.Formatter.ODataMediaTypeFormatter.ReadFromStream(Type type, Stream readStream, HttpContent content, IFormatterLogger formatterLogger)"
    }
}

क्या कोई कृपया यह निर्दिष्ट करके मदद कर सकता है कि मैं डायनामिक्स वेब एपीआई का उपयोग करके serviceendpoint के तहत sdkmessageprocessingstep कैसे पंजीकृत कर सकता हूं?

1
fdrz 19 पद 2020, 16:15

1 उत्तर

सबसे बढ़िया उत्तर

शायद एकल मूल्यवान नेविगेशन संपत्ति (लुकअप) असाइनमेंट समस्या के साथ एक समस्या है लेकिन त्रुटि संदेश हालांकि थोड़ा अलग है।

मैंने इस पेलोड का परीक्षण नहीं किया है, इसलिए कृपया इसका परीक्षण करें। वेब एपीआई स्निपेट बनाने के लिए बीटीडब्ल्यू सीआरएम आरईएसटी बिल्डर इन परिदृश्यों में सहायक हो सकता है।

{
        "name":"Test for Step Creation",
        "stage":40,
        "rank":1,
        "eventhandler_serviceendpoint@odata.bind":"/serviceendpoints(04e08d50-e63b-eb11-a813-000d3a0a7552)",
        "sdkmessageid@odata.bind":"/sdkmessages(9ebdbb1b-ea3e-db11-86a7-000a3a5473e8)",
        "sdkmessagefilterid@odata.bind": "/sdkmessagefilters(c2c5bb1b-ea3e-db11-86a7-000a3a5473e8)",
        "supporteddeployment":0,
        "description":"TEST FOR STEP CREATION #1"
}
1
Arun Vinoth - MVP 20 पद 2020, 23:26
इसके लिए धन्यवाद और CRM REST निर्माता! यह अपेक्षा के अनुरूप काम कर रहा है! :)
 – 
fdrz
24 पद 2020, 16:56