如何扩展Acumatica REST API调用中的多个字段?
/entity/Default/17.200.001/Customer?$expand=Contacts
有效,并且
/entity/Default/17.200.001/Customer?$expand=Salespersons
可以,但是
/entity/Default/17.200.001/Customer?$expand=Contacts,Salespersons
没有,两个都没有扩展。
根据Acumatica文档:
集成->使用基于合同的REST API->用于检索记录的参数-> $ expand
他们说他们遵循OData约定(https://www.odata.org/documentation/odata-version-3-0/url-conventions/)
我相信此请求会得到遵守。
答案 0 :(得分:1)
我已经问过一位同事这种行为。假设是使用OData语法扩展多个查询有效,但不能扩展多个实体数组。我说一个假设是因为尝试扩展2个实体数组时返回的Web服务错误过于笼统,无法将其确定为问题。
当前发布的文档似乎没有涉及该限制,但是应该随更新的Web服务文档一起发布。请注意,这仅适用于获取所有实体。如果要选择一个实体(例如:按ID选择1个客户),则可以扩展1个以上的数组。对单个实体的限制较少,因为对1个实体与X个实体的性能优化的需求较少。
您可以扩展多个单个实体和一个数组:
$expand=Contacts,MainContact,BillingContact
但是不能扩展多个数组:
$expand=Contacts,Salespersons
答案 1 :(得分:1)
可能的解决方法:
1)如果需要所有客户和所有字段的扩展列表
a) Write a Generic Inquiry
b) Make multiple calls, expanding only one list each time
2)如果客户数量很少
a) Use the /Customer/{id}?$expand=... for each customers {id}
(2a)的好处是支持BQL委托,因为(1b)可能会出现“查看答案具有BQL委托”错误。 (1a)可能需要最多的工作。