资讯详情

资讯详情

建站行业动态 · 设计趋势 · 数字化升级干货

深入 SAP Gateway $filter System Query Option APIs,从表达式树到 Visitor 模式

深入 SAP Gateway $filter System Query Option APIs,从表达式树到 Visitor 模式 在经典 SAP Gateway OData V2 服务开发里,GET_ENTITYSET往往是最容易变得复杂的方法之一。一个看起来很普通的列表查询,请求一旦带上$filter、$orderby、$top、$skip等 System Query Option,DPC 端就不再只是读取数据库并返回内表,而是需要理解客户端到底希望筛选什么数据。例如一个销售订单列表发出如下请求SalesOrders?$filter=EditState ne 2 or (EditState eq 2 and TwinEntity eq null)站在 HTTP 层面看,这只是一段$filter字符串。站在 SAP Gateway Runtime 内部看,它已经不是简单字符串,而是一棵具有操作符、属性、常量、函数以及成员访问关系的 Filter Expression Tree。SAP 官方文档明确提供了GET_FILTER_EXPRESSION_TREE,用于把$filterSystem Query Option 取得为 Object Tree,同时还提供/IWBEP/IF_MGW_EXPR_VISITOR,供应用程序按照 Visitor Design Pattern 对这棵树进行处理。这个 API 的价值并不只是为了读取一个过滤条件。它实际上给经典 SAP Gateway 开发提供了一层语义接口。我们不必把$filter

相关资讯