ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

SAP Gateway 的 $expand 到底由谁做,Framework Expand 与 Data Provider Expand 的运行机制与性能边界

SAP Gateway 的 $expand 到底由谁做,Framework Expand 与 Data Provider Expand 的运行机制与性能边界 在/IWFND/GW_CLIENT里执行下面这样的请求,是 SAP Gateway 开发里非常常见的一幕。/SalesOrders('0500000000')?$expand=SalesOrderItems客户端真正想拿到的并不只是销售订单0500000000的抬头数据,还希望在同一个 OData Response 里看到这张订单对应的全部行项目。把请求进一步扩大,也可以一次读取多张销售订单及其项目。/SalesOrders?$expand=SalesOrderItems从 OData 消费端看,这件事很自然。一个 HTTP Request 发出去,JSON Payload 里订单下面直接嵌入SalesOrderItems,SAPUI5、Fiori Elements 或其他前端框架拿到数据后即可继续绑定。真正复杂的地方发生在 SAP Gateway 后端。Gateway 到底应该先调用一次SalesOrders_GET_ENTITYSET,再针对每一张订单逐条读取SalesOrderItems,还是由应用程序一次把订单和项目全部取回来,再组装成 Deep Structure 交给 Gateway 序列化。这正是 Framework Expand 和 Data Provider Expand 要解决的问题。
返回列表