Criando postagem com a API da Web do Dynamics CRM
Uma entidade de postagem (https://msdn.microsoft.com/en-us/library/mt607553.aspx) não pode ser criado usando a API da Web online do Dynamics CRM 2016.
Essa carga útil deve criar uma postagem emPOST /api/data/v8.1/posts
{
"text": "Test Single Post",
"source": 1,
"type": 7
}
(a origem 1 é uma postagem automática, o tipo 7 é uma postagem de status)
Mas retorna:
{
"error":
{
"code":"",
"message":"An unexpected error occurred.",
"innererror"
{
"message":"An unexpected error occurred..."
}
}
}
O envio da mesma carga com apenas "texto" também falha.
Observe que a entidade Post não possui propriedades de navegação com valor único (https://msdn.microsoft.com/en-us/library/mt607553.aspx#bkmk_SingleValuedNavigationProperties) que me permitirá definir a entidade relacionada (contato, conta etc.).
Por exemplo, Criando uma entidade de Tarefa (https://msdn.microsoft.com/en-us/library/mt607619.aspx) funciona bem emPOST /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"
}
Parece-me que o Post deveria expor algo como[email protected]
, mas não.
Para o contexto, é assim que você cria uma Postagem por meio do terminal SOAP e do SDK:
var result = Client.getOrganizationService().Create(new Post
{
Text = post.text,
RegardingObjectId = new EntityReference(
entityName,
Guid.Parse(post.regarding_guid)
)
});
Alguém tem um exemplo de trabalho de uma publicação criada através da API da Web? Isso é uma omissão na API da Web do Dynamics CRM?
Não parece que isso esteja listado nas limitações:https://msdn.microsoft.com/en-us/library/mt628816.aspx
ATUALIZAR
Parece que a entidade pós-referente é onde o link deve ser criado para entrar em contato / conta. Isso pode ser demonstrado consultando:
/posts?$filter=postregardingid/regardingobjectid_contact/contactid eq <someguid>
No entanto, uma "inserção profunda" como essa não funciona:
{
"text":"sometext",
"postregardingid":
{
"[email protected]":"/contacts(someguid)"
}
}
A resposta é
Não é possível criar entidades filhas antes da entidade pai.