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

发布时间:2026/9/23 0:18:15

深入 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

相关新闻

2小时,我搭了一套自动绩效管理系统:目标、评分、排名、奖金全部自动算

2小时,我搭了一套自动绩效管理系统:目标、评分、排名、奖金全部自动算

2026/8/28 6:52:29

每次一到绩效考核期,HR最怕的往往不是员工打分低,也不是主管有意见,而是那一堆永远算不完的表。 先发绩效表,再催员工填目标; 主管评分以后收回来汇总,核权重、算总分、排排名、定等级。 等这些都弄完&am…

STM32 Bootloader跳转RTOS实战:从原理到稳定运行的完整指南

STM32 Bootloader跳转RTOS实战:从原理到稳定运行的完整指南

2026/8/30 9:23:47

1. 从Bootloader到RTOS:一个嵌入式工程师的必经之路如果你正在开发一个基于STM32的复杂产品,比如智能家居网关、工业控制器或者穿戴设备,那么“Bootloader RTOS”的组合几乎是一个标配架构。Bootloader负责固件的更新与引导,而RT…

矩阵是一种二维数组,每个矩阵仅能包含一类数据(数值型、字符型或者逻辑型)

矩阵是一种二维数组,每个矩阵仅能包含一类数据(数值型、字符型或者逻辑型)

2026/8/30 9:22:47

下面的内容摘录自《用R探索医药数据科学》专栏文章的部分内容(原文5426字)。 2篇1章1节:数据的基本概念以及 R 中的数据结构、向量与矩阵的创建及运算-CSDN博客 一、数据的基本概念 二、R的数据结构 2、矩阵(Matrix)…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/21 18:38:46

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/21 18:41:09

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/21 18:36:40

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/21 18:37:26

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/21 18:40:29

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/21 18:36:17

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/22 0:19:28

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/21 23:38:13

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/22 0:48:53

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…