如何使用Microsoft Dynamics WebAPI查询采购订单及关联行项目?
通过Microsoft Dynamics WebAPI操作采购订单
一、列出采购订单
直接向采购订单实体的WebAPI端点发送GET请求即可:
- 基础查询:
GET /api/data/v9.2/purchaseorders,返回所有采购订单的完整字段 - 过滤结果:添加
$filter参数筛选,比如只取已提交的订单:GET /api/data/v9.2/purchaseorders?$filter=purchaseorderstatus eq 1(注:purchaseorderstatus的数值对应系统状态,1=已提交,2=已批准,可根据实际环境调整) - 精简返回字段:用
$select指定需要的字段,提升请求性能:GET /api/data/v9.2/purchaseorders?$select=purchaseorderid,documentstatus,totalamount
二、列出包含关联行项目的采购订单
采购订单的行项目对应实体purchaseorderdetails,通过$expand参数关联查询,就能在返回结果中包含每个订单的行项目数据:
- 基础关联查询:
GET /api/data/v9.2/purchaseorders?$expand=purchaseorderdetails,每个采购订单对象会多出purchaseorderdetails数组,包含对应的行项目 - 组合筛选与字段控制:比如只取已批准的订单,且仅返回关键字段:
这里通过GET /api/data/v9.2/purchaseorders?$filter=purchaseorderstatus eq 2&$select=purchaseorderid,totalamount&$expand=purchaseorderdetails($select=purchaseorderdetailid,productid,quantity)$expand=purchaseorderdetails($select=...)来指定行项目需要返回的字段,避免冗余数据。
三、参考实现库
- .NET 生态:使用
Microsoft.PowerPlatform.Dataverse.ClientNuGet包,通过ServiceClient可以直接发送WebAPI请求,或利用强类型实体类(如PurchaseOrder、PurchaseOrderDetail)编写LINQ查询,框架会自动转换为对应的WebAPI请求,示例:using Microsoft.PowerPlatform.Dataverse.Client; using Microsoft.Xrm.Sdk; var service = new ServiceClient("你的连接字符串"); var orders = service.RetrieveMultiple(new QueryExpression("purchaseorder") { ColumnSet = new ColumnSet("purchaseorderid", "totalamount"), LinkEntities = { new LinkEntity("purchaseorder", "purchaseorderdetail", "purchaseorderid", "purchaseorderid", JoinOperator.LeftOuter) { Columns = new ColumnSet("productid", "quantity") } } }); - JavaScript/TypeScript:无需额外库,直接用
fetch或axios发送请求,只需先获取Dynamics的OAuth2访问令牌,示例:const accessToken = "你的Dynamics访问令牌"; const orgUrl = "https://yourorg.crm.dynamics.com"; fetch(`${orgUrl}/api/data/v9.2/purchaseorders?$expand=purchaseorderdetails`, { method: "GET", headers: { "Authorization": `Bearer ${accessToken}`, "Accept": "application/json;odata.metadata=minimal" } }) .then(response => response.json()) .then(result => console.log("带行项目的采购订单:", result.value));
内容的提问来源于stack exchange,提问作者Tony B
相关产品推荐
相关产品推荐

