问题描述
请求网址: 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 不支持这种行为的结论,我接受我自己的答案。