如何通过 ABAP 代码给 SAP OData 元数据增添注解试读版
笔者的这篇 SAP UI5 开发教程文章,* SAP UI5 应用开发教程之一百二十九 - 如何给 SAP UI5 SmartField 添加 Value Help 功能,有朋友留言: 你好,请教一个问题,请问如何在odata里面通过annotations添加一个自定义注解? 你好,请问可以不可以在odata里面通过什么设置,从而自动给metadata.xml中加上注解,实现value h
使用 ABAP 代码给 OData 元数据增添注解的一些例子
最近有读者向我咨询,关于当系统在 SAP NetWeaver 740 之上运行时,如何向 OData 服务添加注解(annotation)。 虽然使用 SAP NetWeaver 750 及更高版本,可以在 CDS DDL 源代码中添加注解,然而 SAP NetWeaver 740 没有此类支持。 尽管如此,如果客户和合作伙伴正在使用使用 CDS 视图作为映射数据源(mapped data s
如何使用 SAP OData 服务向 ABAP 服务器上传文件试读版
本教程到目前为止开发的 OData 图书管理服务,可以在 ABAP 系统里对图书数据进行增删改查。 本步骤我们继续介绍如何通过 SAP OData 服务,实现向 ABAP 系统上传文件的需求。我们采取 Postman 进行文件上传。 先看一下通过本文介绍的步骤,实现的效果。 Postman 里使用的文件上传 url:https://{{host}}:{{port}}/sap/opu/odat
参加 Spartacus 开源项目开发时需要注意的一些编程规范
我们使用 NgRx 存储来管理 Spartacus 功能中的全局应用程序状态。 使用 NgRx 在性能、更好的可测试性和易于故障排除、方面具有明显的优势。 除非有令人信服的理由不这样做,否则在某项 feature 的开发里,请总是使用 Rgrx 来管理状态。 使用 Store 并不意味着我们需要缓存所有内容。 缓存应该有目的的使用,并在有意义的地方使用。 通常,CMS 数据是缓存的良好候选者,
开源项目 Spartacus 的 git 分支使用规范
Spartacus 开源项目里存在如下的 git 分支: feature/GH-xxxx 分支用于简单的功能和错误修复epic/epic-name 分支用于大功能的开发release/1.4.0-rc.0 分支用于特定的发布(你可以将它们与维护分支区分开来,因为包含了完整的版本号) Epic 开发流程以下是使用 epic 的步骤: 从 develop 分支创建一个新的 epic/ep
开源项目 Spartacus 的 git 提交流程规范
Spartacus 开源项目由一组库组成。为了更容易知道哪个版本的库与另一个版本兼容,库版本在所有包中同步。 这意味着当我们要发布 1.5.0 版本时,我们会发布该版本下的所有库,即使某些库与上一个版本相比没有任何变化。 这样一来,我们可以使用单个版本号来指代任何给定版本的整套 Spartacus 库。 如下图所示,Spartacus 项目 Angular.json 文件里一个个类型为 libr
如何给 SAP ABAP ALV 报表的修改功能添加自定义校验逻辑试读版
本教程前面的步骤,我们已经介绍了如何编辑 SAP ALV 报表里的某一列数据: 70. 利用 ALV 实现增删改查系列之二:仅让 ALV 报表某一列允许被编辑 如下图 Airfare 和 Capacity 列所示。然而实际的开发项目中,我们肯定不会允许用户对这些列进行随心所欲的修改,必定要增添一些自定义校验逻辑,以免在系统产生一些脏数据。本文向大家介绍如何为 SAP ABAP ALV 报表
SAP ABAP 报表屏幕输入字段如何实现联动效果试读版
有朋友向我咨询,SAP ABAP 报表输入字段,如何实现联动效果? 所谓联动效果,如下图所示,我们有三个输入框,类型都是 Checkbox: 激活缓存使用共享内存使用二级缓存 默认情况下,使用共享内存和使用二级缓存这两个 Checkbox 处于禁用状态。只有当我们选中 激活缓存 时,这两个 Checkbox 才允许编辑: 当我们选中了使用共享内存和使用二级缓存后,如果将激活缓存
apache 里的 ProxyPassReverse 指令
该指令允许 Apache httpd 调整 HTTP 重定向响应(HTTP redirect response) Location、Content-Location 和 URI 标头中的 URL。 当 Apache httpd 用作反向代理(或网关)以避免绕过反向代理时,这是必不可少的,因为后端服务器上的 HTTP 重定向位于反向代理之后。 只有上面特别提到的 HTTP 响应头会被重写。 Apa
Apache 虚拟主机里的 ServerName 指令
术语虚拟主机(Virtual host)是指在一台机器上运行多个网站(例如 company1.example.com 和 company2.example.com)的做法。 虚拟主机可以是“基于 IP”的,这意味着每个网站都有不同的 IP 地址,也可以是“基于名称的”,这意味着在每个 IP 地址上运行多个名称。 它们在同一台物理服务器上运行的事实对最终用户来说并不明显。 <Virtual
SAP OData 框架里的缓存(Cache)设计专题讲座试读版
正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,可以分为三大类。因此本教程也分为三大部分,分别进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SA
什么是 SAP ABAP FDA - Fast Data Access 技术?
快速数据访问 (Fast Data Access,缩写为 FDA) 是一种可在 SAP ABAP 环境中访问的协议。 它允许针对 SAP HANA 提交 OPEN SQL SELECT 语句,从而使用 SAP ABAP 的数据格式。 在快速数据访问场景里,SAP ABAP 内表数据传输到数据库并返回。这种方法避免了按字段级别(field-wise)进行数据复制和数据格式转换的要求。 FDA 的主
SAP UI5 Mock Server 在响应 OData 请求时的单步调试
SAPUI5 中包含的模拟服务器模仿 OData V2 后端调用。 它模拟 OData 提供程序并且完全基于客户端,这意味着不需要与远程主机的网络连接。 它拦截对服务器的 HTTP 调用,并向客户端提供伪造的输出。 所有这些对于数据绑定和 OData 模型的使用都是透明的,感觉就像一个真正的服务器。 OData 模型不需要任何更改。 OData V2 模拟服务器提供模拟服务和模拟数据。 它支持基
SAP Gateway Foundation 里的 batch 操作
SAP Gateway Foundation (SAP_GWFND) 是一个在 SAP NetWeaver 中可用的软件组件。 SAP Gateway Foundation 提供开发和生成工具来为各种客户端开发工具创建 OData 服务。 简而言之,它在应用程序或 SAP Business Suite 数据与目标客户、平台和编程框架之间建立连接。 SAP Gateway Foundation
SAP Gateway Foundation Client Proxy 的使用方法
根据实际使用场景,SAP OData 客户端代理配置有多种消费类型和 OData 版本。 OData Client Proxy是ABAP中OData服务消费中客户端(服务的消费者)和服务实现(数据提供)之间的接口。 这使 ABAP 开发人员能够创建 OData 客户端编码以在其 ABAP 编码中运行 OData 请求。 OData 客户端代理可用于不同的配置,具体取决于当前用例。 OData
SAP Gateway 里的 REST 概念
SAP Gateway 有助于轻松配置和使用 SAP Business Suite 系统的业务逻辑和内容,用于移动和 Web 应用程序。它降低了访问 SAP 数据所需的复杂性和技能组合,从而消除了部署障碍。使用简单的界面有助于缩短开发时间。 SAP Gateway 使以人为本的应用程序能够以简单且基于标准的方式通过流行的平台和设备(例如 iPad 和黑莓)使用 SAP Business Suit
SAP Gateway 上的 Metadata Cache
SAP Gateway Foundation 缓存服务的元数据信息以显着提高性能。 SAP 提供了三种类型的缓存: 在 hub 上缓存。 在 Hub 系统上缓存了元数据模型、注释模型以及服务的注释文本。 在后端缓存。 在后端仅缓存元数据模型和注释模型。 后端不需要注释文本来进行服务实例化,因此不会在此处缓存。 co-deployment 场景。 共部署场景是指 hub 和
SAP Gateway 在开发系统和生产系统上的缓存控制
SAP Gateway 元数据缓存可以启用和禁用,并且在非生产系统中默认停用。 我们推荐以下缓存设置: 开发系统应该禁用 SAP Gateway 元数据缓存,以便始终获取最新的元数据(默认设置)。 OData 通道应用程序应在其模型提供程序类的 GET_LAST_MODIFIED 方法中设置最新时间戳或坚持默认实现。 生产系统应始终启用 SAP Gateway 元数据缓存以提高性能(默认设置
SAP Gateway 后台模型的缓存设置
/iwbep/cl_mgw_med_provider 类里的成员 mv_cache_active: 这个 cache 默认是开启状态。 调用 OData 服务的 MPC_EXT 类的 get_last_modified 方法获取最后一次修改的时间戳。这个时间戳(timestamp)也会影响到 cache 的行为,我们后续也会详细讨论。 第12 行 super 方法调用返回的 ti
Angular 模块封装概念常见的错误理解
Angular 以类似于 ES 模块的方式引入了模块封装的概念。 它基本上意味着可声明的类型——组件、指令和管道——只能由在该模块内声明的组件使用。 例如,如果我尝试使用下面的代码在 App 模块的 App 组件内使用 A 模块中的 a-comp: @Component({ selector: 'my-app', template: ` <h1&g