如何运行我通过Acumatica的REST API创建的通用查询?我之前使用的是库存摘要查询,但它没有返回我需要的所有数据,因此我们创建了一个通用查询,以便返回所有库存项目的装运数量。但是,我无法通过API找到如何通过此报告获取数据。
更新
我已经尝试创建扩展端点服务并为I210文档中描述的报告添加我的端点,然后通过REST API(未在I210中显示)进行命中。我将所有结果字段添加到我需要返回的端点的字段选项卡中。
以下是我使用的详细信息:
Extended Endpoint Name: MyInventoryAvailable
Endpoint version: 6.00.001
Endpoint: GetAvailableInventory
URL: https://mycompany.acumatica.com/entity/MyInventoryAvailable/6.00.001/GetAvailableInventory?$expand=Results
当我使用上述详细信息执行PUT请求时,这是我得到的响应:
{
"message": "The request is invalid.",
"modelState": {
"": [
"The request body should not be empty."
]
}
}
更新2
我尝试过设置请求主体但没有成功:
{
"InventoryID": {
"Value": "AB-CL-60"
},
"Description": {
"Value": ""
},
"Location": {
"Value": ""
},
"QtyHardAvailable":{
"Value": 0.0
},
"QtyOnHand":{
"Value": 0.0
},
"Warehouse":{
"Value": 0.0
}
}
发送任何请求正文时,无论内容如何,我都会收到此错误:
"exceptionMessage": "The given key was not present in the dictionary.",
"exceptionType": "System.Collections.Generic.KeyNotFoundException",
更新3 - 查询结构
更新4
答案 0 :(得分:0)
这是我在Web服务端点中构造通用查询的方式。
虽然其他端点包含任意数量的映射对象,但通用查询端点仅具有
Enter-Keys, Filter, Result, and Values-for-Update
ENDPOINT的字段是过滤器(单击“ PUPULATE”->“过滤器”)。上面的示例似乎没有任何过滤器,这很好,因此此FIELDS应该为空。
要从通用查询中获取数据,请添加“详细信息”实体
现在,通过单击“ GetAvailableInventoryResults”添加所需的结果,然后单击FIELDS(打开一个弹出窗口)。在弹出窗口中,选择“结果”并添加所需的所有字段。不要选择“行号”和“已选择”,因为它们不是必需的,并且可能导致错误。保存。
要访问ENDPOINT,请执行PUT操作
.../GetAvailableInventory?$expand=GetAvailableInventoryResults
身体为
{}
因为此ENDPOINT没有定义任何过滤器,但是PUT要求它存在。
我为什么要使用“ GetAvailableInventoryResults”?好吧,因为我遇到了多个具有相同名称的通用查询端点的详细信息的问题,所以我确保它们都是唯一的。
答案 1 :(得分:-2)
使用GET而不是PUT。您的要求属于here。我认为通用查询<>调查表。因此,GET与PUT之间的结果不同。