从 viewId 这个属性谈起,聊聊 SAP UI5 的 HTML 源代码生成机制试读版
一套适合 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 标准产品开发生涯里,Jerry 曾经先后参与 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer,
如何开启 ABAP Update function module 和系统程序的调试功能
有朋友咨询,在这些 update function module 里设置了断点,但是运行时,断点并没有停下来,这是为什么? 这位朋友有这样的疑问: 是有什么特殊设置? 还是SAP故意不让我们debug 有些程序? 比如 里我无论怎么设置breakpoint,怎么都跳不进去。 其实不是这样的,ABAP 里的代码,无论是 update function module,还是系统程序(s
通过一个具体的例子,讲解 SAP BDC 技术的使用步骤试读版
零基础 ABAP 学习教程系列文章的目录 ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍ABAP 标准培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别ABAP 标准培训教程 BC400 学习笔记之三:ABAP 编程语言的特性和基本构成要素ABAP 标准培训教程 BC400 学习笔
SAP 云平台 ABAP 编程环境的前世今生
SAP Cloud Platform发布后很长一段时间,在SAP各大技术社区里,能感觉到ABAP从业者们内心一丝隐隐的失落:尽管SAP和其他IT公司一道,大步迈开了向云端转型的步伐,在SAP云平台上通过BYOL(Bring Your Own Language)的架构,实现了对业界流行编程语言的支持,这使得拥有Java,nodejs,PHP,Python,Ruby,Go等编程技能的开发人员们,也能加
SAP 云平台上的 ABAP 编程环境里如何消费第三方服务
在ABAP On-Premises环境下,使用ABAP编程消费第三方服务,相信很多ABAP顾问都已经非常熟悉了,无非就是使用CL_HTTP_CLIENT或者CL_REST_HTTP_CLIENT来发送和接收HTTP请求。 下图这短短的38行代码,展示了如何使用ABAP工具类CL_HTTP_CLIENT去访问百度首页并拿到回复。 从百度返回的响应,通过方法GET_CDATA获得,存储于变量r
SAP Restful ABAP Programming 编程模型的 Action 实现和云端调试介绍
笔者之前的文章如何使用 Restful ABAP Programming 编程模型开发一个支持增删改查的 Fiori 应用,已经对 SAP Restful ABAP Programming 编程模型(以下简称 RAP)进行了一个最基本的介绍。 我们简单回顾一下之前文章的内容:在SAP云平台ABAP编程环境里创建了一个Z表,然后基于这张自定义数据库表创建了CDS view,基于该view创建Ser
SAP UI5 列表控件分页显示数据时,如何自定义分页大小
一套适合 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 标准产品开发生涯里,Jerry 曾经先后参与 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer,
SAP UI5 框架的 manifest.json
链接:https://sapui5.hana.ondemand.com/resources/sap/ui/core/manifest.json 从 ApplicationVersion 里能得到 SAP UI5 框架最新的版本:1.101.0 这个最新的版本也能在下面的链接里得到:https://sapui5.hana.ondemand.com/ openSourceComponents
SAP UI5 下拉菜单(Select) 控件的使用方式试读版
一套适合 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 标准产品开发生涯里,Jerry 曾经先后参与 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer,
基于 JSONModel 数据模型的 SAP UI5 列表控件分页显示数据的完整解决方案试读版
一套适合 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 标准产品开发生涯里,Jerry 曾经先后参与 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer,
sap.ui.core.IAsyncContentCreation 这个标记接口在 SAP UI5 框架中的应用
这是 sap.ui.core.UIComponent 子类的标记接口(Marker interface)。 什么是标记接口? 可以查阅我这篇文章:ABAP和Java的tag(marker) interface。 简单地说,Marker interface 是编程语言在不支持注解(annotation)的情况下, 通过接口的概念,来为一个类或者函数(JavaScript 里的 function
基于 JSONModel 数据模型的列表控件显示数据的深入讨论试读版
一套适合 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 标准产品开发生涯里,Jerry 曾经先后参与 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer,
基于 SAP UI5 JSONModel 客户端模型的列表分页显示(Table Pagination)前提试读版
一套适合 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 标准产品开发生涯里,Jerry 曾经先后参与 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer,
如何使用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的列表页面试读版
一套适合 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 标准产品开发生涯里,Jerry 曾经先后参与 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer,
SAP UI5 DynamicPage 控件介绍
该控件从 SAP UI5 1.42 版开始可用。DynamicPage 是一个布局控件,由标题、具有动态行为的标题、内容区域和可选的浮动页脚组成。 该控件由几个组件组成: DynamicPageTitle - 由左侧的标题、中间的内容和右侧的操作组成。 显示的内容会根据 DynamicPageHeader 的当前模式而变化。DynamicPageHeader - 一个通用容器,可以包含
SAP UI5 应用的主-从-从(Master-Detail-Detail)布局模式的实现步骤
所谓 SAP UI5 应用的主-从-从布局模式,意思是屏幕水平方向分为左,中,右三部分。 每个部分分别显示 Master,Detail 第一层和 Detail 第二层数据。 下面这个 gif 是具备这种布局方式的一个具体例子: 该应用程序提供以下功能: 基于 sap.f.FlexibleColumnLayout 控件的最多三列布局。此布局具有预定义的布局类型和它们之间的定义路由
rxjs Observable filter Operator 的实现原理介绍
看下面这段使用 filter Operator 的代码: import { fromEvent, interval, MonoTypeOperatorFunction } from 'rxjs'; import { filter } from 'rxjs/operators'; function filterKey(key) { console.
rxjs Observable 自定义 Operator 的开发技巧
操作符是 RxJS 库和 Observables 的基础块。 它使我们能够通过使用一些关键字(函数)来执行复杂的操作。 运算符只不过是获取源 Observable、对其执行操作并返回新 Observable 的函数。 rxJS 的 管道运算符 pipe 允许我们链接运算符。每个运算符都接受一个 Observable 并返回一个 Observable,这种一致的行为使得链接成为了可能。 Opera
rxjs Observable of 操作符的单步调试分析
看这段最简单的代码: import { Observable, of } from 'rxjs'; const observable = of(1, 2, 3); observable.subscribe((message) => { console.log(message); }); 输出: 输入的 1,2,3 被当成数组处理,触发 fro
rxjs Observable 两大类操作符简介
Observable 生产的数据,应该提供开发人员足够的自由度,对这些数据进行各种处理,比如 map / transform 等等。这就是 Rxjs Operator 大展身手的地方。 运算符是对 Observable 进行操作并返回 Observable 的函数。 这允许我们链接这些运算符。 链中的每个运算符都会修改由前一个运算符的运算产生的 Observable。 链中的算子不会同时工作,