Опубликовать KnowledgeArticle через веб-API - PullRequest
0 голосов
/ 10 января 2019

Каков процесс Публикация Статьи знаний через веб-API Dynamics CRM? Мне удалось успешно опубликовать Знание статьи в состоянии Черновик , но мне нужно перевести его в состояние Опубликован . Вот мой код для публикации в Draft состоянии в C #.

        JObject jObject = new JObject();

        jObject["content"] = kba.Content;
        jObject["title"] = kba.Title;
        jObject["createdon"] = DateTime.Now;
        jObject["modifiedon"] = DateTime.Now;
        jObject["knowledgearticleviews_date"] = DateTime.Now;
        jObject["rating_date"] = DateTime.Now;
        jObject["knowledgearticleid"] = Guid.NewGuid().ToString();
        jObject["description"] = kba.Description;

        var client = new RestClient(Settings.DynamicsApiUrl + "/knowledgearticles");
        var request = new RestRequest(Method.POST);
        request.AddParameter("authorization", string.Format("Bearer " + _authToken), ParameterType.HttpHeader);
        request.AddParameter("application/json", jObject.ToString(), ParameterType.RequestBody);
        request.RequestFormat = DataFormat.Json;
        request.AddBody(jObject.ToString());

        IRestResponse response = client.Execute(request);

        if (!response.IsSuccessful)
            throw new Exception(response.Content);

Это изменение свойства в KnowledgeArticle или отдельного веб-API?

1 Ответ

0 голосов
/ 10 января 2019

Вам нужно отправить запрос на обновление , чтобы изменить состояние статьи базы знаний.

Чтобы изменить состояние статьи, используйте сообщение об обновлении на запись статьи базы знаний для обновления KnowledgeArticle.StateCode атрибут.

// Retrieve the knowledge article record  
KnowledgeArticle myKnowledgeArticle = (KnowledgeArticle)_serviceProxy.Retrieve(  
        KnowledgeArticle.EntityLogicalName, knowledgeArticleId, new ColumnSet("statecode"));  

// Update the knowledge article record  
myKnowledgeArticle.StateCode = KnowledgeArticleState.Published;  
UpdateRequest updateKnowledgeArticle = new UpdateRequest  
{  
    Target = myKnowledgeArticle  
};  
_serviceProxy.Execute(updateKnowledgeArticle);

В приведенном выше примере используются типы раннего связывания SDK, но если вы хотите использовать веб-API, я думаю, это будет выглядеть примерно так:

jObject["statecode"] = 3; //3 = published

Возможно, вам потребуется выполнить это в отдельном вызове обновления после первоначального создания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...