Создание публикации с помощью Dynamics CRM Web API

Сущность Post (https://msdn.microsoft.com/en-us/library/mt607553.aspx) нельзя создать с помощью Dynamics CRM 2016 Online Web API.

Эта полезная нагрузка должна создать сообщение на POST /api/data/v8.1/posts

{
    "text": "Test Single Post",
    "source": 1,
    "type": 7
}

(источник 1 - автоматическое сообщение, тип 7 ​​- сообщение статуса)

Но возвращается:

{
    "error":
    {
        "code":"",
        "message":"An unexpected error occurred.",
        "innererror"
        {
            "message":"An unexpected error occurred..."
        }
    }
}

Отправка той же полезной нагрузки только с «текстом» также не выполняется.

Обратите внимание, что объект Post не имеет однозначных свойств навигации (https://msdn.microsoft.com/en-us/library/mt607553.aspx#bkmk_SingleValuedNavigationProperties), который позволит мне установить связанный объект (контакт, учетную запись и т. д.).

Например, создание объекта «Задача» (https://msdn.microsoft.com/en-us/library/mt607619.aspx) отлично работает на POST /api/data/v8.1/tasks

{
    "subject": "Test Single Task",
    "description": "Test One Description of Task",
    "[email protected]": "/contacts(<someguid>)",
    "scheduledend": "2016-07-21T12:11:19.4875892Z"
}

Мне кажется, что Post должен выставлять что-то вроде [email protected], но это не так.

Для контекста, вот как создать сообщение через конечную точку SOAP и SDK:

var result = Client.getOrganizationService().Create(new Post
{
    Text = post.text,
    RegardingObjectId = new EntityReference(
        entityName,
        Guid.Parse(post.regarding_guid)
    )
});

У кого-нибудь есть рабочий пример сообщения, созданного через веб-API? Это упущение в Dynamics CRM Web API?

Не похоже, что это указано в ограничениях: https://msdn.microsoft.com/en-us/library/mt628816.aspx.

ОБНОВИТЬ

Похоже, что объект пострегистрации - это то место, где должна быть создана ссылка на контакт / учетную запись. Это можно продемонстрировать, запросив:

/posts?$filter=postregardingid/regardingobjectid_contact/contactid eq <someguid>

Однако такая «глубокая вставка» не работает:

{
    "text":"sometext",
    "postregardingid": 
         {
             "[email protected]":"/contacts(someguid)"
         }
}

Ответ

Невозможно создать дочерние сущности перед родительской сущностью.




Ответы (1)


Нигде не упоминается, что Post (лента активности) не может быть создана с помощью webapi. На самом деле это не указано как ограничение crm webapi, как вы указали.

Также при сравнении свойство поиска _regardingobjectid_value в сообщении равно отличается от указателя активности. Однозначное свойство навигации тоже.

Из любопытства Мое расследование переместилось в сторону Партнера - post_PostRegardings

Единственное, что имеет смысл - postregarding - это строго внутреннее использование. Это могло быть причиной всего такого поведения. Это моя теория для версии 8.2 сегодня (12 августа 2017 г.)

Описание: указывает, к какому объекту относится сообщение в фиде действий. Только для внутреннего использования.
Путь к набору объектов: [URI организации] /api/data/v8.2/postregardings
Базовый тип: crmbaseentity EntityType
Отображаемое имя: сообщение, касающееся
первичного ключа: postregardingid

Ссылка: https://msdn.microsoft.com/en-us/library/mt608103.aspx

Обновление:

Похоже, MS рекомендует сообществу использовать службу организации для создания настраиваемой записи Post. Веб-api все еще не работает. Узнать больше

person Arun Vinoth    schedule 12.08.2017