使用 http-proxy 对网络请求进行代理
使用下面这段简单的代码对网络请求进行代理: const http = require('http'); const httpProxy = require('http-proxy'); const targetUrl = 'https://www.sap.cn/index.html'; const proxy = httpProxy.
使用 http-proxy 代理 HTTP 请求时遇到的 the requested url is invalid 错误消息
使用如下代码创建 HTTP 代理服务器: const http = require('http'); const httpProxy = require('http-proxy'); const targetUrl = 'https://www.sap.cn/index.html'; const proxy = httpProxy.c
SAP UI5 里的 Busy Indicator 控件使用概述
这个 SAP UI5 控件的命名控件:sap.m.BusyIndicator Busy Indicator 表示正在进行某些操作并且用户必须等待。 它不会阻塞当前的 UI 屏幕,因此可以并行触发其他操作。 这个控件提示用户,当前应用的后台正在执行某种操作。 开发人员可以设置图标的大小、文本,还可以定义一个自定义图标来代替使用。 Busy Indicator 的使用场景: 用户需要能够
SAP UI5 里的 Busy Dialog 控件使用概述
sap.m.BusyDialog 用于指示系统正忙。当显示 Busy 对话框时,整个应用程序被会阻止,无法进行任何新的操作。 Busy Dialog 包含下列几个组成部分,其中大部分是可选的。 title - 对话框的标题。 默认情况下,没有标题。text - 显示在Busy Dialog 上方的文本。showCancelButton - 一个可选的取消按钮,用于停止执行。customIc
在 SAP UI5 应用中使用浏览器原生的 Fetch API 发起网络请求试读版
一套适合 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 标准产品开发生涯里,Jerry 曾经先后参与 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer,
一款开箱即用的代理服务器,解决 SAP UI5 开发过程中访问远端 OData 服务的跨域问题
一套适合 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 标准产品开发生涯里,Jerry 曾经先后参与 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer,
关于使用命令行 cf login 登录 SAP BTP CloudFoundry 环境的问题
在 SAP BTP 平台 CloudFoundry 环境找到 API endpoint: 然后使用命令行 cf api,后面跟上这个 API endpoint: 然后使用 cf login 命令行登录: 如果password输入错误,会遇到上图的错误消息: Authenticating…{“error”:”invalid_grant”,”error_description”
将 SAP Spartacus 作为 feature module 进行 Lazy Load 延迟加载时遇到的注入错误分析
将 SAP Spartacus 作为 feature module 进行 Lazy Load 延迟加载时,遇到如下错误: ERROR Error: Uncaught (in promise): NullInjectorError: R3InjectorError(CatalogModule)[UserAuthEventModule -> UserAuthEventBuilder -
一个 SAP 开发工程师在 SAP 德国总部出差的见闻系列 2:Walldorf 附近的小旅馆
本系列第一篇文章 一个 SAP 开发工程师在 SAP 德国总部出差的见闻系列 1:出差 ≠ 公费旅游 发出来之后,有读者留言:德国房子怎么这么矮啊? 这是因为,SAP 德国总部,坐落在距离法兰克福约100公里的一座名叫 Walldorf 的小镇上。在百度百科上,将 Walldorf 的行政区类别标注为村,因此很多 SAP 从业人员,喜欢戏称其为 瓦村。 作为一座村庄,包括 SAP 总部办公
测试 SAP 电商云 Spartacus UI 3.4.x 和 4.3.x 的 guest checkout 功能
按照这个链接的步骤安装。 新建一个 Angular 应用,取名 mystore,待所有 package 安装完毕后: ng new mystore --style=scss 进入 mystore 文件夹,使用命令行:ng add @spartacus/schematics@3.4 遇到错误消息: Cannot find module ‘@angular-devkit/co
cy.visit 执行逻辑的单步调试
我们单步调试如下图第 20 行代码,cy.visit 执行后,不会立即去访问 url 里指定的网站: 进入一个 generic 函数,这里发现 cy. 的函数,是运行时动态挂接上去的: 首先进行调用栈的保存工作?返回一个空的字符串: 创建一个 chain 实例: 单例模式吗? 创建一个 chain 实例: 这里构造函数才正式调用: 这个 chainer.visit 是个什
关于 Cypress 的启动和 cy.visit 的调试
npx 是 npm 自带的命令行工具: 在项目根目录下,使用命令行 npx cypress open 启动: 也可以利用 yarn 启动:yarn run cypress open 或者是直接执行 node_modules bin 文件夹下的二进制命令。 这样就可以成功启动 Cypress Launchpad: package.json 添加如下的 script: &qu
华为云开天 aPaaS 平台的流使用体验
笔者在 SAP 成都研究院工作时,曾经在标准产品开发和项目原型开发中,使用过 SAP 的工作流解决方案。最近得知华为云开天 aPaaS 平台开启了公测,其中提到的一个亮点,就是其流功能,这让我来了兴趣,于是申请了免费的公测账号来体验一番。 华为云开天 aPaaS 平台,顾名思义,和 SAP BTP 一样,都是一款企业级的 Platform-as-a-Service 解决方案,是华为云与其生态圈的
一个 SAP 开发工程师在 SAP 德国总部出差的见闻系列 1:出差 ≠ 公费旅游
SAP 德国总部是 SAP 软件的诞生和发源地,也是不少国内 SAP 从业者心中的圣地,对这个圣地充满了神秘感。 Jerry 作为一个开发工程师在 SAP 成都研究院工作了 15 年(见我的文章 2007年1月11日~2022年1月11日,我在 SAP 成都研究院这15年 ),期间也获得了一些去 SAP 德国总部出差的机会。我会通过这个公众号,把我出差期间的一些见闻和感受分享出来,希望对想了解在
如何根据 SAP UI5 框架代码抛出的错误消息,反查出是哪一行代码引起的错误消息试读版
一套适合 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 标准产品开发生涯里,Jerry 曾经先后参与 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer,
SAP ABAP ALV 层次顺序表如何使用双表头(Multiple Headers)进行数据输出试读版
零基础 ABAP 学习教程系列文章的目录 ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍ABAP 标准培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别ABAP 标准培训教程 BC400 学习笔记之三:ABAP 编程语言的特性和基本构成要素ABAP 标准培训教程 BC400 学习笔
如何通过 SAP ABAP OData $expand 操作在同一个 HTTP 请求中返回多个节点的数据试读版
正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,可以分为三大类。因此本教程也分为三大部分,分别进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SA
Node.js 应用 peer dependency 的用法
有时候我们可以从 package.json 文件里发现下面这些定义: { //... "peerDependencies": { "libraryName": "1.x" } } dependencies 是我们的项目所依赖的包。 devDependencies 是在开发阶段需要的包。 比如说像 J
通过一个具体的例子理解 npm 的 peerDependency
假设我们有两个 npm module A 和 B,A 是 B 的 plugin. 如果 ABAP 的 package.json 里将 B 定义成其 dependency: { "dependencies": { "B": "1.2.0" } } 那么我们在 host 应用里安装 A 后,层级结果如下:
Peer Dependency 一些使用场景的归纳总结
在每个基于 Node.js 的 Web 应用程序项目中,我们都有一个名为 package.json 的文件。该文件包含有关项目的所有相关数据,即元数据。 package.json 中能够定义 dependency,devDependency 和 Peer Dependency 三种不同的依赖类型。 本文概括 Peer Dependency 的一些常见的使用场景。 Babel plugins