问题标签 [microsoft-dynamics-webapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2216 浏览

json - 解决导航属性 Dynamics WebAPI 的深度插入错误

我正在使用Microsoft Dynamics Web API将数据写入 Microsoft Dynamics 365 中的实体。当我尝试执行深度插入时收到错误消息

未声明的属性 'ccseq_employeeid' 在有效负载中仅具有属性注释,但在有效负载中未找到属性值。在 OData 中,只有声明的导航属性和声明的命名流可以表示为没有值的属性。

为什么我会收到此错误,我该如何解决该错误?

JSON

ExpenseTransactionSet是具有查找的ExpenseTransaction含义的父级。 是一对多的关系。并且是在.ExpenseTransactionExpenseTransactionSetccseq_ccseq_expensetransactionset_ccseq_expensetransaction_ExpenseTransactionSetIDsystemuserccseq_clientsExpenseTransaction

我还尝试了以下变体"ccseq_employeeid@odata.bind"

  • objectid_systemuser@odata.bind
  • objectid_ccseq_employeeid@odata.bind
  • ccseq_employeeid@data.bind
  • ccseq_employeeid@odata.bind : systemusers()
  • ccseq_employeeid_systemusers@odata.bind
  • systemuserid_systemusers@odata.bind

我已经看到了这个问题和这个问题,并尝试了建议的解决方案但没有成功。

0 投票
1 回答
65 浏览

javascript - 在导航属性失败时设置查找属性

我正在尝试POST使用 Microsoft Dynamics WebAPI 来获取以下 json。该帖子返回成功,但在我的数据中 ccseq_employeeid 和 ccseq_clientid 未设置。我需要更改什么才能使字段正确发布?

实体结构

ccseq_expensetransaction查找ccseq_expensetransactionsets与具有名称的关系ccseq_ccseq_expensetransactionset_ccseq_expensetransaction_ExpenseTransactionSetIDsystemusers对和的查找是实体ccseq_clients的一部分。ccseq_expensetransaction

代码

0 投票
1 回答
410 浏览

dynamics-crm - Microsoft Dynamics CRM 2015 - 使用 OData API 创建实体

不确定为什么以下请求会出错,如下所示:

处理请求流时出错。请求应该是一个有效的顶级资源对象。

请求(某些细节由于明显的原因被混淆了):

所有逻辑名称均来自运行以下查询:

0 投票
2 回答
131 浏览

javascript - 在异步 Web API 调用之前保存并关闭退出的 Web 资源

我正在构建一个相当复杂的 Web 资源,它使用 Dynamics Web API 将数据读/写到 Dynamics。我有一种情况,我需要创建一个实体,该实体需要我需要创建的其他两个实体的 ID。为此,我使用两个异步调用来创建两个实体,然后使用从两个异步调用返回的数据来填充我创建的第三个实体中的数据记录。我遇到的问题是,当有人单击保存并关闭时,关闭发生在我的异步调用完成之前。发送第一个创建调用,然后发生关闭,而不会发生第二个或第三个创建。我还担心在保存时,我的 Web API 调用很可能会出现竞争情况,如果有人在保存后足够快地单击关闭,则可能无法保存所有数据。

我探索过的一些可能的解决方案要么不起作用,要么我不太喜欢

  • 禁用保存并关闭(保存然后关闭时可能仍然存在竞争条件)
  • 批处理(不确定这是否可行,但如果可行,难度会更大)
  • 使用超时来暂停关闭(不要认为这会起作用)
  • 保存完成后取消关闭并重新发出关闭(必须有更好的方法,对吧?)
0 投票
1 回答
741 浏览

javascript - 计算汇总字段动态 WebAPI

我正在尝试从CalculateRollupField调用WebAPI 调用。我似乎找不到很多实现示例,并且我尝试遵循文档会引发错误:

请求 URI 无效。'CalculateRollupField' 段不能包含关键谓词,但它可能以空括号结尾

WebAPI 调用

我需要调整什么才能让这个 WebAPI 调用正常工作?

0 投票
1 回答
1502 浏览

dynamics-crm - 如何使用 Web API 方法从“owner”类型的 CRM 数据库中获取“ownerid”列?

我在客户端使用Microsoft Dynamics 365。在这里,我在访问owneridtype的一个字段时遇到了问题owner

我正在使用 Web API 方法来访问 CRM 数据。当我在 URL 中点击查询时,它会带来除ownerid列之外的所有数据。

field type是:Simple

有没有人在使用 WebAPI 查询方法时遇到过同样的问题?

网址查询:

输出:

0 投票
1 回答
1023 浏览

dynamics-crm - 400 - 使用 Web API 在 CRM 中保存仅日期字段时出现错误请求

我正在使用Microsoft Dynamics 365 Web API方法与 CRM 数据进行交互。

在这里,我想用 type: 更新字段DATE and TIME

字段设置截图

我在请求正文中传递的日期值如下:

除了上述之外,我还尝试过使用 DateTime 和不同的日期格式。例如

PS:我尝试在没有日期字段的情况下发布它正在成功保存详细信息。

0 投票
1 回答
251 浏览

c# - 400 - 为查找字段插入记录时出现错误请求

我正在使用Microsoft Dynamics 365并使用Web API方法访问其数据库。

在这里,我有一个查找类型的字段,并且具有如下查找值: 字段信息

在这里,考虑它的代码值如下:

我作为 JSON 数据传递的是:

我也试过如下:

但它们都不适合我。有人可以指导我吗?

编辑 1:PUT 请求

[ {“状态代码”:101,“状态代码”:0 },{“状态代码”:101,“状态代码”:0 }]

0 投票
1 回答
126 浏览

dynamics-crm - Dynamics CRM Web API 设置 parentactivityid 问题

我需要为电子邮件实体设置parentactivityid,方法与 CRM 在回复电子邮件时自动设置的方式相同。我正在使用适用于任何其他查找属性的相同模式,如下所示:

请求结束得很好(204)但是当我检查它返回的电子邮件时:

而不是分配的 GUID。

你知道可能是什么问题吗?

0 投票
1 回答
3022 浏览

dynamics-crm - Dynamics365 web api 更新与 upsert

我很困惑。我了解这两者之间的实际区别,但我在这里看不到实际实现的任何区别。

这是文档的摘录

基本更新

更新操作使用 HTTPPATCH动词。将包含要更新的属性的 JSON 对象传递给表示实体的 URI。如果更新成功,将返回状态为 204 的响应。

此示例使用 accountid 值 00000000-0000-0000-0000-000000000001 更新现有帐户记录。

上插

upsert 操作与更新完全一样。它使用PATCH 请求并使用 URI 来引用特定实体。不同之处在于,如果实体不存在,它将被创建。如果它已经存在,它将被更新。通常在创建新实体时,您会让系统分配一个唯一标识符。这是一个最佳实践。但是,如果您需要创建具有特定 id 值的记录,则 upsert 操作提供了一种方法来执行此操作。这在您在不同系统中同步数据的情况下可能很有价值。

有时在某些情况下您想要执行 upsert,但您想要阻止潜在的默认操作之一:创建或更新。您可以通过添加 If-MatchIf-None-Match标题来完成此操作。有关详细信息,请参阅限制 upsert 操作

所以实际上Basic update如上所述upsert,为了实现真正的基本更新(如果给定帐户存在则更新,否则为 404)我需要将If-Match: *标头添加到PATCH请求中。

我理解正确吗?