繁体   English   中英

使用 Dynamics CRM 创建帖子 Web API

[英]Creating Post with Dynamics CRM Web API

无法使用 Dynamics CRM 2016 Online Web API 创建 Post 实体 ( https://msdn.microsoft.com/en-us/library/mt607553.aspx )。

此有效负载应在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实体没有允许我设置相关实体(联系人、帐户、 ETC)。

例如,创建任务实体 ( 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",
    "regardingobjectid_contact_task@odata.bind": "/contacts(<someguid>)",
    "scheduledend": "2016-07-21T12:11:19.4875892Z"
}

在我看来,Post 应该公开类似regardingobjectid_contact_post@odata.bind ,但事实并非如此。

对于上下文,这是通过 SOAP 端点和 SDK 创建帖子的方法:

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

有没有人有通过 Web API 创建的帖子的工作示例? 这是Dynamics CRM Web API中的遗漏吗?

它看起来不像是在限制中列出的: https://msdn.microsoft.com/en-us/library/mt628816.aspx

更新

看起来 postregarding 实体是应该创建链接到联系人/帐户的地方。 这可以通过查询来证明:

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

但是,像这样的“深度插入”不起作用:

{
    "text":"sometext",
    "postregardingid": 
         {
             "regardingobjectid_contact@odata.bind":"/contacts(someguid)"
         }
}

回应是

不能在父实体之前创建子实体。

没有任何地方提到不能使用 webapi 创建帖子(活动提要)。 事实上,它并没有像您指出的那样列为 crm webapi 限制。

同样在比较, _regardingobjectid_value的查找财产从不同activitypointer 单值导航属性也是。

出于好奇,我的调查转向了合作伙伴 - post_PostRegardings

唯一有意义的事情 - postregarding是严格的内部使用。 这可能是所有此类行为的原因。 这是我今天的 v8.2 理论(2017 年 8 月 12 日)

说明:表示活动提要帖子所涉及的对象。 仅供内部使用。
实体集路径:[组织URI]/api/data/v8.2/postregardings
基本类型:crmbaseentity EntityType
显示名称:发布相关信息
主键:postregardingid

参考: https : //msdn.microsoft.com/en-us/library/mt608103.aspx

更新

看起来 MS 推荐社区使用组织服务来创建自定义发布记录。 Web api 仍然损坏。 阅读更多

我最近在使用 powerapps 制作的 Activity 表中努力解决这个问题。 对于那些有兴趣的人,这是我的帖子请求:

POST: https://<MY_DOMAIN>.crm.dynamics.com/api/data/v9.1/<TABLE_NAME>
{
    "regardingobjectid_contact@odata.bind": "/contacts(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)",
    "description": "data for this entity",
    "subject": "more data"
}

我没有做任何与其他人的答案不同的事情。 如果此问题偶尔失败,我会提供更新。 但就目前而言,看起来 regardingobjectid 可能在 9.1 版中有效

使用 D365 Api v9.1

POST https://{domain}.crm4.dynamics.com/api/data/v9.1/posts
{
  "regardingobjectid_contact@odata.bind":"/contacts(guid)",
  "text": "This is a private message post",
  "source": 1,
  "type": 4
}

来源:

  1. 自动发布
  2. 手动发布
  3. 行动中心帖子

类型:

  1. 报到
  2. 主意
  3. 消息
  4. 私人信息
  5. 问题
  6. 重新发布
  7. 地位

应用结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM