Exact Online API - 在与父实体相同的调用中获取子实体属性

问题描述

请求网址: https://start.exactonline.nl/docs/HlpRestAPIResourcesDetails.aspx?name=CRMAccounts

获取所有 CRMAccounts 的同时,我还想获取存储在 AccountManager 中的一些字段。为此,我尝试使用 'expand' 查询参数,但该参数似乎仅适用于集合。

有没有办法从 AccountManager 检索某些字段,而无需使用 GUID 再次调用?像 AccountManager.BirthName 这样的“选择”参数是理想的。

我已经在他们的社区/支持中问过这个问题,但到目前为止还没有收到任何反馈。

提前致谢!

解决方法

Exact Online API 有时会包含相关表中的其他字段。使用 $expand 可以在选定的端点上获得一些额外信息,但性能损失相对较大。

我建议使用类似的东西:

select *
from   exactonlinerest..accountsbulk act
join   exactonlinerest..users usr
on     usr.id = act.accountmanager

然后翻译成您喜欢的平台。

请注意,users 是订阅特定的 API;它在订阅拥有的所有部门中返回相同的值。 Accountancy 有多种订阅可供选择,企业家只有一个。

请参阅 https://documentation.invantive.com/2017R2/exact-online-data-model/webhelp/index.html 上有关数据模型部门特定/订阅特定/通用的说明

请注意,只要不超过支持的最大 URL 长度(例如 1400 个字符),您就可以通过一次 API 调用检索多个客户经理。

有时您可以使用 $batch,但不推荐使用:当出现问题时,支持将无济于事。

,

最后,Exact Online 的支持做出了回应,但他们告诉我不可能在同一请求中获取子实体。必须使用初始调用中提供的 GUID 在单独的调用中获取实体。

我猜 Guido 的 Invantive 软件开发了某种包装器来自动执行此操作,但这对我们的情况不可行。

因此,根据 Exact Online 的 API 不支持这种行为的结论,我接受我自己的答案。